成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

20年老碼農分享20條編程經驗,你pick哪些?

開發 新聞
職業生涯上從研究員、架構師一直干到過CTO,另外也當過技術產品經理,技術指導,老師等角色,可謂經驗豐富。

本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。

一位20年老程序員分享的編程經驗突然火了,在Hacker News上,一天之內就收獲了467熱度。

這位老哥從1999年就開始編程,從早期的Basic、Pascal、Delphi,到后來的C,C++ ,Javasript等主流語言都用過。

職業生涯上從研究員、架構師一直干到過CTO,另外也當過技術產品經理,技術指導,老師等角色,可謂經驗豐富。

其實這篇帖子所包含的觀點大都是編程圈子里較常見的概念,但是這些年來有的話題一直很具備爭議性。

對他的大多數經驗,網友很贊同。比如:代碼終究還是給人寫的,注釋是為了讓未來的自己和其他同事能看懂。

不過針對有的觀點,大家各執己見。最為突出的是下面這條,網友們對此討論了60多樓:

要完全搞清楚要解決的問題,否則就先別急著敲代碼。

一種有代表性的觀點是:

大體上同意,但我發現要真正完全理解一個問題,還是至少要先寫一個解決方案。

因為當我把一個問題分解成可編碼的組件時,我學到了很多;在實際實現這些部分的過程中,我經常發現邊緣情況或未定義的情況;現實情況下,真正的問題是什么,通常在開始并不清楚。

但也有一些網友認為:對于小型的、偏算法的問題,先在紙上或腦海中過一遍,比上來就寫代碼有效率的多。

emmm……這樣討論下去簡直成了“先有雞還是先有蛋”。

這個問題看來不會有確定的答案了,不過這篇經驗分享整體上還有更多有價值的觀點。

下面讓我們具體來看看吧。

20年濃縮成20條經驗

1. 不要與工具作斗爭

所謂工具,包括庫、語言、平臺等。

盡可能多地使用原生的開發方式。這樣可以保證程序或軟件的數據都存在于本地,能夠及時檢索,保證程序或軟件的合作速度和流暢度。

不要被技術捆綁,也不要被問題捆綁。應該為工作選擇合適的工具,而不是為了工具尋找合適的工作。

舉個例子:編程實現在一個文件中找到給定單詞出現的位置并統計出現次數。

如果用C++寫的話需要92行代碼,而使用Python的話只用26行代碼就可以完成了。

由此可見,對于同一個問題,換一個工具也許可以簡化編程,提高效率。

2. 寫讓人可以看懂的代碼

程序員們不是為機器編寫代碼,而是為了同行們和未來的自己編寫代碼。寫代碼的終極目標往往是完成一個項目或給后來者作為參考。

3. 善于合作

任何重要且有價值的軟件都是協作的結果,有效溝通和公開合作很重要。能用眾智,則無畏于圣人矣。

4. 對各模塊分而治之

編寫相互聯系卻又彼此保持獨立的單個模塊。先分別測試每個部分,然后一起集成測試。既要保證測試接近實際,也要測試邊緣實例。

5. 敢于分享自己的原創代碼

一個程序員不要成為那位唯一明白某段代碼的人??梢詫ψ约旱脑瓌摯a進行優化,以便人們找到修復Bug的方式,和向代碼添加功能的方法。

這樣也能使程序員自己輕松點,以早點進入下一個項目或公司。

想要提高水平的話,不要使一段代碼僅自己可見。

6. 安全是分層的

分層安全是一種應用多種安全措施的實踐,每一層都與前一層和下一層重疊,以創建一個安全控制網絡,這些網絡可以一起工作以保護技術系統。每一層都需要單獨評估,但也需要與整體相關。

風險是一種商業決策,與脆弱性和概率有直接關系。每個產品或組織都有不同的風險偏好,通常這三個關注點會相互沖突:用戶體驗、安全性和性能。

7. 代碼也有生死

要認識到,每段代碼都有一個生命周期,并且會最終失效。有時,一段代碼甚至還沒上線發布就被廢棄了。

程序員要學會放手,弄明白4類特征的區別,然后想清楚應該在哪些方面投入時間和精力:

  • 核心:就像汽車的引擎。沒有它,產品就沒有意義。
  • 必要之處:就像汽車的備用輪子。它很少被使用,但當需要時,它的功能決定了系統的成功。
  • 附加值:就像汽車的杯座。有它很好,但產品沒有它也完全可用。
  • 獨特賣點:人們應該購買你的產品而不是你的競爭對手的主要原因。

8. 保護好個人信息

程序員不要將個人身份信息附加到代碼中,也不要把其他人的身份附加到他們的代碼上。

人是獨立于他們的工作產出物之外的。不要把別對代碼的批評當成是針對個人的,當然也在批評他人的代碼時也要謹慎。

9. 盡量規避技術債務

技術債務是開發團隊在設計或架構選型時,為了快速地解決問題,而采取的不規范的方案。偶爾的技術債務是可以接受的,但如果長期負債往往會快速地扼殺產品。

10. 可參考以下優先級

為解決方案做決定時,假設其他條件都是一樣的,可以按照這個優先級:

安全性 > 可用性(可訪問性和用戶體驗) > 可維護性 > 簡單性(開發人員體驗/DX)> 簡短性(代碼長度) > 性能

但是也不要盲目地遵循這個規則,還要考慮到產品的性質。例如,在設計游戲引擎時,性能是最重要的;但在創建銀行應用程序時,安全性是最重要的因素。

11. 復制粘貼會帶來Bug

有時復制粘貼后,會出現Bug,這個幾乎無法避免。為了檢查是否有問題,每次都需要搞明白復制過來的內容,并審核導入的內容。

12. 不要只為樂觀場景寫代碼

還要寫出好的錯誤提示,回答其為什么會發生,如何檢測到它,以及如何解決它。

13. 盡量不要使用依賴庫

若調用一個動態庫A時,A需要調用動態庫B,則B是A的依賴庫。

盡量不要使用依賴庫,除非導入、維護、處理邊界情況時出現Bug, 或者當代碼不滿足需求時,重構的成本遠遠低于你擁有的代碼。

14. 不要盲目跟風

可以去了解熱炒的新技術,但不要被拽著走,要堅持自己對技術的品位。

15. 堅持學習

16. 最好的代碼都有良好的注釋

一些人認為,代碼寫的夠好,就不用寫注釋了。但最優秀的的代碼中往往都包含著良好的注釋。這樣,即使是沒有經歷過這段代碼的調試、測驗過程,且暫時不具備寫出此代碼能力的人都可以使用它。

可以說,未文檔化的功能是不存在的功能,不存在的功能不該有代碼。

17. 盡量避免重寫、繼承和隱藏信息

寫純函數(Pure Function)。對于純函數,相同輸入總是會返回相同的輸出,執行過程中不產生副作用,且不依賴于外部狀態。它們更容易測試和推理。

在執行一個非純函數時,除了得到函數的返回值以外,還在函數調用時產生了附加的影響,如:修改了全局變量的狀態,修改了傳入的參數等。

任何非純函數都應該是類,任何具有不同函數的代碼構造都應該具有不同的名稱。

18. 弄清楚問題后再開始編程

面對一個問題,首先要弄清解決思路,再開始編程。在編程過程中還需要逐步經歷 “編碼-測試-改進” 周期,并不斷深入探索,直到完成。

19. 不要去解決不存在的問題

不要進行投機性編程。只有在確定代碼將來會被擴展時,才去花功夫提高代碼的擴展性。

因為當代碼要被擴展時,有很大的可能性問題定義已經與代碼初次編寫時不同了。

20. 巧用社區、積極探討

合作完成一個程序或軟件往往更有趣。許多程序員包括技術大牛們都會在一些專業論壇(如Github、Stackoverflow等)上分享自己的原創代碼,供他人參考、提建議以及修復Bug。

除了利用已有的論壇、網站外,還可以為自己的項目創建一個良好的社區。


責任編輯:張燕妮 來源: 量子位
相關推薦

2011-12-26 17:18:25

程序員

2019-06-25 10:02:44

程序員經驗編程

2015-08-26 10:50:12

資深程序員編程經驗

2020-04-06 12:31:25

編程程序員代碼

2021-10-09 14:11:52

程序員經驗軟件工程師

2010-12-27 15:41:39

2009-10-22 10:07:15

找工作經驗

2019-09-19 14:36:14

跳槽IT碼農職業

2023-03-31 10:33:30

2013-08-12 11:18:00

2015-05-12 10:15:15

程序員

2023-07-16 22:34:55

2018-10-24 15:53:29

微服務后端JVM

2020-09-30 11:14:24

AI碼農架構

2013-07-12 10:44:54

2015-05-18 14:49:27

2017-10-26 17:47:07

微服務架構優勢痛點

2017-11-17 08:00:03

軟件開發程序員前輩經驗

2023-04-17 08:00:00

2018-10-17 22:01:06

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国精产品一区二区三区 | 亚洲成人一区二区三区 | 日韩精品免费看 | 亚洲97 | 色偷偷噜噜噜亚洲男人 | 男人天堂手机在线视频 | 精品一区二区三区四区 | 夜夜摸天天操 | 91精品久久久 | 欧美在线视频一区二区 | 欧洲成人 | 亚洲精品乱码久久久久久按摩观 | 日本特黄特色aaa大片免费 | 青青草亚洲 | 三级成人在线观看 | 日日干日日操 | 日本高清视频在线播放 | 精品久久久久久中文字幕 | 欧美精品一区二区免费 | 中文字幕在线免费观看 | 91精品国产欧美一区二区 | 亚洲精品一区二区三区中文字幕 | 欧美一区二区大片 | 色综合欧美| 亚洲黄色一区二区三区 | 成人日批视频 | 99视频在线免费观看 | www在线| 久久综合久 | 成人国产精品一级毛片视频毛片 | 中国一级毛片免费 | 欧美一级黄视频 | 精品一级 | 免费在线观看av片 | www.操.com| 日韩一级 | www免费视频 | 视频在线一区 | 国产精品久久久久久亚洲调教 | 99久久久久久99国产精品免 | a久久|