依賴注入框架AndroidAnnotations和ButterKnife真的方便了開發者?

AndroidAnnotations12年用過,後來淘汰了,太重了。ButterKnife,是替換AndroidAnnotations出場的。在開發時,確實配合android studio的插件,一鍵生成很多代碼,連寫都不用寫。但是,在debug階段,頻繁debug時,會要了你的老命。除了奇慢無比,而且出錯的概率都提升,特別是使用android studio 3.0以上時,各種不爽都來了。但是,如果除去的話,又太多地方用到。我在團隊強調,不要用這個。但是總有人頂嘴,道理還一套一套的,說什麼要把精力放在核心功能,其實就是懶。前期懶,後期就耗時間,然後編譯慢就怪gradle,as。


... 人們在糾結這些並非很重要的東西. 其實也挺可悲的.


說說我的結論:

小項目(頁面少) 可以這麼用

如果頁面多 ( 編碼一分鐘,編譯10分鐘 ),還是找一些自動生成工具。

已經移除了butterknife

clean一下 現在 BUILD SUCCESSFUL in 2m 10s

之前 快要到11min了


AndroidAnnotation不限於view注入,功能比較多,出錯不容易找原因(提示一大堆問題),這個是有技巧的,我也是後來發現的。ButterKnife針對as有個插件,控制項多的話很方便。它較AndroidAnnotation功能少點。


關於為什麼需要「依賴注入」,以及為什麼需要「依賴注入器」,我覺得這篇文章解決了我的疑惑。

依賴注入和註解,為什麼 Java 比你想像的要好


butterknife等註解框架很好,確實能減少一些findid等操作,但是對於大項目來說,一般是不用的,因為這個對後續出現的錯誤定位是有問題的,比較好的方法還是用一些代碼生成插件而非註解框架


從來不用,覺得很麻煩


之前我也跟題主有同樣的想法:不就省幾行findViewById的代碼嗎?至少跟databinding比起來,簡直弱爆了。這次的項目中用到了butterKnife,效果比想像的好,因為控制項聲明和綁定id的代碼在一塊了,感覺更加清晰了,至少從Java代碼跳到XML里的對應控制項要方便


有利有弊,完全看個人喜好吧。

用ButterKnife確實能簡化代碼量,用了之後可讀性變差,別人看起來也費勁。

如果出現因為框架引入的bug,排查起來也困難。

所有,如果是小項目用下無妨,項目很大的情況下還是要三思。


實在不知道這樣的討論意義在什麼地方?

用註解的目的就是讓框架幫你做一些事兒,不管是生成代碼,綁定還是配置等等等等。

類似Spring data的Repository一樣,寫好介面,spring自動根據方法名生成訪問方法,注入template,生成代理, 你連實現類都不用寫就可以刷刷刷寫數據.

你覺得這樣的方式寫的彆扭,那就自己傳統寫DAO,寫實現,而且說不定自己寫的要比框架生成的代碼更好。道理都是一樣的。

工具有好有壞,就看用的人順手不。


看起來代碼一坨一坨的!噁心!


studio有個幫助你寫findid的插件,什麼註解框架,真真沒用


推薦閱讀:

UNIQLO WAKE UP 和 MUJI to Sleep 兩款軟體,哪個更成功?
前端開發 uwp軟體開發 還是安卓開發 該怎樣選擇?
「失物招領和尋物」的APP市場需求大嗎?需要注意哪些方面的問題?
如何評價Fuse?
如何看待 Android Lolipop 禁止安裝存在相互喚醒的應用的機制?

TAG:程序員 | Android開發 | 開發者 | 移動開發 | Android工程師 |

分頁阅读: 1 2