同是程序員為什么感覺(jué)自己沒(méi)有別人混的好呢?不知道身為程序員的你有沒(méi)有這樣的感受,那么想知道自己差在哪里的話,我們不妨來(lái)看下這篇文章,來(lái)找尋下自己身上的缺點(diǎn)與不足!感覺(jué)很有道理分享給我的編程小伙伴們?進(jìn)來(lái)瞅瞅吧!
1. 拷貝型
拷貝型選手就是傳說(shuō)中的“代碼拷貝員”了,他們對(duì)實(shí)現(xiàn)功能幾乎沒(méi)有思路,所作的事情就是從網(wǎng)上或是之前其他團(tuán)隊(duì)成員寫(xiě)的代碼中拷貝出片段,然后放到項(xiàng)目中,如果運(yùn)行項(xiàng)目出現(xiàn)了期望結(jié)果,則表示任務(wù)完成。這類(lèi)人只會(huì)改代碼,卻不會(huì)寫(xiě)代碼。他們大多對(duì)編程毫無(wú)興趣,只是希望以此糊口而已。
2. 新手型
當(dāng)產(chǎn)品有功能需求時(shí),由于經(jīng)驗(yàn)有限,程序員并不完全知道要如何實(shí)現(xiàn)這個(gè)功能,需要通過(guò)學(xué)習(xí)、尋找資料等方式來(lái)解決問(wèn)題。這種情況下的編碼過(guò)程,程序員的主要目標(biāo)是“完成功能”,那么很難有多余的心思去考慮邊界條件、性能、可讀性、可擴(kuò)展性、編碼規(guī)范等問(wèn)題,因此代碼bug可能較多,穩(wěn)定性不高,常常會(huì)發(fā)生開(kāi)發(fā)花費(fèi)1個(gè)月,改bug卻要改上好幾個(gè)月的事情。
3. 學(xué)習(xí)型
這類(lèi)程序員對(duì)所在領(lǐng)域的語(yǔ)言已經(jīng)比較了解,對(duì)于一般功能可以有較為清晰的實(shí)現(xiàn)思路,給出需求時(shí)可以通過(guò)自己的思路來(lái)實(shí)現(xiàn),并且會(huì)一定程度上考慮邊界條件和性能問(wèn)題。但僅此而已,他們對(duì)可讀性和可擴(kuò)展性考慮很少,也沒(méi)有項(xiàng)目級(jí)別的考慮,主要是希望通過(guò)實(shí)現(xiàn)代碼來(lái)練手或是學(xué)習(xí)。
這類(lèi)程序員最大的表現(xiàn)在于喜歡“創(chuàng)造代碼”,即使有現(xiàn)成的實(shí)現(xiàn),他們也希望自己來(lái)實(shí)現(xiàn)一套,以達(dá)到“學(xué)習(xí)”的目的。他們不喜歡復(fù)用別人的代碼,看見(jiàn)項(xiàng)目中別人實(shí)現(xiàn)了相類(lèi)似的功能,他們會(huì)以“需求不同”的借口來(lái)自己重新實(shí)現(xiàn)一套。這類(lèi)人一般來(lái)說(shuō)對(duì)技術(shù)有著較為濃厚的興趣,希望能夠通過(guò)項(xiàng)目來(lái)進(jìn)行學(xué)習(xí)。從項(xiàng)目的角度來(lái)說(shuō),這種做法最大的麻煩在于開(kāi)發(fā)周期可能較長(zhǎng)(相比直接使用現(xiàn)成的實(shí)現(xiàn)),并且會(huì)使得項(xiàng)目代碼膨脹,影響未來(lái)的維護(hù)。但這類(lèi)程序員由于有興趣,如果好好培養(yǎng)或許會(huì)成為明天的牛人。
4. 實(shí)現(xiàn)型
這類(lèi)程序員一般有較為豐富的經(jīng)驗(yàn),由于寫(xiě)得太多,因此不再追求“創(chuàng)造代碼”來(lái)進(jìn)行學(xué)習(xí),同時(shí)對(duì)所在領(lǐng)域可能涉及的很多第三方框架或是工具都比較熟悉,當(dāng)接受到產(chǎn)品需求時(shí),對(duì)功能實(shí)現(xiàn)方案已經(jīng)了然于胸,因此他們可以快速的實(shí)現(xiàn)需求,并且對(duì)邊界、性能都有一定程度的考慮。因?yàn)槟軌蚩焖賹?shí)現(xiàn)需求功能,經(jīng)常會(huì)被團(tuán)隊(duì)評(píng)價(jià)為“牛人”。但他們一般僅僅停留在“完成功能”級(jí)別上,對(duì)代碼的可讀性、可擴(kuò)展性、編碼規(guī)范等考慮較少,對(duì)項(xiàng)目總體把握也較少(例如控制項(xiàng)目膨脹、方便部署等架構(gòu)級(jí)別的東西)。
這類(lèi)程序員最大的表現(xiàn)在于喜歡“開(kāi)發(fā)項(xiàng)目”,卻不喜歡“維護(hù)項(xiàng)目”。他們產(chǎn)出的代碼最大的問(wèn)題就是維護(hù)較為困難,可能過(guò)上幾個(gè)月回頭看自己的代碼都會(huì)暈頭轉(zhuǎn)向。因此即使是自己寫(xiě)的代碼,仍然不愿意維護(hù),一般會(huì)苦了后來(lái)人。因?yàn)榻涌谠O(shè)計(jì)的缺乏,當(dāng)需求變更時(shí),發(fā)現(xiàn)代碼要改的東西太多,然后抱怨需求變化,卻很少認(rèn)為是自己的代碼問(wèn)題。這樣的項(xiàng)目如果經(jīng)過(guò)長(zhǎng)時(shí)間的變更維護(hù),最終會(huì)變得難以維護(hù)(一般表現(xiàn)在需求變更響應(yīng)時(shí)間越來(lái)越長(zhǎng))甚至無(wú)法維護(hù),最終要么是半死不活,要么是被推倒重來(lái)。
5. 架構(gòu)型
這類(lèi)程序員比實(shí)現(xiàn)型更進(jìn)一步,他們經(jīng)驗(yàn)豐富,對(duì)相關(guān)框架和工具等都很熟悉,“完成功能”、“穩(wěn)定性”、“性能”這些已經(jīng)不再是他們的追求,更優(yōu)美的代碼、更合理的架構(gòu)才是目標(biāo)。
這類(lèi)程序員代碼設(shè)計(jì)大多建立在對(duì)需求的詳細(xì)了解和對(duì)需求變更的預(yù)測(cè)上——可擴(kuò)展性較好;代碼細(xì)節(jié)也盡量多的考慮邊界情況、性能——穩(wěn)定高效;代碼命名和注釋都恰到好處——可讀性較高;同時(shí)在開(kāi)發(fā)過(guò)程中他們會(huì)不斷重構(gòu),對(duì)代碼做減法——保證項(xiàng)目可持續(xù)發(fā)展等等,但由于考慮問(wèn)題較多,單從“實(shí)現(xiàn)功能”階段來(lái)看,完成速度不一定會(huì)比“實(shí)現(xiàn)型”要快。只是到了項(xiàng)目中后期優(yōu)勢(shì)才會(huì) 慢慢體現(xiàn)出來(lái)。
------分隔線----------------------------
- 相關(guān)文章
-