2021年8月9日 星期一

不定時開發日記:為什麼我找不到問題的解答?

網路上程式設計教學或解疑文章成千上萬,但為什麼很少有可以解決自己問題的?

假設這裡有篇解釋「如何使用某某元件」的文章,簡單看一下會發現作者對元件的認知很正確、很充分,行文也很流暢又詳盡、不會「貼個程式碼就了事」,——這樣的文章難道也沒用嗎?

「對!這種文章往往更危險!」

為什麼?怎麼可能?

一般性的原因就不重新贅述,這裡主要是要提出一個可能沒人提過的主張:因為這些文章作者使用的模組/框架有問題。


怎麼會提到模組/框架呢?


以Android來說,Activity基本的生命週期就是種模組/框架,要示範或說明如何使用元件(或任何技術)都必須要以Activity為範例的基礎。

所以模組/框架是存在的。

假定「只要順著基本的生命週期去使用元件必然不會出錯」這是個很嚴重的錯誤假設,因為想要學習怎麼使用元件(或技術)的人很多其實都有個很複雜的商業需求擺在那邊等著他們學習後去滿足,而他們的商業需求讓他們經常要忽略生命週期這類的框架。

聽起來好像沒什麼,就好像「在主線程外更新畫面就使用Handler就好了」,偏偏Android領域中有個「HandlerLeaking」的議題,而且發送Handler還有「Looper權限」.......

以上所說還在於「如果沒正確操作,Error訊息會留下足夠的指引讓人去尋找失敗的原因與解答,」但有些東西(例如MediaPlayer的IllegalState)是根本沒有解答的!(如果有IllegalState,那LegalState的標準何在......找不到啊!找不到啊!真的找不到啊!)


這時候就會發生美妙的悲劇了!

「我按照別人的教學與範本操作,最後專案碰到了一個怎樣都解不開的問題。要整個打掉重做?來不及了!但尋找解答又永遠找不到。」