趙云大喝一聲,挺槍驟馬殺入重圍,左沖右突,如入無人之境。那槍渾身上下,若舞梨花;遍體紛紛,如飄瑞雪。 趙云是所有歷史人物中我最喜歡的一個(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)然修身之后,可以從思維的高度上確定大的方向,但是大家的看了題目也不太會關(guān)心如何修身,so pass!后面省略十萬字,我可真夠高產(chǎn)的(稿費(fèi)不要省略啊,我不怕麻煩)。 修技古時(shí)修技都是有秘笈,而且必須有獨(dú)門功法歷盡千辛萬苦才能修煉成功。如今好了,有很多書和視頻,還有我這種讓人醍(提)醐(壺)灌頂?shù)暮媒坛蹋阅阒恍枰俪砸稽c(diǎn)苦就可以練成了,我算算啊——-你大概歷盡999辛9999苦就可以了,看少了1點(diǎn)吧。 不明真相群眾:揍他,揍他小舅子 作者:亞美蝶,揍我不行,揍我小舅子可以。 作者:哎呀,輕點(diǎn) 作者:呀,輕點(diǎn) 作者:輕點(diǎn) 作者:點(diǎn) 不明真相群眾:KO 作者:請讓我講完,55555
修技大概分為: 等修煉到10成功力,才可以繼續(xù)修煉終極秘笈架構(gòu)模式,否則會走火入魔、oom。 其實(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,快來改(測試心中鄙視的看著你,菜鳥,切?。?/p> 碼農(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í)會感覺不對,那就問題所在。但是有些就是方向性的問題,這可以歸結(jié)到第一個(gè)問題。(產(chǎn)品說:這個(gè)鍋甩的好)《head first 面向?qū)ο蠓治雠c設(shè)計(jì)》《領(lǐng)域驅(qū)動設(shè)計(jì)》 測試的問題,單元測試起碼保證最基礎(chǔ)的代碼的正確性,上面集成測試,功能測試,系統(tǒng)測試才有可能正確。《單元測試之道》《測試驅(qū)動開發(fā)》 碼農(nóng)的問題,先輩的經(jīng)驗(yàn)先學(xué)會,你就不會有那么多需要哎呀的地方?!吨貥?gòu)》《Head first 設(shè)計(jì)模式》《代碼大全》,《Effective java》《代碼整潔之道》
秘笈已經(jīng)放在后面了,請大家笑納! 修器有小說講到高手已經(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 自動化編譯發(fā)布,使用hudson進(jìn)行定時(shí)自動化打包發(fā)布 其他工具,xmind 快捷鍵 時(shí)間管理,番茄工作法 控制時(shí)間 好的框架,定義好一個(gè)好的框架,可以節(jié)省大量開發(fā)時(shí)間。具體內(nèi)容詳見我前面講到的框架。 代碼生成器,輸入uml設(shè)計(jì)的類圖,自動生成相關(guān)的類,對于需要持久化的對象,可以實(shí)現(xiàn)從前到后的增刪改查的代碼。
實(shí)戰(zhàn)產(chǎn)品獲得了一個(gè)用戶需求給到我,我通常是這樣做的: 分析需求的合理性,并不是所有需求都是合理的,需要積極發(fā)現(xiàn)其中問題。發(fā)現(xiàn)的問題跟產(chǎn)品討論,如果所有問題都解決掉,才進(jìn)行下一步。如果后面的開發(fā)建立在一個(gè)錯(cuò)誤的需求上,所有開發(fā)都是然并卵。 進(jìn)行分析設(shè)計(jì),至少形成uml的用例圖和類圖。對于關(guān)鍵復(fù)雜邏輯,確定是否可以通過設(shè)計(jì)模式解決。復(fù)雜流程需要畫出流程圖,如果狀態(tài)變化較多,還需要畫出狀態(tài)圖。在uml設(shè)計(jì)時(shí),仍然會發(fā)現(xiàn)需求的問題,此時(shí)仍需要跟產(chǎn)品確定,直至所有問題解決掉,才進(jìn)行一步。 編碼實(shí)現(xiàn),根據(jù)類圖自動生成相關(guān)代碼,省去了自己一個(gè)個(gè)再敲一遍的時(shí)間,前后端增刪改查等重復(fù)邏輯都已經(jīng)有了,只需要寫具體的業(yè)務(wù)就ok了。 編寫單元測試,對于自定義代碼,必須編寫單元測試。這樣后期修改代碼或者進(jìn)行集成測試時(shí),才會比較順暢。 進(jìn)行findbug,checkstyle自動檢查,系統(tǒng)自動化發(fā)布,如果出現(xiàn)問題郵件通知。 自測,自己實(shí)現(xiàn)功能后,先按照需求自測一般,保證正確性。 提交測試,發(fā)現(xiàn)bug及時(shí)修改,基本做到日結(jié)。 自動化發(fā)布上線。
當(dāng)然中間會盡量節(jié)省各種時(shí)間: 快捷鍵操作 番茄工作法,設(shè)置不被打擾時(shí)間,全神貫注的投入編碼 3次以上重復(fù)的事情,就考慮實(shí)現(xiàn)自動化,比如 發(fā)布,代碼檢查,代碼生成 代碼規(guī)范嚴(yán)格遵守,最優(yōu)實(shí)踐嚴(yán)格遵守
團(tuán)隊(duì)高效其實(shí)編碼不是一個(gè)人的事情,團(tuán)隊(duì)協(xié)作是必不可少的。團(tuán)隊(duì)盡量采用如下管理方式: 需求、設(shè)計(jì)集體參與,不需要再每人講解 設(shè)計(jì)后進(jìn)行分工,如果有新人就采取新老結(jié)合的結(jié)對編程,對復(fù)雜的代碼也采取結(jié)對編程。 推行結(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á)到絲般順滑 人員互備,不會出現(xiàn)單點(diǎn)
祝福上面是我做軟件以來的一些感悟,當(dāng)然一千個(gè)人眼中有一千零一個(gè)哈姆雷特,每個(gè)都會有最適合自己的方法,希望大家都早日修成自己的高效編程之道。
|