Details
由於可擴展的架構,Grab 行動開發團隊由 100 多名 iOS 開發人員組成,分為行動行程、餐飲、支付、客戶體驗等不到 10 個大科技家族。每個團隊都利用其他團隊創建的功能,為消費者提供穩定的服務,並且能夠提高
開發人員的生產力。
專家級資深 iOS 工程師 Soojin Ro 的個人資料和作品集
Grab 是東南亞最大的超級應用程式,在 8 個國家/地區擁有 1.8 億學員,其 100 多名 iOS 開發人員如何在一個月內部署數十個新功能,而不會每週遇到瓶頸?
答案是
可擴展的架構!
你的團隊是否遇到了什麼問題?現在就部署一個可擴充的架構吧!
隨著應用程式或團隊規模的擴大,由於建置時間的增加或程式碼衝突的頻繁發生,生產力會降低。
Bug 出現得更頻繁,調試所花的時間也增加了。
您想要開始自動化測試(單元測試、UI 測試)但不知道如何進行。
用戶首次運行應用程式的時間增加了,應用程式的穩定性降低了。
我們需要什麼來創造高度可擴展的架構?
了解 3 個可以共同創造協同效應的基本概念和基礎設施!
層次架構
- 組裝對象以供使用的方法
- 設計一個超越框架和語言字體的優秀架構
模組級架構
- 應用程式架構可擴展性的基本任務
- 提高開發速度,更易於維護和測試
- 鬆散耦合的依賴注入概念與模式
自動化測試
- 減少 Bug 以提升開發人員體驗的方法
-測試類型及其策略應用
可擴展基礎設施
- 功能標誌
- 監控品質
- 良好開發文化案例
專案 | 創建一個迷你超級應用程式
組合、模組化和測試以建立可擴展的架構
創建一個真正的超級應用程式縮圖專案並逐步練習!
基於 Swift 的 iOS 應用程式在應用程式內具有各種服務(計程車、雜貨店等)並具有其支付平台(Pay)。
每個服務都被分成模組,因此各個部分的開發人員不會互相影響,並且由於沒有原始程式碼依賴,因此可以進行並行開發。
其他模組中常用的功能,例如付款、使用者畫像等,都透過介面提供給其他模組使用,無論功能多麼龐大、多麼複雜,都不會對其他模組或開發者造成影響。
步驟 1. 建立複雜的視圖和流程
- 嘗試將具有複雜互動的視圖分解為組合架構並將其組裝起來。
- 利用 RIB 架構,業務邏輯可以驅動應用程式並開發複雜的流程以使其可重複使用。
步驟 2. 重構並修復設計錯誤的模組
- 在第 1 部分中編寫的程式碼在對象之間緊密連接。
- 為了提高可擴展性,添加了新的程式碼並將其分離為模組,然後透過重構來組裝它們。
- 了解提供模組時需要考慮的事項,並在處理程式碼和 OCP 的可用性時修復設計有缺陷的模組。
步驟 3. 用 4 種方法進行測試
- 對第 2 部分模組化的程式碼套用 4 個測試(單元測試、快照測試、UI 測試、整合測試)。
- 比較每個測試的特點以及在什麼情況下應該應用哪種測試。
建議
Soojin Ro的課程受到該領域專家的推薦
資深 iOS 工程師
Soojin Ro
大家好,我是Soojin Ro。我根據自己在 LINE、Grab、Naver Webtoon 等超級應用程式的開發經驗,創建了這個課程。
在本課程中,我們將進行一個小型項目,詳細執行所有流程,從實現超級應用程式功能到重構和自動化測試。
讓我向您展示並分享如何建立一個可供 100 名開發人員同時進行開發和快速維護的環境。
Soojin Ro
[現職的]
Momenti / 資深 iOS 工程師
DevChat.tv iPhreaks / 小組成員
互動式多媒體平台開發
[前職的]
課程及其他活動
2020 至 2021 年
Grab / 資深 iOS 工程師,工程負責人
GrabPay 皮夾加值框架 2.0 開發案的 iOS 部分負責人
擔任 Mystery 獲獎功能開發專案的專案負責人並首次引入 Flutter
P2P傳輸功能模組化
2018 年至 2020 年
Naver Webtoon / iOS 開發人員
新內容付費模式(免費提供給您)開發主管,新學員的網路漫畫推薦功能,應用程式向通用的過渡,橫幅廣告的整合和改進
Naver Labs / iOS 開發者
AWAY 車載資訊娛樂應用程式、AKI 家長/監護人應用程式開發
Swift NYC / 演講者
NAVER Tech Concert:手機/揚聲器
SwiftFest 波士頓 / 演講嘉賓
Notable Me App/個人項目
2015
LINE / Android 開發者
LINE Lite Android 應用程式開發
安全卡小部件應用程式/個人項目
2015-2017年度App Store年度熱門應用
NDC 2014
- Unlimited Access
- Best Price
Buy now, get unlimited access.
12/31 (Sat) (UTC-7) Special offer ends soon.
This special offer ends soon.
Buy now and save!
課程
深入了解
*請注意,課程影像的發布日期、課程圖片和內容等如有更改,恕不另行通知。
訪談
資深 iOS 工程師, Soojin Ro
我剛開始從事應用程式開發時,以個人專案的身份開發了一款安全卡小部件應用程序,並在2015年至2017年期間,憑藉在金融類排名第一、App Store綜合排名第二的優勢,被評為年度最佳應用程式。之後,我參與了LINE、Naver Webtoon等大型應用程式服務的開發。加入Grab時,我懷著好奇心,思考著海外更複雜、更大規模的應用程式服務如何應對服務規模擴大所帶來的問題。身為開發人員,我曾從小型團隊工作到大型團隊,我意識到,隨著團隊和服務規模的擴大,應用程式的架構也必須有所改變。
我在東南亞 Uber Grab 擔任 iOS 開發者期間領導過多個專案。當我第一次在團隊中引入 Flutter,並領導了 Mystery Prize 獲獎功能的開發項目時,我對架構最基本的元素——組合(Composition)有著深刻的理解,因此我能夠快速理解這門新語言和架構,並將其應用到專案中。
我負責一個框架開發專案的 iOS 部分。此專案的目標是徹底重構 UI/UX,讓學員能夠輕鬆快速地向錢包充值,並全面支援東南亞多個國家/銀行/儲值方式。從業務角度來看,這至關重要,技術難度也很高,但由於我是在專案進行到一半時才加入的,所以時間經營。
我重新設計了架構,與團隊成員統一了開發方法。這加快了開發速度,並最終按時完成了專案。部署後,學員平均新增現金金額提升,轉換率也set了歷史新高(超過95%),成功降低了本公司佣金支出。
我推薦這課程給擁有兩年以上 iOS 開發實務經驗,並且曾經使用過一種或多種架構開發應用程式的資深開發者。課程練習將針對 iOS 應用,但如果你了解 Swift 文法,課程上學習的理論知識可以應用於其他平台(Android、Flutter 等)的行動應用。
所需軟體
本課程將使用
-Xcode 13
- 斯威夫特
- Swift Package(第一方依賴管理工具)
- 結合(第一方非同步+基於事件的框架)
- RIBs(Uber 的架構框架)
- XCTest(測試框架)
請購買並安裝這些軟體以獲得優化的課程體驗。
※本課程所有練習均基於iOS應用並透過Mac電腦完成,Windows學員在使用課程中可能會遇到困難。
[必需的]
- 一些Swift知識+協議概念的理解與應用經驗
[受到推崇的]
- 如果您有使用一種或多種 iOS 架構(MVC、MVVM、ReSwift、VIPER、RIB 等)的開發經驗,您將獲得甚至洞察。
- 本課程不涵蓋 Swift 的基礎知識。
※這些軟體和/或材料不會隨課程提供。
