最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

10條讓開(kāi)發(fā)者受益終生的編碼原則

2021-07-11 19:24 作者:DevWeekly  | 我要投稿

添加微信:code_7steps,備注“進(jìn)群”,邀請(qǐng)你加入大牛云集的技術(shù)交流群!

目前大多數(shù)開(kāi)發(fā)者對(duì)于編碼有一種固有印象,認(rèn)為編碼就是利用計(jì)算機(jī)語(yǔ)言實(shí)現(xiàn)一些復(fù)雜邏輯或者數(shù)學(xué)公式,讓計(jì)算機(jī)能夠按照我們的指令去完成相應(yīng)的工作。

誠(chéng)然,這樣理解沒(méi)有任何問(wèn)題。

但是,真正的編碼技術(shù)是不僅寫(xiě)出機(jī)器能夠理解的語(yǔ)言,還要讓人類(lèi)能夠輕松閱讀和理解。

換個(gè)角度來(lái)看,寫(xiě)好代碼就相當(dāng)于寫(xiě)一個(gè)好故事。

首先,你需要正確的命名你的變量,就如同故事中的任務(wù)一樣。

其次,需要用到一些或深?yuàn)W、或淺顯易懂的詞匯來(lái)讓你的故事表下的更加透徹。

同樣,僅僅在代碼中使用高級(jí)算法并不能讓你成為一個(gè)好的編碼者!

當(dāng)我們?cè)诂F(xiàn)實(shí)世界的項(xiàng)目中,與不同團(tuán)隊(duì)和業(yè)務(wù)部門(mén)合作時(shí),需要寫(xiě)出干凈、可維護(hù)的代碼,甚至,還需要寫(xiě)出更加優(yōu)秀的代碼,使得能夠跨功能工作。

在這篇文章中,我們將看到一些概念和編碼實(shí)踐,這些概念和實(shí)踐一定能夠長(zhǎng)期幫助到你。

1. 對(duì)合適的人有合適的可見(jiàn)性

今天,我們生活在一個(gè)對(duì)技術(shù)的依賴(lài)性成倍增加的世界里,各行各業(yè)都在自動(dòng)化、優(yōu)化和擴(kuò)大業(yè)務(wù)規(guī)模。

特別是當(dāng)下工作環(huán)境中,數(shù)據(jù)驅(qū)動(dòng)解決方案的必要性是不可避免的,我們需要考慮用面向?qū)ο蟮木幊谭绞絹?lái)解決業(yè)務(wù)問(wèn)題。需要適當(dāng)?shù)某橄蠛头庋b,向不同層次的業(yè)務(wù)展示不同層次的可見(jiàn)性。

在商業(yè)領(lǐng)域通常講:“客戶(hù)只關(guān)心結(jié)果,不關(guān)心算法!

這里的客戶(hù)是廣義的,任何直接/間接使用你的解決方案的人都是你的客戶(hù),或者內(nèi)部的、或者外部的。

它可以是合作開(kāi)發(fā)者,項(xiàng)目經(jīng)理,項(xiàng)目經(jīng)理,測(cè)試團(tuán)隊(duì),或者實(shí)際的客戶(hù)本身,這取決于你做什么。

舉一個(gè)例子,一個(gè)客戶(hù)到一杯奶茶店買(mǎi)一杯奶茶,他并不想知道牛奶和水的比例是多少,他想看到的只是一個(gè)結(jié)果。

2. 模塊化的解決方案

把你的代碼放在模塊中。

img

與其給一個(gè)很長(zhǎng)的腳本/jupyter筆記本作為你的解決方案,利用import導(dǎo)入模塊。

它的優(yōu)點(diǎn)是:

  • 讓客戶(hù)的事情簡(jiǎn)單化,隱藏不必要的細(xì)節(jié)。

  • 可重復(fù)使用

  • 更容易協(xié)作

如果你對(duì)創(chuàng)建自己的Python包感興趣,請(qǐng)查看官方文檔。

3. 先創(chuàng)建一個(gè)version0的解決方案

先創(chuàng)建一個(gè)基本的解決方案。

這將使我們能夠展示一些進(jìn)展并開(kāi)始討論,這將有助于你獲得客戶(hù)的早期反饋。

一開(kāi)始就錯(cuò),總比最后錯(cuò)好。

4. 版本控制系統(tǒng)和日志記錄

當(dāng)你作為一個(gè)團(tuán)隊(duì)工作時(shí),對(duì)Git等版本控制系統(tǒng)有一定的了解是必須的。

這將確保:

  • 更容易協(xié)作和版本管理。

  • 代碼備份

  • 每一行代碼都可追溯

另外,有一個(gè)日志文件來(lái)跟蹤你的進(jìn)度和錯(cuò)誤,將大大減少調(diào)試工作。

5. 即插即用的功能

創(chuàng)建一個(gè)配置文件,用于激活/停用解決方案的各種功能,這可以在很多方面幫助我們。

如果我們對(duì)同一個(gè)問(wèn)題有多種可能的解決方案,并且需要測(cè)試所有的可能性。

你需要在一個(gè)子模塊中調(diào)試一個(gè)問(wèn)題,它不需要很多其他模塊。

如果有一個(gè)即插即用的功能,你可以簡(jiǎn)單地停用它們,避免運(yùn)行那些不需要的模塊所花費(fèi)的時(shí)間。

6. 相信人,而不是他們的代碼

在現(xiàn)實(shí)世界的編碼中,最重要的技能之一就是防御性編碼。

防御性編碼是一種以預(yù)測(cè)可能的失敗點(diǎn)為目的的編程方式。

當(dāng)你是一個(gè)大型項(xiàng)目的一部分時(shí),你將會(huì)和很多其他的開(kāi)發(fā)者合作,你將不得不創(chuàng)建具有外部輸入的模塊,這些外部輸入將是原始數(shù)據(jù)本身或其他模塊的處理輸出。

我們需要預(yù)料到人為錯(cuò)誤和現(xiàn)實(shí)世界噪音的可能性,并嘗試處理它們。

我們的想法是,我們的解決方案不應(yīng)該崩潰,如果你的模塊無(wú)法運(yùn)行,你應(yīng)該記錄錯(cuò)誤并繼續(xù)。

特別是當(dāng)我們?cè)谔幚鞟I項(xiàng)目時(shí),由于False positives,一些模塊的失敗是意料之中的,這并不意味著代碼應(yīng)該終止,這時(shí)候就需要你對(duì)這些報(bào)錯(cuò)點(diǎn)進(jìn)行預(yù)估,然后做出適當(dāng)?shù)奶幚怼?/span>

因此,做好異常處理是非常關(guān)鍵的一部分。

7. 也不要相信自己的代碼!

這個(gè)不用多說(shuō),我們是人,人是容易犯錯(cuò)的。

無(wú)論你是多么優(yōu)秀的編碼員,都要時(shí)刻接受自己犯錯(cuò)的可能性。

一旦你完成了一個(gè)模塊,休息一下。做一些別的事情,然后回來(lái)看看你的代碼。

你會(huì)驚奇地發(fā)現(xiàn),你可以很容易地找到剛才從未想到的錯(cuò)誤和優(yōu)化。

因此,這也體現(xiàn)到代碼評(píng)審的重要性。

我一直踐行一個(gè)原則:

提升代碼質(zhì)量最有效的途徑就是:多看別人的代碼,多讓別人看自己的代碼!

8. 不要對(duì)你的代碼產(chǎn)生感情!

當(dāng)你花了大量的時(shí)間進(jìn)行頭腦風(fēng)暴,學(xué)習(xí)新技術(shù),解決大量的問(wèn)題之后,你往往會(huì)對(duì)它產(chǎn)生感情,因?yàn)樗怯赡愕膭?chuàng)造力和智慧創(chuàng)造出來(lái)的東西。

誠(chéng)然,這種激情和創(chuàng)造力會(huì)讓你寫(xiě)出更好的代碼,解決復(fù)雜的挑戰(zhàn),但也有一些弊端。

你去向你的客戶(hù)過(guò)度解釋你的算法之美,而客戶(hù)并不真正關(guān)心這些。

在一個(gè)不斷發(fā)展的商業(yè)場(chǎng)景中,任何事情都可能在一天之內(nèi)發(fā)生變化。你會(huì)被要求放棄過(guò)去一年的一切工作,開(kāi)始著手一個(gè)新的項(xiàng)目,而對(duì)你的代碼產(chǎn)生感情會(huì)讓這一切變得困難。

這聽(tīng)起來(lái)可能很傻,但這是實(shí)實(shí)在在的事情,即使在這個(gè)行業(yè)工作了三年多,我有時(shí)還是會(huì)因?yàn)檫@個(gè)問(wèn)題而掙扎。

9. 只能,追求完美

最后,要接受這樣一個(gè)事實(shí):完美是無(wú)法實(shí)現(xiàn)的,只能追求。

無(wú)論你覺(jué)得今天寫(xiě)的代碼有多好,如果你會(huì)在一個(gè)月后看它,你可以想到很多方法讓它變得更好。

但只要你追求完美,就會(huì)達(dá)到卓越的境界。

10. 結(jié)語(yǔ)

我在這篇文章中討論的大部分觀(guān)點(diǎn)不僅適用于編碼,也適用于生活。

就像喬布斯說(shuō)的那樣:

每個(gè)人都應(yīng)該學(xué)習(xí)電腦編程,因?yàn)樗棠闳绾嗡伎肌?/span>

干貨推薦

為了方便大家,我花費(fèi)了半個(gè)月的時(shí)間把這幾年來(lái)收集的各種技術(shù)干貨整理到一起,其中內(nèi)容包括但不限于Python、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、計(jì)算機(jī)視覺(jué)、推薦系統(tǒng)、Linux、工程化、Java,內(nèi)容多達(dá)5T+,我把各個(gè)資源下載鏈接整理到一個(gè)文檔內(nèi),目錄如下:


img

img

img

img

所有干貨送給大家,希望能夠點(diǎn)贊支持一下!

https://pan.baidu.com/s/1eks7CUyjbWQ3A7O9cmYljA(提取碼:0000)


10條讓開(kāi)發(fā)者受益終生的編碼原則的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
湾仔区| 荔波县| 法库县| 双辽市| 秀山| 赤峰市| 普兰店市| 当涂县| 凭祥市| 大洼县| 湘乡市| 合山市| 和平县| 临夏县| 金平| 镇江市| 香河县| 青铜峡市| 永康市| 东阳市| 城固县| 会东县| 万载县| 玛纳斯县| 百色市| 上蔡县| 龙岩市| 抚宁县| 彭山县| 托克托县| 高雄县| 德庆县| 项城市| 阿拉尔市| 出国| 区。| 潢川县| 嵊州市| 九龙坡区| 阿克陶县| 静乐县|