国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

程序員如何高效地進(jìn)行開發(fā)工作?Facebook的10x效率,了解一下

新聞 前端
比較流行的一個(gè)說法是 10x 程序員,也就是 10 倍程序員,意思是一個(gè)好的程序員,工作效率可以達(dá)到普通程序員的 10 倍。要做到這一點(diǎn)并不容易,我們需要在編程技術(shù)、工作方式、工具使用等方面全面提高。

 程序員如何高效地進(jìn)行開發(fā)工作?

[[318134]]

最近比較流行的一個(gè)說法是 10x 程序員,也就是 10 倍程序員,意思是一個(gè)好的程序員,

工作效率可以達(dá)到普通程序員的 10 倍。要做到這一點(diǎn)并不容易,我們需要在編程技術(shù)、工作方式、工具使用等方面全面提高。

第一條原則:抽象和分而治之

[[318135]]

拿到一個(gè)任務(wù)之后,我們要做的首先就是進(jìn)行模塊的定義,也就是抽象,然后對(duì)其分而治之

為方便理解,我再和你分享一個(gè)在 Facebook 時(shí),幾個(gè)前后端開發(fā)者同時(shí)開發(fā)一個(gè)功能的案例吧。

[[318136]]

這個(gè)功能由一個(gè)前端開發(fā)者和兩個(gè)后端開發(fā)者完成,整個(gè)研發(fā)過程至少涉及 3 個(gè)抽象和分而治之的操作:第一步,前后端模塊進(jìn)行自然的拆分。這時(shí),前后端開發(fā)者一定會(huì)一塊兒認(rèn)真討論,明確前后端代碼運(yùn)行時(shí)的流程,后端需要提供的 API,以及交付這些 API 的時(shí)間。

第二步,兩個(gè)后端開發(fā)者對(duì)后端工作進(jìn)行拆分,確定各自的工作任務(wù)和邊界。

第三步,每個(gè)開發(fā)者對(duì)自己負(fù)責(zé)的部分再進(jìn)行抽象和拆分。

在這個(gè)過程中,一定要明確模塊之間的依賴關(guān)系,盡快確定接口規(guī)格和可調(diào)用性。比如,在前后端的拆分中,常常會(huì)采用這幾個(gè)步驟處理 API:

1. 前后端開發(fā)者一起討論,明確需要的 API。

2. 后端人員會(huì)先實(shí)現(xiàn) API 的 Mock,返回符合格式規(guī)范的數(shù)據(jù)。在這個(gè)過程中,后端開發(fā)者會(huì)盡快發(fā)出代碼審查的要求給另一個(gè)后端和前端開發(fā)者,以確保格式正確。

3. Mock 實(shí)現(xiàn)之后盡快推到主倉的 master 上 (也就是 origin/master),并盡快將其部署到內(nèi)部測(cè)試環(huán)境,讓前端開發(fā)者可以使用內(nèi)部測(cè)試環(huán)境進(jìn)行開發(fā)和調(diào)試。

4. 這些 API 還不能面對(duì)用戶,通常會(huì)先使用功能開關(guān)讓它只對(duì)公司開發(fā)人員可見。這樣的話,即使 API 的代碼在 origin/master 上部署到了生產(chǎn)環(huán)境,也不會(huì)對(duì)用戶產(chǎn)生影響。

通過這樣的操作,前后端的任務(wù)拆分就順利完成了。

提高抽象和分而治之效率的一個(gè)技巧是,在設(shè)計(jì)代碼架構(gòu)時(shí)注意尋找合適的設(shè)計(jì)模式

設(shè)計(jì)模式指的是,設(shè)計(jì)過程中可以反復(fù)使用的、可以解決特定問題的設(shè)計(jì)方法,最經(jīng)典的莫過于《設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》中列舉的 23 個(gè)設(shè)計(jì)模式,以及針對(duì)企業(yè)軟件架構(gòu)的《企業(yè)應(yīng)用架構(gòu)模式》。同時(shí),我們還要注意公司內(nèi)部具體的常用模式。這些模式都是經(jīng)實(shí)踐檢驗(yàn)有效的,且傳播較廣容易理解,都可以作為你進(jìn)行模塊拆分的參照。

具體實(shí)現(xiàn)功能的過程中,也會(huì)處處體現(xiàn)分而治之的思想。最主要的一個(gè)表現(xiàn)是,每個(gè)開發(fā)者都會(huì)把自己的代碼盡量做到原子性。代碼的原子性指的是,一個(gè)提交包含一個(gè)不可分割的特性、修復(fù)或者優(yōu)化。

在實(shí)際工作中,功能往往比較大。如果只用一個(gè)提交完成一個(gè)功能,那這個(gè)提交往往會(huì)比較大,所以我們需要把這個(gè)功能再拆分為子功能。

比如,某個(gè)后端 API 的實(shí)現(xiàn),我們很可能會(huì)把它拆分成數(shù)據(jù)模型和 API 業(yè)務(wù)兩部分,但如果這樣的提交還是太大的話,可以進(jìn)一步將其拆小,把 API 業(yè)務(wù)再分為重構(gòu)和添加新業(yè)務(wù)兩部分。

總之,我們的目的是讓每個(gè)提交都做成能夠獨(dú)立完成一些任務(wù),但是又不太大。一般來說,一個(gè)提交通常不超過 800 行代碼。

第二條原則:快速迭代

[[318137]]

第一,不要追求完美,不要過度計(jì)劃,而是要盡快實(shí)現(xiàn)功能,通過不斷迭代來完善。優(yōu)秀的

架構(gòu)往往不是設(shè)計(jì)出來的,而是在實(shí)現(xiàn)過程中逐步發(fā)展、完善起來的。

Facebook 有一條常見的海報(bào)標(biāo)語,叫作“Done is better than perfect”,意思就是完成比完美要重要。要實(shí)現(xiàn)快速迭代,我們?cè)谠O(shè)計(jì)和實(shí)現(xiàn)功能時(shí)都要注意簡(jiǎn)單化。

有些開發(fā)者過于追求技術(shù),投入了大量時(shí)間去設(shè)計(jì)精美、復(fù)雜的系統(tǒng)。這樣做沒有問題,但

一定要有一個(gè)度,切忌殺雞用牛刀。因?yàn)閺?fù)雜的系統(tǒng)雖然精美,但往往不容易理解,維護(hù)成

本也比較高,修改起來更是不容易。

所以,我們?cè)?Facebook 進(jìn)行開發(fā)的時(shí)候,盡量使用簡(jiǎn)單實(shí)用的設(shè)計(jì),然后快速進(jìn)行版本

迭代。

第二,在設(shè)計(jì)的實(shí)現(xiàn)中,盡量讓自己的代碼能夠盡快運(yùn)行起來,從而盡快地驗(yàn)證結(jié)果。我們

常常會(huì)先實(shí)現(xiàn)一個(gè)可以運(yùn)行起來的腳手架,然后再持續(xù)地往里面添加內(nèi)容。

在工作中,因?yàn)橥窃谝粋€(gè)比較大的系統(tǒng)里工作,不能很容易地運(yùn)行新代碼。這時(shí),我們可以編寫腳本或者單元測(cè)試用例來觸發(fā)新寫的代碼。通常情況下,我們更傾向于使用后者,

因?yàn)檫@些測(cè)試用例,在功能開發(fā)完成上線之后,還可以繼續(xù)用于保證代碼質(zhì)量。

在我看來,在開發(fā)過程中,能觸發(fā)新寫的代碼幫助我開發(fā),是單元測(cè)試的一個(gè)重要功能。

第三,為了能夠快速進(jìn)行驗(yàn)證,一個(gè)重要實(shí)踐是設(shè)置好本地的代碼檢驗(yàn),包括靜態(tài)掃描、相關(guān)單元測(cè)試的方便運(yùn)行,以及 IDE 能夠進(jìn)行的實(shí)時(shí)檢查等。

第四,代碼寫好之后,盡快提交到主代碼倉并保證不會(huì)阻塞其他開發(fā)人員。實(shí)際上,這是代碼提交原子性的另外一個(gè)重要特點(diǎn),即代碼提交的原子性,可以保證主代碼倉在理論上能夠隨時(shí)基于 master 分支上的任何提交,構(gòu)建出可以運(yùn)行的、直接面對(duì)用戶的產(chǎn)品。在這種方式下,每個(gè)開發(fā)者在任何時(shí)候都可以基于 origin/master 進(jìn)行開發(fā),從而確保 Facebook 幾千人共主干開發(fā)時(shí)分而治之能夠順利進(jìn)行。

關(guān)于實(shí)現(xiàn)代碼提交的原子性,我還有一個(gè)小技巧,就是如果當(dāng)前編寫的代碼提交實(shí)在不方便馬上推送到 origin/master 分支上,我們也可以頻繁地 fetch origin/master 的代碼到本地,并在本地對(duì) orgin/master 進(jìn)行 rebase 來解決沖突。這樣就可以確保,我們開發(fā)的代碼是基于最新的主倉代碼,從而降低代碼完成之后 push 時(shí)沖突的可能性。

第三條原則:不要做重復(fù)的事情

[[318138]]

不做重復(fù)的事情,是很多開發(fā)模式的基礎(chǔ),也是我們非常熟悉的一條開發(fā)原則了。比如,我們把一段經(jīng)常使用的代碼封裝到一個(gè)函數(shù)里,在使用它的地方直接調(diào)用這個(gè)函數(shù)。

代碼邏輯的重復(fù),不僅僅是工作量的浪費(fèi),還會(huì)大大降低代碼的質(zhì)量和可維護(hù)性。所以,我們?cè)陂_發(fā)時(shí),需要留意重復(fù)的代碼邏輯,并進(jìn)行適當(dāng)?shù)奶幚怼?/p>

具體來說,首先是尋找重復(fù)的邏輯和代碼。在動(dòng)手實(shí)現(xiàn)功能之前,我們會(huì)花一些時(shí)間在內(nèi)部代碼倉和知識(shí)庫中進(jìn)行查找,尋找是否有類似的功能實(shí)現(xiàn),以及一些底層可以復(fù)用的庫,過程中也可以直接聯(lián)系類似功能的實(shí)現(xiàn)者進(jìn)行討論和尋求幫助。另外,有一些 IDE,比如Intellij IDEA,可以在編碼的過程中自動(dòng)探測(cè)項(xiàng)目中可能的代碼重復(fù)。

找到重復(fù)的邏輯和代碼之后,主要的處理方式是,把共同的部分抽象出來,封裝到一個(gè)模塊、類或者函數(shù)等結(jié)構(gòu)中去。

如果在開發(fā)新功能時(shí)發(fā)現(xiàn)有需要重構(gòu)的地方,一個(gè)常見的有效辦法是,先用幾個(gè)提交完成重構(gòu),然后再基于重構(gòu)用幾個(gè)提交實(shí)現(xiàn)新功能。

 

責(zé)任編輯:張燕妮 來源: 今日頭條
相關(guān)推薦

2020-11-26 16:50:21

書籍拖延癥

2019-03-29 08:13:20

程序員編程互聯(lián)網(wǎng)

2019-12-09 16:18:08

程序員數(shù)據(jù)庫技術(shù)

2020-10-08 15:01:17

開發(fā)Java程序員

2021-07-19 05:53:32

程序員工作效率效率

2016-12-06 09:12:07

Java程序員

2020-10-10 11:43:29

Java開發(fā)代碼

2014-07-14 11:28:41

2012-07-16 00:51:36

程序員效率

2012-01-17 10:34:14

程序員

2024-12-05 13:50:33

Cursor人工智能代碼

2020-09-26 22:20:52

ML自動(dòng)機(jī)器學(xué)習(xí)深度學(xué)習(xí)

2020-09-22 07:33:03

開發(fā)技能代碼

2014-03-28 10:30:20

程序員碼農(nóng)

2019-11-27 10:08:36

程序員技能開發(fā)者

2011-04-27 09:17:30

程序員

2009-06-15 10:43:45

Java程序員Java程序GC

2010-03-03 15:06:52

Android 游戲開

2020-09-26 21:23:26

程序員代碼編程

2015-11-12 10:32:13

程序員FaceBook
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产欧美一区二区精品久导航 | 天堂va在线| 91久久精品一区二区别| 午夜久久电影网| 91超碰成人| 超碰国产在线| 欧美日韩一区二区三区在线观看免 | 98精品国产高清在线xxxx天堂| 中文字幕第一页久久| 亲子伦视频一区二区三区| av网站免费观看| 成人激情视频在线观看| 欧美这里有精品| 丝袜美腿一区二区三区| 国内精彩免费自拍视频在线观看网址| 亚洲欧洲一区二区福利| 亚洲欧美三级在线| 久久久久久久综合色一本| 欧美巨大xxxx| 精品电影在线| 国产精品波多野结衣| 久久999免费视频| 天天操天天色综合| 久久综合中文| 成年永久一区二区三区免费视频| 99re99| 国偷自产av一区二区三区小尤奈| 日韩成人av网址| 久久久不卡网国产精品二区| 国产毛片一区二区三区| av中文字幕一区二区三区| 制服诱惑一区| 午夜精品三级视频福利| 欧美性xxxx极品hd满灌| 国产一区美女在线| 国产99精品一区| 欧美人体视频xxxxx| 久久精品免费网站| wwwxx欧美| 中文字幕亚洲一区二区三区| 亚洲图片自拍偷拍| 日韩电影一区二区三区| 成人污版视频| 国产在线网站| 久久久久久人妻一区二区三区| 性色av香蕉一区二区| 欧美综合欧美视频| 成人18视频在线播放| 色综合蜜月久久综合网| 激情国产在线| 欧美xx网站| 中文字幕一区二区三区在线乱码| 26uuu久久噜噜噜噜| 日韩精品最新网址| 国产欧美日韩综合| 亚洲作爱视频| 777久久精品| 国产在线1区| 亚洲精品自拍网| 欧美日韩日本网| 91国产精品91| 日韩欧美电影在线| 亚洲精品一卡二卡| 韩国一区二区视频| 99成人在线视频| 久久91视频| 日本精品一区二区三区在线播放| 欧美两根一起进3p做受视频| 九色视频成人porny| 久久久视频精品| 亚洲精品一区二区三区精华液| 亚洲日本在线天堂| 国产美女在线观看一区| 999久久久亚洲| 四虎在线精品| 亚洲色图美国十次| 在线观看麻豆视频| 人妻av中文系列| 乱色588欧美| 国产免费一区二区三区在线观看| 在线电影av不卡网址| 欧美日韩国产一区二区三区地区| 国产精品麻豆久久久| 激情伊人五月天久久综合| 亚洲精品一区二区在线看| 视频在线亚洲| 在线能看的av网址| www.亚洲.com| 日本在线免费观看视频| 国产九色porny| 日韩av高清| 91麻豆桃色免费看| 2019中文字幕在线免费观看| 最近2019免费中文字幕视频三| 日韩欧美国产三级| 91精品办公室少妇高潮对白| 亚洲人成在线播放网站岛国| 91尤物视频在线观看| 久草在线在线精品观看| 亚洲毛片视频| 中文字幕人成人乱码| 神马电影久久| 粉嫩的18在线观看极品精品| 成人精品电影在线| 波多野结依一区| 美女黄视频在线观看| 你懂的在线免费观看| 日本女优天堂99伊人| 无限资源日本好片| 国产免费成人在线| 国产欧美精品aaaaaa片| 亚洲欧美日韩另类精品一区二区三区 | 在线观看国产精品入口| 中文字幕伦av一区二区邻居| 99re8精品视频在线观看| 人人草在线视频| 久操av在线| 黄色av电影在线观看| 超碰国产在线| 成人高清免费在线播放| 一区二区三区不卡在线视频 | 国产精品日韩久久久久| 久久99精品国产99久久6尤物| 夜夜嗨av一区二区三区四区| 日韩精品视频免费| 日韩av网站导航| 亚洲黄页网在线观看| 欧美一区二区三区色| 欧美精品tushy高清| 欧美日精品一区视频| 欧美日韩国产一级二级| 欧美日韩精品一区二区天天拍小说| 色婷婷亚洲精品| 91精品办公室少妇高潮对白| 欧美香蕉大胸在线视频观看| 欧美丝袜一区二区| 日韩欧美国产中文字幕| 日韩欧美在线播放| 欧美午夜精品伦理| 欧洲一区在线观看| 欧美精选午夜久久久乱码6080| 欧美日韩黄色影视| 日韩欧美一区二区三区在线| 在线播放91灌醉迷j高跟美女| 欧美一区二区视频观看视频| 日韩欧美精品在线| 国产婷婷成人久久av免费高清 | 国产成人拍精品视频午夜网站| 日本精品在线视频 | 免费白浆视频| 成r视频免费观看在线播放| 中文字幕在线播放第一页| 蜜桃视频在线观看视频| 成人动漫在线免费观看| 91网址在线观看| 性高爱久久久久久久久| 999精品嫩草久久久久久99| 日韩视频1区| 一本色道久久综合亚洲精品酒店| 青青草国产成人a∨下载安卓| 五月精品视频| 午夜亚洲激情| 国产成人午夜视频| 国产精品久久久久影院色老大 | 国产精品扒开腿做爽爽爽视频| 国产精品一香蕉国产线看观看 | av亚洲精华国产精华精| 国产精品久久久久久久午夜片| 有坂深雪av一区二区精品| 欧美午夜精品久久久久久久| 日韩欧美在线综合网| 日韩中文av在线| 国产成人精品av| 精品乱码一区| 免费网站在线观看视频 | 国产欧美日韩最新| 欧美日韩最好看的视频| 黄网站欧美内射| 91青娱乐在线视频| 国产剧情在线| 亚洲成人a级片| 欧美日韩中文一区二区| 亚洲经典在线看| 成人午夜av电影| 亚洲国产一区二区三区| 精品日韩一区二区| 欧美激情精品在线| 国产精品高清一区二区三区| 日本丰满大乳奶| 免费亚色电影在线观看| 性开放的欧美大片| 成人黄色免费网站| 欧美xxav| 岛国一区二区三区| 福利二区91精品bt7086| 亚洲精品网站在线播放gif| 欧美在线观看网站| 色视频一区二区三区| 成人免费xx| 在线观看操人|