程序員如何才能寫出區別於IF|Else的高端代碼呢?

陶金武


對於這個問題,首先要弄明白“if else”的作用是什麼,為什麼會有那麼多“if else”的代碼邏輯;然後再來考慮如何解決這個問題。


一分為二

“if else”表述的是一分為二的情況,表示一個業務邏輯只有有種狀態,要麼是這樣,反之,就是那樣。通常是應用在一些能夠簡單分為兩種情況的環境中,在這種環境中,只有兩種可能,如果不是前一種,那麼就一定是後一種。這樣的情況放到現實環境中,似乎聽起來過於極端,也過於簡單粗暴,畢竟現實環境是很複雜的;這樣子的極端情況畢竟是少數。


那為什麼會出現那麼多“if else”的代碼呢?其實,原因很簡單,因為簡單;

  1. 很多程序員,特別是初級,偏向於簡單處理問題,並沒有深入考慮過要實現的業務邏輯,簡單粗暴地將問題一分為二的處理;

  2. 對語言基礎知識、算法和數據結構的認識和了解不夠,沒有一個深厚的基礎知識加持,很多基礎知識基本上是來自於各種論壇,技術分享,而這些信息良莠不齊,所以導致基礎知識一知半解,只知其然,不知其所以然,實現代碼邏輯的時候就會以最簡單的方式來處理;

  3. 時間限制,很多公司、項目給的開發時間是見很急、很倉促的;有的時候連需求都沒有整理清楚就開始了,因為要快速完成任務,實現代碼的時候就會按照最簡單粗暴的方式來處理;


if-else 代碼優化

  1. else 不到萬不得已,不要輕易使用,即便使用,也要清楚的在註釋中清楚、詳細的說明為什麼要使用;

  2. 遇到一分為二的代碼邏輯時,可以考慮換種方式來處理:先在if 中使用一種情況做判斷,並在其中處理完相應的代碼邏輯後,返回處理結果;剩下的就是另一種情況了,這時就不用再使用“else”來處理了;

  3. 對於if - else if else這樣的情況,可以考慮使用“枚舉 + switch”來配合處理不同情況的代碼邏輯;


持續學習

作為一個技術人員,深厚的基礎知識是行走IT江湖的內功心法,擁有深厚的內功,才能做到處變不驚;無論是學習新技術、新語言,還是提升自身實力,都是需要很深的基礎、底層知識;因為不斷學習,積累、進步就顯得尤為重要。

1.語言基礎、底層知識:

  • 良好的語言基礎;基礎的數據類型,運算符、語法、語言的各種特性,也才能更好的使用語言來實現業務邏輯;

  • 明確語言的邊界:明確該語言能做什麼、不能做什麼;有何不足,不足該如何解決;有何優勢,如何更好的發揮優勢;

  • 語言底層編譯、解釋原理:掌握源程序的編譯、解釋過程,才能知道如何才能寫出高效、性能俱佳的代碼,也能更好的實現程序優化;


2.數據結構和算法

算法是程序的靈魂,數據結構是算法的精髓;優秀的算法基礎,能夠幫助你寫出高效率、高性能的代碼;使用幾千行代碼才能實現的極其複雜的代碼邏輯,使用算法實現後,可能只需要幾百行、甚至是幾十行代碼,不過這就得要求你及其熟練的掌握數據結構和多種算法實現;


3.網絡、通信協議

網絡交互協議、通信協議、網絡分層模型的學習也是非常有必要的,比如:TCP/IP,HTTP、HTTPS\\SSL\\TLS、IPFS等。


4.操作系統

無論是Windows、Mac OSX還是Linux系統,不一定都要精通,但要精通其一,在Linux系統的良好性能、優秀設計的大背景下,Linux系統是一個不錯的方向,當然Windows也是可以考慮的方向;將來還有鴻蒙、方舟編譯、Fuchsia等。


5.架構設計

在完成了多個項目以後,就可以開始著手整理、總結整個項目的架構設計了;剛開始可以是一個簡單的小型項目,然後不斷更新,迭代,要堅持下去;等項目達到一個體量之後,可以考慮分模塊,分庫分表的設計;然後可以考慮引進分佈式部署,微服務技術。

在項目中不斷更新技術,讓自己的技術跟著自己的項目一起成長。


完結,希望以上回答能對你有所幫助。


老夫科技說


你好,很高興為你解答,我是一個不折不扣的程序員,平時開發當然也無法避免會使用IF|ELSE。當然也會有一些“高端代碼”,怎麼才能寫出區別於IF|ELSE的高端代碼呢?我覺得可以由一下幾個方面去學習:


1. 看算法書、研究算法題


算法是程序的靈魂,同樣的功能,用IF|ESLE可能要幾千行代碼,如果使用合適的算法,可能就只有幾百行代碼,甚至幾十行,例如遞歸、動態規劃算法等。



2. 閱讀源碼


這是每個優秀程序員必備的優秀品質,高端代碼不是憑空產生的,它有一定的積累過程。積累並不是閉門造車,而是開源的思維。總所周知,各大論壇、代碼共享平臺上都有一些優秀的源代碼。可以根據自己的職業方向、編程語言去閱讀源代碼,並模仿它。



3. 講千遍,不如自己動手做一遍


編程是一個需要動手的活,萬丈高樓平地起,沒有人一開始就能寫出高端代碼,都是一點點在坑裡摸爬滾打,寫一些簡單代碼,一步一步完善,一點一點進步的。我現在經過幾個月的學習,回過頭看幾個月前的代碼,都想去修復它。



編程需要不斷學習,不斷提升。什麼才是高端代碼,我現在寫的代碼一定比過去寫的高端,只要不斷學習,我未來寫的代碼,一定比現在高端。


希望我的回答能給你幫助,謝謝採納。


IT可達鴨


你這問題問得很奇怪。計算機程序離開了if else,那根本就不叫程序了。就像你蓋房子,離不開磚頭。

一個優秀的程序員並不是說要用多高級的技巧,用越簡單的語句,寫出越高效的程序,那才叫高手。


分享到:


相關文章: