FP,全稱為函數(shù)式編程(Functional Programming)。函數(shù)式編程是一種編程范式,強(qiáng)調(diào)將計(jì)算過(guò)程視為數(shù)學(xué)函數(shù)的計(jì)算。 Function Composition...
在學(xué)習(xí)和使用Scala FP的過(guò)程中,我們經(jīng)常發(fā)覺(jué)這條道路非常陡峭,但其實(shí)有的時(shí)候不是因?yàn)楫?dāng)前正在使用的庫(kù)或者代碼組織方式復(fù)雜,很多時(shí)候是我們對(duì)一些基本概念的理解不夠透徹。F...
背景我所在的新團(tuán)隊(duì)在為當(dāng)前一個(gè)老產(chǎn)品添加新功能的 Inception 期間, 客戶多次為我們展示了當(dāng)前產(chǎn)品的用戶使用數(shù)據(jù),用來(lái)說(shuō)明產(chǎn)品的優(yōu)化空間和要添加的新功能會(huì)帶來(lái)的價(jià)值,...
Hook是在React 16.8之后增加的一項(xiàng)新功能,能夠幫助我們?cè)诓粚慶lass的情況下使用state和其他React的相關(guān)特性。關(guān)于如何使用Hook官網(wǎng)[https://...
Proxy Proxy: 代理,即正向代理(Forward Proxy),在客戶端和另一個(gè)系統(tǒng)之間路由通信的服務(wù)器。為了從原始服務(wù)器取得內(nèi)容,客戶端向代理服務(wù)器發(fā)送一個(gè)請(qǐng)求,...
背景2020年,COVID-19 疫情出現(xiàn),到2022年,這段時(shí)間內(nèi),全球各行各業(yè)為了應(yīng)對(duì)疫情,都采取了一些行動(dòng)。2022年,俄烏開(kāi)戰(zhàn),全球都開(kāi)始或被動(dòng),或主動(dòng)的采取了一些行...
本文中提到的 Code Review,是指”代碼質(zhì)量審核“,也提到了github 中的 Pull Request,或(PR Review)是一種在開(kāi)源軟件開(kāi)發(fā)過(guò)程中被廣泛采用的 代碼質(zhì)量審核 方式。
關(guān)于Code Review 和 結(jié)對(duì)編程, 首先,他們的前提是團(tuán)隊(duì)對(duì)于工作人員能力的認(rèn)可(通過(guò)了面試,以及相應(yīng)的培訓(xùn))和信任,那么在”代碼質(zhì)量審核“這一個(gè)點(diǎn)上,差別就成了參與人數(shù),和發(fā)生時(shí)間的不同。即”集思廣益“應(yīng)該發(fā)生在何時(shí)?結(jié)對(duì)編程認(rèn)為,在寫代碼的過(guò)程中,可以一直存在兩人的討論(小范圍的集思廣益),然后提交代碼。在代碼合并后,依然可以通過(guò)大范圍的(團(tuán)隊(duì)內(nèi))Code Review,來(lái)進(jìn)行回顧,如果有問(wèn)題,持續(xù)改進(jìn)和維護(hù)。因此,單看結(jié)對(duì)編程和Code Review,理應(yīng)沒(méi)有沖突。
但是 當(dāng)Code Review 結(jié)合了 Github的PR Review 流程,就不是這樣了。因?yàn)檫@是在流程上的強(qiáng)制控制,它的前提是建立在Code Owner 對(duì)于代碼質(zhì)量負(fù)責(zé),并且并不充分信任 Contributor 的代碼能力的基礎(chǔ)上。因此,它在代碼并合并前,建立了一套強(qiáng)制的審核機(jī)制,審核通過(guò)才能合并。也就是說(shuō),如果想要順暢的合并代碼,必須要有其他具有一定上下問(wèn)的人花時(shí)間完成Review才能繼續(xù)。如果,考慮到敏捷概念中的持續(xù)集成概念,那么這種關(guān)鍵節(jié)點(diǎn)(合并代碼前)的人工不可控流程的介入,必然會(huì)讓整個(gè)代碼集成過(guò)程變得不平順。
因此,對(duì)于企業(yè)內(nèi)軟件交付項(xiàng)目 與 開(kāi)源軟件項(xiàng)目,由于側(cè)重點(diǎn)不同,還是需要結(jié)合具體情況,選擇合適的實(shí)踐方式的。但我個(gè)人并不認(rèn)為 結(jié)對(duì)編程 的多重實(shí)踐效果可以被取代。??
Code Review 與 結(jié)對(duì)編程這篇文章的起因是在《“敏捷中國(guó)史”交流群》群里的一個(gè)爭(zhēng)論,我希望能夠通過(guò)這篇文章說(shuō)明自己的一個(gè)觀點(diǎn):相對(duì)于結(jié)對(duì)編程,Code Review是一種更加合理與普適性的研發(fā)實(shí)踐。 ...
勘誤:“它們會(huì)給你完全不同的體驗(yàn)。從整體來(lái)看,我將 TDD 的實(shí)踐歸納為 2個(gè)階段:”
此處應(yīng)為 “3 個(gè)階段”, 文章在調(diào)整時(shí)出現(xiàn)紕漏,明天會(huì)更新。
“叕”談 TDD(三)--- 如何TDD背景:重新閱讀了以下 可以引發(fā)思考 的 陳年老文《TDD并不是那么美》[https://coolshell.cn/articles/3649.html]《TEST-DRIVE...
你好,雖未能謀面,但我感謝你能耐心的讀到這里。這至少說(shuō)明你對(duì)測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的興趣不低。我寫這個(gè)系列的文章,并沒(méi)有抱著一定要推廣測(cè)試驅(qū)動(dòng)開(kāi)發(fā)實(shí)踐的目的。而是希望有更多的人,能通過(guò)...
背景:重新閱讀了以下 可以引發(fā)思考 的 陳年老文《TDD并不是那么美》[https://coolshell.cn/articles/3649.html]《TEST-DRIVE...
背景今年,我開(kāi)始了使用敏捷軟件交付工程實(shí)踐的第五個(gè)年頭,在編程知識(shí)滿足工作需求之余,我開(kāi)始重新審視這些融入日常的工程實(shí)踐方式,去嘗試找出實(shí)際與理論的差距,分析差距的成因,基于...
背景:重新閱讀了以下 可以引發(fā)思考 的 陳年老文《TDD并不是那么美》[https://coolshell.cn/articles/3649.html]《TEST-DRIVE...
背景:重新閱讀了以下 可以引發(fā)思考 的 陳年老文《TDD并不是那么美》[https://coolshell.cn/articles/3649.html]《TEST-DRIVE...
日常工作中,經(jīng)常會(huì)遇到一種情況,看到別人寫的好的 repo 希望能夠?qū)W習(xí)瞻仰,一番觀摩之后發(fā)現(xiàn)一些問(wèn)題,因而需要對(duì)代碼做一波修改,修改之后希望能夠貢獻(xiàn)在源代碼上,但是又因?yàn)闆](méi)...
為什么小明改造自己要花很久,小偷卻一下就偷走了手機(jī)???
小偷是什么?
淺談控制反轉(zhuǎn)與依賴注入注:本文轉(zhuǎn)載于:https://zhuanlan.zhihu.com/p/33492169 第一章:小明和他的手機(jī) 從前有個(gè)人叫小明 我們用一段簡(jiǎn)單的偽代碼,來(lái)制造一個(gè)這樣的...
在上一篇《關(guān)于原則、模式、框架的概念梳理》中,我提到最近在學(xué)習(xí)一些基礎(chǔ)理論,例如一些簡(jiǎn)單的編程原則,設(shè)計(jì)模式等。那么本文就來(lái)談?wù)勎覍?duì)于控制反轉(zhuǎn)這個(gè)概念的理解。因?yàn)榧兇馐莻€(gè)人學(xué)...
背景:在網(wǎng)上查找 IoC 相關(guān)的知識(shí),蹦出來(lái)最多的是 Java Spring 的工作原理...略有不解,為啥我查一個(gè)原則,給我一堆工具的工作原理說(shuō)明 ??? 所以嘗試梳理清楚:...