新聞中心
一個人的智力是否屬于上乘,要看腦子里能否同時容納兩種相反的思想而無礙其處世行事;今天 pshu 翻譯了一位有 6 年工作經(jīng)驗的軟件工程師的觀點。希望這些立場鮮明的觀點可以成為你提高大腦容量的素材。

十余年專業(yè)的建站公司歷程,堅持以創(chuàng)新為先導(dǎo)的網(wǎng)站服務(wù),服務(wù)超過上千企業(yè)及個人,涉及網(wǎng)站設(shè)計、成都APP應(yīng)用開發(fā)、微信開發(fā)、平面設(shè)計、互聯(lián)網(wǎng)整合營銷等多個領(lǐng)域。在不同行業(yè)和領(lǐng)域給人們的工作和生活帶來美好變化。
原文地址 https://chriskiehl.com/article/thoughts-after-6-years 《Software development topics I've changed my mind on after 6 years in the industry》
以前懷疑但現(xiàn)在認(rèn)同的觀點
當(dāng)你需要和不同經(jīng)驗的開發(fā)人員一起合作時,使用強類型語言更適合一些(譯者注:如Typescript)
站立會議(晨會的一種形式)對幫助新人很有用
回顧會(scrum 開發(fā)模式中用來總結(jié)前一次迭代中得失的會議)還是有其存在意義的,因為它能幫忙我們糾正開發(fā)過程中的錯誤;它并不是敏捷開發(fā)中 scrum master 想出來浪費時間多余的會議。
軟件架構(gòu)很重要。一個好的抽象配上一個糟糕的實現(xiàn)不會對代碼造成多嚴(yán)重的影響;但是一個錯誤的抽象和分層遺漏,就導(dǎo)致代碼很容易變爛。
Java 并不垃圾。
投機取巧、奇技淫巧的代碼不是好代碼;代碼的可讀性最重要。
不要迷信編程范式,任何編程范式中都可能寫出爛代碼。
所謂的“最佳實踐”都是有具體場景的,并不是萬金油。如果盲目地追求“最佳實踐”,那很有可能成為最佳笨蛋。
如果沒有必要,合格的工程師是不會主動去設(shè)計一個可擴展的系統(tǒng)。
代碼的靜態(tài)分析很有用(譯者注:比如 lint,但是糾結(jié)具體的規(guī)則,參見后面“始終認(rèn)同的觀點”的第一條)
DRY(Don’t Repeat yourself )只是用來規(guī)避一類特殊的問題,而不是一個目標(biāo)。
一般情況下,關(guān)系型數(shù)據(jù)庫(RDBMS)比非關(guān)系型數(shù)據(jù)庫(NoSQL)好。
函數(shù)式編程只是一個工具,不是靈丹妙藥
新學(xué)習(xí)到的觀點
編程時遵循的原則應(yīng)該按照以下順序:YAGNI, SOLID, DRY。
YAGNI:You aren't gonna need it, 不要去寫你目前不需要的功能,大部分預(yù)測未來是無效的;
SOLID:面向?qū)ο笤O(shè)計中的 5 個原則:
- Single-responsibility principle單一職責(zé)原則
- Open–closed principle 對擴展開放對修改掉封閉原則,也簡稱開閉原則
- Liskov substitution principle 李氏替換原則
- Interface segregation principle 接口隔離原則
- Dependency inversion principle 依賴翻轉(zhuǎn)原則
DRY:Don't repeat yourself, 只做一次原則
如果你這三個縮寫都懂,那么可以嘗試用自己的想法和這個觀點PK下,如果這些名詞都不懂,最好空杯心態(tài)先接受學(xué)習(xí)下。
紙和筆仍舊是最好的編程工具,但他們?nèi)晕幢淮罅渴褂?/strong>
在純粹主義和實用主義之間做一個折中,通常都會是個好主意
增加更多的技術(shù)棧并不是一個好主意
直接和用戶溝通往往能花更少的時間并且更加準(zhǔn)確地了解問題。
“可擴展性”這個詞在程序員心中是種神秘的迷信;只要提了這個詞就會驅(qū)使他們進入癲狂的瘋狂狀態(tài);做再殘酷的事情好像都是合理的。
盡管戴著“工程師”這個高帽,但是他們大部分工程師決策都是盲目地使用現(xiàn)有的技術(shù)框架或者編程模式,不做任何技術(shù)分析和調(diào)研。
90%甚至 93%的項目經(jīng)理在項目中其實可有可無;即使明天他們突然消失了,也不會對項目有任何負(fù)面影響,甚至可能還能提高效率。
在進行了 100 多場面試之后,我發(fā)現(xiàn)面試是完全沒有用的;但我也不知道如何更好地面試。
始終認(rèn)同的觀點
糾結(jié)于代碼風(fēng)格,lint規(guī)則和其他瑣事的人都是瘋子
代碼覆蓋率和代碼質(zhì)量之間沒有關(guān)系
單體倉庫在大多數(shù)情況下更好。
TDD純粹主義者最菜。他們脆弱的小腦袋里面容不下其他現(xiàn)存的工作方式。
在工作10年后,我們再看看這些看法有什么改變。
翻譯完。
當(dāng)前名稱:工作六年后,對軟件開發(fā)的一些新觀點
瀏覽地址:http://www.5511xx.com/article/cdsihcp.html


咨詢
建站咨詢
