程序猿的執業修養(四)——全力以赴,做到最好


上回我們說到責任心,趁熱打鐵,我們說說執行力。一個人只對自己尚且無法實現的願望着急感嘆是沒有用的,要達到目的、出人頭地,必須付出行動、百般努力!只要肯干,就可以超越他人一步,從平凡中脫穎而出。然而要做到這些也並非人人皆可為之,有的人只會躲在安全港灣,不用承受太多的挫折,做一天和尚撞一天鍾的過着平凡的生活。猴子們,你此時此刻在想什么呢?

懂得付出,學會吃苦

在上回當中,我們說過要適當的做一些分外之事,有很多朋友也說出了自己的看法。其實,分外之事並不是建議大家去搶別人的飯碗,我們推崇的是在幫助別人的同時獲得雙贏的效果。也有的朋友說,我做完自己的事情就可以了,至於額外的事情,做不做對我來說有多大影響呢?

好吧,來個demo吧!相信有不少朋友都爬過山吧!爬山至少有兩種方法,一種是按照修建好的山路順道而行,一種是開野路。走建好的山道,就如我們本本分分的完成工作。就算很快走到了山頂,我們也是在走別人已經設定好的人生,就如我們每天只是聽命於上司的安排而已。開野路雖然有可能會多耗費一些體力,也可能會遲一點抵達山頂,但在開辟新徑的同時也享受到了更多的樂趣(請注意,在實際項目執行的時候,時間是個關鍵因素,要根據情況而權衡)。

幫同事接水、倒垃圾、簽收個快遞啥的,也算是分外之事,這些看似平常的小事卻可以活躍氣氛、融洽兩人之間的感情,這就是所謂的意外的收獲。

懂得了付出還不夠,我們還要學會吃苦。“天將降大任於斯人也,必先苦其心志、勞其筋骨……”這些句子對我們來說已經是倒背如流了,然而有幾個人在現實生活中有過真真切切的體會?我們都希望擁有更加燦爛炫目的人生,那就得從此時此刻開始做好准備,做好接受比別人更多的挑戰、吃更多苦頭的准備!

盡心盡力,做到最好

成功是什么?有的人會說,成功是掙到很多錢!有的人會說,成功是能買得起房!有的人說,成功是有名氣!有的人說成功是自我價值的實現,無論我們是否能夠掙到很多錢、是否能買得起房、是否有名氣,關鍵在於我們是否能夠被認可。可換個角度來說,成功或者失敗還是一種習慣。你習慣了把經手的每一件事情做到最好、盡心盡力,就意味着你擁有了走向成功的習慣;如果你總是平凡的、甚至馬馬虎虎的對待自己的工作,那就意味着失敗會陪伴着你。

程序猿的常規工作是寫代碼,之所以很多時候,我們看到別人寫的代碼就能感知到該猴子的人品,就是因為每個程序猿都有自己的習慣,也就是編碼風格。比如在邏輯較為復雜的地方沒有清晰的注釋,比如在面向對象的設計中總是夾雜着各種違背面向對象的代碼,比如代碼沒有統一的格式化顯得臟亂差,甚至是沒有自己的編碼風格。話說個人衛生要做好,代碼衛生同樣也很重要!

不了解各位是否見識過這樣的代碼:

 1 switch (obj.Id)
 2 {
 3     case 1:
 4         break;
 5 
 6     case 2:
 7         break;
 8 
 9     // ...
10 
11     case 98:
12         break;
13 
14     case 99:
15         break;
16 }

不論您是否見識過,反正我是見識過!還好,該朋友沒有使用if來處理這個問題,用了switch已經是人類很大的進步了(雖然實質相同)!但是如果我們能夠使用面向對象編程的多態等概念來重構一下,就不用寫這么丑這么長這么不直觀的代碼了不是么?

如果說如上代碼還不能說明問題的話,那么我們來看看這個(這是個截圖):

這個截圖中存在多個問題:

  1. 由於架構的不合理,隨着代碼維護量的增加,單頁代碼量也在逐年累積,越來越長;
  2. 由於“bool bIsReadOnly = false;”的存在,使得“bIsReadOnly = false;”這行沒有什么意義;
  3. “LoginHelper.IsReadOnlyRole()”本身就是返回Boolean類型的,在這里又if...else了一次,有意義嗎?

這個方法的代碼重構之后:

1 #region IOrderInfoReadOnly 成員
2 
3 public bool OpenOrderReadOnly()
4 {
5     return LoginHelper.IsReadOnlyRole();
6 }
7 
8 #endregion

這個不只是代碼量的精簡,業務邏輯也更加清晰!這就是細節重構!把細節做到最好,那么整體看起來也應該不錯!

我們知道,程序猿最好怕的並不是bug,而是多變的需求,因為這會打亂他們的思路。需求多變的主要原因就是溝通不到位。如果我們的代碼不做到盡善盡美,該注釋的時候不注釋,該簡單的時候搞復雜,該復雜的時候搞簡單,這在團隊開發過程中也會帶來一堆一堆的溝通問題。我們的目的不是讓同伴們去研究自己的代碼,而是共同完成任務!

派生話題:關於加班

在本文尚未發布之時,一位朋友跟我談起加班的事情,因為經常加班,他很累。其實,加班並不能說明你的工作是盡心盡力、全力以赴的,也更加不能說明你做的很好。“加班”是個什么概念呢?那意味着你每天的工作沒有按時完成,而導致需要額外的時間去亡羊補牢。

誠然,由於需求突變、聯調測試、升級維護等等造成的硬性加班是必須的,這個我們不排斥。下班后怕堵車所以晚走一會兒,或者想看會兒書什么的造成的晚點兒離開不算是加班范疇。由於每日任務超出預估,或者當天有其他事情造成的加班,很可能是溝通協調造成的,屬於自身能力不足(不管是哪個方面的能力),這樣的我們定義為“不合理加班”。

我個人帶隊的原則就是,讓大家在白天工作時間把事情干完,謝絕加班!我曾經考慮過,如果我們的項目做大了,將來有了一定的規模,誰總是喜歡不合理的加班,那就要扣錢了!首先,工作量的控制在於溝通,不論是我帶隊還是我跟我的上司說,如果一件事情我3天可以完成,我一定會說成5天,以防不測。我們要不斷的去調整和鍛煉自己評估自身能力的能力!

如果你5天才能做完的事情非得說3天就可以,一方面是自己給自己挖坑,另方面就是自己對自己能力評估的不足!如果你提前完成了,剩余的時間內可以申請做點兒別的,也可以對自己的代碼多測試、嘗試重構。分外之事一定是別人的事情嗎?不是的,在你完成正確的業務邏輯之后,再做做測試、做做代碼重構,這也是分外之事!表面上看,公司不會因為你代碼重構的比較好給你獎勵多點兒錢(得分)。

偶爾加班可以理解,但經常性的不合理加班,就要自己好好反省一下,看看是哪方面沒有溝通好,還是自己對自己過於自信了。總而言之,我不鼓勵大家加班,長期加班給人帶來的身心壓力是非常巨大的!

總結

總是本着“差不多”就行了的觀念,那么久而久之,你就差多了!要做我們就要認真的去做,應付了事、認為沒有必要十全十美、不注重細節,那么我們離失敗就不遠了!

細節決定命運,認真做好工作中的每一個細節,全力以赴,在自己的能力范圍之內做到最好,才能握住成功之手!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM