国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

編碼之道(一):程序員的“圣經(jīng)“

Elle / 1933人閱讀

摘要:與此類似,理所當(dāng)然的,我們程序員也會(huì)有自己的圣經(jīng)。這便是程序員的圣經(jīng)三個(gè)原則我認(rèn)為做為一個(gè)程序員,最神圣的就是三個(gè)原則,它幾乎能完整無(wú)誤的定義做為一個(gè)程序員應(yīng)該如何去編碼。

這是個(gè)隱喻。

在敏捷軟件開發(fā)的原則中,其中一個(gè)原則就是使用隱喻。我在這里也仿照了它的做法。

程序員是個(gè)群體,當(dāng)我們說(shuō)一個(gè)群體,一定意味著它有一些共通點(diǎn),不然不能稱之為群體。而每一個(gè)群體必然有一個(gè)大家都認(rèn)同的價(jià)值觀,否則不能形成群體。

什么叫大家都認(rèn)同的價(jià)值觀?

舉個(gè)例說(shuō),信仰基督教的人,它們歸為一個(gè)群體,那它們的共同的價(jià)值觀是什么?或者換個(gè)說(shuō)法,是什么在指引他們行事?

當(dāng)然是圣經(jīng),對(duì)吧。

每一個(gè)基督教徒都把圣經(jīng)做為最神圣的事物,遵守圣經(jīng)的教導(dǎo)是基督教徒的行事標(biāo)準(zhǔn),對(duì)吧。

與此類似,理所當(dāng)然的,我們程序員也會(huì)有自己的"圣經(jīng)"。

那做為一個(gè)程序員,當(dāng)你在寫代碼時(shí),你有沒有思考過(guò),自己的"圣經(jīng)"是什么?

從本周起,我將闡述我對(duì)編碼之道的理解與思考,這是第一篇:程序員的"圣經(jīng)"

技術(shù)只是工具

由于我過(guò)去的經(jīng)歷,我編碼的經(jīng)驗(yàn)遍歷后端,移動(dòng)端以及前端,所以我清楚幾乎每一個(gè)方向的程序員的日常工作是怎么樣的。

當(dāng)然,如果我們就每一個(gè)方向來(lái)談?wù)撍鼈兯婕暗郊夹g(shù),它們肯定是各不相同,甚至是技術(shù)上沒有太多交集。

后端的人大多使用的Java,并且與Java生態(tài)打交道,他們的詞匯是:并發(fā),集群,緩存,性能等

移動(dòng)端的人則分為幾類,iOS,Android原生開發(fā),React Native或Flutter等跨平臺(tái)開發(fā)等,它們用到的技術(shù)也各不相同,比如OC,Java或JavaScript等

而前端則主要是與JavaScript或TypeScript打交道,他們更關(guān)注的可能是兼容性與體驗(yàn),樣式等

似乎沒有太交集?

完全不是,在我看來(lái),這些工作其實(shí)毫無(wú)區(qū)別。無(wú)論是我在從事哪個(gè)技術(shù)方向的開發(fā)時(shí),我遵守的原則幾乎一致。

想像一下,你怎么看待技術(shù)?

你會(huì)發(fā)現(xiàn),在你編碼的職業(yè)經(jīng)歷中,你會(huì)遇上各種各樣的技術(shù),新的語(yǔ)言,更好的框架,更函數(shù)式的語(yǔ)法,面向大數(shù)據(jù)的技術(shù)等,你可能會(huì)認(rèn)為自己熟悉某些特定的語(yǔ)言,認(rèn)定自己使用這些語(yǔ)言會(huì)更好。

我認(rèn)為這是一個(gè)完全的錯(cuò)誤。

我把所有的語(yǔ)言,框架或各種各樣的開源的玩意當(dāng)成工具,它們都是我的工具。把自己想像成一個(gè)建筑師,我擁有很多工具,這些工具都是我在建造建筑時(shí)可以考慮使用到的東西。

我從不會(huì)限定自己只使用什么,我這些年也是這樣做的,從一個(gè)后端架構(gòu)師,使用的Java,再去用Java編寫一個(gè)Android程序,再去用OC去編寫一個(gè)iOS程序,再去用TypeScript去編寫一個(gè)跨平臺(tái)桌面程序,又去用Kotlin+Vert.x投入到響應(yīng)式編程的世界中,這些語(yǔ)言也好,技術(shù)也好,框架也好,都是我的工具而已。

我有一大堆工具,我意識(shí)到了,當(dāng)我要編寫下一個(gè)程序,解決下一個(gè)問題時(shí),我其實(shí)有非常多的工具可以選擇了。

做為一個(gè)程序員,我從來(lái)不對(duì)特定的語(yǔ)言表達(dá)虔誠(chéng),但我想程序員也得有自己的虔誠(chéng),我想要尋找一個(gè)編碼的"圣經(jīng)",它足以讓我虔誠(chéng)的遵守它,守護(hù)它,捍衛(wèi)它。

這便是程序員的"圣經(jīng)"

三個(gè)原則

我認(rèn)為做為一個(gè)程序員,最神圣的就是三個(gè)原則,它幾乎能完整無(wú)誤的定義做為一個(gè)程序員應(yīng)該如何去編碼。

它也不是空洞的理論,每一個(gè)原則都是可以通過(guò)技術(shù)實(shí)實(shí)在在的做到。而是否遵守這些原則,也是區(qū)分一個(gè)程序員是否優(yōu)秀的標(biāo)準(zhǔn)。

這三個(gè)原則就是程序員的"圣經(jīng)",

它們分別是:

  • 編寫滿足需求的代碼
  • 編寫可維護(hù)的代碼
  • 編寫易于閱讀的代碼

編碼滿足需求的代碼

這應(yīng)該非常易于理解。

我們要編寫的代碼不是憑空產(chǎn)生的,一定是為了解決某種特定的需求。

當(dāng)然,需求的來(lái)源可以有許多種,比如來(lái)自于客戶,來(lái)自于產(chǎn)品經(jīng)理,或來(lái)項(xiàng)目經(jīng)理,也許來(lái)自于自己的一些想法。這些都無(wú)所謂。

但是,最起碼的原則就是:我們要寫出滿足需求的代碼

編寫代碼就是實(shí)現(xiàn)契約的過(guò)程,提出需求的一方是期望我們理解并實(shí)現(xiàn)他們的需求,他們并不明白與理解我們是如何用代碼實(shí)現(xiàn)他們的需求的,但重要的是他們認(rèn)為與我們定義了一個(gè)契約,這個(gè)契約就是:

請(qǐng)你們用代碼來(lái)實(shí)現(xiàn)我們的需求吧,拜托了

連這一點(diǎn)都做不到的,我認(rèn)為就不要稱自己是程序員了。

編寫可維護(hù)的代碼

寫出能運(yùn)行的代碼這個(gè)太簡(jiǎn)單了,但編寫出可維護(hù)的代碼,則是個(gè)巨大的挑戰(zhàn)。

想必很多程序員都經(jīng)歷過(guò)類似的痛苦,可能進(jìn)入了一份代碼中,這份代碼在可維護(hù)性上已經(jīng)差到令人發(fā)指了,但還是得要繼續(xù)。于是常見的現(xiàn)狀是:修改一個(gè)BUG越來(lái)越困難,而且會(huì)引發(fā)更多的BUG,添加一個(gè)穩(wěn)定的新功能越來(lái)越不可能。那些不懂代碼的管理者也不知所措,于是往這個(gè)糟糕的項(xiàng)目中添加新的人員,或延長(zhǎng)每日工作時(shí)間成為了必然的選擇,但絕大多數(shù)情況下,情況壓根不會(huì)好轉(zhuǎn),可能會(huì)更糟糕。

很多程序員想必理解我在說(shuō)什么對(duì)吧,我也經(jīng)歷過(guò)類似的項(xiàng)目,記得當(dāng)時(shí)整個(gè)團(tuán)隊(duì)花了幾乎幾個(gè)月的時(shí)間就是去修復(fù)BUG,每天有專門人統(tǒng)計(jì)每日的BUG修復(fù)情況,領(lǐng)導(dǎo)們也為大家打氣。

但最終項(xiàng)目不可逆轉(zhuǎn)的失敗了。

當(dāng)然,我們不去談?wù)摼唧w原因,但無(wú)論是什么引發(fā)這種情況,做為程序員,我們都不能否定一個(gè)事實(shí)就是:

那些由我們負(fù)責(zé)編寫的一行行代碼,當(dāng)它們合在一起的時(shí)候,分工協(xié)作與合作卻越來(lái)越困難,如同一群相互嫌棄的人硬被我們堆在一起一樣。

這是典型的不可維護(hù)的代碼的表現(xiàn)。

做為一個(gè)程序員,你有責(zé)任讓自己的代碼具有可維護(hù)性,在技術(shù)的所有特性中,我認(rèn)為最重要的一個(gè)特性就是:

代碼一定要具有可維護(hù)性

做為一個(gè)程序員,你要努力寫出可維護(hù)的代碼。

編寫易于閱讀的代碼

代碼的可閱讀性我把它分為三個(gè)層次:

  1. 機(jī)器能讀懂的代碼
  2. 自己能讀懂的代碼
  3. 別人能讀懂的代碼

無(wú)論你的代碼寫的多差勁,只要它接受一個(gè)輸入,并能輸出一個(gè)符合期望的結(jié)果,那你這份代碼就達(dá)到了機(jī)器能讀懂的境界了。

再往上一層的要求就是讓自己讀懂。可能很多人會(huì)認(rèn)為自己寫的代碼怎么會(huì)自己讀不懂?

當(dāng)然,我說(shuō)的不是讓你去閱讀自己上周寫的代碼,而是說(shuō)讓你去閱讀你過(guò)去的,你已經(jīng)有一段時(shí)間沒有參與的代碼中,我相信一定有一些人可能對(duì)于自己過(guò)去寫的代碼可能不是非常理解了,得費(fèi)勁思考一下才能明白當(dāng)初自己寫的這份代碼是干什么的。

要求最高的就是讓別人讀懂,在我們程序員這個(gè)群體中,幾乎有一個(gè)共通性,就是不太愿意接手別人的代碼。我想這之中一個(gè)很重要的原因就是,別人寫的代碼我們不太容易讀懂。

這也從反面反應(yīng)出,寫出一份能讓別人讀懂的代碼,其實(shí)是有著一定的難度的。

想要寫出易于閱讀的代碼,就得寫出簡(jiǎn)潔的代碼,寫出優(yōu)雅的代碼,能做到這種程度的程序員實(shí)在不多。

它們是"圣經(jīng)"

理所當(dāng)然的,能遵守并做到上述三個(gè)原則的程序員,都可稱之為優(yōu)秀的程序員,反之則不是。

所以,我把這幾個(gè)原則稱為"圣經(jīng)"。

只要稍微思考下,無(wú)論你是后端,前端或是移動(dòng)端還是其它什么技術(shù)方向,這幾個(gè)原則幾乎無(wú)一例外的能覆蓋到你編碼這件事情上。

這便是我所思考的程序員的最高原則。

我將它們時(shí)刻牢記在心,虔誠(chéng)的遵守它們,守護(hù)它們。

你做為一個(gè)程序員,有沒有思考過(guò)自己的原則?

有了原則,再談?wù)勈姑?/h2>

這就是我這一次要講的原則,做為一個(gè)程序員,你一定得有你覺得對(duì)你而言,你不得不去遵守的原則。

一旦你能為自己確立一個(gè)正確的原則,那它將迫使你成為一個(gè)越來(lái)越優(yōu)秀的程序員,因?yàn)橹挥凶銐騼?yōu)秀才能守護(hù)你的原則。

我很難想像一個(gè)不優(yōu)秀的程序員能做到編寫滿足需求的代碼,編寫可維護(hù)的代碼以及編寫易于閱讀的代碼。

你的原則時(shí)刻守護(hù)著你,有了原則之后,下一步是什么?

你有沒有思考過(guò)這一個(gè)問題,做為一個(gè)程序員,編碼是用來(lái)做什么的,它會(huì)產(chǎn)生什么價(jià)值?

下一篇,繼續(xù)談編碼之道:編碼之道(二):軟件的價(jià)值

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/119094.html

相關(guān)文章

  • 編碼之道(終):做專業(yè)序員

    摘要:本周,編碼之道的最終章,做專業(yè)的程序員。言必行,諾必達(dá)程序員的職業(yè)素養(yǎng)中有個(gè)章節(jié)就是在講程序員如何說(shuō)是,也就是怎么去做承諾。我覺得我們的文化有更優(yōu)雅的詞來(lái)形容它,就是言必行,諾必達(dá)程序員需要謹(jǐn)慎的做出承諾,而一旦做出承諾,就要努力做到。 ...

    yacheng 評(píng)論0 收藏0
  • Java序員必讀書籍

    摘要:對(duì)于專業(yè)的開發(fā)者來(lái)說(shuō),單元測(cè)試是一項(xiàng)必備的技能,多數(shù)的程序員卻不具備測(cè)試驅(qū)動(dòng)開發(fā)的能力。對(duì)于工程來(lái)說(shuō),開源項(xiàng)目基本都嚴(yán)格遵守執(zhí)行單元測(cè)試,而很多商業(yè)的工程則在單元測(cè)試方面有所缺失。一個(gè)擁有單元測(cè)試的項(xiàng)目會(huì)變得更加容易維護(hù)和更改。   作為一名合格的Java程序員,日常工作除了上班擼代碼就是加班擼代碼。擼碼其實(shí)不難,無(wú)非詢問Google,StackOverflow,解決方法和demo一籮...

    aisuhua 評(píng)論0 收藏0
  • 聊聊加密那點(diǎn)事——PHP加密最佳實(shí)踐

    摘要:所謂對(duì)稱加密,就是加密和解密使用同一秘鑰,這也是這種加密算法最顯著的缺點(diǎn)之一。非對(duì)稱加密算法由于對(duì)稱加密在通信加密領(lǐng)域的缺陷,年和提出了非對(duì)稱加密的概念。非對(duì)稱加密,其主要缺點(diǎn)之一就是慢,適合加密少量數(shù)據(jù)。 1. 加密的目的 加密不同于密碼,加密是一個(gè)動(dòng)作或者過(guò)程,其目的就是將一段明文信息(人類或機(jī)器可以直接讀懂的信息)變?yōu)橐欢慰瓷先]有任何意義的字符,必須通過(guò)事先約定的解密規(guī)則才能將...

    lcodecorex 評(píng)論0 收藏0
  • 聊聊加密那點(diǎn)事——PHP加密最佳實(shí)踐

    摘要:所謂對(duì)稱加密,就是加密和解密使用同一秘鑰,這也是這種加密算法最顯著的缺點(diǎn)之一。非對(duì)稱加密算法由于對(duì)稱加密在通信加密領(lǐng)域的缺陷,年和提出了非對(duì)稱加密的概念。非對(duì)稱加密,其主要缺點(diǎn)之一就是慢,適合加密少量數(shù)據(jù)。 1. 加密的目的 加密不同于密碼,加密是一個(gè)動(dòng)作或者過(guò)程,其目的就是將一段明文信息(人類或機(jī)器可以直接讀懂的信息)變?yōu)橐欢慰瓷先]有任何意義的字符,必須通過(guò)事先約定的解密規(guī)則才能將...

    Mr_zhang 評(píng)論0 收藏0
  • 從小白序員路晉升為大廠高級(jí)技術(shù)專家我看過(guò)哪些書籍?(建議收藏)

    摘要:大家好,我是冰河有句話叫做投資啥都不如投資自己的回報(bào)率高。馬上就十一國(guó)慶假期了,給小伙伴們分享下,從小白程序員到大廠高級(jí)技術(shù)專家我看過(guò)哪些技術(shù)類書籍。 大家好,我是...

    sf_wangchong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<