對于開發(fā)人員來說什么是最難的?4500個開發(fā)者的投票的結(jié)果很嚇人
這似乎有點出乎意料
對于軟件開發(fā)人員來說,***的難題是:如何命名(例如:給變量,類,函數(shù)和過程命名等等)!!!!
該結(jié)果是來自Quora問答網(wǎng)站和更早的Ubuntu論壇跟帖的4500個開發(fā)者的投票。如何命名一項的選票幾乎是其他八項的投票結(jié)果的總和,哇!
的確,這些基于自我篩選的群體的投票結(jié)果是完全不科學(xué)的。但是我認為這個結(jié)果還是有一定意義的,換句話說,如何命名的確是個很棘手的問題,許多非編程人員可能會意識不到。
對于這個結(jié)果,我多少有點意外,因為作為一個多年的開發(fā)人員,我不會投給這一項(我想我會投給“修改或維護別人的代碼”)。但是真正讓我驚訝的是,看起來好像不怎么重要的命名居然排列***,跟期待的結(jié)果實在差太遠了。
關(guān)于程序員在編程中對于命名的的痛苦和糾結(jié)如下觀點
“我確實在編程的時候花了很多時間在考慮如何命名。”
“我不得不同意命名是一門藝術(shù)。”
“如果你想要提高代碼的可讀性,命名的確很重要。”
我認為***一條抓住了部分核心,解釋了命名為什么會這么難,因為它太重要了。準確的命名可以提高代碼的可讀性,讓人容易理解,方便調(diào)試,也給以后修 改和維護你的代碼的人帶來方便。一旦開始做了,很快你會發(fā)現(xiàn)要想出一個簡潔又準確的名字沒那么容易。
Jeff Atwood曾說:“想出好的命名的確很難,但是有難的道理,因為好的命名需要只用一兩個單詞出表達你的根本意思。”
而且,許多人認為,正確的命名能幫你寫出好的代碼。如果不能為一個變量或者函數(shù)想出一個清晰又簡潔的名字,那可能是你的代碼有問題。那樣的話,你就得考慮重寫或者進行代碼重構(gòu)了。
“通常,如果你無法想出一個合適的名字,意味著你的設(shè)計可能有問題。你的一個方法里是不是實現(xiàn)了太多的功能?或者你的類的封裝,凝聚性不夠強?”
“我的經(jīng)驗是如果無法給你的類想出一個合適的名字,大多數(shù)情況都是你的類有問題:你可能不需要這個類,它有點多余了”
“命名難也不見得是壞事兒,它可以迫使你去認真思考你的類到底想要實現(xiàn)什么功能。”
長話短說:如果你想要學(xué)習(xí)編程,一定要給自己準備一本好詞典。
對于開發(fā)人員來說什么是最難的?你又有什么好的觀點呢?