Soft_Job 板


LINE

網路上看到一篇文章 講的很辛酸的感覺 請問這是文章作者本身不夠強 還是Android開發者真的就是這樣的慘狀 thanks (全文頗長,節錄內文如下) https://www.jianshu.com/p/ee0ed95b9a01 請允許我用 Android 開發者的背景,描述一下我這兩年所經歷的事情: 在過去的兩年裏,我啓動了三個項目,我一直爭取,至少參與其中一個項目的開發工作。 我回過頭來看這些已經存在的項目,並分析這些項目前期所做的技術決定對整個項目的影 響。我寫了這篇文章,也製作了很多 Android 開發的高級課程,也花了很多時間在互聯 網上討論 Android 相關的主題。 即使這樣,我今天依然感覺跟不上 Android 整個生態系統的變化。可想而知,對於那些 經驗不足,需要指導的 Android 開發者而言,是多麼地絕望。我現在已經無法想像,現 在從頭開始學習 Android 的感覺。當你好不容易學會了某個框架或者工具,覺得它很好 用的時候,它或許就要過時了。現在也許是加入 Android 開發大家庭最壞的時候。 Google 正爲他們的“包容性”沾沾自喜,但這一切,對初學者來說,都是極其痛苦的。 Google 在 Android 框架中所做的事情,會導致大量的時間浪費。我們需要花費數小時的 時間才能讀完所有更改的內容,更別說在項目中應用它們了。我寧願花時間來創造價值, 而不是捨本逐末。 --
QR Code



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 107.161.88.23 (美國)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1614861768.A.1DA.html
1F:推 NDark: 邊開火邊移動 03/04 21:14
2F:推 NDark: 框架 引擎 平台 => 軍備競賽 03/04 21:30
3F:→ NDark: 開發者 := 平台競爭之下被打出去的子彈跟砲灰. 03/04 21:31
4F:推 tom77588: 要怪就怪甲骨文衝康導致谷哥轉向Kotlin,以後有新科技 03/04 21:40
5F:→ tom77588: 出來,要決定開發語言時,一定不會選Java 03/04 21:40
6F:→ wulouise: 2019 kotlin編譯時間最好的情況增加50%?2020有改善嗎? 03/04 21:43
8F:→ wulouise: ndroid-development-december-2020/ 看看2020的比對xd 03/04 21:52
9F:→ wulouise: 縮 https://bit.ly/3rlJhbW 03/04 21:53
10F:推 officeyuli: 是 現在光跑背景就有這麼多選項 http://i.imgur.com/M 03/04 22:00
11F:→ officeyuli: HEEDHJ.jpg 03/04 22:00
12F:→ officeyuli: http://i.imgur.com/HOLssjl.jpg 03/04 22:00
13F:→ officeyuli: 然後workmanager裡面還包了他們以前宣稱的幾種“完美 03/04 22:01
14F:→ officeyuli: 的解決方法” 03/04 22:01
15F:→ officeyuli: http://i.imgur.com/S2wrFgB.jpg 03/04 22:02
16F:→ NTULioner: 真的r 03/04 22:46
17F:→ lee457088: 幹我隔壁的同事也常常在幹醮每年八九月都要重新弄一次 03/04 23:38
18F:→ lee457088: Android 的東西,不然一堆套件都不能用惹 03/04 23:38
19F:→ kaibaemon: 所以才不找寫Android的工作 03/04 23:42
20F:推 scorpion: Android 真的沒事不要隨便進來 03/05 00:11
21F:→ netburst: kotlin爽爽 03/05 02:17
22F:推 baobomb: 一個框架或工具的過時 必有他的原因 像Eventbus, Asyncta 03/05 05:47
23F:→ baobomb: sk都是因為有著問題 才有人提出更好的方式 03/05 05:47
24F:→ baobomb: kotlin的出現也並不是單純的複製Java而已 也帶來很多好處 03/05 05:48
25F:推 baobomb: 如果都不追求更好更完美的框架或工具 那就乾脆WebApp弄一 03/05 05:49
26F:→ baobomb: 弄 跟眾多銀行的App一樣 能跑就好 03/05 05:49
27F:→ qweqweqweqwe: 也沒到每年要重用這麼誇張吧 並不需要全都追新的 03/05 06:26
28F:→ qweqweqweqwe: 例如dagger2都已經好幾年了 最近公司才想導入.. 03/05 06:27
29F:噓 rewqasdf: 難怪被os壟斷 從pc時代開始 03/05 07:30
30F:推 jknm0510a: dragger也是很麻煩到一個極致,所以才改良出2和hilt, 03/05 07:55
31F:→ jknm0510a: 結果就是要你繼續學吧 03/05 07:55
32F:推 siriusu: 推 baobomb 03/05 07:57
33F:→ LordCHTsai: Flutter2也來囉,歡迎學Dart 03/05 08:12
34F:→ sharek: 持續學習,了解新框架和工具能帶來的好處才是基本的吧 03/05 08:20
35F:推 doranako: 碎片化很真的很痛苦,安卓真的比蘋果難寫很多 03/05 08:21
36F:→ jobintan: 非走Native App不可嗎?轉Web app是否可行? 03/05 10:11
37F:推 baobomb: WebApp能做到的事 Native都能做到 但Native能做的事 WebA 03/05 10:26
38F:→ baobomb: pp很多做不到 光是Local Database WebApp就一堆問題了 03/05 10:26
39F:推 baobomb: 再來Dagger2 其實真的是好東西 在大型專案中 可以很有效 03/05 10:32
40F:→ baobomb: 的做到Module split 可以加快Multiple modules的編譯速 03/05 10:32
41F:→ baobomb: 度還有解耦 (不過kapt是另一個造成編譯變慢的問題) 03/05 10:32
42F:→ baobomb: 只是學習曲線很高 而且很容易錯用(很多工程師把Dagger c 03/05 10:32
43F:→ baobomb: omponents當成Static object來用 大錯特錯)但一旦學會了 03/05 10:32
44F:→ baobomb: 幾乎就等同于沒學九陽神功跟有學九陽神功的差別 03/05 10:32
45F:推 baobomb: 碎片化的好處在於方便你做Composition 如同碎片化的好的 03/05 10:36
46F:→ baobomb: 話 你應該不會覺得痛苦反而會覺得碎片復用容易而且要Depr 03/05 10:36
47F:→ baobomb: ecating的時候很方便 會覺得很痛苦 那很大機率是碎片化 03/05 10:36
48F:→ baobomb: 的不好 可以仔細看看是不是用太多inheritance.... 03/05 10:36
49F:→ baobomb: 我常常看到很多工程師很愛 inheritance 繼承的到處都是 03/05 10:37
50F:→ baobomb: 結果就是要scale或是拔功能的時候世界毀滅 03/05 10:37
51F:→ robber1234: Android更新是很快,但沒有表示什麼都要用最新的 03/05 12:34
52F:→ robber1234: 原文寫的很多都能認同,是很資深的工程師,但不代表入門 03/05 12:46
53F:→ robber1234: 就會很困難.哪個平台哪個框架不是一直改 03/05 12:47
54F:→ robber1234: 而且我真的很討厭RxJava, 這我最能認同原作XD 03/05 12:50
55F:推 aids61517: 寫Android 7年了,我覺得最近幾年進步速度滿大的 03/05 13:00
56F:→ aids61517: 首先是宣布Kotlin成為一級語言後,Kotlin使用率極速上 03/05 13:01
57F:→ aids61517: 升,然後推出了Jetpack Architecture,推出了開發上常 03/05 13:02
58F:→ aids61517: 用的解決方案,MVVM用的ViewModel、有生命週期概念的 03/05 13:03
59F:→ aids61517: LiveData、資料庫Room、RecyclerView用的Paging(雖然我 03/05 13:03
60F:→ aids61517: 沒用XD)...等,還有Kotlin正式推出的Coroutine,我在某 03/05 13:04
61F:→ aids61517: 個社群說過這東西以後可以取代掉RxJava還一堆人驚訝 03/05 13:04
62F:→ aids61517: 當然缺點也是有,我有點不喜歡那個WorkManager,然後一 03/05 13:05
63F:→ aids61517: 些基於安全性或隱私權考量的一些api調整,但整體我覺得 03/05 13:06
64F:→ aids61517: 利仍大於弊,反而我覺得現在新手比過往更好上手,雖然 03/05 13:07
65F:→ aids61517: 要學的Library很多,但是有比較完整的解決方案和教學總 03/05 13:08
66F:→ aids61517: 比新手自己胡搞瞎搞來得好,最後想說的是,databinding 03/05 13:08
67F:→ aids61517: 是拉機XD 03/05 13:08
68F:→ robber1234: data binding真的拉機,從沒學過.誰要在xml上寫code 03/05 13:14
69F:推 meowyih: 拿win平台來說,win32->MFC->WinForm->WPF->UWP好像也是 03/05 14:04
70F:→ meowyih: 學不完,但是大部分的東西反正最後都會沒人用的,還是 03/05 14:04
71F:→ meowyih: win32 api最穩當XD 甚麼?不用UWP寫不能上MS Store? 反正 03/05 14:05
72F:→ meowyih: UWP推不動MS自己就會轉彎了~ (笑) 03/05 14:05
73F:→ LordCHTsai: xml寫code、databinding,這些web已經寫了十年了XD 03/05 14:20
74F:推 baobomb: 不知道大家對RxJava的看法是什麼?? 03/05 15:36
75F:→ baobomb: 我很常看到工程師認為RxJava是用來處理multi thread, 所 03/05 15:36
76F:→ baobomb: 以會被coroutine取代 03/05 15:36
77F:→ baobomb: 但其實RxJava是用來處理Stream layer separating的. 試想 03/05 15:36
78F:→ baobomb: 在一個App啟動時 如果有一大堆的critical path服務需要在 03/05 15:36
79F:→ baobomb: background thread init. 然後其他的usecase需要等待這 03/05 15:36
80F:→ baobomb: 些服務完成後馬上接續其他的動作 03/05 15:36
81F:推 baobomb: 沒有RxJava 以往就是create一大堆的callback listener. 03/05 15:39
82F:→ baobomb: 而且很難處理buffer. 但React programming很好的處理了 03/05 15:39
83F:→ baobomb: 這問題. Coroutine有Flow 可以做到一樣的效果, 但還不Sta 03/05 15:39
84F:→ baobomb: ble 我自己用起來覺得還是RxJava更直接. 03/05 15:39
85F:推 baobomb: 而且CoroutineScope在多線程的情況下需要一直重複切換Con 03/05 15:43
86F:→ baobomb: text 用起來會導致function變很冗長. 但我自己也是樂觀 03/05 15:43
87F:→ baobomb: 看待 畢竟很多人誤用RxJava(不懂得復用Subscription,Stre 03/05 15:43
88F:→ baobomb: am,而是每次有需求就subscribe一次 最後也沒有好好Dispos 03/05 15:43
89F:→ baobomb: e導致memory leak) Coroutine看起來可以解決這問題 但希 03/05 15:43
90F:→ baobomb: 望可以寫起來更優美 03/05 15:43
91F:推 aids61517: 我自己用Flow是沒遇到什麼問題,當然RxJava release那 03/05 15:59
92F:→ aids61517: 麽久了,你說Flow相較起來不stable是沒錯,但是我不知 03/05 16:00
93F:→ aids61517: 道你說用RxJava更直接是什麼意思,有什麼功能Rx做得到 03/05 16:00
94F:→ aids61517: Flow做不到的嗎?然後CoroutineScope在多線程的情況下 03/05 16:01
95F:→ aids61517: 需要一直重複切換Context,難道Rx不需要嗎?會需要頻繁 03/05 16:02
96F:→ aids61517: 切換大多都是background thread處理資料後需要更新UI 03/05 16:03
97F:→ aids61517: Rx也一定需要吧?滿好奇你的case 03/05 16:04
98F:→ aids61517: 細節也可以去AndroidDev版討論,我可不想被哈哈人噓 03/05 16:14
99F:推 baobomb: 其實我也很喜歡Flow啦哈哈 只是很多工程師只是為了方便 03/05 16:14
100F:→ baobomb: 切換線程而用coroutine function內withContext寫的到處 03/05 16:14
101F:→ baobomb: 都是 看的真的很頭痛.... 03/05 16:14
102F:→ baobomb: RxJava寫起來更有chain的感覺 可以在streams之間直接stre 03/05 16:14
103F:→ baobomb: am.subscribeOn/observeOn. 對我來說更能有效的強制工程 03/05 16:14
104F:→ baobomb: 師去細分function從而達到unit test更好寫 03/05 16:14
105F:→ baobomb: 但Coroutine 的withContext這東西... 很容易讓很多工程師 03/05 16:14
106F:→ baobomb: 濫用... 不是說不好 而是太方便了-.- 03/05 16:14
107F:→ aids61517: Flow有個flowOn(),應該可以達到你要的效果,至於到處 03/05 16:17
108F:→ aids61517: 寫withContext()是能保證那個function的內容是用特定的 03/05 16:17
109F:→ aids61517: Dispatcher去執行,這就看你們團隊的討論了 03/05 16:18
110F:推 jknm0510a: 我覺得Coroutine比RxJava直覺多了耶!可能是我是先學前 03/05 18:13
111F:→ jknm0510a: 面再學後面 03/05 18:13
112F:推 iiiii: Android Studio 每次按下更新鈕,都要禱告 03/06 11:26
113F:→ angusyu: 禱告?沒有啊每次更新都沒什麼事 03/06 12:48
114F:推 u07f08: android studio 4之後的版本bug超多的好嗎 03/07 00:57
115F:→ hicoy: 我自己是習慣等個一陣子在更新android studio 讓同事幫忙 03/07 13:35
116F:→ hicoy: 除雷XD 03/07 13:35
117F:→ hicoy: 全吃一定是吃不完 03/07 13:41
118F:→ hicoy: 主要還是要做取捨 像上面講到coroutine and RxJava 03/07 13:42
119F:→ hicoy: 先選一種學 另一種有需要再看 不過Google現在選的是corouti 03/07 13:45
120F:→ hicoy: ne了吧? 範例都改coroutine+flow了 03/07 13:46
121F:推 ginnyhuang: 我倒覺得databinding超好用的耶,不用一堆 init,至 03/10 23:50
122F:→ ginnyhuang: 於在xml編輯,大概因為習慣直接在xml coding 元件內容 03/10 23:50
123F:→ ginnyhuang: 所以還蠻習慣的 03/10 23:50
124F:推 ginnyhuang: 真的不用什麼都用最新 lib XD,只有在開發新產品才會 03/10 23:59
125F:→ ginnyhuang: 使用當下最新最穩定的 lib 版本。這部分 ios 比較慘吧 03/10 23:59
126F:→ ginnyhuang: ,常常新版本都有不兼容的 function,直接給你停用出 03/10 23:59
127F:→ ginnyhuang: 現 bug(同情地望向 ios 同事),android 至少不會讓你 03/10 23:59
128F:→ ginnyhuang: 舊的 function 不能用(或是功能有非常大落差),版 03/10 23:59
129F:→ ginnyhuang: 本更新主要看新的調整有沒有影響到自己的 app 再做調 03/10 23:59
130F:→ ginnyhuang: 整就好 03/10 23:59
131F:推 ginnyhuang: 是可以感受到對開發者的限制增多,但我覺得是讓使用 03/11 00:12
132F:→ ginnyhuang: 者的安全性和隱私提高,這是好事,而且統一的規範總 03/11 00:12
133F:→ ginnyhuang: 比各廠牌手機魔改系統要好(對,我說的就是大部分陸廠 03/11 00:12
134F:→ ginnyhuang: 手機以及少部分他國品牌,雖然個人認為這也是部分開發 03/11 00:12
135F:→ ginnyhuang: 者種下的惡果),當你按照官方 sdk 開發卻發現在某幾 03/11 00:12
136F:→ ginnyhuang: 個手機上表現不如預期才真令人抓狂...為了這幾個例外 03/11 00:13
137F:→ ginnyhuang: 又要再想辦法額外 coding 讓這些例外可以正常運行(暈 03/11 00:13
138F:→ ginnyhuang: ) 03/11 00:13
※ 編輯: dharma (107.161.88.23 美國), 08/11/2021 15:25:02







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP