我們在做技術的同時應該注重打造我們的工程師文化

有言在先

一個團隊的文化氛圍往往決定了團隊的作戰方式,發展方向。對于技術團隊工程師文化濃厚是非常容易吸引人的,當然更吸引人才。這是很多團隊都想要的,但是文化的積累是非常困難的。首先技術團隊都得做業務,業務往往會占住很多時間,精力會分散,容易疲憊。其次一些技術使用或者開發的內容往往被封鎖在一個小圈子里,想學習的人接觸不到,即使進行技術分享,也不能深入底層,往往草草了事,看似提高的技術的氛圍,其實因時間久了,慢慢也就麻木了,容易喪失技術的引力。

關于如何建立工程師文化,可以談一下我們的經驗

我們會用很多的時間來開發業務,而業務也的確是我們工作的重點,完全不能拋開業務空談技術進步,這種技術的意義其實就是紙上談兵,最佳的方式是快速學習快速實踐,允許試錯,逐步優化,其實我們發現最好的點就是如何把業務和技術結合起來,通過技術降低業務的難度,從而提高學習的時間。分享技術,讓代碼和思想都能得到升華

工具化,框架化

我們團隊內部會每天早上開站立會,除了每日說明下昨日和今日工作情況,另外還會討論收集下目前工作中的難點和最耽誤時間的工作部分。然后后面一部分工作的內容就是如何通過技術來簡化這部分工作,通過團隊討論加自我驅動,不斷思考如何創新,優化目前的業務,讓開發變得更簡單,讓人員有更多的時間去深入技術底層。

每天我們消耗很大的精力來線上查看日志,來確定生產的問題,當初程序還很簡單,只是兩臺服務器做了負載均衡,查看日志還算簡單,幾個linux命令一組合便可以輕松檢索出日志,但是隨著業務增長,服務器開始變多,項目也逐漸變成服務化,分布式化,請求不一定會分散的服務器變多,日志變多更難查找,排序等都是問題,我們現在迫不及待的需要一個日志工具,把日志各臺機器上匯總到一臺機器上,然后通過grep命令來查找我們想要的日志內容。

但是問題隨之而來就是通過grep會越來越復雜,比如日志所在的文件夾過多,日志又經過壓縮導致命令執行起來效率并不是很高,而且對于大段大段的有上下文的日志,不能很好的展示,所以我們就是建立一個索引,這樣方便我們用web展示,另外經過我們的優化結合業務場景,日志的展示效果也得到突破,基本原來查日志需要半個小時到1個小時的時間,現在基本1分鐘搞定。

另外基于這套日志系統,圍繞日志內容,我們開辟出了報警系統,統計系統。日志系統研發過程中,需要學習和研究很多的技術細節,并持續優化和改進,現在發現我們的同步日志有時候會出現不穩定的情況,索引創建的也越來越大,需要將日志計劃向比較成熟的ELK上靠攏,研究其長處,并結合我們的系統持續發揮日志系統的特長。

開發中會使用很多成熟的開源項目,我們會結合業務使用場景對其進行擴展優化,讓框架適應我們,而不是我們去適應框架。針對一些比較復雜的業務也會自己開發框架,以便簡化了業務開發流程。日志中記錄業務id,是個很普通到不能再普通的需求,但是業務需要在所有日志每一行記錄一下業務id,甚至異常堆棧的每一行都有業務id,我們擴展了logback,以便開發人員根本不在意打印的日志內容是不是帶換行符,都可以在每一行的行首自動加入業務id。

針對一些流程模塊比較復用的業務,我們開發了模塊自動組合調度框架,可以將原本需要在業務中寫死的調度關系,抽象到XML中,通過在XML中簡單配置,就可以實現節點功能的組合,并提供循環,條件判斷等簡單邏輯。

這其中很多想法,都是團隊成員在業務開發中逐步提出的,并充分利用工作間隙開發出來,目前看來這些工作反而提高工作效率,也降低了工作強度。

適時的重構

一個項目運行久了,經過業務需求的迭代,經過很多名開發人員的變更,總會產生一些讓人不太滿意的代碼,要么來源于對某些業務理解的不太深,要么來源于對一些緊急變更的后遺癥,我們在團隊內部總是強調,盡量避免湊活,追求性能極致,追求簡單美,往往遇到這種情況,我們會適時的引入重構,避免破窗效應,讓一個項目越來越雜亂。

重構其實不僅可以重新梳理下我們的業務場景,梳理我們代碼的邏輯,讓其更貼合業務,更重要的是可以讓開發人員有機會再次設計我們的系統,結合一些更好的開源項目和技術,提升團隊的技術氛圍。

每一次重構其實對于一個項目來說都是無比艱難的決定,上有新業務的需求,下有重構的使命,時間緊迫,希望得到很好的效果,壓力都會比較大。但是就是這種環境很容易鍛煉人,使人飛速成長,通力合作,團隊也會得到很好的磨練。

1.首先我們考慮先要梳理項目的痛點,重構其實更重要是解決現在的實際問題。

日志混亂:記錄的自定義格式千奇百怪,關鍵入參和返回結果打印不全,生產運維困難,不能很快的找到一個業務流程,需要在上下文中篩選。

缺少數據字典:導致每個名詞的定義各有不同,但字面意思相近,變量千奇百怪,不方便維護。

新業務添加復雜:相近的業務代碼,沒有抽象,導致新增要通過復制粘貼,然后調整差異的地方,導致開發工作量大,bug頻出。

工具類多:每個人都各自添加各自的,其他人不知如何使用。

廢棄代碼多:廢棄代碼不知道是否有用,方法寫了,看不到引用的地方,不想刪也不敢刪。

代碼由于業務的不斷改進,邏輯已經不再那么清晰。

……

2.提出更高要求,例如提高項目承載能力,應對更大業務需求。

制定明確的開發規則,例如同層之間不允許互相調用,日志的打印細則。

明確接口,SQL的含義,避免模棱兩可的情況出現,更能精確的優化。

頻繁請求的熱數據考慮加入緩存及更新機制。

合理的優化框架,讓業務代碼更加純粹。

根據上面的總結匯總設計重構方案,并制定開發計劃,白天開發,晚上review代碼,總結調整方案。引入新的技術和新的理念。新技術對于程序員來說是有很大吸引力的,化被動學習為主動學習,技術氣氛濃厚。新的理念的引入,化解了很多舊有問題,改變了舊有開發方式,讓業務代碼更簡單。最重要的代碼再次回到開發人員的掌控中。

強化的技術氛圍

其實前面介紹的工具化,框架化和實時重構,本質上其實是簡化了我們的運維成本,同時也提高了大家對技術的鉆研興趣,用學習的技術解決實際的生產問題。另外還有挺重要一點就是平時工作中多鼓勵大家鉆研技術,鼓勵刨根問題,鼓勵知識共享。鼓勵思維創新,鼓勵組建技術小組,攻克技術難點。開展黑客馬拉松,強調競爭,合理獎賞。另外在工作之外,會組織一些游戲競賽,一來放松心情緩解疲勞,一來團隊合作增加彼此了解。

經驗總結

其實工程師文化就是一種放松的,自我驅動的技術文化,在這種文化下,通過成員的自我創新,通過技術手段,降低工作強度,優化業務數據,將技術與生產的需要相結合,并做到極致,從而使人在這個環境中得到飛速成長,團隊也飛速進步。工具化,框架化強調DRY原則,避免重復,提高工作效率。實時重構避免代碼質量惡化,重新設計提升代碼品質。技術氛圍創造來良好的環境,促進工程師文化持久留存,人人受益,團隊才會受益。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,563評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,694評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,672評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,965評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,690評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,019評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,013評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,188評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,718評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,438評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,667評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,149評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,845評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,252評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,590評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,384評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,767評論 25 708
  • 一手爛字,很可能讓孩子無緣重點高中,更別提好大學了。 所以,從小就好好練字吧,一手漂亮、規范的書寫不僅僅能讓卷面整...
    李宇航媽媽閱讀 120評論 0 1
  • 夜幕降臨的晚上天空飄灑著一絲絲細雨, 男男女女正急匆匆地行走在回家的路上。 我像天邊漫無目的白云, 茫然無措的游蕩...
    得我者幸閱讀 469評論 0 1
  • 姐姐比我大十歲,每次回家,她總會做幾個拿手好菜,嚷嚷著讓我吃飽,說是回來一趟不容易。每次回去,我和母親聊天,姐姐則...
    陪月亮摘星星閱讀 464評論 30 23
  • 離人 銀色小船搖搖晃晃,彎彎懸在絨絨天上。你的心事三三兩兩,藍藍停在我幽幽心上。月影灑在江上蕩蕩漾漾,隱隱映在你默...
    mikouer閱讀 200評論 0 0