l

2023年7月10日 星期一

搞笑談軟工YouTube頻道開張

July 10 18:24~18:36

 

▲用講的好像比用打字寫部落格文章還要簡單啊

緣起

6月20日Teddy舉辦「你就是寫太多測試才會沒時間: 在領域驅動設計與事件溯源架構中使用合約式設計」線上活動,並錄影。活動結束後Teddy準備把影片放到YouTube上,原本泰迪軟體就有一個YouTube頻道但是都沒有經營,只放了兩個影片。想一想,這幾年Teddy比較少寫部落格文章(常寫文章打太多字、用太多滑鼠,很容易肩頸痠痛),幹脆試著錄影用講的,看看能不能吸引到另外的客群幫泰迪軟體拉點生意。

於是,就開了搞笑談軟工YouTube頻道。目前打算先來個一年的每日更新,Teddy每天放一個影片,分享一些Teddy覺得對軟體開發人員會感到有趣且有用的知識(常識XD)。 

頻道網址在此:https://www.youtube.com/@TeddyChen,歡迎舊雨新知幫Teddy訂閱、按讚、分享、開啟小鈴噹 XD。

***

友藏內心獨白:影片一刀不剪,因為我也不會剪。

2023年7月4日 星期二

買到還不錯用的筆電收納架

July 04 18:48~19:22


  

▲圖1:把兩台筆電立起來收納

前言

Teddy有兩台筆電,第一台是2018年從Amazon買的LG gram 15,這台筆電非常棒,很輕續航力又強,這的是沒什麼好挑的。唯一的問題是年華老去,速度有點跟不上,去年不知哪根神經不對勁,居然買了Asus UX5401Z。Asus 這台筆電,才14吋但體感重量比起LG gram 15,有種沉甸甸的感覺。如果是買水果沉甸甸也就算了,買筆電沉甸甸真的不優。

不過今天不是要談筆電,而是要談筆電收納。Teddy平常在家中工作,使用的是2019 iMac 27”,筆電只有外出上課時才會用到。這兩台筆電,平時就被Teddy丟在不同的位置,平躺著有點占空間。前天晚上在PChome上面隨意選了「YUNMI 重力感應筆電直立式收納支架」,收到之後沒想到還不錯用。今天介紹這個支架,提供有需要的鄉民做為參考。

***

非廣告


 ▲圖2:PChome的產品介紹畫面

 

502元,價錢還可以。Teddy以前曾經想買一個筆電收納架放Apple Air與MacBook Pro,但後來換了iMac之後就作罷。這次是整理書桌,順便把找個架子收納筆電。看到這個產品,可以收納多台筆電,抱著可能採雷的覺悟,就買了。

 

▼開箱之後就一個塑膠做的架子,長成下面這樣。


  

▼準備放下兩台筆電,還沒放到底部,此時筆電架還沒有夾緊


▼放到底部之後,筆電架就將兩台筆電夾緊。

   

▼空拍圖


***

結論

▼收納之後將筆電放在書桌後方,留一條Type C線讓兩台筆電輪流充電,還行。

 

***

友藏內心獨白:可能因為難得沒採雷所以特別高興。

2023年7月3日 星期一

為什麼開發人員會過度設計?

July 03 23:10~23:45


  

▲圖1:軟體開發的三個圈圈


前言

今天學生問Teddy一個問題:為什麼會產生過度設計(Over Design)?開發人員的時間不是都很寶貴嗎,怎麼會做出「超出目前需要」的設計?

***

原因很多

造成過度設計的原因很多,常見的有:

  1. 需求不清:很多開發人員沒有機會或意願接觸業務人員或領域專家去持續釐清需求,因此在開發系統的時候,只能依據文件或是對於需求模糊的認知來做設計。因此,很可能產生存在於設計中,但卻不存在於需求中的軟體,如圖1的區域6。
  2. 超前佈署:不管需求是否明確,開發人員通常會有一種「預留彈性」的傾向。「雖然客戶現在沒有要求,但是這個地方如果可以這樣再那樣設計,套某某設計模式,以後需求改變就輕鬆多了。」
  3. 改動架構成本很高:這一點和超前佈署有關,但發生在軟體架構層面。因為軟體架構的修改成本很高,所以如果可以在架構設計階段就「留有彈性」,那未來的日子就好過多了。很可惜,此時的彈性絕大部分都是開發人員腦補的結果,不但沒有幫未來鋪路,反倒增加人為的複雜度。
  4. 展現技術能力:有時候,過度設計就僅是開發人員展現自我技術能力的結果。「08學得一身功夫,就該好好施展一番。先來個23個設計模式漱漱口。」
  5. 演化的結果:有時候系統初期過度設計並不明顯,但隨著系統不斷開發與重構,演化的結果導致系統存在一些過於彈性的設計。例如,想要code reuse與去除重複程式碼,就很容易產生過於彈性的設計。

***

結論

過度設計的原因很多,Teddy覺得主要還是對於需求的理解是否到位,以及對於改變的反應能力是否足夠,會造成開發人員有沒有信心只要當下做出「將將好的設計」(Just Enough Design)即可。從敏捷開發的角度來看,採用TDD/BDD/SBE的開發方法,可以讓 (Specification = Test) = Program,在理想狀況下,可以大幅減少過度設計。

***

友藏內心獨白:要做到Lean,並不容易。