軟件開發(fā)中最流行的錯誤觀點有哪些?
本文譯自 Quora 的同名問答貼:軟件開發(fā)中最流行的錯誤觀點有哪些? Lee Semel 給出的答復(fù)得票數(shù)最高,他列出了一些流行的錯誤觀念:
● 瀑布模型是在實施軟件之前最行之有效的描述系統(tǒng)的模型,它能幫助軟件實施時循序漸進,而非循環(huán)反復(fù)。人們一直當它是一個好的實施方案,而一篇論文中恰好將它列為很差的實施方案,因此引起廣泛討論。http://en.wikipedia.org/wiki/Waterfall_model
● 用戶知道他們想要什么,他們也能夠?qū)⑿枨箨U述清楚。
● 有某種語言、技術(shù)或是流行方法將會是殺手锏,能夠取代你正在使用的方法,解決你的問題。
● 人月神話里說,在一個開發(fā)團隊中增加人手會讓效率成線性增長。http://en.wikipedia.org/wiki/The_Mythical_Man-Month
● 對規(guī)范文檔的認同意味著對實際功能的認同,甚至規(guī)范文檔本身寫的很模糊或是有出入也要遵守規(guī)范文檔。 http://gettingreal.37signals.com/ch11_Theres_Nothing_Functional_about_a_Functional_Spec.php
● 唯有一種方法能將開發(fā)實施得最好,程序員的自由被所用的語言嚴格束縛。
● 有多于一種方法來完成一個任務(wù),程序員有完全的自由。
● 設(shè)計樣式是通用的,而不像某種編程語言的表達式一樣有諸多限制。
● 最好的技術(shù)方法就是最好的方法。
● 你可以用正則表達式來解析HTML:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags
● 不需要理會市場反應(yīng),應(yīng)該讓市場來適應(yīng)軟件。
● 軟件可以被精確估計。
● 軟件開發(fā)可以被當作固定價格、固定限期的項目出售。
● 對象是對現(xiàn)實世界最好的描述。對象最好的應(yīng)用方面便是描述真實世界中的實體。
● 數(shù)據(jù)應(yīng)該隱藏在對象后面,對象應(yīng)提供操作數(shù)據(jù)的需要的所有方法。
● JavaScript和Java有關(guān)系。
● 邏輯應(yīng)該和顯示完全分離開。
● 軟件開發(fā)最重要的是需要好的數(shù)學(xué)能力,最好的學(xué)習(xí)方法是學(xué)習(xí)理論的計算機科學(xué),數(shù)學(xué)能力強的也能寫出好的軟件。解決邏輯難題的能力是判斷一個軟件工程師能力在最有效方法。
● 軟件就是表面上看到的,設(shè)計后面發(fā)生了什么不需要引起我們的注意,尤其對于那些非技術(shù)出身的經(jīng)理和客戶來說更是這樣。
● 編寫軟件對于缺乏人際溝通能力的人來說是一個好職業(yè)。
● 軟件可以有效的用其他媒介來模擬和設(shè)計,例如wireframes或Photoshop comps,因為用實際的代碼來設(shè)計(HTML和CSS)太難,太貴了。
● 設(shè)計師們不能也不需要學(xué)習(xí)寫代碼,應(yīng)該盡量遠離真實的代碼。
● 設(shè)計僅僅是表面上的裝飾,其重要性沒有好的開發(fā)重要。
● 軟件可以基于一系列的抽象的基礎(chǔ)之上可靠的構(gòu)建,你僅需要理解最上的抽象層,而不需要了解背后的實現(xiàn)細節(jié)。參看Joel Spolsky關(guān)于抽象漏洞定律的討論:http://www.joelonsoftware.com/articles /LeakyAbstractions.html
● 當你最終發(fā)布了新的應(yīng)用或是網(wǎng)站,就意味著一切結(jié)束了。
英文原文:Quora
本文來自:http://blog.jobbole.com/17470/
【編輯推薦】