程式語言文法簡化 (was: [問題] 從文字檔讀取먠…
: 推 Schelfaniel:Java 規定就是這樣,不想寫 public 就用 Scala 吧 08/20 11:36
: 推 PsMonkey:樓上拉票拉很大.... [誤] 08/20 11:46
: → Schelfaniel:我是覺得語言本身就應該提供一些能省略的機制的, 像是 08/20 11:57
: → Schelfaniel:美國真多加拿大人 其實是 (在)美國(有)真多加拿大人 08/20 11:59
: 推 PsMonkey:嗯.. 持反對意見 XD 08/20 13:23
: → sbrhsieh:就這個問題而言,五樓提出的建議是本末倒置。 08/20 16:06
: 推 puzi:樓上認真了....XD 08/20 21:33
: → Schelfaniel:本末倒置嘛?如果我和你功力一樣,少打個public就比較快 08/21 09:26
: 推 qrtt1:寫程式又不是打字比賽,快慢意義不大。 08/21 09:29
: → Schelfaniel:好吧,反過來說好了 Java 的 default 出現率很低... 08/21 09:40
: → Schelfaniel:如果把 default 和 public 反過來 (default 要多打字) 08/21 09:42
: → Schelfaniel:這樣整體程式一口氣可以少掉一堆 public 看起來很簡潔 08/21 09:43
: → Schelfaniel:至少我覺得讓程式簡潔一點也沒什咩不對,當然你可以說 08/21 09:44
: → Schelfaniel:"Java這樣比較習慣"或是"讓新手知道要用public"之類的 08/21 09:46
: → Schelfaniel:如果要用Java,Java的規定就是要遵守,少打就是不行的 08/21 09:49
: 推 PsMonkey:請不要推文成章.... 08/21 11:20
對於這個觀點, 我個人是中立立場 :P
有些情況下, 能少打也不失為一件好事,
但少打幾個字簡潔些並不一定都是好處.
有些情況下, 是真的要 programmer explicitly
確認自己真的要做某些東西, 就算這些東西是最
常見的也好.
比如 C# 在 override 的時候要加上 override
keyword (現在 java 也可以加 @Override 了,
不過相比之下 C# 的做法比較好), 雖然 99% 的情
況下, 你都是要override 的, 但萬一有一次, 你
其實是想建一個新 method, 怎麼不小心和 super
class 的 method 同名了, compiler 就可以靠著
你少打這字提出 warning/error.
類似情況, 我在開發公司 framework 也有遇到, 有時
看來 "沒聲明" 的情況下, 給予某種 default 處理
好像很方便也理所當然, 但某些情況下的確會讓程式
的可讀性及可維護性變低. 有些情況下我還是覺得逼
developer 不斷 explicitly 聲明, 你不聲明我就當
你不需要比較好
public 要 explicit, 某程度我覺得是由 C++
或其他 OOP 的做法帶過來, 但當初別人決定 public
雖然是最常用但還是要 explicitly 聲明, 很可能就
是因為他們覺得東西不該隨意給其他人看到, 除非你
真的想給別人看. 萬一有人是忘了給 accessibility
modifier 而不是故意不給的話, 那東西就不該給其他
人看到, 所以 C++ 是當成 private, Java 可能因為覺
package 內或 child class 的都是 "自家人" 所以把
accessibilty 侷限在這.
當然, by default 是不是該讓所有人看到你的 member,
這個可以商榷, 我要帶出的是, 有時多打些字, 雖然寫
來有點煩悶, 看起來又有點累贅, 但有時這些累贅也是
有他存在的價值的. :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.155.236.82
※ 編輯: adrianshum 來自: 202.155.236.82 (08/21 12:03)
推
08/21 12:09, , 1F
08/21 12:09, 1F
推
08/21 12:09, , 2F
08/21 12:09, 2F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 7 篇):