談談軟件的開發及成長歷程


每個人身上,都有着獨一無二的經歷,也有着不一樣的成長歷程。回顧一下,從大學時期參加校網絡中心從事開發工作,到目前在社會上的風雨兼程,也走過十多年的開發路程了,黃金歲月,青春年華,都在這期間度過。

養成經常寫寫博客的習慣,也將近10年,每篇文章,都體現自己某一刻的體會或者想法,博客十年,也是自己的技術十年,總結了無數的開發心得和開發思路,或者有時候也很欣喜的介紹一下自己的勞動成果,辛苦與愉悅,伴隨着時間慢慢沉淀。

由於熱衷技術的原因,博客內容一般圍繞某個技術點,或者某個主題進行介紹,逐漸也形成了幾個內容較多的標簽,也是自己一直以來堅持的成果,回首過去,還是能看到沉淀下來的一些成績。

1、代碼生成工具的探索

雖然05年就注冊加入了博客園,不過05年正處於奔波忙碌的年代,在上海的一家外資公司做軟件外包的開發工作,公司管理嚴格,禁止發送任何信息到外面,因此多數情況下在休息時間看看一些文章,了解一些技術的動態,自己業余時間則主要沉醉於第二版代碼生成工具的開發工作,之前的第一版主要是在C#代碼中糅合了需要生成的代碼,能解決一些工作,但維護的工作量很大,容易出錯。因此后來碰到了NVelocity的模板化技術的時候,非常激動,花了很多時間在這方面做研究,然后把它綜合到代碼生成工具里面,實現實現邏輯和模板的分離

初期的博客發表,可以追溯到06年期間,當時已經回到了廣州,公司管理也沒有那么嚴格苛刻,因此也有時間介紹一下自己的東西,偶爾有空寫下博客,雖然量不多,當時主要就是圍繞代碼生成工具來完成自己的一些工作,而且也因為能夠減輕公司日常的開發工作,獲得公司的一個年度獎,獎金很少,但還是很開心。

2、開發架構的學習和提煉

隨着開發經驗的積累,感覺高效的開發和架構很重要,使用代碼生成工具開發項目起來,能達到事半功倍的效果,因此在項目開發的時候,一方面提煉完善較為通用的開發框架,一方面整合到自己的代碼生成工具里面,反復的循環,力求達到最為完美的狀態。有時候看着,操作幾下就能完成新項目搭建的大量工作,心里還是感覺到非常的欣慰,雖然這期間的完善再完善,花費時間很多,提煉標准的架構模板也是較為繁瑣的工作。

3、公用類庫的整理

隨着時間的推移,自己對很多常用的類庫逐漸的也積累的更多,有時候因為開發的需要,自己也開發一些輔助的類庫用來使用到框架的架構當中,如支持多數據庫的數據查詢類,配置管理類等等,以后參考很多項目,把能夠提煉出來的東西進行綜合整理、合並,然后添加注釋,增加很多測試使用的例子,就是力求在以后方便參考使用。公用類庫的整理過程很漫長,從開始整理到最終的寫博客介紹,中間經歷了4~5年的時間,整理過程也可以是博取眾長了,把很多同一主題的類庫進行比較綜合,挑出最好的實現方法,提煉出來,然后也盡可能的添加完善的注釋。

4、Visio二次開發

在這段時間工作過程中,接觸了Visio的二次開發工作,由於當時的公司項目主要就是利用VB進行Visio的開發,因此除了開發前端展示的基於Web的項目外,也維護着VB6的項目,由於自己對Visio的二次開發很感興趣,因此也花了大量進行對Visio的模型和接口進行了解。因此這期間常常在.NET項目和VB的項目進行切換,感覺很別扭,總是希望以后能夠在語言的方面一統江山。后來偶爾一次機會發現C#也能用來開發Visio的二次開發項目,而且微軟新版本的VisioSDK也帶有了C#的一些例子代碼,因此就花了大量的業余時間對這些英文的幫助進行學習,並逐漸進行了各種代碼開發和測試。花了差不多進一年的業余時間,加上項目對Visio的深厚了解,終於把整個Visio的二次開發項目完整的用C#進行了重新開發,並且增強了很多Visio的應用特性,自己在這期間也把Visio的知識了解的較為深刻,因此借着熱度把很多Visio的知識,用C#代碼的方式,寫了很多這方面的博客,也算是填補了國內的這方面知識的空白了。由於這方面只是的缺乏,以至於很多年后,還有很多客戶聯系我獲取這方面的源碼和幫助,偶爾也到處講講課什么的,這是后話。

5、Web項目和Socket項目

后來轉轉到了另外一家公司,也基本是從事Web項目的開發工作,而我業余時間主要搞Winform開發一些共享軟件,這樣就出現了一個很有趣的情況,白天弄Web項目,晚上或者周末有空就搞下自己的WInform項目,由於得益於微軟對這兩方面的抽象,基本上除了界面層以下的內容,都是通用的,因此我的Winform開發架構和Web開發框架底層都是一樣格局的,僅僅是界面層的不同。回顧這么多年的開發經歷,感覺除了歷史原因外,一般企業的項目都要求使用Web開發,這期間的2年左右的時間,都主要在帶着一些手下在忙着Web項目的開發工作,一個用於停車場行業平台的管理,接入了全廣州市的業務審批流程和展示這個行業的數據。后來,公司需要在停車場方面接入實時空車位的信息,因此需要接入一個終端的硬件設備進行數據采集,為了統一進行數據采集,建立了一個以TCP/IP鏈接的Socket數據處理平台,這是很多年終於在所任職過的公司上線的一個Winform項目,處理來自幾百個終端設備的數據接入,這個時候,也基本上把Socket編程的技術了解的很深刻透徹,這期間,自己親力親為過很多有意義的事情,如定義接入的Socket協議、調試終端的串口數據接入,和很各地方的設備廠商進行溝通、調試等,后來定義的Socket協議經過反復的完善調整,也順利通過《廣州市標准化研究院》的驗收工作,也算正式參與了一項標准化的起草工作了。

在最后這家公司任職時間較長,雖然每個項目的開發、維護周期很長,但還是參與了幾個項目的開發工作,不過由於技術沒有太大的變化,基本上沿用了WebForm的這樣方式,不過這樣也很好。這個模式很好的利用了我在WebForm模式下積累的一些組件模塊,如Web分頁控件、Web查詢控件、上傳組件、以及Web的流程處理模塊等等,這樣基本上保持了較好平穩度和穩定的開發模式,開發的速度也較為高效。不過隨着時間的推移,基於JQuery的Web項目,基於MVC技術的項目已經越來越流行了,但是縱觀其他項目組,並沒有人領銜這個技術潮流,也許項目開發本身穩定很重要,技術探索也需要時間和積累。因此我離職后,一直就希望開發一個基於JQuery+MVC4+EasyUI的項目框架,后來也就形成我自己的框架,作為Web項目的參考,這是后話。在這家公司的環境還是很好,同事的相處氛圍也還是很不錯,以至於我離職后還經常和他們一起打打球,吃吃飯,很多同事關系也算是朋友關系了。

6、技術總結

在最后這家離職后,一直希望整理完善自己的東西,想把這幾年的東西,好好梳理,好好總結,因此感覺有很長一段時間,自己的工作顯得更加繁忙。希望藉此打造出項目開發過程中的一些基礎模塊,模塊之間以積木方式進行組合,即使對於互聯網的網絡環境,我們一樣能夠利用WCF技術,把它整合到Winform界面上,因此就總結了自己的幾個Winform框架模式:傳統Winform開發框架、WCF開發框架、混合型開發框架,除了底層的變化為,組合上依舊是采用積木方式進行組合,下面的模塊分布圖,就是我目前已經完成的各個模塊,也許未來會整合更多,但是這些模式依舊能夠很好的進行組合、拆分,每個模塊可以獨立完成,根據需要進行整合。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM