編程中好的習(xí)慣和本能

?????? 如果你是個(gè)程序員,那么你肯定閱讀過(guò)“養(yǎng)成良好編程習(xí)慣”的文章或書籍。這些文章里均會(huì)大篇幅的告訴你養(yǎng)成良好編程習(xí)慣的好處以及怎樣才能做到并且對(duì)其中絕大部分你深信不疑。其實(shí)我也是,一直在學(xué)習(xí)模仿中,可是在工作當(dāng)中也許并不是這樣,下面我說(shuō)一段我痛苦的經(jīng)歷。

??????? 在2015年12份,由于用戶投訴公司線上產(chǎn)品出現(xiàn)問(wèn)題急需解決。老板找到了我,經(jīng)過(guò)討論分析后不能確原因,決定將集群日志收集起來(lái)進(jìn)行分析(將近100臺(tái)的服務(wù)器)??墒侨绻唧w去做呢?這里我和老板發(fā)生了意見(jiàn)沖突,老板認(rèn)為這是臨時(shí)排查問(wèn)題讓我寫java程序分析,而我的建議是讓會(huì)寫shell的協(xié)助分析,我把要分析的東西按步驟列出來(lái)。對(duì)于“臨時(shí)”解決問(wèn)題的觀點(diǎn)我們意見(jiàn)趨向一致,但是用shell還是java來(lái)分析意見(jiàn)沖突,所以呢我列了一下優(yōu)缺點(diǎn),最終由于人手不足,決定用java去分析。

???? ?? 到此就開(kāi)始了我不堪回首的回憶。由于數(shù)據(jù)在云上面,把所有數(shù)據(jù)下載下來(lái)(壓縮后3個(gè)多G),怕影響產(chǎn)品運(yùn)行所以?開(kāi)發(fā)jar,由于我良好的編程習(xí)慣,在開(kāi)發(fā)過(guò)程中對(duì)代碼進(jìn)行了優(yōu)化,重構(gòu),功能齊全,寫了10多個(gè)接口應(yīng)對(duì)不同的字符串的不同切割、過(guò)濾、排序、計(jì)算?;艘惶斓臅r(shí)間最終扔到服務(wù)器上,可是在數(shù)據(jù)分析過(guò)程中感覺(jué)程序運(yùn)行較慢,接下來(lái)又對(duì)計(jì)算并發(fā)、磁盤寫同步進(jìn)行優(yōu)化等等??偣不ㄙM(fèi)一天半的時(shí)間加班到凌晨,雖然該把結(jié)果搞定了,可是我并沒(méi)有成就感。

???? ? ? 因?yàn)槲野l(fā)現(xiàn),我開(kāi)發(fā)了一個(gè)功能比較齊全的字符串分割、過(guò)濾、排序、計(jì)算的工具。這讓我感到非常的郁悶,因?yàn)閘inux系統(tǒng)已經(jīng)提供了很多這樣的工具,而我的目的僅僅是臨時(shí)把結(jié)果分析出來(lái)就行了,如果直接用現(xiàn)有的linux工具,也許僅僅半天的時(shí)間就搞定了。在這說(shuō)這句話,如果說(shuō)我沒(méi)由抱怨老板的意思,那我他媽就時(shí)上帝了。排除客觀原因,出現(xiàn)這種情況主要?dú)w功于我的編程習(xí)慣,做了好多無(wú)用功。接口不需要那么多,功能不需要那么齊全,也不要那么多優(yōu)化,更不需要重用的概念。

????? ?? 接下來(lái)回歸到標(biāo)題,首先說(shuō)一下習(xí)慣和本能的區(qū)別,本能不需要經(jīng)過(guò)大腦思考而由肢體根據(jù)環(huán)境做出的自然反應(yīng),那么習(xí)慣呢?個(gè)人認(rèn)為是一種人們做事的一種固定的方式,是受大腦控制的,例如思考-->代碼-->檢查-->優(yōu)化,這是程序員的一個(gè)固定的工作方式也稱為習(xí)慣。而我在上述工作中,就出現(xiàn)了代碼的優(yōu)化(重構(gòu):易理解、模塊化等)的步驟。其實(shí)針對(duì)于當(dāng)時(shí)的工作場(chǎng)景,優(yōu)化這個(gè)步驟不需要做太多的東西(或者不做),能用就行沒(méi)有必要浪費(fèi)多余的時(shí)間,尤其通用性上浪費(fèi)了很多時(shí)間,所以有時(shí)候好的習(xí)慣反而帶來(lái)不好的結(jié)果。在上述工作場(chǎng)景中,應(yīng)該嚴(yán)格以目標(biāo)為導(dǎo)向,迅速實(shí)現(xiàn)目標(biāo)為目的。

? ? ? ?? 其實(shí)不是我不知道要盡快出結(jié)果,而是不做一下子優(yōu)化,我他媽的心里難受。最后總結(jié)一句:除非你的習(xí)慣轉(zhuǎn)化為了本能,否則一定要將你的良好習(xí)慣合理運(yùn)用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,021評(píng)論 25 709
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,552評(píng)論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,679評(píng)論 18 399
  • 2010年元月28日 今天早上6:58分,你一骨碌爬起來(lái),我們以為是咋回事,你說(shuō)“今天要考試,老師讓我們?cè)琰c(diǎn)到校”...
    聽(tīng)雨聆聲閱讀 225評(píng)論 0 1
  • 君子以獨(dú)立不懼,遁世無(wú)悶。 其所以能大過(guò)于人者,乃其能獨(dú)立不懼,天下誹之亦無(wú)動(dòng)其心,舉世不見(jiàn)知而不悔,隱世而不憂悶...
    末之說(shuō)閱讀 3,096評(píng)論 0 1

友情鏈接更多精彩內(nèi)容