跳到主要內容

發表文章

目前顯示的是 12月, 2017的文章

Cucmber 環境設定 on Mac

因為最近開始開發iOS 但對於測試一直沒有很棒的解法 因此團隊成員發了狠,去徹底研究一個測試框架cucumber跟appium 這裏簡單記錄一下怎麼安裝與設定 主要是參考成員的blogger的設定,再用自己的理解記錄在自己的blogger這邊 首先要安裝 xcode,目的是為了 iOS 模擬器 第二步驟要安裝主角 cucumber  terminal 中指令 sudo gem install cucumber 第三步驟是安裝Appium library terminal 中指令 sudo gem install appium_lib 前往網站 http://appium.io  並點擊 "download appium" 然後選擇下載 " appium-desktop-1.2.7.dmg " 第四步驟安裝RubyMine IDE,目的是為了讀取 feature 檔案並可以透過 IDE 自動產生step 的語法 前往 JetBrain 官網去下載安裝 安裝 pry 套件,這個套件是為了debug用的,特別是他的killer feature "binding.pry" terminal 中指令 sudo gem install pry 即可安裝 安裝 homebrew,這個是個套件管理工具提供 Homebrew 互補了macOS,可以使用 gem 安裝 ruby 套件,而利用brew來安裝依存軟體 安裝方法 terminal 中打指令 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 安裝 carthage,這個套件是類似於 CocoaPods 的功能,也是 iOS 套件管理用 terminal 中打指令 brew install carthage 到這已就完成了環境預備安裝 接下來就是打開appium server 然後在已經寫好 feature 的 測試範例專案 位置 透過 terminal 執行 cucumber 就可以跑測試 ---------

[學習iOS之路] Lifecycle 比較

在開發Android很多年之後終於開始學習寫iOS了 契機就是工作需要,果然工作需求就是推開最大靜摩擦力的原動力啊! 在這邊寫下學習Swift的一些筆記,希望在自己忘記或是需要給別人教學的時候可以起到一點點作用。 因為對Android比較熟悉,所以透過比較來熟悉iOS架構 首先是iOS與android的比較 可以參考這張圖 Android vs iOS lifecycle 與這張 iOS 詳細state 流程 Android lifecycle OnCreate -> OnStart -> OnResume ->(running) -> OnPause -> OnStop -> OnDestroy                        ^                  ^                                  |               |                         |                  |-------------------v               |                         |-----<-----   OnRestart   ------<---------v iOS lifecycle LoadView -> ViewDidLoad -> ViewWillAppear -> ViewDidAppear -> (running) -> ViewWillDisappear -> ViewDidDisappear -> ViewWillUnload -> ViewDidUnload -> dealloc 於ViewDidDisappear之後view就看不見了,如果view要再次被看到且view還存在 那就會是ViewWillAppear,否則就是LoadView從頭開始 下一篇是語言的比較 Java vs Swift

[學習重構筆記] Part1.了解什麼是重構

重構 (Refactor) 是: [在不改變程式碼外在行為的前提下,對程式碼做出修改,進而改進程式的內部構造] Input & Output沒有變動 重構目的 改進軟體設計 重構可以讓設計不用一步到位 使軟體容易理解 使軟體容易維護與擴張 容易發現 Bug 壞味道 (Code smell) 這邊僅列出重點想學的幾個 Duplicated Code Long Method Long Parameter List Large Class Magic Number Shotgun Surgery Divergent Change Feature Envy Data Clumps Primitive Obsession 簡單的說就是 重複了、做太多事情了、命名不符其實、太多公開函式、不太像物件導向 何時進行重構? 完成 Feature 時 修完 Bug 時 Code Review 時 何時不要進行重構? 程式無法執行時 交付時間緊迫時