開發(fā)流程與思考
DoD 驗(yàn)收標(biāo)準(zhǔn)列表
- DoD的每一個(gè)檢查項(xiàng)都是可驗(yàn)收的
- 在開始著手于一件事上時(shí)励饵,就需要確定好細(xì)節(jié)項(xiàng)
- 盡快消除不確定項(xiàng),達(dá)成共識(shí)
精益創(chuàng)業(yè)
- 面向不確定性創(chuàng)建新事物
- 方式論:創(chuàng)建(build )-測(cè)量(measure)-認(rèn)知(learn)踢匣,三者循環(huán)迭代
- 用最少的成本,干有價(jià)值的事
- 作為一個(gè)開發(fā)人員。在平時(shí),產(chǎn)品提出的需求雖然可行揭北,但在當(dāng)下有限的人力,物力吏颖,時(shí)間的搔体,及該需求的重要度低的情況下可延后處理。
- 開發(fā)人員遵循開發(fā)原則是 當(dāng)需求來(lái)臨時(shí)半醉,你需要知道它為什么要做疚俱,有什么意義與好處(可通過(guò)用戶故事體現(xiàn)),才能去做缩多。而不應(yīng)該逆來(lái)順受呆奕,來(lái)什么,做什么衬吆。
開發(fā)方式
從未來(lái)考慮問(wèn)題
- 進(jìn)行一次沙盤模擬
- 從結(jié)果入手梁钾,如果需要開發(fā)一個(gè)產(chǎn)品。待入上線后的情況咆槽,從未來(lái)考慮陈轿,比如上線時(shí)需要什么配置圈纺,上線后系統(tǒng)崩潰怎么辦秦忿,線上數(shù)據(jù)如何準(zhǔn)備麦射?
分解任務(wù)
- 不同層級(jí)的人,任務(wù)分解程度不同灯谣,比如作為一個(gè)剛了解開發(fā)的人潜秋,將任務(wù),分為 獲取鏈接胎许,分析峻呛,上傳三步。
- 當(dāng)任務(wù)得到合理的分解辜窑,執(zhí)行起來(lái)也就按部就班钩述,有條不紊。
- 分解成各個(gè)微操之后穆碎,也會(huì)讓任務(wù)執(zhí)行得以擁抱變化牙勘。當(dāng)被打斷時(shí)候,能很容易開啟下一個(gè)流程的開發(fā)所禀。
- 做好微任務(wù)的安排
測(cè)試先行
- 測(cè)試 - 開發(fā) - 重構(gòu) 環(huán)環(huán)相扣
- 測(cè)試先行可以更好理清當(dāng)前開發(fā)的需求方面,完成特定需要的功能
代碼防腐
代碼的不斷交接,不斷腐化
- 當(dāng)需要維護(hù)一段代碼時(shí)色徘,每個(gè)人只是完成了當(dāng)時(shí)一部分的工作恭金,代碼中的異味會(huì)越來(lái)越重
- 開發(fā)人員每當(dāng)維護(hù)別人的代碼時(shí),總是覺(jué)得別人的代碼很亂褂策。給這段代碼添加新功能時(shí)横腿,不免產(chǎn)生 “代碼都這樣了,我不能亂改斤寂,我只能按照它原來(lái)的風(fēng)格蔑水,就給它添加功能就好了” 的想法。
- 解決方法:設(shè)計(jì)原則扬蕊,SOLID搀别。
設(shè)計(jì)模式,設(shè)計(jì)原則尾抑?
- 在編程時(shí)歇父,總想著去套用一系列設(shè)計(jì)模式,當(dāng)有時(shí)卻適得其反再愈。
- 無(wú)法正確使用設(shè)計(jì)模式榜苫,或感覺(jué)其無(wú)用,往往是因?yàn)闆](méi)有形成自己的知識(shí)體系翎冲。
- 設(shè)計(jì)模式只是戰(zhàn)略上的建議垂睬,要想形成體系,靈活運(yùn)用就得領(lǐng)悟設(shè)計(jì)原則。
- 在遵循SOLID原則的前提下驹饺,進(jìn)行編碼钳枕,在不經(jīng)意間就能使用到設(shè)計(jì)模式,盡管你不知道模式的名稱
- 比如赏壹,單一職責(zé):
- Robert Martin的架構(gòu)整潔之道中鱼炒,描述單一職責(zé)為 “一個(gè)模塊僅僅對(duì)一類
角色
負(fù)責(zé)” - 有一個(gè)Employee類,有三個(gè)方法 :
- calculatePay() 是財(cái)務(wù)部門關(guān)心的
- reportHours() 是人力資源部門關(guān)心的
- save() 是系統(tǒng)業(yè)務(wù)部門關(guān)心的
- 因?yàn)閏alculatePay與reportHours都有 正常工作時(shí)間的計(jì)算蝌借,為了避免重復(fù)將它抽為 regularHours方法
- 現(xiàn) 財(cái)務(wù)部門修改正常工作時(shí)間的方式昔瞧,人力資源部不需要修改。你只看到了calculatePay調(diào)用了regularHours菩佑,所以修改了regularHours自晰,然而卻導(dǎo)致人力資源部查詢的錯(cuò)誤,從而導(dǎo)致公司受損
- 此處的regularHours 在為不同的
角色
服務(wù)稍坯,所以一旦需求變化缀磕,它就是修改的重災(zāi)區(qū) - 這個(gè)時(shí)候,就應(yīng)該將上述三個(gè)方法分拆為三個(gè)面向不同
角色
的類
- Robert Martin的架構(gòu)整潔之道中鱼炒,描述單一職責(zé)為 “一個(gè)模塊僅僅對(duì)一類
- 小到開發(fā)中的每個(gè)方法劣光,對(duì)象袜蚕。大到對(duì)大型系統(tǒng)架構(gòu)的微服務(wù)拆分,轉(zhuǎn)型绢涡。 都需要 識(shí)別不同
actor
牲剃,正確理清限界的上下文,劃分能夠獨(dú)自演進(jìn)的功能模塊
維護(hù)他人代碼時(shí)
當(dāng)接手一項(xiàng)新工作雄可,新環(huán)境時(shí)
1.業(yè)務(wù)
- 第一步先理解工作業(yè)務(wù)(做什么凿傅,解決了什么,流程是什么)
2.技術(shù)
- 了解技術(shù)棧
- 系統(tǒng)的業(yè)務(wù)架構(gòu)是什么(有哪些模塊数苫,與哪些外部系統(tǒng)有交互)
- 外部接口方式聪舒,承接的協(xié)議是什么
- 內(nèi)部各個(gè)模塊如何劃分,模塊職責(zé)是什么虐急,分層抽象的東西是什么
- 系統(tǒng)構(gòu)建的腳本箱残,代碼的結(jié)構(gòu)怎么樣的
3.團(tuán)隊(duì)運(yùn)作
- 外部:需求來(lái)源是那兒,產(chǎn)品和面向的用戶是誰(shuí)
- 內(nèi)部:定期的和日持褂酰活動(dòng)有什么被辑,企業(yè)文化