當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]我依然記得當(dāng)我完成學(xué)業(yè)時,我是多么的天真。那時我深信自己已經(jīng)準(zhǔn)備好進(jìn)入任何一家軟件公司,并開始成為一個頂級的開發(fā)人員。顯然,開始工作后沒多久我就意識到,還有很多事是我所不了解的。在不斷吸取經(jīng)驗(yàn)的同時,

我依然記得當(dāng)我完成學(xué)業(yè)時,我是多么的天真。那時我深信自己已經(jīng)準(zhǔn)備好進(jìn)入任何一家軟件公司,并開始成為一個頂級的開發(fā)人員。顯然,開始工作后沒多久我就意識到,還有很多事是我所不了解的。在不斷吸取經(jīng)驗(yàn)的同時,我一直在努力學(xué)習(xí)那些我從來沒有學(xué)過的,但卻是成為優(yōu)秀的開發(fā)人員所應(yīng)了解的基本知識。以下是我希望自己能在學(xué)校就學(xué)到的10件事。

  0. 我們總是錯的

  開發(fā)人員有著相當(dāng)大的自我意識,包含了一些其他的非技術(shù)性缺陷,這也正是為什么我們很難發(fā)現(xiàn)我們做錯了什么。我看到過很多無休止的設(shè)計(jì)討論,開發(fā)人員不斷地發(fā)表自己的想法……呵呵!猜猜怎樣……我們都錯了,唯一的區(qū)別就是我們犯錯的離譜程度不同。

  理解并接受這個事實(shí)非常重要,我們只有這樣做了,才能敞開心胸去聽聽別人的意見,采用他們的想法,來得出一個更好的解決辦法。

  1. 事情若有可能出錯,就一定會出錯

  也就是說“希望驅(qū)動開發(fā)(hope driven development)”,如果你對于某些事并不確定,如果你發(fā)現(xiàn)自己使用了“應(yīng)該”這個詞,那你就麻煩了。

  而這只有一個解決方案,盡己所能去保證它不會出錯,這可能意味著你需要編寫一個測試、調(diào)試并驗(yàn)證需求……

  2. 所有的代碼都爛

  在我抱怨那些我碰到過的代碼十年之久后,我得出了一個精辟的結(jié)論,所有的(包括我自己寫的)代碼,都爛。當(dāng)然,爛還是有等級之分的,但即便是我見過寫得最好的代碼,也是難以讀懂的。

  這并不意味著把你的代碼寫得更好是沒有意義的,恰恰相反,最好和最壞的代碼還是有天壤之別的。

  3. 錯誤(Bug)總會存在

  永遠(yuǎn)存在!問題只在于要發(fā)現(xiàn)它困難與否。

  4. 客戶最大

  許多客戶并不在乎你在方案中使用了哪些技術(shù),應(yīng)用程序需不需要做更多的事……或通俗上說,你是否使用了好的實(shí)踐方案。

  也因?yàn)槲铱梢韵胂?,要是我只說了前面那一段,我會收到多少惡評,讓我說得更清楚些……我想說的是,我們永遠(yuǎn)不應(yīng)該忘記客戶的立場,有時候,開發(fā)人員為了最佳實(shí)踐而在項(xiàng)目工程中過度堅(jiān)持采用(某些)技術(shù),但要記住,若這些技術(shù)無法給客戶帶來價(jià)值,那就放棄吧!(編注:關(guān)于客戶,作者Alberto在其前幾篇文章《我的10個開發(fā)原則》和《程序員常犯的5個非技術(shù)性錯誤》都有提到,可見他對這一點(diǎn)的體會。)

  5. 紙上談兵是行不通的

  我曾認(rèn)為,我可以在前期就把我的整個設(shè)計(jì)置于紙上,然后只要將缺漏處填上就好,但這樣根本行不通。

  軟件開發(fā)是復(fù)雜的,若不親手去碰碰看,很難看到所有的實(shí)際層面以及它們之間的關(guān)系。因此,在前期保持規(guī)劃與設(shè)計(jì)是很有用的,但不要過度堅(jiān)持,也不要把設(shè)計(jì)圖表當(dāng)作合約固守。

  6. 少即是多

  或者,你可能知道更好的說法是:“Keep it simple, stupid!”(保持簡單,KISS設(shè)計(jì)原則)。所以,如果沒有必要的就舍棄吧!因?yàn)橐涀。?ldquo;事情若有可能出錯,就一定會出錯。” (編注:除了KISS原則之外,此文還介紹了其他一些軟件設(shè)計(jì)原則。)

  7. 編寫代碼只是我們所做工作的20%而已

  請準(zhǔn)備好,花80%的時間用于思考、調(diào)試、測試、開會、談話……而所有的其他活動都是非常重要的,所以若要成為一個優(yōu)秀的軟件開發(fā)人員,你必須培養(yǎng)廣泛而全面的技巧(Skill),而不僅僅是技術(shù)(Technical)。

  8. 客戶永遠(yuǎn)不知道他/她想要的是什么!

  客戶若有需求,或是想法,但是他們不知道詳細(xì)情況……軟件開發(fā)要做的工作就是,發(fā)現(xiàn)細(xì)節(jié)并去除所有的不確定性,將這些需求轉(zhuǎn)換成客戶想要一個應(yīng)用程序。

  9. 已經(jīng)有人做過了

  所以不要再重新發(fā)明輪子,用谷歌找找看,或者更好的方法是,請教你的同事,很多時候他們可能都已經(jīng)做了相同、或非常類似的事情。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉