国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

第十年的選擇,咕咚到底選擇了什么?

原創
移動開發
2007年第一代iPhone的發布開啟了智能手機的新時代,至今移動開發已跨越了十年的路程,十年中有著太多的改變。隨著移動互聯網的突飛猛進,人們的生活方式也在日益變化著,身處在單調生活中的人們也開始注重健康的生活方式,咕咚(Codoon)則是看中了這一市場,致力于通過游戲化、社交化和碎片化的方式,來鼓勵人們形成良好的運動習慣和生活方式,從而獲得身體的健康。

【51CTO.com原創稿件】2007年第一代iPhone的發布開啟了智能手機的新時代,至今移動開發已跨越了十年的路程,十年中有著太多的改變。隨著移動互聯網的突飛猛進,人們的生活方式也在日益變化著,身處在單調生活中的人們也開始注重健康的生活方式,咕咚(Codoon)則是看中了這一市場,致力于通過游戲化、社交化和碎片化的方式,來鼓勵人們形成良好的運動習慣和生活方式,從而獲得身體的健康。

此次由51CTO主辦的2017WOTA全球架構與運維技術峰會上,咕咚技術總監唐平麟老師分享了主題為《第十年的選擇》的演講。

 

[[189728]]

咕咚作為中國最大的運動社交服務平臺,其APP需要與手機硬件綁定的非常多,基本使用到手機里所有芯片和感應器,所以相對于其他APP在架構的選擇上會更加保守一些。為了照顧與手機硬件的綁定,咕咚幾乎沒有用到React Native等動態化的技術,為了保證系統的穩定性,咕咚更偏向于選擇原生實現。架構上偏保守的實現會相對比較復雜,而咕咚就面臨著這樣的難題。

咕咚最開始選擇的是MVC的框架。經典的MVC與蘋果的MVC不太一樣,蘋果的MVC里的Model(數據管理者)、View(數據展示者)、Controller(數據加工者)是互相聯系的,導致所有對Model的操作必須經過Controller,如此一來, Controller會越來越大。在經典的MVC里面,View跟Controller是可以同性的,而蘋果的則不可以,Cocoa MVC = MVC + Data Service缺少了View跟Model之間的聯系,這就是為什么蘋果的架構里面Controller會越來越大,最后會導致非常大的問題。

胖Model包含了部分弱業務邏輯。胖Model要達到的目的是,Controller從胖Model這里拿到數據之后,不用額外做操作或者只要做非常少的操作,就能夠將數據直接應用在View上。瘦Model只負責業務數據的表達,所有業務無論強弱一律到Controller上。瘦Model要達到的目的是,盡一切可能去編寫細粒度Model,配套各種helper類或方法來對弱業務做抽象,強業務依舊交給Controller。一旦選擇了胖Model,Controller拿到數據之后,不用做太多的選擇,就可以把數據顯示在Controller里面。有時候為了選擇,咕咚也會使用瘦Model,但是不敢將任何業務邏輯都不寫到Model里面,只是把Model當做一個存儲數據的目的。這時候業務的處理還是需要Controller,這兩種設置其實本身沒有什么高低之分,但是對于咕咚來說還是胖Model更適合一些。

不論是服務端、前端還是客戶端,搜集模式是開發者們都最常用的,資料也相對完全。可是MVC的架構導致了高耦合和復雜的代碼,為了解決這個問題再引入下一個架構。在MVC里邊,怎么去劃分這個代碼才更加地清晰、更加地合理,唐平麟老師認為 “要嚴格讓Model變成一個胖Model”,這樣便于View Controller不用做復雜的程序就能獲得數據。

但是有些時候在設計框架的時候,并沒有嚴格的去設計,這時就需要引入另外一種模式, MVVM。它僅僅做了一件事情,就是把View Controller拆開了,把View Controller拆成了View Model,把之前Controller對于Model的控制代碼全部放到了View Model里去。如此一來,業務邏輯就會非常地清晰、框架也會更加地明顯。View Controller僅僅是做顯示性的東西,View Model是做業務上的處理, Model可以設計成胖Model,也可以設計成瘦Model,如果設計成胖Model的話,可以把最簡單的邏輯放在Model里面去處理,如果設計成瘦Model的話,可以把全部數據都放到View Model去處理。

MVVM的View Controller不像在MVC里的View Controller,MVVM的是View Controller + View,皆統成一層,而這一層都是做顯示的邏輯。值得注意的是,在做視圖層和View Model層的話,這兩個之間要用一個Data綁定的技術,為了實現這個Data綁定,不能用第三方的庫補充。View Model的角色是處理業務邏輯,除了被View層持有,也會持有Model。簡而言之,View Model是一個從上到下互相持久的關系,在MVC架構里面經常會造成三者之間的相互持有,為了開發過程,可能讓Model、Controller與View之間會產生相互持有的關系。

從MVC一直到MVVM,當程序越來越復雜的時候,開發者們必須嚴格地去定義每一個工作模塊應該干什么,只有這個時候代碼才能更加地清晰可靠。

唐平麟老師在此建議大家,“我希望大家在以后的工作里面,在項目組里面還是傾向于用比較簡單的MVC的架構,但是在項目啟動的時候一定要嚴格區分好這三者之間的關系,這三者之間什么代碼能寫、什么代碼不能寫,什么代碼應該放在什么里面,比如說我Model里面一定要用胖Model,我在Controller里面一定不能夠操作View層的動畫,我在View里面一定不能去寫用戶跟業務代碼相關的邏輯,如果說我們做好這三點的話,我們在MVC里面依然是可以去做架構的。”

【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】

責任編輯:鳶瑋 來源: 51cto
相關推薦

2017-04-26 18:01:52

咕咚MVCMVVM

2021-02-02 10:53:10

技術研發博客

2025-09-16 08:17:28

CSSJavaScrip前端

2024-02-05 10:10:06

Vue策略編譯

2019-12-13 16:08:57

戴爾

2025-01-06 12:10:01

2021-05-10 07:30:33

Google技術谷歌

2019-03-22 11:07:26

Windows 7Windows 10微軟

2020-06-10 09:06:48

MongoDB架構高可用

2017-02-27 15:19:04

2012-07-16 13:18:35

2022-03-28 11:41:21

物聯網物聯網市場智能電網

2017-09-22 08:54:42

NB-IoT物聯網商業模式

2025-08-25 00:00:00

ESLintGithublinting

2022-03-18 13:46:20

物聯網數據技術

2021-11-03 07:27:32

移動管理設備

2016-09-27 21:25:08

Go語言Ken Thompso

2017-11-06 08:52:13

管理崗位騰訊

2018-03-29 10:38:14

2022-11-08 08:29:43

Goslog 庫工具
點贊
收藏

51CTO技術棧公眾號

国产精品自拍区| 亚洲精品亚洲人成在线观看| 中文字幕成人av| 99久久久无码国产精品性色戒| 精品三级av| 亚洲男人av在线| 欧洲成人综合网| 欧美日韩电影在线| 激情在线视频| 91官网在线免费观看| 中文在线а天堂av| 亚洲电影激情视频网站| 石原莉奈一区二区三区高清在线| 91色综合久久久久婷婷| 秋霞无码一区二区| 97精品视频在线观看自产线路二| 99热这里只有精品免费| 国产成人在线视频网址| 岛国大片在线播放| 91亚洲精品一区二区乱码| www.好吊操| 91麻豆6部合集magnet| 熟女少妇在线视频播放| 久久久美女毛片| 超碰在线人人爱| 亚洲图片你懂的| 绯色av一区二区| 在线精品视频一区二区| 日本福利专区在线观看| 日韩一区二区在线看片| 欧美freesex黑人又粗又大| 尤物九九久久国产精品的特点| 福利一区在线| 欧美激情精品久久久久久黑人| 久久久亚洲欧洲日产| 国产精品国语对白| 亚洲草久电影| 精品一区二区三区自拍图片区| 亚洲一区国产| 中国黄色录像片| 国产午夜久久久久| 午夜影院免费看| 欧美日韩不卡在线| av成人福利| 久久天天躁日日躁| 国产日产精品一区二区三区四区的观看方式 | 国产成人免费91av在线| 天天做综合网| 天堂精品视频| 久久夜色精品国产欧美乱极品| 91av入口| 欧美丝袜自拍制服另类| 精品国产免费人成网站| 欧美一区三区三区高中清蜜桃| 欧美日韩午夜| 国内精品视频一区二区三区| 一区二区理论电影在线观看| 亚洲综合影视| 欧美黑人xxxx| 国产日韩欧美一区| 女人扒开屁股爽桶30分钟| 亚洲成av人片在www色猫咪| 成人性生交大片免费看网站 | 久久精品视频一区| 在线播放你懂得| 亚洲精品黄网在线观看| 日韩高清成人在线| 日本高清不卡三区| 欧美高清在线精品一区| 超碰在线网址| 91av福利视频| 男女性色大片免费观看一区二区 | 国产精品极品美女在线观看免费| 国产综合网站| 国产九九在线视频| 欧美大片在线观看一区| 杨幂一区二区三区免费看视频| 亚洲免费在线精品一区| 亚洲一区自拍偷拍| 午夜欧美激情| 成人黄色激情网| 成人激情av网| 九色porny丨首页在线| 女同视频在线观看| 成人免费av网站| 国外av网站| 日韩精品在线私人| 日韩精品影音先锋| 亚洲成人免费看| 欧美videossex| 欧美一级黑人aaaaaaa做受| 久久这里只有| 天天干夜夜干| 亚洲小视频在线观看| 在线国产一区| 奇米影音第四色| 亚洲老头老太hd| 韩日成人av| 91se在线观看| 欧美极品第一页| 国产精品自拍网站| 国产精品剧情| 国产剧情日韩欧美| 国产嫩草影院久久久久| 日本在线啊啊| 蜜桃视频成人| 一本高清dvd不卡在线观看 | 欧美性极品xxxx娇小| 国产日韩三级| 成人一对一视频| 亚洲精品影视在线观看| 久久久久久自在自线| 日本免费不卡| 欧美一区在线直播| 久久久久久毛片| 欧美男男gaygay1069| 快播日韩欧美| 在线亚洲精品福利网址导航| 精品大片一区二区| 欧美18—20岁hd第一次| 久久久精品一区二区| 国产综合久久久久久久久久久久| 色影院视频在线| 岛国视频一区| 欧美影视一区在线| 国模 一区 二区 三区| 国产二区视频在线观看| 91久久精品国产91久久性色tv| 亚洲国产精品一区二区www | xvideos成人免费中文版| 国产一区二区三区av电影| 欧美aaaxxxx做受视频| 日本视频一区二区不卡| 日韩亚洲欧美在线| 日本亚洲天堂网| 欧美久久天堂| 日韩精品久久一区二区| 中文字幕在线精品| 91在线丨porny丨国产| 日韩av中字| 国产情侣第一页| 日韩中文字幕网站| 久久综合五月天婷婷伊人| 永久免费精品视频| 激情五月亚洲色图| 538国产精品视频一区二区| 亚洲1区2区3区4区| 91久久久久| 青春草视频在线| 777久久精品一区二区三区无码| 精品国内自产拍在线观看| 国产欧美va欧美不卡在线| 97久久亚洲| 中文字幕在线视频网| 不卡一卡2卡3卡4卡精品在| 91精品午夜视频| 极品少妇xxxx偷拍精品少妇| 国产第一精品| 成人亚洲一区二区三区| 超碰97人人人人人蜜桃| 亚洲国产精品成人va在线观看| av在线不卡网| 色999国产精品| 丁香花在线观看完整版电影| 亚洲熟妇无码一区二区三区| 欧美中文字幕视频| 欧美三级电影网| 成人性色生活片| 国产日韩欧美一区二区三区| 黄色网址在线免费播放| 成人黄色大片网站| 国产精品免费久久久久久| 欧美一区二区三区不卡| 91色乱码一区二区三区| 日韩成人免费| 在线观看涩涩| 交视频在线观看国产| 日本一区二区三区视频在线播放| 久久精品99久久久香蕉| 欧美日韩精品在线播放| 国模少妇一区二区三区| 精品一区不卡| 日韩天堂在线| 你懂的在线观看| av免费观看大全| yellow视频在线观看一区二区| 亚洲人成啪啪网站| 亚洲影视在线观看| 久久99国产精品免费| 欧美日韩在线观看视频小说| sis001欧美| 国产专区在线播放| 国产免费一区二区三区视频| 91亚洲永久免费精品| 日韩在线观看免费全| 欧美性生活影院| 最新中文字幕一区二区三区| 久久超碰97中文字幕| 国产精品99一区二区三| 四虎在线精品|