程序員的工作方法

開發(fā)流程與思考

DoD 驗(yàn)收標(biāo)準(zhǔn)列表
  1. DoD的每一個(gè)檢查項(xiàng)都是可驗(yàn)收的
  2. 在開始著手于一件事上時(shí)励饵,就需要確定好細(xì)節(jié)項(xiàng)
  3. 盡快消除不確定項(xiàng),達(dá)成共識(shí)
精益創(chuàng)業(yè)
  1. 面向不確定性創(chuàng)建新事物
  2. 方式論:創(chuàng)建(build )-測(cè)量(measure)-認(rèn)知(learn)踢匣,三者循環(huán)迭代
  3. 用最少的成本,干有價(jià)值的事
  4. 作為一個(gè)開發(fā)人員。在平時(shí),產(chǎn)品提出的需求雖然可行揭北,但在當(dāng)下有限的人力,物力吏颖,時(shí)間的搔体,及該需求的重要度低的情況下可延后處理。
  5. 開發(fā)人員遵循開發(fā)原則是 當(dāng)需求來(lái)臨時(shí)半醉,你需要知道它為什么要做疚俱,有什么意義與好處(可通過(guò)用戶故事體現(xiàn)),才能去做缩多。而不應(yīng)該逆來(lái)順受呆奕,來(lái)什么,做什么衬吆。

開發(fā)方式

從未來(lái)考慮問(wèn)題
  1. 進(jìn)行一次沙盤模擬
  2. 從結(jié)果入手梁钾,如果需要開發(fā)一個(gè)產(chǎn)品。待入上線后的情況咆槽,從未來(lái)考慮陈轿,比如上線時(shí)需要什么配置圈纺,上線后系統(tǒng)崩潰怎么辦秦忿,線上數(shù)據(jù)如何準(zhǔn)備麦射?
分解任務(wù)
  1. 不同層級(jí)的人,任務(wù)分解程度不同灯谣,比如作為一個(gè)剛了解開發(fā)的人潜秋,將任務(wù),分為 獲取鏈接胎许,分析峻呛,上傳三步。
  2. 當(dāng)任務(wù)得到合理的分解辜窑,執(zhí)行起來(lái)也就按部就班钩述,有條不紊。
  3. 分解成各個(gè)微操之后穆碎,也會(huì)讓任務(wù)執(zhí)行得以擁抱變化牙勘。當(dāng)被打斷時(shí)候,能很容易開啟下一個(gè)流程的開發(fā)所禀。
  4. 做好微任務(wù)的安排
測(cè)試先行
  1. 測(cè)試 - 開發(fā) - 重構(gòu) 環(huán)環(huán)相扣
  2. 測(cè)試先行可以更好理清當(dāng)前開發(fā)的需求方面,完成特定需要的功能

代碼防腐

代碼的不斷交接,不斷腐化
  1. 當(dāng)需要維護(hù)一段代碼時(shí)色徘,每個(gè)人只是完成了當(dāng)時(shí)一部分的工作恭金,代碼中的異味會(huì)越來(lái)越重
  2. 開發(fā)人員每當(dāng)維護(hù)別人的代碼時(shí),總是覺(jué)得別人的代碼很亂褂策。給這段代碼添加新功能時(shí)横腿,不免產(chǎn)生 “代碼都這樣了,我不能亂改斤寂,我只能按照它原來(lái)的風(fēng)格蔑水,就給它添加功能就好了” 的想法。
  3. 解決方法:設(shè)計(jì)原則扬蕊,SOLID搀别。
設(shè)計(jì)模式,設(shè)計(jì)原則尾抑?
  1. 在編程時(shí)歇父,總想著去套用一系列設(shè)計(jì)模式,當(dāng)有時(shí)卻適得其反再愈。
  2. 無(wú)法正確使用設(shè)計(jì)模式榜苫,或感覺(jué)其無(wú)用,往往是因?yàn)闆](méi)有形成自己的知識(shí)體系翎冲。
  3. 設(shè)計(jì)模式只是戰(zhàn)略上的建議垂睬,要想形成體系,靈活運(yùn)用就得領(lǐng)悟設(shè)計(jì)原則。
  4. 在遵循SOLID原則的前提下驹饺,進(jìn)行編碼钳枕,在不經(jīng)意間就能使用到設(shè)計(jì)模式,盡管你不知道模式的名稱
  5. 比如赏壹,單一職責(zé):
    1. Robert Martin的架構(gòu)整潔之道中鱼炒,描述單一職責(zé)為 “一個(gè)模塊僅僅對(duì)一類 角色 負(fù)責(zé)”
    2. 有一個(gè)Employee類,有三個(gè)方法 :
      1. calculatePay() 是財(cái)務(wù)部門關(guān)心的
      2. reportHours() 是人力資源部門關(guān)心的
      3. save() 是系統(tǒng)業(yè)務(wù)部門關(guān)心的
      4. 因?yàn)閏alculatePay與reportHours都有 正常工作時(shí)間的計(jì)算蝌借,為了避免重復(fù)將它抽為 regularHours方法
    3. 現(xiàn) 財(cái)務(wù)部門修改正常工作時(shí)間的方式昔瞧,人力資源部不需要修改。你只看到了calculatePay調(diào)用了regularHours菩佑,所以修改了regularHours自晰,然而卻導(dǎo)致人力資源部查詢的錯(cuò)誤,從而導(dǎo)致公司受損
    4. 此處的regularHours 在為不同的 角色 服務(wù)稍坯,所以一旦需求變化缀磕,它就是修改的重災(zāi)區(qū)
    5. 這個(gè)時(shí)候,就應(yīng)該將上述三個(gè)方法分拆為三個(gè)面向不同角色的類
  • 小到開發(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ù)
  1. 第一步先理解工作業(yè)務(wù)(做什么凿傅,解決了什么,流程是什么)
2.技術(shù)
  1. 了解技術(shù)棧
  2. 系統(tǒng)的業(yè)務(wù)架構(gòu)是什么(有哪些模塊数苫,與哪些外部系統(tǒng)有交互)
  3. 外部接口方式聪舒,承接的協(xié)議是什么
  4. 內(nèi)部各個(gè)模塊如何劃分,模塊職責(zé)是什么虐急,分層抽象的東西是什么
  5. 系統(tǒng)構(gòu)建的腳本箱残,代碼的結(jié)構(gòu)怎么樣的
3.團(tuán)隊(duì)運(yùn)作
  1. 外部:需求來(lái)源是那兒,產(chǎn)品和面向的用戶是誰(shuí)
  2. 內(nèi)部:定期的和日持褂酰活動(dòng)有什么被辑,企業(yè)文化

當(dāng)接手一個(gè)你認(rèn)為很爛的系統(tǒng)時(shí)

1. 創(chuàng)建測(cè)試防護(hù)網(wǎng)
2. 逐步拆分,逐步整改敬惦,逐步替換 - 小步快跑
3. 構(gòu)建好獨(dú)特的領(lǐng)域模型盼理,利于劃定不同角色,限定運(yùn)作上下文
4. 在構(gòu)建時(shí)俄删,參考行業(yè)內(nèi)對(duì)于系統(tǒng)構(gòu)建比較成熟的理解宏怔。比如構(gòu)建電商領(lǐng)域時(shí)奏路,可供參考的領(lǐng)域模型非常成熟
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市臊诊,隨后出現(xiàn)的幾起案子鸽粉,更是在濱河造成了極大的恐慌,老刑警劉巖妨猩,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件潜叛,死亡現(xiàn)場(chǎng)離奇詭異秽褒,居然都是意外死亡壶硅,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門销斟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)庐椒,“玉大人,你說(shuō)我怎么就攤上這事蚂踊≡继福” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵犁钟,是天一觀的道長(zhǎng)棱诱。 經(jīng)常有香客問(wèn)我,道長(zhǎng)涝动,這世上最難降的妖魔是什么迈勋? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮醋粟,結(jié)果婚禮上靡菇,老公的妹妹穿的比我還像新娘。我一直安慰自己米愿,他們只是感情好厦凤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著育苟,像睡著了一般较鼓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上违柏,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天笨腥,我揣著相機(jī)與錄音,去河邊找鬼勇垛。 笑死脖母,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的闲孤。 我是一名探鬼主播谆级,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼烤礁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了肥照?” 一聲冷哼從身側(cè)響起脚仔,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎舆绎,沒(méi)想到半個(gè)月后鲤脏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吕朵,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年猎醇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片努溃。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡硫嘶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出梧税,到底是詐尸還是另有隱情沦疾,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布第队,位于F島的核電站哮塞,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏凳谦。R本人自食惡果不足惜忆畅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望晾蜘。 院中可真熱鬧邻眷,春花似錦、人聲如沸剔交。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)岖常。三九已至驯镊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間竭鞍,已是汗流浹背板惑。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留偎快,地道東北人冯乘。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像晒夹,于是被迫代替她去往敵國(guó)和親裆馒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子姊氓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 中國(guó)有很多年輕人,他們18,9歲或21,2歲喷好,通過(guò)自學(xué)也寫了不少代碼翔横,他們有的代碼寫的很漂亮,一些技術(shù)細(xì)節(jié)相當(dāng)出眾...
    java成功之路閱讀 2,794評(píng)論 1 7
  • 你好荡短,我是鄭曄,《10x 程序員工作法》專欄作者订雾,火幣網(wǎng)首席架構(gòu)師肢预。 程序員是一個(gè)忙碌的職業(yè)矛洞,與這個(gè)職業(yè)聯(lián)系在一起...
    言射手閱讀 790評(píng)論 0 3
  • WDW說(shuō):“愿今年所有的遺憾是明年驚喜的鋪墊洼哎。” 走飯呢沼本,發(fā)了一張和幾個(gè)俄羅斯美女的自拍合影噩峦,說(shuō):“超想發(fā)的照片,...
    魯長(zhǎng)安閱讀 164評(píng)論 0 0
  • 一、把事項(xiàng)分為A辫红、B凭涂、C三類 二、在每類事項(xiàng)中按緊急+重要排序 A類:1.監(jiān)考 2.批卷 3.交聽課筆記 4.時(shí)間...
    薔薇水靈閱讀 119評(píng)論 0 0
  • 生而為人贴妻,體驗(yàn)為的快樂(lè)切油,這個(gè)快樂(lè)不是物質(zhì)奢華,精神的奢靡名惩,而是能做些自己的快樂(lè)是建立在別人快樂(lè)基礎(chǔ)上的快樂(lè)澎胡!內(nèi)心有...
    小邱520閱讀 58評(píng)論 0 0