軟件不設計,加班少不了~

Linus 說過,這世界程序員之所以有高下之分,最大的區別就是程序員的“品味”不一樣。有品位的程序員和沒有品位的程序員寫出來的代碼,做出來的軟件,差距非常大。

 

或許你可以把基本功能實現,但想要做得優雅、可迭代,那就很不容易了。這其中,軟件設計就是你走向優秀程序員的必備技能。

 

爲什麼這麼說呢?想想工作中我們接觸到的軟件,是不是都在不斷修改、迭代、演化和發展。Linux 一開始只是 Linus 的練習作品,它只有最簡陋的能力。但經過 30 年的發展,已經成爲由全世界程序員貢獻的龐然大物,在世界各個角落支撐着人們的生活,迄今依然生機勃勃。

 

只要是有生命力的軟件,在其演進過程中,就會產生源源不斷的需求。而軟件設計,就是應對一波又一波需求的“算法”是整個開發週期中,最重要的階段。前期設計彈性和靈活的體系結構,在將來出現需求變更時,遇到的問題就越少。

 

具體到工作中是什麼樣子的呢?回憶一下,你是否遇到過這樣的場景:

 

  • 一直在增刪改查,缺少大局觀,悶頭寫代碼,埋下了很多自己也不知道的坑;

  • 系統出現問題時,只能頭疼醫頭,腳疼醫腳,找不到引發問題的本質原因;

  • 爲了一個小需求,要在無數的地方小心翼翼地做着各種微調,還被產品經理嫌棄改得慢;

  • 每次針對需求變更而開發的代碼,都會導致無盡的 Bug,連那些本來還好的代碼模塊也逐漸腐壞變爛;

  • 把各種代碼堆砌在一起,在出現 Bug 時,猶如“大家來找茬”一樣在其中定位問題,腦殼痛。

 

是的,你看,軟件設計沒做好,系統變得難以維護,代碼變得糟糕,Bug 層出不窮,讓開發人員陷入迷宮,掉到一個又一個坑裏。

 

這也是你爲什麼要學習軟件設計。優秀的工程師是擁抱需求變化的,他寫軟件不僅追求如何實現功能,還要考慮未來的維護和擴展;他的代碼不會毫無目的地堆在那裏,而是要考慮如何組織更爲恰當。

 

不想當將軍的士兵不是一個好士兵,不想做設計的程序員不是一個好程序員。寫程序的人誰不想操刀一個大型的系統,但不懂軟件設計的人能擺弄的代碼規模是有限的,而這也限定了你的成長高度。

 

如何設計出強壯、靈活、易維護的代碼?

 

首先,你得徹底搞懂軟件設計。

 

但是,軟件設計這個事,並不是一朝一夕就能學會的,我一開始學習,也是不得其法,比如,我發現,學了那麼多設計模式,能用上的卻沒有幾個,領域驅動設計中的概念那麼多,完全不知道該從哪學起。

 

當我真的用實踐、用時間、用錯誤、用痛苦,獲得教訓後,我才真正體會其中的精髓,其實,學習軟件設計的關鍵在於融會貫通,但這個過程,如果沒有人指引,很容易走彎路,無法串聯起整體的知識構架。

 

正好,我看到極客時間的新推出了《軟件設計之美》專欄,作者鄭曄,20 年研發老兵,他總結了一張「軟件設計學習路徑圖」,建議收藏????

             

在專欄中,鄭曄會通過 30+ 案例,帶你深入剖析軟件設計本質,並詳解典型的軟件設計思維誤區,最終帶你建立起對軟件設計的整體認知切實提高你的軟件開發能力。真正做到“多一點設計,少一點問題”。 

????掃我的二維碼,免費試讀

結算時,輸入優惠口令「zhengye88

再減 10 元,到手僅 ¥58

就「前 100 人」有效

 

鄭曄是誰?

 

鄭曄,推文科技技術VP,極客時間《10x程序員工作法》專欄作者。曾就職於火幣網,擔任首席架構師。作爲一個沉浸在軟件行業將近二十年的程序員,熱衷於探索各種程序設計語言在真實軟件開發中所能發揮的威力,致力於探尋合理的軟件開發方式。

 

他如何講解軟件設計?

 

我看了目錄,也讀了更新的文章,大概總結下我的閱後體驗。

整個專欄是按照兩個維度劃分:“瞭解現有軟件的設計”和“自己設計一個軟件”。

 

瞭解現有軟件的設計:一方面,方便你在現有的軟件上繼續添磚加瓦;另一方面,可以通過理解優秀的開源項目的設計,汲取養分。

 

慢慢地,當你在業務和技能上有了一定的積累,你將有機會做屬於自己的設計,鄭曄會給你一套,設計一個軟件的完整知識工具箱,包括 4 大核心部分:

 

  • 程序設計語言:橫跨語言學語言,讓你不再侷限於某一種語言,而是根據應用場景,擇其善者而從之;

  • 編程範式:選擇了幾個最主流的編程範式,包括結構化編程、面向對象和函數式編程,幫你建立起軟件設計的根基;

  • 設計原則與模式:給你介紹面向對象的主流設計原則,SOLID 原則。

  • 設計方法:分析 DDD 設計方法,這是當下完整、有效的應對複雜業務場景的設計方法,包括了從如何識別概念到如何建立模型。

 

學了本專欄,你會獲得什麼?

 

  • 3 個步驟,理解優秀軟件的設計

  • 典型的軟件設計思維誤區及解析

  • 設計軟件必備的 4 大知識模塊

  • 30+ 案例,深入剖析軟件設計本質

 

真正的好課值得被更多的人看到和學習,1 分鐘看看目錄,相信會找到你想要的。

       

訂閱福利

 

早鳥優惠 + 口令「zhengye88

到手價 ¥58,僅限前 100 人

????掃我的二維碼,免費試讀

 

點擊「閱讀原文」可直接購買,記得使用優惠口令「zhengye88」,以最優惠價 ¥58 入手。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章