写给后来人的一些建议--關於如何看系統源代碼的一些事情

 

Dear  all;

           從今天與兵鋒對話中,了解到,他對於一個Web項目系統的作業流程,基本上沒有形成自己的認識體會,當然對系統實現的功能很不熟悉。

在此內容的理解方面呢,我把之前的想法和現在的經驗,在此分享下。

一.系統開發的生命周期介紹

系統只有在實現了基本的部分功能的情況,才有實際的使用和存在的意義。而且這種功能是提高生產力為前提的。

           在一個完整的軟件項目開發當中,軟件開發的大致流程有: 市場調研(或者項目策劃),需求分析,概要設計, 詳細設計,編碼設計,單元測試,系統測試,集成測試,以及最後的用戶測試,直到交互階段。此過程是個比較多漫長的過程,正常來說需要3~4個月左右的時間。

特別是在市場調研和需求分析階段。當然因目前我們做的最多的是內部Web系統的開發,所以市場調研對我們來說,是個可以忽略的階段。其次考慮的是是需求分析。顧名思義,我們要分析的是項目的需和求。這是個比較重要的階段,分析的好壞決定著系統的是否有比較好的可擴展性和健壯性,需求的對象是系統的需求部門或者說是客戶,而分析的參與人員,大的軟件公司一般是項目經理和架構師,但是在我們的系統開發過程中,實際上一般是由我和使用部門以及老唐來共同完成的。說句實在話,在此過程中,老唐嚴謹的思考態度和豐富的經驗給了我以及系統的分析上很大的幫助。所以說目前系統的功能設計上考慮的東西還是比較多的,是比較完善的

學習系統開發,甚至更深入的軟件開發,我都是推薦看源代碼的,學習他人的思想,在加上自己的摸索,理解之,久而久之,慢慢的也就轉化為自己的知識和經驗,最終我相信是可以趕上甚至超越前人的。在看源代碼之前,我建議,首先要了解系統將要實現什麽功能?帶著這樣的問題去看代碼,會比較容易理解點,相對來說,一頭霧水的幾率也就小一點。

目前在使用的Web系統共有12個,主要有: 工程一課4(設備3個,NPI1),工程二課2(HP AIOODM),工程三課1(TS CR),工程四課1個,機構三個課各1

以及工程異常網站。總的來說,就架構而言,有三大類:

1.       設備保養系統和設備料件系統,屬於一類

2.       工程四個課的維修系統以及機構的三個系統,屬於一類

3.       最後工程異常網站,屬於最後一類。

所以來說,看系統的源碼,只需要先從這三類中,各挑選一個來看就可以了。第一類,我推薦看設備料件系統,這個系統與設備保養系統使用同一個數據庫,但相比保養系統實現的功能相對少不少。第二類,我推薦看下機構一課的系統,功能比較簡單,只有不良機臺的接收登記,報表查詢,出貨機種管控,以及系統維護四個大功能。第三類,只有一個系統,因實現功能和實現方法比較複雜,我推薦看完前兩個的基礎上在看這個,這將是對自身提升的過程。

           看完功能如何實現后,就要了解下系統的架構。實際上目前的系統上設計不是很好,耦合的地方是比較多的。因此,對於以後的擴展不是特別好。目前比較流行的開發模式是分層設計,在這個分層中,最常見的是三層設計。網絡上經常說的,三層為用戶接口層(UI Layer),數據訪問層(Data Access Layer),和業務邏輯處理層(Biness Logical Layer)。分層的優點在於:

           1>開發人員只需要關注整個結構中的某一層,讓更多看法人員進來參與,比如設計網站外觀的專業美術人員等。

2>減少了層與層的依賴

3>有利於標準化

4>可提高代碼邏輯復用性,提高測試開發進度

總的來說是,分散關注,鬆散耦合,邏輯服用,標準定義。但也不是沒有缺點的,體現在:

1>。分層將降低系統的性能,例如,本來不分層,很多業務可以直接訪問數據層來獲取數據,但分層后將導致,必需經過一個中間層。

2>。可能會導致級聯修改,體現在一些自上向下的方向上面,如表現層增加一功能,可能要動到業務表現層和數據訪問層。

           3>. 導致開發成本的提高

因此,任何事情有利也同樣有敝,就看自己怎么使用了。

           除了上面所屬的三層分層外,其實,還有很多分層,以及所說的三層之間每層又可以繼續分。目前Microsoft 一直再推出MVC的開發模式框架,目前已經有2.0版本的release 版本了。這是一種分析URL請求路徑的架構,M代表model, V代表View, C代表Controler,大致的意思是用戶端發送一個URL請求,服務器端會分析之,并找到相應的Controler,它將控制讓哪個Model進行處理,最後以View的形式展現給用戶。其實MVC的概念最早用於SmallTalk語言,之後用於Java語言,比較有名的是Stratrus架構。

     關於系統的設計,目前比較流行的,是面向對象的思想OOP(Object  Oriented  Programmer),以及設計模式。首先面向對象的思想,這是個比較抽象的概念,之前有許多語言是面向過程,基於對象,比如C等,但是對於c# Java這兩種目前比較流行的語言是面向對象的,它將世界上任何事物抽象為對象,進而演化為的類的概念,來處理事情的邏輯業務。這個不是三言兩語可以解釋的,我現在也只是稍微認識到一點而已,這個要靠自己來,體會了。關於設計模式,這是個比較前衛的詞語,它將設計開發的模式總結成有一定規律可循的,已經慢慢變成程序員之見進行交流的共同語言。目前它主要有三大類:有創建型,結構型和行為型。在具體點又分為23個類型,比如工程模式,抽象工廠模式,Observer模式,命令模式,單件模式等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值