前端成長01 高級程序員和普通程序員有哪些區(qū)別?

原文地址:高級程序員和普通程序員有哪些區(qū)別恋捆? - 暗滅的回答 - 知乎https://www.zhihu.com/question/33578621/answer/451931102

先不說高級照皆。就只說初級程序員經(jīng)常容易犯的錯誤,把這些錯誤改正了鸠信,你離中級就不遠(yuǎn)了纵寝。

初級程序員經(jīng)常犯的錯誤集錦

1.? 命名不規(guī)范

2. 日志不規(guī)范

3. 拒絕寫接口和假數(shù)據(jù)

4. 不寫單元測試

5. 盲目集成

6. 邏輯不清

7. 不做方案

8. 不關(guān)注性能

9. 害怕重構(gòu)

10. 做出來就好,不考慮優(yōu)雅的方案

11. 不考慮未來需求的變化

12. 遇到問題的時候不會試錯

13. 不會寫偽代碼

14. 不做數(shù)據(jù)量的預(yù)估

15. 提交代碼不規(guī)范

16. 不喜歡打Tag

17. 不遵守發(fā)布流程

18. 不知道Bug修復(fù)的優(yōu)先級

19. 總喜歡手動修改線上代碼

20. 不做數(shù)據(jù)備份

21. 不做自測

22. 不盡力模仿真實數(shù)據(jù),測試數(shù)據(jù)很隨意

23. 不抽取公共代碼

24. 不認(rèn)真聽需求講解

25. 不看驗收標(biāo)準(zhǔn)

26. 不主動推進項目進度

27. 遇到難題不主動反饋

一 命名不規(guī)范

命名很隨意爽茴,當(dāng)時寫代碼特別High葬凳,什么奇奇怪怪的命名都有的:xiaonaigou,xxxx,j1,jl,llst.

完全意識不到全名規(guī)范的價值和意義。


二 日志不規(guī)范

日志室奏?那是什么鬼東西火焰,能吃么?

曾經(jīng)有一個從文思海輝出來的小伙伴胧沫,三年后端工程師經(jīng)驗昌简,出了問題不知道怎么解決。

只好重啟绒怨。

找我來協(xié)助纯赎,問他,怎么錯了南蹂?

不知道犬金。

日志呢?

沒有六剥。

暈晚顷,那怎么解決問題,神仙也搞不定啊疗疟。

后來才知道该默,他們解決問題都是本地改代碼然后直接部署,重新訪問看錯誤消失沒策彤,沒有消失就繼續(xù)在本地改源碼栓袖。


三 拒絕寫接口和假數(shù)據(jù)

一個菜雞不可怕,可怕的是菜雞遇到菜雞锅锨。曾經(jīng)有一個項目中的兩個菜雞叽赊,一個前端一個后端,他們很歡快的調(diào)接口必搞,根本不寫文檔

必指,兩個人效率特別高。

直到有一天恕洲,發(fā)現(xiàn)項目可能做不完了塔橡,需要另外兩個前端菜雞協(xié)助一下。

新來的兩個菜雞要獲取后端的數(shù)據(jù)霜第,不知道接口的Url地址葛家,不知道Get還是Post,不知道發(fā)送的參數(shù)和返回值泌类。就這樣寫癞谒!

我壓根沒想到可以這么寫代碼,兩個菜雞很開心!拍手稱快:通了弹砚,通了双仍,通了!

我說你們通什么呢桌吃?他們說接口終于通了朱沃!原來他們兩個參考之間的頁面,硬生生的一次一次不停的嘗試茅诱,就這樣把接口猜出來了逗物!

這就是編程的樂趣嗎?

還有不寫假數(shù)據(jù)瑟俭。曾經(jīng)有一個馬姓小哥翎卓,對趙姓小哥信誓旦旦的說:3天,給我3天時間 摆寄,我把真數(shù)據(jù)給你莲祸。

于是趙姓小哥信以為真。就這樣椭迎,3天又3天,3天又3天田盈,3天又3天畜号,3天又3天,3天又3天允瞧。

整整一個半月简软,趙姓小哥都沒有拿到全部的數(shù)據(jù)!


四 不寫單元測試

確切來說述暂,是不按TDD的方式開發(fā)痹升。在現(xiàn)在IDE這么強大的情況下,先寫單元測試的習(xí)慣畦韭,不僅僅是代碼的嚴(yán)謹(jǐn)性疼蛾,也是效率的代名詞啊。

可是很多菜雞理解不了單元測試的價值艺配,沒關(guān)系察郁,等到代碼重構(gòu),需求變更的時候转唉,就哭都哭不出來了皮钠!

好的單元測試,你的邏輯必然會清楚赠法。


五 先集成麦轰,再測試,再放棄

很多時候,菜雞在引入第三方的庫款侵,框架末荐,接口或者是服務(wù)的時候,最喜歡的事情就是直接和自己原有的代碼集成在一起喳坠。

結(jié)果 是什么呢鞠评?突然間不能用了,跑不起來了壕鹉,不知道問題出在哪了剃幌,根本分不清倒底是第三方的問題還是自己的問題。

好的方法是什么晾浴?先跑通官方提供的Demo负乡,再想辦法一點一點加上自己的業(yè)務(wù)。


六 理不清楚邏輯脊凰,邊做邊猜

前端在這里的問題特別多抖棘,做支付,不清楚支付的流程狸涌,分不清楚定義切省,總以為前端就是接口處理好數(shù)據(jù)展示好拉倒。

很多菜雞都會有這種習(xí)慣帕胆,這樣不好朝捆,先把邏輯處理好,弄清楚流程懒豹,再去動手才好芙盘。


七 不做方案

不做方案代表什么含義呢?就是完全憑直覺行走啊脸秽。

跟閉上眼逛窯子一樣儒老。

寫代碼的好習(xí)慣應(yīng)該是先在腦袋里把所有的需求細(xì)節(jié)過一遍,實現(xiàn)細(xì)節(jié)拿出來记餐。

上個月就有一個張姓小菜雞驮樊,做一個匿名評論的功能。

基本上沒有什么經(jīng)驗片酝,腦子也不好使巩剖,給出的方式是什么你們猜得到么?

用戶刷新一次就往用戶表里插入一條數(shù)據(jù)钠怯,密碼默認(rèn)昵稱隨機佳魔。

不多說了都是淚,我見過太多讓人目瞪狗呆的方案了晦炊,看著滿屏的代碼鞠鲜,你怎么幫他調(diào)錯調(diào)優(yōu)宁脊,最好的方式就是全部重寫。

做方案的好處太多了贤姆。


八 不關(guān)注性能

不關(guān)注性能也是新人很容易犯的錯榆苞。什么是性能呢。對后端來說就是TPS和響應(yīng)時間霞捡,對前端來說就是響應(yīng)時間坐漏。

很多新人程序員的習(xí)慣就是把東西做出來,然后再優(yōu)化碧信。

最后就是東西做出來了赊琳,優(yōu)化留給別人了。

對性能的關(guān)注也是晉升中級程序員最關(guān)鍵的技能點砰碴。在寫代碼的時候躏筏,有經(jīng)驗的工程師已經(jīng)知道了這個方法這個函數(shù)這個功能點的性能怎么樣,瓶頸在哪里呈枉。


九 害怕重構(gòu)

“程序員最大的勇氣就是看自己三個月之前寫的代碼趁尼。”

其實重構(gòu)并不應(yīng)該是在幾個月之后重構(gòu)猖辫,最好的方式是實時重構(gòu)酥泞。寫一天代碼,70%的時間都放到重構(gòu)上都不過份啃憎。

而新人呢婶博,磕磕跘跘的完成一個功能,就跟多米諾骨牌做成的大黃蜂一樣荧飞,你敢動一下他的代碼試試?他會跟你拼命名党。

你讓他自己動一行代碼試試叹阔?

不重構(gòu)在某種程度上也意味著你的代碼實現(xiàn)無法重塑。


十 做出來就好传睹,不考慮優(yōu)雅的方案

有個詞叫做最佳實踐耳幢,其實編碼規(guī)范和最佳實踐,是編程功底的重要體現(xiàn)欧啤。

優(yōu)雅方案可以認(rèn)為是最佳實踐的升級版睛藻,它和上面說到的不斷的重構(gòu)是相輔相成的。

不好的方案是什么呢邢隧?硬編碼居多店印,沒有可擴展性,用很丑陋的方式完成了功能倒慧。

上次他們?nèi)プ隽艘粋€關(guān)于試聽課的方案按摘,一個人能試聽多少節(jié)課包券,正常的邏輯應(yīng)該是在用戶的表里加一個字段來表示。

需求是寫著邀請幾個人炫贤,可以試聽多少節(jié)課溅固,所以他們判斷試聽多少節(jié)課就直接在通過邀請人的表里查詢?nèi)プ觥?/p>

完全沒考慮到以后如果我變換了試聽課的判斷條件怎么辦?

實際上這是應(yīng)該拆解成兩部分兰珍,一個是試聽課的產(chǎn)生條件侍郭,這是一個獨立的模塊,加一個是試聽課的確認(rèn)掠河。

像這種例子太多了亮元,也和不做方案,不考慮擴展性有關(guān)系口柳。就是接下來要說的苹粟。


十一 不考慮未來需求的變化

工程師的水準(zhǔn),其實可以分成以下幾個階段(馬丹我找不到之前在哪個答案里寫過了):

面向功能編程

面向性能編程

面向未來編程

工程師拿到需求的第一件事跃闹,應(yīng)該聚集在以下幾個問題:

第一 哪些需求是我之前完成過的

第二 哪些需求是有可能變化的

第三 有幾種方案嵌削,分別支持什么樣的需求變化

但是差一點的程序員就考慮不到那么遠(yuǎn),一個是對業(yè)務(wù)不熟悉望艺,判斷不出來哪些需求可能會產(chǎn)生變化苛秕,一個是對可選的方案掌握的不多,根本就沒有什么可選的余地找默,還有就是沒有這種思維習(xí)慣艇劫,分不清楚哪些是現(xiàn)在要完成的,哪些是未來可能會支持或者是變動的惩激。


十二 遇到問題的時候不會試錯

這也是新手常見的問題店煞。很多時候新人會遇到問題,解決不了风钻,去找一個有經(jīng)驗的工程師顷蟀,這個有經(jīng)驗的工程師呢,大概也未曾遇到這種情況骡技,但是他解決問題的思路清楚啊鸣个。

一會兒試試這個,一會兒刪刪那段代碼布朦,很快就跑通了囤萤。

解決問題是一個很見功底的技術(shù)點,而且是有很多方法論的是趴,之前總結(jié)過一些涛舍,簡單列舉過來:

[if !supportLists]1.????[endif]尋找正確的代碼

[if !supportLists]2.????[endif]理清楚正確的執(zhí)行順序

[if !supportLists]3.????[endif]重現(xiàn)錯誤

[if !supportLists]4.????[endif]最小化錯誤產(chǎn)生的場景

[if !supportLists]5.????[endif]修改代碼到一個已知的錯誤類型

等等等。

解決問題就是一個分析推理的過程唆途,而在這里呢做盅,背后的功底就是你知道很多哪些是肯定不會錯的小公理缤削,然后再挨個去定位可能產(chǎn)生錯誤的環(huán)節(jié),分解流程是最基礎(chǔ)的工作吹榴。


十三 不會寫偽代碼

偽代碼是什么呢亭敢?就是自然語言啊。其實編程只有三種邏輯控制塊图筹,順序帅刀,循環(huán),判斷远剩。

所以你只要用自然語言來描述出來扣溺,先做什么,再做什么瓜晤,什么時候循環(huán)锥余,什么時候判斷,

代碼寫出來的問題就不大痢掠。

這是一個先寫偽代碼再寫細(xì)節(jié)的過程驱犹。你不要上來就開始平鋪寫代碼(我之前講過優(yōu)雅代碼之道,有興趣的可以加群聽一下足画,重點講了怎么寫出來優(yōu)雅代碼)雄驹。

平鋪代碼是最菜的方式,好的代碼是有結(jié)構(gòu)的淹辞,有不同的抽像層級医舆。

第一步,干嘛象缀。

第二步蔬将,干嘛。

第三步央星,干嘛霞怀。

先把這個列清楚,這是偽代碼的第一級等曼。

然后變成注釋,這是第二級凿蒜。

刪掉注釋變成函數(shù)名禁谦,這是第三級。

所以說废封,好的程序員寫代碼是不需要注釋的州泊,不是說讓你把注釋刪掉,而是讓你完成這三步升華的過程漂洋。

寫的好的代碼遥皂,命名規(guī)范力喷,你看到的真的是一首詩, 是一種編程語言演训,是在用語言來描述一件功能的完成弟孟,這種編程藝術(shù)的工業(yè)感很爽快,你看那些不爽的代碼样悟,簡直了拂募。。


十四 不做數(shù)據(jù)量的預(yù)估

后端工程師在前期經(jīng)常會忽視數(shù)據(jù)量的大小窟她,沒有影成一個好的習(xí)慣陈症。

寫代碼只注重功能,沒有一個關(guān)于數(shù)據(jù)量的概念震糖。

這個地方其實還和性能是一致的录肯,在性能上,前后端并沒有太大的差別吊说。

推薦的做法是论咏,程序員要對數(shù)據(jù)很敏感,后端要知道每一個表的規(guī)氖柽叮可能會有多大潘靖,當(dāng)前的系統(tǒng)能支持的數(shù)據(jù)庫表的大小是多大,而前后端都需要知道每一個操作蚤蔓,都分成了哪幾個步驟礁哄,每一個步驟花費的時間是多少讽坏,大概占用的內(nèi)存是什么樣的。

做到這一點其實并不難,難的是養(yǎng)成這種習(xí)慣羔挡,初級工程師眼里看的是功能和代碼,中級工程師眼里看到的是數(shù)據(jù)和時間妒蔚。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疮鲫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子昏苏,更是在濱河造成了極大的恐慌尊沸,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贤惯,死亡現(xiàn)場離奇詭異洼专,居然都是意外死亡,警方通過查閱死者的電腦和手機孵构,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門屁商,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人颈墅,你說我怎么就攤上這事蜡镶∥砀ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵官还,是天一觀的道長芹橡。 經(jīng)常有香客問我,道長妻枕,這世上最難降的妖魔是什么僻族? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮屡谐,結(jié)果婚禮上述么,老公的妹妹穿的比我還像新娘。我一直安慰自己愕掏,他們只是感情好度秘,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著饵撑,像睡著了一般剑梳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上滑潘,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天垢乙,我揣著相機與錄音,去河邊找鬼语卤。 笑死追逮,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的粹舵。 我是一名探鬼主播钮孵,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼眼滤!你這毒婦竟也來了巴席?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤诅需,失蹤者是張志新(化名)和其女友劉穎漾唉,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體堰塌,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡赵刑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蔫仙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片料睛。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡丐箩,死狀恐怖摇邦,靈堂內(nèi)的尸體忽然破棺而出恤煞,到底是詐尸還是另有隱情,我是刑警寧澤施籍,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布居扒,位于F島的核電站,受9級特大地震影響丑慎,放射性物質(zhì)發(fā)生泄漏喜喂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一竿裂、第九天 我趴在偏房一處隱蔽的房頂上張望玉吁。 院中可真熱鬧,春花似錦腻异、人聲如沸进副。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽影斑。三九已至,卻和暖如春机打,著一層夾襖步出監(jiān)牢的瞬間矫户,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工残邀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留皆辽,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓罐旗,卻偏偏與公主長得像膳汪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子九秀,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,756評論 25 707
  • 用兩張圖告訴你遗嗽,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,699評論 2 59
  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,905評論 2 89
  • 【學(xué)齡后】口號:溫柔地堅持 孩子第一個30天目標(biāo):在洗手間刷牙鼓蜒,刷完牙馬上洗臉 媽媽第一個30天目標(biāo):恢復(fù)與大寶的...
    zengl閱讀 175評論 0 0
  • *快速排序 最優(yōu)時間復(fù)雜度為nlogn痹换,因為要完成n個嵌套調(diào)用,,但比冒泡排序要快python實現(xiàn)邏輯過程是這樣得...
    火車火車閱讀 1,849評論 0 0