The Introduction of Sharp Tools

這是人月神話:軟體專案管理之道(20週年紀念版)的第十二章:神兵利器(Sharp Tools),簡體版譯作干将莫邪,開場白有句諺語:『A good workman is known by his tools.』,巧匠以他所使用的工具而聞名,ㄚ琪看到這裡,就想起了工具達人姜爸的分享,他說過一句至理名言:『工欲善其事,必先利其器』,沒錯,ㄚ琪的另一句名言,巧婦難為無米之炊也都是類似的道理,但是對於軟體這邊該怎麼看工具呢?就讓ㄚ琪來分享一下這篇的心得!

每個程式設計師就像技工師傅一樣,擁有個人專用的一套工具,沒錯,如果你仔細聽姜爸,他會修很多的生活用品,甚至工廠裡的機械也沒問題,但是姜媽一定會搖頭,因為那些工具滿山滿谷地放在一個倉庫裡,這倉庫等同於一個房間那麼大,而像ㄚ琪這樣的鱉腳工程師,個人專用的軟體工具也是一堆,堆到可以把電腦拖的很慢,慢到很想讓人睡覺。所以文中說這是很笨的想法,因為ㄚ琪的個人工具,不一定適合別人使用,而在這團隊開發的過程中會妨礙溝通,另外這些工具也會因機器跟不同的語言而有所不同,現在可用,以後部一定可用,所以不停地更新也是讓人很苦惱的!

所以如果有通用型的工具那該有多好啊!那麼軟體開發專案中配置一位工具專家就很重要了!

我們再繼續討論,哪些工具是要討論的?文中列出電腦設備、作業系統、語言、工具程式、除錯輔助軟體、測試案例產生器、文書處理系統等等都是要住意的!

目標機器

電腦設備又可以分成目標機器(target machine)和工具機器(vehicle machine),這裡頭提到安排上機時間這樣一個重點,我想在這麼新的時代裡,應該不會有這個問題吧,現在又不像大學時,寫程式要排Cyber的上機時間這麼的難。

工具機器與資料維護

對於工具機器與資料維護這個主題來說,強調模擬器的使用,當然我們還得懂一下,可靠跟精確的差別。

而編譯器和組譯器工具機器,我想這也是一套學問啦,ㄚ琪現在也不斷地在學習測試編譯器的使用。

程式庫與程式的管制,這很像是程式的版本控制,裡頭一些重點有每個程式設計師的自己寫的程式副本、測試案例,以及為進行組件測試而自行製作的測試鷹架(scaffolding),他可以在局部自由區域(playpen),自由地做任何事。系統整合子程式庫(system integration sublibrary),晉升(promote),現行版本子程式庫(current version sublibrary)!

這裡頭有重要觀念:控制,程式的整合與交付(release),這當中的正式區隔(formal separation),以及演進(progression)都是要注意的。

程式編寫工具,這種工具的演進是很突飛猛進的,很多IDE的工具到處都可以找得到。

文件編寫系統,我就不多說了。

效能模擬器(performance simulator),注意由外而內(outside-in)的建立模式,以及由上兒下的設計方式(top-down design)。

高階與言和交談式程式編寫

兩個重要工具的使用,高階語言(high-level language)跟交談式程式編寫(interactive programming)。

用高階語言的理由,熟知的有生產力和除錯速度。

但不用的理由呢?不能讓人為所欲為、目的碼太大、執行速度太慢。

確實有這些問題,所以用跟不用的理由,再軟體專案開發中,真的是要好好評估。至於要用什麼高階語言去寫,我覺得書中所列的應該是舊的,就不提了!

交談式程式最令我們所熟知的應該就是Basic程式了吧!好用,很多人多這樣說,唯獨我很少用,哈ㄚ!

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *