在外行人眼里,軟件開發(fā)工作就跟看天書一樣難——但是程序員往往會一臉苦哈哈地表示“還有更難的呢!”在Quora上面的一個討論中,我們總結(jié)了9件最讓程序員糟心的事——簡直就是分分鐘讓我們精神分裂啊!!!
9.設(shè)計解決方案
任務(wù):給出一系列要求,設(shè)計出可實施的方案,包括設(shè)計數(shù)據(jù)和代碼結(jié)構(gòu)、功能算法和應(yīng)用程序流程。
難點:確保你設(shè)計的解決方案得滿足客戶的要求,并且按時完成。
網(wǎng)友的話:
“如何始于此終于彼可謂是最難的部分了。”——misconfiguration
“過于臃腫的設(shè)計會崩潰,過于淺薄則沒有用。”——nvteighen
“不去一個個試一試,就不知道什么樣的方案才適用……。”——jpkotta
8.寫測試
任務(wù):編寫單元測試,以確保每一部分代碼都能正常運作。這些測試不但有助于在開發(fā)早期找出bug,還能方便后續(xù)的回歸測試。很多開發(fā)方法論甚至鼓勵我們在寫代碼之前就可以先寫好測試程序。
難點:選擇和編寫測試的過程是既辛苦又繁重的,有時候會讓人感覺是在做無用功。
網(wǎng)友的話:“我就是不喜歡寫測試,你能怎么滴。”——Anonymous
7.編寫文檔
任務(wù):創(chuàng)建用于解釋代碼和應(yīng)用程序的文檔,包括獨立文檔和代碼注釋。目標(biāo)人群范圍從終端用戶乃至其他開發(fā)人員。
難點:很耗時間,甚至有時候你會覺得要是沒人看的話那不就是在浪費時間。
網(wǎng)友的話:
“Shit!!!就因為這是“進程”的組成部分,我們就得寫這些可能根本沒人會去看的文檔。”——Christian Dechery
“通過文檔,我們不需要閱讀代碼就能知道其作用。”——Raghu Nandan
“簡潔又能清晰闡述的文檔,我的大愛啊!”——Ayush Goel
6.實現(xiàn)自己并不認可的功能
任務(wù):不管什么原因,如果你的客戶或者上司堅持某個特性和功能,那么你就不應(yīng)該將個人的感情因素帶到工作中去。
難點:摒棄個人想法和意見,竭盡全力地實現(xiàn)或支持功能需求。
網(wǎng)友的話:“……當(dāng)然你也可以堅持己見然后提早退休,呵呵。”——Sabbir Asgar
5.關(guān)于別人家的代碼
任務(wù):維護、調(diào)試或改善由其他開發(fā)人員寫的應(yīng)用程序或者代碼片段。
難點:理解前任開發(fā)人員的代碼是非常痛苦的一件事,特別是如果此人已經(jīng)離開,而他的代碼寫得亂七八糟、缺少必要的注釋和文檔,那就更悲劇了。
網(wǎng)友的話:
“沒文檔的代碼就像后媽。”——Omar Diab
“應(yīng)該淘汰掉那些不會好好寫代碼的程序員……”——Nani Tatiana Isobel
“代碼破萬行,沒有注釋也不怕不怕了。”——Simon Zhu
4.和其他人打交道
任務(wù):收集客戶需求,提供狀態(tài)管理報告,配合測試人員,和其他工程師協(xié)作。
難點:需要向非技術(shù)人士解釋技術(shù)問題,不得不依賴于其他人交接過來的任務(wù),與QA或其他開發(fā)人員出現(xiàn)意見相左情況的處理方式。
網(wǎng)友的話:
“交代機器干事比交代人去做要來得容易得多。”——Marko Poutiainen
“三人行,必有我?guī)熝伞献饕彩菍W(xué)習(xí)的機會。“——Anonymous
“……和外行人說話簡直就像對牛彈琴。” ——lnostdal
“總是要等其他團隊完成任務(wù)之后我們才能開工,太拖我們的后腿了。”——Anonymous
3.預(yù)估項目工期
任務(wù):項目一開始,就需要估算出完成所需要的時間。
難點:哪怕沒有接觸過項目,手頭只有模糊的需求說明也得硬著頭皮預(yù)估時間。
網(wǎng)友的話:
“在開工之前,真的很難估算出會出現(xiàn)多少亂七八糟的問題……”——Jan Christian Meyer
“我發(fā)現(xiàn)估算時間可能是最難的部分了,因為很多人會將其當(dāng)做一個承諾,信守著一諾千金。” ——Samnang Chhun
“……每次碰到這個問題我就一個頭十個大……”——Jack Menendez
2.解釋我的工作
任務(wù):向非程序員——親朋好友,解釋自己的工作內(nèi)容。
難點:親人和愛人不了解我們是做什么的。總是被要求去解決任何與計算機有關(guān)的問題(比如修電腦)。
網(wǎng)友的話:
“總是要跟人解釋——我,不是,修電腦的。”——Brandon P-Lost
“不止一遍地和我的家人說明,我到底是干什么的。”——Utsav Singh Rathour
“編程的世界,外行人不懂。”——Anand Safi
“為什么別人都認為我是給電腦安裝盜版操作系統(tǒng)和其他盜版軟件的家伙呢?我干什么了我,我只是程序員。”——Anbu Jey
1.命名
任務(wù):為變量、過程、函數(shù)、類、對象、數(shù)據(jù)庫組件等命名。
難點:即使是一個小程序,也會有很多需要命名的東西。名字最好一貫又簡潔,有內(nèi)涵,能承載一些意思——這個是什么或者這是用來做什么的。
網(wǎng)友的話:
“想啊想啊想名字,想出一個好名字~”—— Aditya Muraletharan
“別煩我,我正在給函數(shù)命名呢。”—— Lakshman Siripurapu
“計算機科學(xué)中只有兩座大山:緩存失效以及命名。”——Phil Karlton
-
開發(fā)工程師
+關(guān)注
關(guān)注
1文章
91瀏覽量
15092
發(fā)布評論請先 登錄

硬件工程師看了只會找個角落默默哭泣#硬件工程師 #MDD #MDD辰達半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師
如何成為一名合格的KaihongOS北向應(yīng)用開發(fā)工程師
硬件工程師手冊(全套)
如何堅持做難而正確的芯片研發(fā)?

如何成為一名嵌入式軟件工程師?
嵌入式軟件工程師就業(yè)好不好?

不同時期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實 #YXC晶振 #揚興科技
嵌入式工程師常用的開發(fā)工具有哪些?
北京軟件開發(fā)公司有那些?做軟件的公司有哪些?

硬件工程師如何做元器件變更的決策

評論