顯示具有 工作 標籤的文章。 顯示所有文章
顯示具有 工作 標籤的文章。 顯示所有文章

星期四, 10月 27, 2011

12個開發零錯誤軟體的技巧

Code Review: 老祖宗有句話說的好:「人多嘴雜」,這句話更進一步說,那就是「每個人看到的都跟你看的不一樣」,所以定期做程式碼複審,給其它人看看自已的程式,通常可以得到不同的意見,無論是正面或反面的意見,都有助於自已進一步改善寫程式的技巧跟提高程式碼的品質。
2. Beta Tests: 想要將程式交給客戶時,請確定自已已經確確實實、完完整整地測試過。
3. Automated Test: 諾基亞相信科技始終來自於人性,不過我想更多是來自於墮性。趕快找個自動化測試工具吧,讓自已的纖纖玉手可以閒下來,好舒緩肌脻炎的發作。
4. Logging: 找個Logging的工具來記錄下軟體運作時的點點滴滴,可別總是船過水無痕。
5. Error Reporting: 只要發現任何Error,就記錄下來吧,Bugzilla是個相當好的工具。
6. Customer Freeback: 顧客永遠是最大的,不管他們是在說話還是放屁,其實都能對軟體有些助益。

星期五, 8月 14, 2009

什麼是軟體架構(software architecture)

到底什麼是「軟體架構」(software architecture)?無論是網路上或是書籍雜誌中,對這個詞彙的定義五花八門,所以我們特別以IEEE 1471-2000標準文件中的定義為基礎,進一步定義出軟體架構。IEEE 1471-2000這份標準文件的全名為《IEEE Recommended Practice for Architectural Description of Software-Intensive Systems》,它是一份關於軟體架構敘述的建議標準。

對於,系統、架構、架構敘述(architecture description)、關係人(stakeholder)、視圖(view)、觀點(viewpoint)等等這些跟架構有關的重要詞彙,IEEE 1471-2000的定義如下:
系統——是一組有組織的元件(component),用來完成一項或一些具體的功能。
架構——是系統的基礎組織,它被具體呈現於,系統的元件、元件彼此間的關係、元件與環境之間的關係,以及系統設計與發展的指導原則上。
架構敘述——是一組文件,專門用來描述架構。
關係人——可以是個人、團體、或組織,它或它們關心系統,或者對系統有興趣。
視圖——是系統在特定觀點下所呈現的圖像。
觀點——是一個樣板(template),用來描述如何產生與使用架構視圖。觀點包含了名稱、關係人(stakeholders)、在這個觀點下所關切的事情、以及建模與分析規範。

因此,我們以「架構是系統的基礎組織,它被具體呈現於,系統的元件、元件彼此間的關係、元件與環境之間的關係,以及系統設計與發展的指導原則上。」這個架構定義為基礎,進一步定義出軟體架構,如下:
軟體架構——是一組軟體元件、次系統、關係、互動、以及將這一切基礎元素與軟體限制揉合在一起的一套指導原則。

簡單來說,如果我們將軟體架構具體化,它就會具體呈現在元件、次系統、關係、互動上頭。元件、次系統,元件之間的關係、互動,或者是次系統之間的關係、互動,這些都是軟體架構的一部分。

原文

星期四, 8月 13, 2009

12個開發零錯誤軟體的技巧

1.Code Review: 老祖宗有句話說的好:「人多嘴雜」,這句話更進一步說,那就是「每個人看到的都跟你看的不一樣」,所以定期做程式碼複審,給其它人看看自已的程式,通常可以得到不同的意見,無論是正面或反面的意見,都有助於自已進一步改善寫程式的技巧跟提高程式碼的品質。 
2. Beta Tests: 想要將程式交給客戶時,請確定自已已經確確實實、完完整整地測試過。 
3. Automated Test: 諾基亞相信科技始終來自於人性,不過我想更多是來自於墮性。趕快找個自動化測試工具吧,讓自已的纖纖玉手可以閒下來,好舒緩肌脻炎的發作。 
4. Logging: 找個Logging的工具來記錄下軟體運作時的點點滴滴,可別總是船過水無痕。 
5. Error Reporting: 只要發現任何Error,就記錄下來吧,Bugzilla是個相當好的工具。 
6. Customer Freeback: 顧客永遠是最大的,不管他們是在說話還是放屁,其實都能對軟體有些助益。 
7. Use proven code: 已經被大量使用的程式碼,就拿來用吧,不要再自已重寫一份新的,自已的程式天賦,還是留著用來寫還沒有人寫過的程式碼吧。 
8. Dedicate testers: 要有好的軟體,就要有足夠多的測試人員,去盡情地蹂躝每一支程式碼... 
9. Virtual Machine: 千萬可別認為程式碼在自已的PC上跑過正確,在別人家就仍然會乖乖運作。使用VM可以低成本輕易建置任何測試環境,將你的程式丟在不同的環境上,看看它們有多搞怪吧。 
10. Write a Specification: 有空還是把文件寫一寫吧,這才是長久大計。 
11. Use a Good Debugger: 現在流行的IDE (Visual Studio、Eclipse)大都已有不同的debugger,不過學學使用GDB也是很不錯的投資。 
12. Debug and Strict Options: 不管是debug或是complie,都打開到最嚴謹的選項吧。

原文