changyuheng 積分 1

我剛剛爬到這隻號稱辦公室之王,本來要買的,結果多找了一下,發現新的快出了。新的看起來材質好像不太一樣。

changyuheng 積分 2 編輯於

我想的方向不太一樣。有一種重複,是像開發 Android app 這樣,每一個開發 app 的人都要繼承 Activity (或 Service etc),並部分 overwrite parent 特定的實作。當很多使用 API 的開發者都在一樣的地方做相同的 overwrite 時,也可以看作是重複。

不當的抽象可粗分為二,一為對抽象對象的錯誤解讀造成的不正確的抽象架構設計或不貼切的描述,另一種是為了避免重複而做的過分集中的抽象。我們當然能避免重複,而不重複的方法就是在抽象層做統一的描述,但這同時也造成了收斂。收斂和僵化是一體兩面,因此收斂的同時也減少了彈性;實務上的影響就是未來擴充的東西,一定要能夠被抽象描述表達,這其實是一種畫地自限。

舉個簡單的例子,幾乎所有繼承 Activity 的 app 都要 call onCreate() 的 super(),這也是一種重複,那為何不在 Activity 中就統一做掉?相信這除了是原設計 Activity 的人,希望能在 Activity class 中擁有足夠凝聚的描述,也是希望使用 API 的開發者能對 Activity 的使用有一個制式的規格可以遵循。

建構程式就像拼拼圖,抽象集中的程度好比拼圖塊的大小,較集中的抽象就是較大塊的拼圖,而拼圖塊如果都太大,可能就沒辦法拼成想要的樣子。但拼圖塊太碎,也同樣不好用,而且經驗淺的程式設計師面對太小的碎塊可能會無所適從。我覺得要做出好的取捨的心法是,朝兼顧彈性、易用性但又不鬆散的方向做設計,而不是單純考量如何讓抽象層最凝聚、濃縮 (過度抽象) 或讓使用者做最少操作 (彈性最差)。

changyuheng 積分 0 編輯於

讓使用者有一致的體驗且讓平臺賺取適當的利潤,應該滿合理的吧?

changyuheng 積分 0

這樣以後 x86 only 的程式語言、執行環境就不能用在 macOS 上了。

changyuheng 積分 0

這是什麼黑科技 😂 不過這會不會產生另一個問題:需要的是運算出的結果,拿來計算出結果的中繼資料是 raw 還是 encrypted 根本沒差?

changyuheng 積分 1 編輯於

答案是什麼 😂 第二個 number 要改成 1 嗎?

changyuheng 積分 1 編輯於

It's like putting another I/O specific cache layer that supports plenty operations including batch between the kernel space and the user space, so that the transitions between the kernel mode and the user mode can be largely reduced. Relying on a bunch of magic, it increases the throughput of I/O operations.

changyuheng 積分 1

最近發現 Kotlin 的設計商 JetBrains 自己有做了一個教學系統叫做 JetBrains Academy ,透過線上教學文件和自動審核程式的機制來讓你一步一步學習 Kotlin ,我覺得還蠻不錯的,只是每次 Submit 上去都要等蠻久的就是了 XD""""

目前支援 Java, Kotlin, Python 三種語言。

changyuheng 積分 2

最近在 ARM Cortex-A8 的 Go 1.11 和 1.12 遇到疑似 GC 誤回收造成的 segmentation fault,目前不知道怎麼解,只好先降版回 1.9。

changyuheng 積分 0

我目前也是用這個,Fira Code 看不習慣。Monaco 也不錯,不過它不是 free 的。

這邊有大全集,大家可以來挑自己喜歡的: What are the best programming fonts?1

changyuheng 積分 0

雖然目前還缺乏 tagging,不過編輯部分的 Ux 已經超越了 Bear1 (IMHO)。

changyuheng 積分 0 編輯於

Pipenv 真的很雷。

life is short, you need python, but not Pipenv.

changyuheng 積分 1

這篇居然沒人回,我還以為 Mr. Stallman 是大家的精神領袖。