kaif 積分 0

在uber應該被砍掉重練好幾次了xd

IngramChen 積分 0 編輯於

沒有統合的感覺而已。新加的語法各自為政

haocheng 積分 0

Java 畢竟是 25 年的語言了,而且 Java 也不會像 Python 2 -> Python 3 那樣大改破壞向後相容,所以增加新的功能或是語法都有很多要考慮的啊

IngramChen 積分 0

結果變成這樣嗎?

p with { x = 3; }

因為沒辦法加上 default parameters 所以又要創新語法/keyword 了。

上次那個 switch 也是又加了一堆新結構,Java 的語法新方向感覺 style 沒有很統一。不像 kotlin 的概念都一樣,又融合的很好…

haocheng 積分 1 編輯於

就是輸入 API endpoint /shop/{id} 來查是定義在哪一個 controller method

剛剛又試了一下發現這個功能還在,不過只有在 Search 的 All 會出現,2020.1 是在 All/Symbols 都會看到...

haocheng 積分 1

用 API endpoint 查 controller method 的功能失效了...

koji 積分 1

indexing中可以提供部分功能看起來不錯,PR看起來我的GitHub Enterprise有點問題...

koji 積分 0

Looking to the future with Java 11 support and ZGC

koji 積分 0

還沒,但裝了可以看看檔案多大,有 8xx MB

haocheng 積分 0

2020.2 才能用耶,koji 有下載 beta 來試試看嗎?

koji 積分 0

看看我的專案,每次 index 都好久

j0n 積分 1

第一次讀 clean code 這本書是在公司的 study group, 那時候第一個直覺是... 不可能,我們不可能完全按照這本書寫的內容實作。 XD

IngramChen 積分 1

這本沒看, 看他這樣寫的確很奇怪

怎麼他自己的建議是一回事, 實作又是另一回事

koji 積分 2 編輯於

所有有些人覺得 Android API 設計得很差....XD

changyuheng 積分 2 編輯於

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

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

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

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

chchwy 積分 3 編輯於

抽象都要有明確目的,而不是盲目看到重複就抽象

對我來講,成功的抽象需要符合下面兩點之一

  1. 抽完 code 要變得容易理解
  2. 改動、增加新功能變得容易

簡單講,要反過來思考:已經確定抽象「真的有幫助」,才去進行抽象。

如果沒幫助,那就擺著很長的 if-else 沒差。

IngramChen 積分 2

所以要寫 test

如果比較好測,那通常是比較好的設計。你通常也只會重構到測試不會太難寫這樣,不會太過頭。(class 太多就測試更多,想到這你就會懶得抽這麼多層了)

測試可以引導設計,再加上一些經驗的累積大概不會錯太多。

當然如果寫的是 library ,會放出來給別人用,那又是另一種規則。

j0n 積分 0

這對我來說一直很兩難,原本單純易懂的 if-else 抽成複雜很難 trace 的 class/interface,究竟是真的有幫助還是炫技?