JAzzNoTE
9 years ago
latest #31
JAzzNoTE
9 years ago
AngularJS: The Bad Bits 批評文章,最近要來寫這個觀點
立即下載
JAzzNoTE
9 years ago
The reason Angular JS will fail | OKmaya 和jQuery的比較,蠻典型的一種角度
JAzzNoTE
9 years ago
https://javascriptkicks.... 這篇還沒讀,觀點似乎較差
JAzzNoTE
9 years ago
我覺得把自己的未來賭在任何一個框架都是危險的,不過我也不欣賞那種,拒絕理解任何框架,只想用jQuery的老路去寫JavaScript的人
JAzzNoTE
9 years ago
所以我自己對這件事的解釋是:學習、使用一門框架終究有它的壽命,不要覺得這是什麼一生懸命的賭注,更替、重新學習新技術是必然的
JAzzNoTE
9 years ago
我承認Angular的學習曲線很徒峭,目前看來在未來也很有可能變成失勢的技術,所以我的看法是我要去抓出它框架設計哲學好的部分,去讀它的原碼,搞懂它的機制
JAzzNoTE
9 years ago
就像我不會用Backbone,但我還是買了一兩本書去理解這個框架的用法、思維
JAzzNoTE
9 years ago
=====
JAzzNoTE
9 years ago
我在那兩篇文章指出,我很喜歡使用Angular實作時,完全沒有「類別」的感覺,我會忘記Model和View,也不需寫事件偵聽去繫結資料→這是針對寫程式的「感覺」層面
JAzzNoTE
9 years ago
那前提是建立在我對JavaScript classical inheritence和prototypal inheritence兩種機制的理解。「我懂JavaScript的類別,但我根本不想處理類別的問題,在我寫MVC應用的時候」這就是我的心聲
JAzzNoTE
9 years ago
然後,我認為學習像Angular這樣的框架,重要的是我在使用它時「體會到這種感覺」,至於別人對它其它方面的垢病我也聽
JAzzNoTE
9 years ago
如果哪天Angular真的失勢了,而我真正想親自設計一個自己理想中的框架時,這個感覺、這個經驗是最重要的,那會決定我要避開哪些問題,保留哪些東西→這才是比較重要的,學習框架留給我們的東西,我認為
JAzzNoTE
9 years ago
大部分的coder只想當消費者,(我認為啦)這造成他們討論框架、討論工具變成一種信念的爭執,「堅持自己用得順手的,攻擊那些看得到的缺點」。而我認為,真正碰到架構設計,面對使用者、受眾、設計哲學、寫作偏好風格這些問題,真正接觸核心後,很多事都是取捨,然後我們選擇如何面對問題的方式會決定我們如何回應問題
JAzzNoTE
9 years ago
如果你認為學了一個東西就是要用20年,那真的沒話講,但如果你認為每5年10年技術就是會更替,思考的角度就會不一樣,我會去思考說「下次怎樣可以更好,這次我能留下什麼」這些問題
JAzzNoTE
9 years ago
=====
JAzzNoTE
9 years ago
最近在思考寫程式這門技藝,很多人到一個程度就停了的事情
JAzzNoTE
9 years ago
其實我也常走走停停,有時候會專心在學某個框架或LIB,但「學習怎麼用」老實講不一定真的有精進你對程式的理解或格局
JAzzNoTE
9 years ago
舉例,我昨天在讀大家對Angular的貶抑,發現說,有的人是站在堅守「jQuery多簡單啊!我一下就做好了」在反對使用框架。
我要說的是,就像jQuery這東西,它基本的邏輯就是用最底層的id + css class做選取你的HTML DOM。這些人用習慣了,用了好幾年,做任何ui啦啦、文件更新啦,當然你用這麼底層的做法都可以解決
JAzzNoTE
9 years ago
後來,出現了某些框架,把真正別的語言的MVC概念帶來這裡,而這些人並不想接受這套做法。他們覺得那有學習曲線,事情變得太多限制了,要遵守太多規則
JAzzNoTE
9 years ago
到此我都能接受,反正工作能最快解決那就好了嘛!到此我都能接受
JAzzNoTE
9 years ago
不過呢,更新的東西出來了,有人進一步用框架、用web component的概念把那些底層的操作包起來了,網頁開發開始朝更高階的方向走去,開始有人把底層封裝起來了,雖然這些標準、工具目前還在爭執階段,但這些守舊的人或許開始看不到未來的方向了,開始沒意會到,這些高階的封裝會有多少效率的增長
JAzzNoTE
9 years ago
那就像,你現在還是可以堅持用組合語言寫桌面應用啊,但為什麼不用C?這種量級的差異→程式永遠是要朝更高階且抽象化的方向走的
JAzzNoTE
9 years ago
這種觀念開始讓我回饋到,我雖然在學一些有爭議性的新工具,但即使這些工具將來失勢了,我想要抓到的重要的應該是它們藉由什麼設計概念、封裝出更高階的應用,它們如何去實作這種封裝這些抽象化的經驗
JAzzNoTE
9 years ago
「我永遠可以選擇當一個程式的消費者,使用別人開發的工具解決問題就好了。」但是所謂的優秀和平庸,差別到底在哪呢?其實大家在解決基本問題的速度上是差不多的,例如「設計一個網頁輸入表單」,但我認為真正的差別在於,優秀的人一旦有機會看到某些徵兆,他有能力把問題朝更高階的方向去封裝,效率就提升一個量級
JAzzNoTE
9 years ago
就像我昨天看電影《人造意識》,如果真的有一個人可以在13歲開發出搜尋引擎的核心,並一直靠一個人開發出人工智慧(現實上我認為那背後的工作量不可能一個人辦得到),如果這真的有可能,那那種天才依恃的是什麼?我在思考這個問題。
JAzzNoTE
9 years ago
我認為答案絕對不是他打字飛快、或人家一天可以解3個問題,他一天可以解10個(當然這有差,但我認為不會是主要的),而是他可以持續朝更高階的封裝邁進,這才是效率的關鍵
JAzzNoTE
9 years ago
但講是這樣講,「更高階」是有困難的。那包括你對抽象事物的好奇心必須非常旺盛,而且有大量的編程經驗,在那些經驗中累積出更高階封裝的思考
JAzzNoTE
9 years ago
聰明的人可以縮短這個過程,但不可能跳過它
back to top