大家好,我是Teng,
我從事Android App Development已經有三年經驗了,
分享一下我從無到有的學習路程認知。
我從事Android App Development已經有三年經驗了,
分享一下我從無到有的學習路程認知。
如果你是新入行的朋友,可以參考參考,
也希望如果我哪裡走偏了可以被指正,感謝。
也希望如果我哪裡走偏了可以被指正,感謝。
首先看下這張圖:
我認為Android程式分為測試跟寫Code兩個區塊,
但如果完全沒有程式底子,
建議先從Java語法開始看起,
我自己是k了一本螞蟻書 <<JAVA程式設計藝術>> ,
就開始看Android的官方文件了。
但如果完全沒有程式底子,
建議先從Java語法開始看起,
我自己是k了一本螞蟻書 <<JAVA程式設計藝術>> ,
就開始看Android的官方文件了。
但因為我以前有學過C家族語言,
因此還要看個人情況去選擇要不要多看幾本書。
因此還要看個人情況去選擇要不要多看幾本書。
十分建議打好JAVA底,這樣在後續學習到比較奇怪的程式碼時,比較不會卡關。
Test:
先介紹Test的原因是因為我覺得學習跟寫程式時,
如果先有測試的概念,
在未來寫程式的時候會減少一些技術債。
如果先有測試的概念,
在未來寫程式的時候會減少一些技術債。
我自己測試這塊的經驗是相對少的,
因為沒有人帶,
後續摸到測試這塊的時候才發現有很多要補充的知識…
因為沒有人帶,
後續摸到測試這塊的時候才發現有很多要補充的知識…
一樣,先看圖:
就我來說,Android測試分成3個部分,
分別是持續整合環境、UI/UX test跟Unit test,
這三塊分別代表不同的事情,但整合起來剛好可以完整包覆整個專案程式的內容。
分別是持續整合環境、UI/UX test跟Unit test,
這三塊分別代表不同的事情,但整合起來剛好可以完整包覆整個專案程式的內容。
Unit test:
最小單元測試,
一般來說就是測非UI的功能,
譬如API或是計算等等的。
這部分的網路資源很多,
以下條列幾個幫助我在學習測試的時候,
省去很多工夫的網頁,
在了解單元測試的時候,
你也會學習到程式撰寫如何Dependency inversion,
以及如何撰寫程式架構才好讓後續測試簡單,方便測試。
一般來說就是測非UI的功能,
譬如API或是計算等等的。
這部分的網路資源很多,
以下條列幾個幫助我在學習測試的時候,
省去很多工夫的網頁,
在了解單元測試的時候,
你也會學習到程式撰寫如何Dependency inversion,
以及如何撰寫程式架構才好讓後續測試簡單,方便測試。
- 30天快速上手TDD
https://dotblogs.com.tw/hatelove/archive/2012/11/02/learning-tdd-in-30-days-day1-tdd-guidance.aspx - 單元測試命名方法
http://teddy-chen-tw.blogspot.tw/2016/05/blog-post_12.html - Unit Test 的觀念
https://hungyanbin.gitbooks.io/android-unit-test/content/chapter1.html - 物件導向程式設計五大原則:SOLID
http://www.hitripod.com/blog/2011/12/object-oriented-design-five-principles-solid/
UI/UX test:
前一陣子,讀書會的貓大分享了這個UI/UX test的工具,
覺得很有用,但仍抽不出時間去學習,不過在測試中蠻重要的。
(要多學一個語言Ruby…)
覺得很有用,但仍抽不出時間去學習,不過在測試中蠻重要的。
(要多學一個語言Ruby…)
簡而言之,
這一些工具可以讓你撰寫測試腳本,
然後讓程式自己去測試你寫好的動作,
這樣就不用人工機械系的反覆去做同樣的動作,
在系統越來越大跟上線給使用者測試跟回饋Bug的時候會越來越重要。
這一些工具可以讓你撰寫測試腳本,
然後讓程式自己去測試你寫好的動作,
這樣就不用人工機械系的反覆去做同樣的動作,
在系統越來越大跟上線給使用者測試跟回饋Bug的時候會越來越重要。
- Introduction to Calabash
https://developer.xamarin.com/guides/testcloud/calabash/introduction-to-calabash/
Calabash的好處是可以跨平台測試,
而且他的函式庫在跨平台的機制寫的蠻完整的,
缺點根據貓大說是某些時候Android的函式有多一個s,iOs的沒有s…
不過瑕不掩瑜就是。
而且他的函式庫在跨平台的機制寫的蠻完整的,
缺點根據貓大說是某些時候Android的函式有多一個s,iOs的沒有s…
不過瑕不掩瑜就是。
持續整合環境:
目前我在摸索Jenkins,
持續整合環境的好處是你可以寫一些腳本,
讓指定Git上的程式固定時間跑個測試腳本,
了解目前程式版本測試覆蓋度如何,
有沒有Bug,如果都沒有的話可以直接上傳Git server,
或是直接包成Apk上架等等的。
可以把一些你覺得很機械式又很浪費時間的動作都交給他去使用。
持續整合環境的好處是你可以寫一些腳本,
讓指定Git上的程式固定時間跑個測試腳本,
了解目前程式版本測試覆蓋度如何,
有沒有Bug,如果都沒有的話可以直接上傳Git server,
或是直接包成Apk上架等等的。
可以把一些你覺得很機械式又很浪費時間的動作都交給他去使用。
不過我還沒有摸索完成,覺得Jenkins很多地方都不是很懂!
會接觸到的東西大約有Gradle、Groovy語法,跟一些Script。
會接觸到的東西大約有Gradle、Groovy語法,跟一些Script。
了解測試跟知道一些測試相關的原則,
會讓你在寫程式的時候減少一些彎路,
但由於這些概念比較抽象,建議有個大概思路即可,
畢竟你是學習寫Android的,
如何兼顧程式產出跟後續測試等等的尺度要由自己拿捏,
免得一頭栽進寫測試程式,程式都沒進展,
被公司覺得沒有產出就糟糕了。
- Next:Android 從無到有(1)
沒有留言:
張貼留言
有任何疑問歡迎寄信給我,
但垃圾訊息我會刪光喔!