趙云大喝一聲,挺槍驟馬殺入重圍,左沖右突,如入無人之境。那槍渾身上下,若舞梨花;遍體紛紛,如飄瑞雪。
趙云是所有歷史人物中我最喜歡的一個(gè),如果放到現(xiàn)代,他走了it的道路,一定可以成為一個(gè)編程高手。為什么?
其實(shí)古時(shí)打仗也是一門技術(shù)活,需要有勇有謀,跟it沒有什么太大的區(qū)別。打仗要修身、修技、修器才能左沖右突,如入無人之境,同樣做it也要修身、修技、修器,才能高效編程,如入無人之境。
何謂修身、修技、修器?
修身,古今都是修煉自己的體魄和思維,使自己體魄強(qiáng)健,思維敏捷
修技,古代修煉自己的武藝和兵法,如今修煉自己的設(shè)計(jì)方法、模式及設(shè)計(jì)技能
修器,子龍左手青釭劍,右手亮銀槍,跨下白龍馬,一身白盔白甲,帥到爆炸!如今我們左手xmind,右手eclipse,uml在腳下,也是無比瀟(ku)灑(bi)。
待修到山花爛漫時(shí),需求叢中過,片葉不粘身。
修身是一個(gè)很大的話題,要講個(gè)幾天幾夜了,所以我們就先略過。當(dāng)然修身之后,可以從思維的高度上確定大的方向,但是大家的看了題目也不太會(huì)關(guān)心如何修身,so pass!后面省略十萬字,我可真夠高產(chǎn)的(稿費(fèi)不要省略啊,我不怕麻煩)。
古時(shí)修技都是有秘笈,而且必須有獨(dú)門功法歷盡千辛萬苦才能修煉成功。如今好了,有很多書和視頻,還有我這種讓人醍(提)醐(壺)灌頂?shù)暮媒坛?,所以你只需要少吃一點(diǎn)苦就可以練成了,我算算啊——-你大概歷盡999辛9999苦就可以了,看少了1點(diǎn)吧。
不明真相群眾:揍他,揍他小舅子
作者:亞美蝶,揍我不行,揍我小舅子可以。
作者:哎呀,輕點(diǎn)
作者:呀,輕點(diǎn)
作者:輕點(diǎn)
作者:點(diǎn)
不明真相群眾:KO
作者:請(qǐng)讓我講完,55555
修技大概分為:
面向?qū)ο蟆⒚嫦蜻^程設(shè)計(jì)方法(心法)
uml設(shè)計(jì)語言(秘笈)
設(shè)計(jì)模式、重構(gòu)、xx最佳實(shí)踐(先輩實(shí)戰(zhàn)經(jīng)驗(yàn))
單元測試(對(duì)打練習(xí))
等修煉到10成功力,才可以繼續(xù)修煉終極秘笈架構(gòu)模式,否則會(huì)走火入魔、oom。
不明真相群眾:等一下,我們?cè)谟懻摳咝Ь幊?,你跟我們講什么面向?qū)ο螅惘偭税?!揍他,揍他小舅?/p>
此處同上,省略100字。
作者:請(qǐng)讓我講完,55555
其實(shí)看到題目我首先想到的也是編程工具的使用,以及快捷鍵的使用。后來我發(fā)現(xiàn)那只占我浪費(fèi)時(shí)間的5%-10%,真正浪費(fèi)我們時(shí)間的是:
老板說:哎呀,我們方向錯(cuò)了,我們重新搞一個(gè)方向吧?。óa(chǎn)品、碼農(nóng)、測試心中下起了大雪,好冷,好累,我要屎了,砍死他…….看在錢的份上,先饒你一條狗命)
產(chǎn)品說:哎呀,需求不是這個(gè)樣子的,我們應(yīng)該改成這樣………(碼農(nóng)心中一萬只草泥馬跑過)
測試說:哎呀,這么多bug,快來改(測試心中鄙視的看著你,菜鳥,切!)
碼農(nóng)說:哎呀,這樣地方設(shè)計(jì)不合理,我們需要重構(gòu)。哎呀,這樣地方if else好多,我暈了。哎呀,這地方出異常了。哎呀,…..(哎你媽個(gè)頭啊!你有完沒完啊!)
不明真相群眾:好像很有道理的樣子,先饒你一條狗命
作者:謝謝大俠
其實(shí)我們看看這些問題怎么來解決:
老板的問題,我先不解釋了,老板最英明!(老板在后面看著呢)?!毒鎰?chuàng)業(yè)》《精益創(chuàng)業(yè)實(shí)戰(zhàn)》,好像有點(diǎn)修身的味道。
產(chǎn)品的問題,有些錯(cuò)誤的地方,你在設(shè)計(jì)時(shí)會(huì)感覺不對(duì),那就問題所在。但是有些就是方向性的問題,這可以歸結(jié)到第一個(gè)問題。(產(chǎn)品說:這個(gè)鍋甩的好)《head first 面向?qū)ο蠓治雠c設(shè)計(jì)》《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》
測試的問題,單元測試起碼保證最基礎(chǔ)的代碼的正確性,上面集成測試,功能測試,系統(tǒng)測試才有可能正確?!秵卧獪y試之道》《測試驅(qū)動(dòng)開發(fā)》
碼農(nóng)的問題,先輩的經(jīng)驗(yàn)先學(xué)會(huì),你就不會(huì)有那么多需要哎呀的地方?!吨貥?gòu)》《Head first 設(shè)計(jì)模式》《代碼大全》,《Effective java》《代碼整潔之道》
秘笈已經(jīng)放在后面了,請(qǐng)大家笑納!
不明真相群眾:好像還不錯(cuò),看在秘笈的份上先饒你一條狗命
作者:謝謝大俠
不明真相群眾:等等,終極秘笈沒有給
作者:sorry,各位大哥,《企業(yè)架構(gòu)模式》,《大型網(wǎng)站技術(shù)架構(gòu)》
有小說講到高手已經(jīng)不需要好的武器,一片葉子,一根枯枝,都可以分分鐘秒掉一片人。還有人謠傳,最牛逼的開發(fā)人員只使用文本編輯器,巴拉巴拉,一個(gè)操作系統(tǒng)開發(fā)出來了。
我只問一個(gè)問題,你用不用電器,你開不開車?
如果用,那就繼續(xù),如果不用,那就閃開,騙子,你怎們看到我的文章的。
人活著的目的就是為了讓更多人的獲得更多的自由,時(shí)間自由,財(cái)務(wù)自由,人身自由。開發(fā)工具的目的是為了,讓你更快的完成一些重復(fù)的繁瑣的事情,讓你有時(shí)間去享用你的自由。所以盡情的使用工具,工欲善其事,必先利其器。
不明真相群眾:好偉大
作者:我只是說說而已,不要打我。
要高效,必須把最常用的工具修煉到極致:
操作系統(tǒng),盡量選擇蘋果、Ubuntu,window次之,當(dāng)你用命令行爽呆的時(shí)候就明白了。當(dāng)然如果用windows,盡量使用快捷鍵操作。
開發(fā)工具,eclipse 快捷鍵,統(tǒng)一的格式,重構(gòu)功能 ,findbug,checkstyle
自動(dòng)化編譯發(fā)布,使用hudson進(jìn)行定時(shí)自動(dòng)化打包發(fā)布
其他工具,xmind 快捷鍵
時(shí)間管理,番茄工作法 控制時(shí)間
好的框架,定義好一個(gè)好的框架,可以節(jié)省大量開發(fā)時(shí)間。具體內(nèi)容詳見我前面講到的框架。
代碼生成器,輸入uml設(shè)計(jì)的類圖,自動(dòng)生成相關(guān)的類,對(duì)于需要持久化的對(duì)象,可以實(shí)現(xiàn)從前到后的增刪改查的代碼。
產(chǎn)品獲得了一個(gè)用戶需求給到我,我通常是這樣做的:
分析需求的合理性,并不是所有需求都是合理的,需要積極發(fā)現(xiàn)其中問題。發(fā)現(xiàn)的問題跟產(chǎn)品討論,如果所有問題都解決掉,才進(jìn)行下一步。如果后面的開發(fā)建立在一個(gè)錯(cuò)誤的需求上,所有開發(fā)都是然并卵。
進(jìn)行分析設(shè)計(jì),至少形成uml的用例圖和類圖。對(duì)于關(guān)鍵復(fù)雜邏輯,確定是否可以通過設(shè)計(jì)模式解決。復(fù)雜流程需要畫出流程圖,如果狀態(tài)變化較多,還需要畫出狀態(tài)圖。在uml設(shè)計(jì)時(shí),仍然會(huì)發(fā)現(xiàn)需求的問題,此時(shí)仍需要跟產(chǎn)品確定,直至所有問題解決掉,才進(jìn)行一步。
編碼實(shí)現(xiàn),根據(jù)類圖自動(dòng)生成相關(guān)代碼,省去了自己一個(gè)個(gè)再敲一遍的時(shí)間,前后端增刪改查等重復(fù)邏輯都已經(jīng)有了,只需要寫具體的業(yè)務(wù)就ok了。
編寫單元測試,對(duì)于自定義代碼,必須編寫單元測試。這樣后期修改代碼或者進(jìn)行集成測試時(shí),才會(huì)比較順暢。
進(jìn)行findbug,checkstyle自動(dòng)檢查,系統(tǒng)自動(dòng)化發(fā)布,如果出現(xiàn)問題郵件通知。
自測,自己實(shí)現(xiàn)功能后,先按照需求自測一般,保證正確性。
提交測試,發(fā)現(xiàn)bug及時(shí)修改,基本做到日結(jié)。
自動(dòng)化發(fā)布上線。
當(dāng)然中間會(huì)盡量節(jié)省各種時(shí)間:
快捷鍵操作
番茄工作法,設(shè)置不被打擾時(shí)間,全神貫注的投入編碼
3次以上重復(fù)的事情,就考慮實(shí)現(xiàn)自動(dòng)化,比如 發(fā)布,代碼檢查,代碼生成
代碼規(guī)范嚴(yán)格遵守,最優(yōu)實(shí)踐嚴(yán)格遵守
其實(shí)編碼不是一個(gè)人的事情,團(tuán)隊(duì)協(xié)作是必不可少的。團(tuán)隊(duì)盡量采用如下管理方式:
需求、設(shè)計(jì)集體參與,不需要再每人講解
設(shè)計(jì)后進(jìn)行分工,如果有新人就采取新老結(jié)合的結(jié)對(duì)編程,對(duì)復(fù)雜的代碼也采取結(jié)對(duì)編程。
推行結(jié)果導(dǎo)向,從產(chǎn)品,需求,設(shè)計(jì),開發(fā)等,不要白白浪費(fèi)時(shí)間做無結(jié)果的事情
代碼規(guī)范嚴(yán)格遵守,最優(yōu)實(shí)踐嚴(yán)格遵守
規(guī)范流程,不斷磨合各個(gè)環(huán)節(jié)人員,達(dá)到絲般順滑
人員互備,不會(huì)出現(xiàn)單點(diǎn)
上面是我做軟件以來的一些感悟,當(dāng)然一千個(gè)人眼中有一千零一個(gè)哈姆雷特,每個(gè)都會(huì)有最適合自己的方法,希望大家都早日修成自己的高效編程之道。
聯(lián)系客服