色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

不同優(yōu)秀程度JavaScript開(kāi)發(fā)者的差別

瀏覽:2日期:2023-11-17 18:24:53

“優(yōu)秀絕非偶然. 它總是由強(qiáng)烈的意圖、真誠(chéng)的付出以及聰明的行動(dòng)帶來(lái)的。優(yōu)秀代表著明智的選擇——選擇,而不是機(jī)會(huì),它會(huì)決定著你的命運(yùn)。“ – 亞里士多德

不同優(yōu)秀程度JavaScript開(kāi)發(fā)者的差別

我們所有人都想成為自己所在領(lǐng)域的佼佼者,但是很少有人付出時(shí)間和努力去實(shí)現(xiàn)自己所想。成為優(yōu)秀的人很難,任何職業(yè)都是這樣。

評(píng)估一個(gè)JavaScript開(kāi)發(fā)者的優(yōu)秀程度是非常難的事情。

是什么成就一個(gè)優(yōu)秀的JavaScript開(kāi)發(fā)者呢?

我們可以通過(guò)很多標(biāo)準(zhǔn)來(lái)做出判斷。

代碼質(zhì)量、按時(shí)交付、及時(shí)解決ticket(注:ticket類(lèi)似于github中issue的意思,參考這里)是幾個(gè)可以參考的標(biāo)準(zhǔn)。當(dāng)然也包括幫助團(tuán)隊(duì)其他成員解決ticket。

我認(rèn)為以上幾點(diǎn)都沒(méi)有提供準(zhǔn)確的的量度。為了寫(xiě)出優(yōu)美的代碼而使整個(gè)項(xiàng)目延期了兩個(gè)月,僅僅是由于你想要重構(gòu)那些沒(méi)有任何幫助的東西。我們都知道,關(guān)閉一個(gè)ticket并不意味著什么。

有許多變化的因素需要考慮。假如我問(wèn)10個(gè)不同的程序員——他們覺(jué)得是什么成就一個(gè)優(yōu)秀的開(kāi)發(fā)者,我相信我會(huì)得到10種不同的回答。

我相信現(xiàn)在你也在思考著關(guān)于它的定義。

我曾一度掙扎于思考這個(gè)定義,所以我決定嘗試并弄清楚。

專(zhuān)注于工作

我想找出所有開(kāi)發(fā)者都會(huì)做的一些事情,然后我就可以基于開(kāi)發(fā)者是如何做的,來(lái)對(duì)開(kāi)發(fā)者的表現(xiàn)做出分類(lèi)。

對(duì)于一個(gè)行業(yè)的優(yōu)秀評(píng)估只基于一件事過(guò)于簡(jiǎn)單化,但,無(wú)論如何我都打算去試一下。

不同優(yōu)秀程度JavaScript開(kāi)發(fā)者的差別

現(xiàn)在你可以持保留態(tài)度。

我會(huì)試著證明我做了一個(gè)不錯(cuò)的選擇。它會(huì)是所有開(kāi)發(fā)者都會(huì)做的,同時(shí)又能夠?qū)?yōu)秀的人從平庸者中篩選出來(lái)的一件事。

所有的開(kāi)發(fā)者都會(huì)偶爾寫(xiě)出垃圾代碼。

讓我們正面這件事吧,你和我都會(huì)時(shí)不時(shí)寫(xiě)一些非常垃圾的,可恥的,以致我們永遠(yuǎn)都不希望被人看見(jiàn)的代碼。

我們都有偶爾寫(xiě)出垃圾代碼的理由。我不打算去討論哪些是正當(dāng)?shù)睦碛?,因?yàn)槲覀兠總€(gè)人都有自己正當(dāng)?shù)睦碛伞?/p>

在展示一些編碼的暴行之前,我們先回顧一下我們寫(xiě)垃圾代碼的原因。然后我們就可以避免陷入代碼氣味,苦苦掙扎。

寫(xiě)垃圾代碼的常見(jiàn)原因1. 趕時(shí)間

“時(shí)間不夠”是目前寫(xiě)垃圾代碼最多的一個(gè)原因。對(duì)客戶(hù)的承諾、緊張的日程安排,以及正在等待的新的發(fā)布都可能是造成這個(gè)惡果的原因。

2. 深陷痛苦之中

現(xiàn)有代碼庫(kù)實(shí)在是太垃圾了,讓你根本不想努力寫(xiě)出好的代碼。你知道自己無(wú)論做什么都不可能挽救這份將在某一時(shí)刻崩潰的垃圾代碼庫(kù)。

3. “我只需完成任務(wù)然后離開(kāi)”

作為開(kāi)發(fā)者,我們有時(shí)候是在不同的項(xiàng)目組工作。假如寫(xiě)完最后幾行代碼你就要轉(zhuǎn)到一個(gè)新的項(xiàng)目,這并不是什么影響別人的大事情。

知道自己在這個(gè)項(xiàng)目上的時(shí)間即將結(jié)束,沒(méi)有人會(huì)再review你的代碼了。于是你就草草提交、推送,然后指望單元測(cè)試來(lái)確保沒(méi)有任何問(wèn)題。

 看看真相

我們都會(huì)偶爾寫(xiě)出垃圾代碼。這能說(shuō)明我們都是糟糕的開(kāi)發(fā)者嗎?

當(dāng)然不能。正因?yàn)槊總€(gè)人都會(huì)偶爾寫(xiě)出糟糕的代碼,所以這件事本身不能說(shuō)明任何問(wèn)題。

然而,多年來(lái),我漸漸發(fā)現(xiàn)一個(gè)關(guān)于開(kāi)發(fā)者的令人驚訝的真相。

在寫(xiě)出垃圾代碼后如何表現(xiàn),就是對(duì)我們開(kāi)發(fā)者資質(zhì)的根本檢驗(yàn)。

有點(diǎn)不可思議,但確實(shí)是這樣。意識(shí)到你正在寫(xiě)出垃圾代碼,以及為了避免將來(lái)再次發(fā)生而采取的行動(dòng),都反映出你是如何寫(xiě)代碼的,以及你一般都是如何對(duì)待寫(xiě)代碼這件事的。

垃圾代碼與評(píng)估開(kāi)發(fā)者的優(yōu)秀程度有多大關(guān)系呢?

有很大的關(guān)系。

我們舉Ron為例。Ron今天寫(xiě)了糟糕的代碼,并為此不高興。因?yàn)橐粋€(gè)令人討厭的五級(jí)深度的Backbone模型繼承鏈,讓Ron根本不能修改一行代碼,除了打破一切。

Ron寫(xiě)了一段超級(jí)垃圾的代碼,繞過(guò)了這個(gè)問(wèn)題。每個(gè)人都很高興,因?yàn)镽on準(zhǔn)時(shí)交付了代碼。然而除了Ron自己。

他告訴團(tuán)隊(duì)老大發(fā)生了什么。他們一起反復(fù)思考如何解決這個(gè)問(wèn)題。他們明確了一點(diǎn),打破繼承鏈并劃分為水平的組合模塊是最佳的解決辦法。

Ron于是請(qǐng)求老大給他時(shí)間實(shí)施自己和老大剛剛討論的重構(gòu)方案。

Roger今天也寫(xiě)了很糟糕的代碼。他告訴自己的開(kāi)發(fā)伙伴,自己用難以置信的hack手法繞過(guò)了一個(gè)奇怪的五級(jí)深度的Backbone模型繼承鏈。他準(zhǔn)備繞過(guò)整個(gè)整個(gè)架構(gòu),就這樣準(zhǔn)時(shí)交付。

Roger自己感到非常滿(mǎn)意,覺(jué)得沒(méi)有進(jìn)一步改善的必要。

 四類(lèi)JavaScript開(kāi)發(fā)者

你可以通過(guò)程序員對(duì)待寫(xiě)出垃圾代碼的態(tài)度,將他們分為四類(lèi),從差勁到優(yōu)秀。

告訴我你沒(méi)有同時(shí)遇到所有的這四類(lèi)開(kāi)發(fā)者。

Barney - 差勁的JavaScript開(kāi)發(fā)者

Barney并不關(guān)心自己正在寫(xiě)垃圾代碼。他關(guān)心的僅僅是能否按時(shí)完成工作,其他任何事都無(wú)關(guān)緊要。代碼能正常運(yùn)行,就沒(méi)有問(wèn)題。

Barney寫(xiě)出的垃圾代碼,有時(shí)也會(huì)阻礙整個(gè)項(xiàng)目的進(jìn)展。代碼工作時(shí),也會(huì)一直帶來(lái)很多問(wèn)題,讓整個(gè)項(xiàng)目進(jìn)度倒退。Barney卻認(rèn)為自己并不需要學(xué)習(xí)什么新的東西。

他已經(jīng)知道了完成工作所需要的關(guān)于JavaScript的所有東西。

Bill - 普通的JavaScript開(kāi)發(fā)者

Bill并沒(méi)有意識(shí)到自己正在寫(xiě)垃圾代碼。他遵循著團(tuán)隊(duì)的約定和lint規(guī)則,認(rèn)為自己所做的沒(méi)什么問(wèn)題。但他并沒(méi)有花費(fèi)時(shí)間去理解整個(gè)項(xiàng)目結(jié)構(gòu),以及不同組件之間是如何交互的。

最后的結(jié)果就是,很不幸,一片混亂。

Bill在做出重大的設(shè)計(jì)選擇之前,沒(méi)有咨詢(xún)?nèi)魏稳恕K约涸趺聪氲木驮趺醋?。他讀過(guò)三篇發(fā)表于一年前的博文,它們一直在指導(dǎo)著他的決定。

我經(jīng)常說(shuō)走進(jìn)Bill的代碼中,感覺(jué)就像地雷戰(zhàn),移動(dòng)錯(cuò)了一步,所有的東西都會(huì)炸到你臉上。

Roger - 好的JavaScript開(kāi)發(fā)者

我們前面就提過(guò)Roger這種類(lèi)型。完全意識(shí)到自己在寫(xiě)垃圾代碼。他知道如果他想好好寫(xiě)的話(huà),代碼會(huì)是什么樣子。他拍拍自己的背,然后繼續(xù)寫(xiě)出這段垃圾代碼。

Roger的主要問(wèn)題在于沒(méi)有嘗試做一些改變。他做了自己被要求去做的,而且完成的很好。但是他寧愿讓事情該怎樣就怎樣,而不是花點(diǎn)時(shí)間,做一些努力讓其有所改變。

Ron - 優(yōu)秀的JavaScript開(kāi)發(fā)者

Ron是一個(gè)優(yōu)秀的程序員,但偶爾他依舊不得不寫(xiě)一些垃圾代碼。

讓Ron與別人不同的,就是在寫(xiě)那些垃圾代碼的時(shí)候,他會(huì)認(rèn)真地思考如何讓這種情況不會(huì)再次發(fā)生,既不為自己,也不為任何其他人。Ron會(huì)弄清楚需要那種類(lèi)型的重構(gòu),哪一塊的技術(shù)方案可以改變或提升。

然后,基于這些發(fā)現(xiàn),Ron會(huì)行動(dòng)起來(lái),去推動(dòng)這些改變。

 冷酷的現(xiàn)實(shí)

我必須得懺悔一下。 我就是這里的Roger。 但我也是Ron。 我也相信我曾不止一次的偶然當(dāng)過(guò)Bill而自己不知道。我認(rèn)為自己沒(méi)有像Barney那樣過(guò),但是,到底有沒(méi)有,誰(shuí)知道呢!我們都在走向持久優(yōu)秀之路上來(lái)來(lái)回回。有時(shí)候我們是普通的,有時(shí)候我們是好的又或是優(yōu)秀的。總是在嘗試著不要變成差勁的。

我們最終持續(xù)時(shí)間最長(zhǎng)的那個(gè)角色會(huì)決定我們是什么樣的開(kāi)發(fā)者。

說(shuō)實(shí)話(huà),從普通開(kāi)發(fā)者到好的開(kāi)發(fā)者,相較于其他事情,需要的是積累更多的知識(shí)和經(jīng)驗(yàn)。但是想要從好的躍升到優(yōu)秀,你只需要改變一樣——態(tài)度。

“記住,在成為偉大之前,你必須是良好。在你成為良好之前,你必須是差勁。但是,在成為差勁之前,你必須去嘗試。——阿特 威廉姆斯

原文:http://thefullstack.xyz/excellent-javascript-developer/

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 国产欧美一区二区三区精品 | 久久精品免视着国产成人 | 色偷偷88欧美精品久久久 | 不卡的毛片 | 中国一级毛片欧美一级毛片 | 国产亚洲一区二区三区在线 | 亚洲国产成人在线视频 | 中国一级毛片特级毛片 | 国产精品亚洲高清一区二区 | 国产成人精品免费视频大全五级 | 日韩a级| 亚洲国产高清在线 | 国产大片中文字幕在线观看 | 精品成人免费视频 | 97在线视频精品 | 中国一级毛片视频 | 国产九九视频在线观看 | 成人欧美视频在线观看 | 国产护士一级毛片高清 | 国产精品久久人人做人人爽 | 国产美女做爰免费视频网址 | 国产亚洲精品久久 | 日韩免费三级 | 精品中文字幕久久久久久 | 9久久99久久久精品齐齐综合色圆 | 欧美成人性色大片在线观看 | 91亚洲国产成人久久精品网址 | 久久99久久精品国产99热 | 久久成人a毛片免费观看网站 | 久久精品视频在线播放 | 久久久亚洲精品蜜桃臀 | 在线免费公开视频 | 国产精品一级毛片不收费 | 亚洲精品成人a在线观看 | 最近最新中文字幕免费的一页 | www.日本高清视频.com | 国产一区二区在线视频 | 成人软件18免费 | 亚洲图片一区二区三区 | 成人国产精品视频频 | 久久久久久久久久久久久久久久久 |