Angular有哪些設計缺陷?

時間 2021-05-30 04:21:20

1樓:ohoo

1.模組和依賴注入的機制給框架的擴充套件性和使用自由度帶來了很大限制。我司大佬在調研前端外掛程式化方案時有大量精力都是花費在解決依賴注入和AOT上;我本地開發了乙個庫想快速整合到業務專案裡除錯一下,簡單,把庫構建好npm link或者軟鏈結到專案node_modules嘛,然而並不行,因為庫實際使用的還是自己的node_modules導致依賴注入會掛掉。

總之我覺得DI解決的問題不用DI也能解決,只是看起來比較hack不學院,相反,如果我使用中本來就沒有遇到那些問題,DI本身就是個負擔。

2.基於類繼承復用邏輯,如果遇到乙個元件要復用多個邏輯的情況就很難受了。所以現在對react hooks充滿了好感。

3.元件渲染時外層會包一層元素導致開發UI庫會很麻煩。Element的解決辦法是手動移除這一層;mat是把這一層當作元件的根元素從這一層開始新增類名應用樣式;我在開發UI庫時最終選擇了遵守angular的理念並使用BEM命名規範,在元件內部新增根元素並在之上應用樣式,結果就是我和業務方用起來都難受。。。

4.模板裡用到的屬性必須是public,不能直接用列舉和工具函式,此時感覺tsx好爽。

5.構建系統難用,前段時間官方開始整合ng-packagr和其他功能後才開始好轉。

6.開發中還有遇到不少問題,據說ivy可以解決,期待一下5月吧。。。

我覺得angular太學院了,創新不足,另外自身實現時必須符合web components規範甚至把自己當作其pollyfill的限制實在是給使用造成了一些麻煩。

總的來說我覺得只用angular框架內寫寫業務還好,一旦想搞些官方還不支援的新東西,那就難受了。

任何東西都有缺陷,發現不了只是用的不夠深。為什麼看這類問題有一種粉絲維護idol的即視感\攤手

2樓:

個人認為,目前有兩點需要改進:

一、HMR,ng的HMR和vr的相比體驗真的很差,據說8.0的lvy能解決這個問題,還是挺期待的。

二、Module,在ng中過分強調ngModule的作用,而且在打包的時候,是以Module為最小單位進行切割的,這就意味著如果你僅僅只是想按需載入乙個元件,那你就必須把這個元件寫在乙個單獨的Module裡面,當然這樣的設計有利有弊吧。

3樓:COSMIC

去年接觸NG,不敢說完全理解,但是我覺得NG是傳統軟體工程思想下集大成的解決方案,他的目標是解決所有問題,設計原則就是開發領域那些說爛了的諸如SOLID原則等等的東西。如果換個人或者團隊給充裕的時間來寫NG,差不多也就這個樣子。

開發理想態必須解耦 ,解耦必談設計模式,設計的實現必然框架複雜,因為業務模組之間的解耦都是由框架提供了各種機制完成的(模板語言、依賴注入、IOC等等)。好就好在TS的出現讓NG2.0+降低了框架的複雜度,用各種語法糖降低了一部分使用成本,雖然對小白來說這還不夠。

上段話的另乙個方向的理解就是,框架的語法糖越少越簡單,受眾越廣(vue就是例子),但是解決的問題就有限。

除非將來有比TS特性更好的語言,被大家廣泛接受(無形中一部分學習成本轉移給語言);或者是一些事情可以交給瀏覽器做,這樣大家學NG(或者開發NG)的成本更低,這是相輔相成的。

雖然有點跑題,但是我覺得常人談NG缺陷很難,也許找出來一點,你首先要思考它成立不成立,我相信NG的設計是符合軟體開發標準的,但是要兼顧這個時代的限制(語言和瀏覽器),我還沒有達到質疑標準的水平。

至於說門檻高就是設計缺陷,也是有點無奈了,理想主義和工匠精神還要被同行噴(笑)。真心佩服Google,好奇是何種企業文化和機制鼓勵開源框架的發展的。

4樓:孟扎人

我錯了,我道歉,我有罪,沿用angular這個名字真**是個明智的選擇(大拇指)

最大的缺陷是名字沒起好,19年了還有好多人分不清angularjs和angular.

5樓:WuYang

對不起,還看不到設計的缺陷。光是其中的構建思想都跟不上,還談什麼設計缺陷。圍觀之。

不過,Angular首頁就寫的那麼清楚的一句:

DEVELOP ACROSS ALL PLATFORMS

6樓:

想要做全平台,但是生態又做不到,搞出了Angular + React native的玩票專案,徒增複雜度。

API繁雜,ContentChild ? ViewChild ?...

7樓:雪山隔壁

在猛糙快的專案滿天飛的時代,怎麼快怎麼來成為了最佳實踐,一切都是著眼現在而不是未來,Angular以工匠精神打磨自己,一切以高標準產出,著實不太適宜

8樓:

功能高大全,只是設計感覺過度了,為啥要分module、service、component、pipe、diractive等。文件好囉嗦,谷歌肯定把文件字數寫進KPI了。vue的概念也不少,但是就沒讓人覺得煩,這主要是文件的差距。

我們碼農就是直接,只想看使用方法,但是angular總是先要吹一波概念的合理性和先進性再介紹使用方法,而且動不動在主句裡加從句解釋乙個顯而易見的東西,讓人看了很煩躁。

vue和react在完全不懂地時候一頭扎進去是很順利就上手的,但是對angularjs也這樣幹的話,會發現一頭紮進結冰的游泳池:依賴注入怎麼回事?rxjs又是怎麼回事?

還有表單和http client雖然好用但是起碼文件挺長的。

每次修改完是瀏覽器完全重新整理,vue和react是遇到bug才這樣的,但是angular還真的是正常現象。

JavaScript 的語言設計有哪些缺陷?

迷途書童 Object instanceof Function true Function instanceof Object true 你中有我,我中有你,理解起來很費勁 Function.constructor Function.constructor.constructor.delete gl...

德語有哪些缺陷?

Ollebocip 所謂缺陷都不是缺陷。隨便舉幾個例子。1.Sie sind freundlich.看似sie和Sie沒法區分。那麼既然沒法區分,沒有語境時就要變換行文以求精準 Die sind freundlich.Es ist freundlich von Ihnen.2.Das Kind si...

沃爾沃V90有設計缺陷?

YellowUsis 每款車都有自己的長處與短處,每種工況也都有不同的表現可能有些人不在意有些人特別在意,比如沃爾沃全系幾乎都有的問題就是三檔50到60公里時發動機會抖動,我認為是扭矩不足的原因,是正常的,可有的人卻認為這是故障要去修,而這種問題是修不好的,任何品牌任何型號的發動機都不是在任何轉速下...