編程之道(筆記) 2007-02-13 20:09:30 閱讀262 評論2 字號:大中小 訂閱
下午下載了 MSDN Webcasts 關(guān)于 ASP.NET 項目實(shí)戰系列課程的第一講,了解了一下項目/產(chǎn)品的運作過(guò)程。
課程的主講老師是MSDN的特約講師邵志東先生。課程中間,邵志東老師介紹了軟件開(kāi)發(fā)流程、 程序員基本素質(zhì)
、關(guān)于質(zhì)量控制和開(kāi)發(fā)模板及項目組建設。
邵老師首先介紹了軟件開(kāi)發(fā)的流程,他把軟件開(kāi)發(fā)分為了兩大類(lèi),即項目開(kāi)發(fā)及產(chǎn)品開(kāi)發(fā)。
項目開(kāi)發(fā)是公司根據某一客戶(hù)的需求單獨為某一客戶(hù)訂制的軟件;
產(chǎn)品開(kāi)發(fā)是公司針對某一市場(chǎng)需求而開(kāi)發(fā)的軟件產(chǎn)品(比如WINDOWS、OFFICE等)。
這里把流程圖用PS重新繪制了一下:


程序員的基本技能包括了以下幾個(gè)方面:
1、項目實(shí)踐
? 軟件工程理論
? 質(zhì)量體系:ISO9001和CMM體系
? UML基本理論
? 測試理論和測試工具使用
? 加密理論和加密方法
? 源代碼控制工具使用
? 說(shuō)明書(shū)編寫(xiě)
? 程序的安裝和部署
2、專(zhuān)業(yè)技能
3、程序員基本素質(zhì)
? 團隊精神和協(xié)作能力(? 木桶理論、? 學(xué)習性組織)
? 文檔習慣(? 注釋、? 開(kāi)發(fā)過(guò)程文檔:良好的文檔是正規研發(fā)流程中非常重要的環(huán)節,作為代碼程序員,30%的工作時(shí)間寫(xiě)技術(shù)文檔是很正常的,而作為高級程序員和系統分析員,這個(gè)比例還要高很多。缺乏文檔,一個(gè)軟件系統就缺乏生命力,在未來(lái)的查錯,升級以及模塊的復用時(shí)就都會(huì )遇到極大的麻煩。)
? 規范化,標準化的代碼編寫(xiě)習慣(作為一些外國知名軟件公司的規矩,代碼的變量命名,代碼內注釋格式,甚至嵌套中行縮進(jìn)的長(cháng)度和函數間的空行數字都有明確規定,良好的編寫(xiě)習慣,不但有助于代碼的移植和糾錯,也有助于不同技術(shù)人員之間的協(xié)作。? 代碼編寫(xiě)規范? 界面設計規范)這里邵老師強調了標準未必要固定,但在一個(gè)項目組中間要有統一的標準。
? 復用性,模塊化思維能力(? 用戶(hù)控件 ? 組件技術(shù))
? 測試習慣(? 單元測試 ? 集成測試 ? 系統測試 ? 穩定性測試 ? 軟件研發(fā)作為一項工程而言,一個(gè)很重要的特點(diǎn)就是問(wèn)題發(fā)現的越早,解決的代價(jià)就越低,程序員在每段代碼,每個(gè)子模塊完成后進(jìn)行認真的測試,就可以盡量將一些潛在的問(wèn)題最早的發(fā)現和解決,這樣對整體系統建設的效率和可靠性就有了最大的保證。)
? 學(xué)習和總結的能力(? 學(xué)習:程序員是人才很容易被淘汰,很容易落伍的職業(yè),因為一種技術(shù)可能僅僅在三兩年內具有領(lǐng)先性,程序員如果想安身立命,就必須不斷跟進(jìn)新的技術(shù),學(xué)習新的技能。? 總結:善于總結,也是學(xué)習能力的一種體現,每次完成一個(gè)研發(fā)任務(wù),完成一段代碼,都應當有目的的跟蹤該程序的應用狀況
和用戶(hù)反饋,隨時(shí)總結,找到自己的不足,這樣逐步提高,一個(gè)程序員才可能成長(cháng)起來(lái)。)
4、職業(yè)素質(zhì)
? 交際能力
? 表達能力
? 職業(yè)素養
5、個(gè)人素質(zhì)
? 信心和恒心
? 良好的個(gè)人品質(zhì)
? 良好的個(gè)人習慣
? 關(guān)于質(zhì)量控制和開(kāi)發(fā)模板
? 項目組建設
高級程序員的基本素質(zhì):
1. 需求分析能力
對于程序員而言,理解需求就可以完成合格的代碼,但是對于研發(fā)項目的組織和管理者,他們不但要理解客戶(hù)需求,更多時(shí)候還要自行制定一些需求,為什么這么說(shuō)呢?
2. 項目設計方法和流程處理能力
程序設計者必須能夠掌握不少于兩到三種的項目設計方法(比如自頂至下的設計方法,比如快速原型法等等),并能夠根據項目需求和資源搭配來(lái)選擇合適的設計方法進(jìn)行項目的整體設計。設計方法上選擇不當,就會(huì )耽誤研發(fā)周期,浪費研發(fā)資源,甚至影響研發(fā)效果。
3. 復用設計和模塊化分解能力
一個(gè)成熟的軟件行業(yè),在一些相關(guān)項目和系統中,不同的部件是可以隨意換裝的,比如微軟的許多桌面軟件,在很多操作模塊(如打開(kāi)文件,保存文件等等)都是復用的同一套功能模塊,而這些接口又通過(guò)一些類(lèi)庫提供給了桌面應用程序開(kāi)發(fā)者方便掛接,這就是復用化的模塊設計明顯的一個(gè)佐證。
4. 整體項目評估能力
作為系統設計人員,必須能夠從全局出發(fā),對項目又整體的清醒認識,比如公司的資源配置是否合理和到位,比如工程進(jìn)度安排是否能最大化體現效率又不至于無(wú)法按期完成。評估項目整體和各個(gè)模塊的工作量,評估項目所需的資源,評估項目可能遇到的困難,都需要大量的經(jīng)驗積累,換言之,這是一種不斷總結的累計才
能達到的境界
5. 團隊組織管理能力
首先是工作的量化,沒(méi)有量化就很難做到合適的績(jì)效考核,而程序量化又不是簡(jiǎn)單的代碼行數可以計算的,因此要求技術(shù)管理人員需要能真正評估一個(gè)模塊的復雜性和工作量。
其次是對團隊協(xié)作模式的調整,一般而言,程序開(kāi)發(fā)的協(xié)作通常分為小組進(jìn)行,小組有主程序員方式的,也有民主方式的,根據程序員之間的能力水平差距,以及根據項目研發(fā)的需求,選擇合適的組隊方式,并能將責權和成員的工作任務(wù)緊密結合,這樣才能最大發(fā)揮組隊的效率。
質(zhì)量/過(guò)程標準部分的介紹
質(zhì)量/過(guò)程標準是什么,有什么用?
? 開(kāi)始并沒(méi)有什么質(zhì)量標準或者過(guò)程標準,但有些組織和企業(yè)呢,做的很成功,而有些則不成功。那么有人就去分析為什么,這些組織和企業(yè)成功了呢?他們有哪些的共同的特征嗎?答案是有,于是這些特征被歸納出來(lái)(比如9000中的立項,開(kāi)發(fā)策劃,cmm中需求管理、配置管理等),并應用管理理論的成果,使之成為一種體系。
他能做到什么和不能做到什么?
? 當操作者有意識時(shí),標準可以幫忙。假如你沒(méi)做產(chǎn)品立項,或者作了,但沒(méi)有市場(chǎng)分析報告,標準可以幫忙,因為SQA會(huì )來(lái)說(shuō),這違背了規程,我們必須先做產(chǎn)品立項,并且必須基于市場(chǎng)分析報告。
? 但大家沒(méi)有意識時(shí),比如產(chǎn)品立項時(shí),假如與會(huì )人員多數認為沒(méi)有市場(chǎng),或者我們沒(méi)有能力去做這個(gè)產(chǎn)品,但最終仍然立項通過(guò),標準無(wú)能為力。
如何應用標準?
? 標準的目的?
– 可控制– 可追溯
? 開(kāi)發(fā)模板
– 用戶(hù)需求規格說(shuō)明書(shū) – 需求評審報告
– 系統設計書(shū) – 系統開(kāi)發(fā)進(jìn)度計劃
– 項目驗收標準 – 用戶(hù)手冊項目組文檔
接下來(lái)的課程中邵老師又介紹了下面的內容:
? 編碼規范
? 項目組守則
? 工作計劃總結
? Sourcesafe使用規范
? 公共幾類(lèi)和常用代碼
Sourcesafe使用
一、版本管理的必要性
? 如果說(shuō)70年代的軟件危機導致了軟件工程思想的誕生和理論體系的發(fā)展,那么80~90年代尤其是90年代軟件產(chǎn)業(yè)的迅猛發(fā)展導致了另一種新思想的產(chǎn)生和實(shí)現,這就是軟件的版本管理。
? 以往的那種被譽(yù)為具有良好編程風(fēng)格的做法,諸如在對他人的源程序進(jìn)行修改時(shí)注釋修改原因,修改人和日期,如果是多個(gè)成員同時(shí)進(jìn)行了修改,那么需要進(jìn)行及時(shí)的人工的差異比較和綜合以便形成一個(gè)統一的新版本。這種做法在當前的大型軟件的開(kāi)發(fā)中已經(jīng)越來(lái)越?jīng)]有空間了,可以說(shuō)是一種以小作坊的形式來(lái)面對軟件的社會(huì )化大生產(chǎn),再也不可能行得通了
二、Visual SourceSafe 6.0(VSS 6.0)簡(jiǎn)介
? Microsoft的VSS 6.0解決了軟件開(kāi)發(fā)小組長(cháng)期所面臨的版本管理問(wèn)題,它可能有效地幫助項目開(kāi)發(fā)組的負責人對項目程序進(jìn)行管理,將所有的項目源文件(包括各種文件類(lèi)型)以特有的方式存入數據庫。
? 開(kāi)發(fā)組的成員不能對該數據庫中的文件進(jìn)行直接的修改,而是由該版本管理器將該項目的源程序或是子項目的源程序拷貝到各個(gè)成員自己的工作目錄下進(jìn)行調試和修改,然后將修改后的項目文件作Checkin提交給VSS,由它進(jìn)行綜合更新。
? VSS的客戶(hù)端和服務(wù)端的安裝
? VSS服務(wù)端和客戶(hù)端的使
聯(lián)系客服