對於軟件開發人員來講,最大的難題是:如何命名(例如:給變量,類,函數和過程命名等等)。html
該結果是來自 Quora 問答網站和更早的 Ubuntu 論壇跟帖的 4500 個開發者的投票。如何命名一項的選票幾乎是其餘八項的投票結果的總和。linux
的確,這些基於自我篩選的羣體的投票結果是徹底不科學的。可是我認爲這個結果仍是有必定意義的,換句話說,如何命名的確是個很棘手的問題,許多非編程人員可能會意識不到。程序員
對於這個結果,我多少有點意外,由於做爲一個多年的開發人員,我不會投給這一項(我想我會投給「修改或維護別人的代碼」)。可是真正讓我驚訝的是,看起來好像不怎麼重要的命名竟然排列第一,跟期待的結果實在差太遠了。編程
關於程序員在編程中對於命名的的痛苦和糾結以下觀點:函數
我認爲最後一條抓住了部分核心,解釋了命名爲何會這麼難,由於它過重要了。準確的命名能夠提升代碼的可讀性,讓人容易理解,方便調試,也給之後修改和維護你的代碼的人帶來方便。一旦開始作了,很快你會發現要想出一個簡潔又準確的名字沒那麼容易。學習
Jeff Atwood 曾說:「想出好的命名的確很難,可是有難的道理,由於好的命名須要只用一兩個單詞出表達你的根本意思。」網站
並且,許多人認爲,正確的命名能幫你寫出好的代碼。若是不能爲一個變量或者函數想出一個清晰又簡潔的名字,那多是你的代碼有問題。那樣的話,你就得考慮重寫或者進行代碼重構了。設計
「一般,若是你沒法想出一個合適的名字,意味着你的設計可能有問題。你的一個方法裏是否是實現了太多的功能?或者你的類的封裝,凝聚性不夠強?」調試
「個人經驗是若是沒法給你的類想出一個合適的名字,大多數狀況都是你的類有問題:你可能不須要這個類,它有點多餘了」htm
「命名難也不見得是壞事兒,它能夠迫使你去認真思考你的類到底想要實現什麼功能。」
長話短說:若是你想要學習編程,必定要給本身準備一本好詞典。
對於開發人員來講什麼是最難的?你又有什麼好的觀點呢?