千萬別直接敲代碼!
大家好,我是魚皮,今天給大家分享一個開發(fā)小經(jīng)驗。
很多沒有實際工作過的同學,可能都會認為程序員的工作只有寫代碼 + 和產(chǎn)品經(jīng)理 “拉扯”,也會習慣性地用代碼量來評價一個程序員的工作強度和等級,以為碼字如飛、每月能寫個幾萬行代碼的程序員就是大佬。
我以前也是這么認為的,直到我正式進入企業(yè)工作,才發(fā)現(xiàn)真的不是這么一回事兒!高端的同學總是用最簡短精妙的代碼來解決問題。包括我認識的很多高職級大佬(被外界稱為 “架構師”),他們的平均代碼量都很少、甚至有些已經(jīng)完全不寫代碼了。
那他們的工作都是干啥呢?

其中最常見的工作就是 設計 ,這里的設計不是指 draw a picture 畫畫設計稿,而是根據(jù)真實的業(yè)務需求去設計系統(tǒng)的整體架構、或者設計需求的解決方案、設計整個系統(tǒng)的劃分、資源的協(xié)調(diào)調(diào)度等。
通過這點,也側(cè)面反映出了設計的重要性,代碼只是把我們的思想、我們的設計表述出來的一種介質(zhì)(或者說是工具)罷了。
也許我們的工作沒有達到架構師的高度,但在我們做需求的過程時,一定進行設計:先理清楚業(yè)務邏輯,想好怎么寫代碼,再根據(jù)設計去具體寫代碼實現(xiàn)(類似翻譯的過程)。
我剛進騰訊實習的時候,導師給我安排了一個很大的工作 —— 重構老系統(tǒng)為新框架。我當時覺得很簡單,不就是把框架 A 換成框架 B 么?業(yè)務邏輯基本都不用動,分分鐘搞定好吧!于是在排期的時候信誓旦旦地跟我導師說:3 天完成。
我導師只是笑了笑:年輕人不要太自信!慢慢來吧。
結果你猜怎么著?那個需求我做了整整一個多月。。。就是因為沒有設計好怎么去做、也沒有調(diào)研框架 A、框架 B 的差異性,直接上手去換框架、寫代碼,導致到處都是報錯,甚至影響了業(yè)務邏輯。
還有幾次,我以為需求很簡單,想都沒想就去寫代碼了,結果在寫代碼的過程中發(fā)現(xiàn)了大問題,就像走迷宮走到了死胡同一樣無力回天。如果先做好設計,有了清晰的路線和規(guī)劃,再去寫代碼,出現(xiàn)延期、返工的概率就會大大降低。
所以設計有多重要就不言而喻了。
那應該怎么做設計呢?設計分為很多種,比如系統(tǒng)設計、架構設計、詳細設計等。每個展開去說都能扯個幾萬字,這里我就挑 詳細設計 小講一下。
所謂詳細設計,顧名思義,就是很詳細的設計。

比如業(yè)務流程具體是怎樣的、有哪些步驟?某個算法具體怎么實現(xiàn)等?
正好上周在 星球 中直播帶大家做項目,需求是開發(fā)一個用戶注冊功能的后臺。我就拿這個注冊功能的詳細設計來舉例子吧,如圖:

從上到下看一遍你會發(fā)現(xiàn),一個小小的注冊功能竟然有那么多要考慮的地方,各種各樣的校驗。如果你不做設計、直接上手寫代碼,那么會不會漏掉一些校驗、搞錯關鍵步驟,導致整個系統(tǒng)出問題呢?后面發(fā)現(xiàn)問題再去改代碼,可就麻煩多了(要反復上線)。
所以在開發(fā)需求、尤其是包含復雜業(yè)務邏輯的需求時,不要想當然,直接去寫代碼了。而是可以像我上面舉的例子一樣先設計一下、想清楚怎么寫代碼,再去按照設計寫代碼就很簡單了~
經(jīng)常有同學問我怎么提高業(yè)務思維、為什么我看到很多系統(tǒng)都能很快地想到實現(xiàn)方案,其實就是因為平時做任何需求的時候,我都會思考、在心里做設計。我也強烈建議大家這么做,腦袋越用越靈嘛。
所以我也會在星球直播帶大家做項目過程中多帶大家分析問題、思考和設計方案,而不止是寫代碼本身,相信這樣會給大家?guī)砀蟮膸椭?br>
以上就是本期分享,最后也歡迎大家加入魚皮的 編程學習圈子 ,和近 4000 名小伙伴們一起交流學習,向魚皮等大廠同學 1 對 1 提問、跟著魚皮直播做項目、領取大量編程資源等。
現(xiàn)在加入限時優(yōu)惠 60 元 ,歡迎想一起學習進步的小伙伴~
往期推薦
