美文网首页
在重构HBKit中遇到的一系列架构抉择问题

在重构HBKit中遇到的一系列架构抉择问题

作者: MaxCong | 来源:发表于2017-05-26 13:58 被阅读0次

HBKit \ HuobanKit是什么?

HBKit最早由HuobanKit演变而来,我将HuobanKit中跟业务无关的代码抽离出来,精简成基本的网络框架和数据库(CoreData)框架两部分。只在打造没有业务的轻便框架,可以在几分钟内配置并使用。

本框架由Swift 3.0+进行重写,网络请求部分针对Alamofire进行二次封装,提取出可以方便快捷使用的网络请求GET/ POST/ PUT/ DELETE的几种动作。并支持网络请求结束之后以最精简的回调返回获取结果。

问题:

在重构iOS HBKit之前,由于老的工程项目文件在使用MVC时,大量的逻辑代码在Controller层出现if和逻辑掺杂的问题,这样让我们原本的核心逻辑渐渐趋向于难于修改的状态,这样的状态导致开发小组在新增一个代码逻辑时出现不小心牵动其他逻辑导致BUG出现的问题。而且这样的问题随着工程文件的越来越大,产品逻辑的越来越复杂,问题也成倍的增长。

我们有什么样架构设计方案来面对未来激进式的产品逻辑开发呢,这是需要我们解决的问题。

思路演变历程:

架构思路第一次演变

MVC -> MVP -> MVVM?

MVVM主要是借助IOS本身的KVO特性,通过创建中间层ViewModel来管理View层。而KVO代码编写由于在XCode当中有些松散,故引入ReactiveCocoa的第三方代码库,来解决KVO松散的问题。《MVVM + ReactiveCocoa》http://www.cocoachina.com/ios/20150526/11930.html

而后由于在工程目录结构中,需要让团队开发人员在开发逻辑代码时尽可能避免互相冲突,想要代码目录结构从

Models/

ViewControllers/

ViewModels/

Views/

这样的代码结构能将独立的业务模块进行独立划分。

继而寻找到一篇文章:《新版Uber App移动架构设计》Riblets架构描述 https://zhuanlan.zhihu.com/p/24489480

这篇文章讲述的是一个老工程项目在面对大团队开发时如何去做到互补影响逻辑的架构方案,名为Riblets

架构思路第二次演变:

MVC -> MVP -> MVVM -> Riblets?

延伸阅读

《iOS 组件化 —— 路由设计思路分析》

http://www.jianshu.com/p/76da56b3bd55

《使用VIPER构建iOS应用》

http://www.cocoachina.com/ios/20140703/9016.html

相关文章

  • 在重构HBKit中遇到的一系列架构抉择问题

    HBKit \ HuobanKit是什么? HBKit最早由HuobanKit演变而来,我将HuobanKit中跟...

  • 自动化测之各流量回放技术工具对比

    前言 在日常的测试工作中我们或多或少总会遇到下列问题: 1)服务架构升级或重构,需要验证原始接口逻辑,对原有的一堆...

  • 架构重构实践

    局部架构重构 1. 架构重构的驱动力 坏味道驱动 规划驱动 架构组织与架构过程中的重构 2. 坏味道如何判断 以下...

  • Swift with a hundred engineers阅读

    原文在这儿Uber架构总工程师Tuomas Artman谈了iOS端使用Swift重构过程中遇到的问题,以及一些经...

  • React Native之ScrollableTabView i

    最近在进行项目框架重构,在重构的过程中,遇到了诸多问题,今天在调试程序的时候发现一个问题:顶部的tabBar组件r...

  • 架构师之路-架构重构

    期望通过架构重构来解决所有问题当然是不现实的。 架构师的首要任务是从一大堆纷繁复杂的问题中识别出真正要通过架构重构...

  • 远离自卑,让人生灿烂辉煌

    在日常生活中,当你面对抉择时,是否会有种退缩、逃避的情绪?遇到问题时,是否会有“这个问题我无法解决”之感?遇到所谓...

  • Android HIDL学习(4) ---- 高性能比较(HID

    写在前面 公司一些方案,在Andoird P上架构必须要修改成HIDL,不然会遇到一系列的Selinux的问题,所...

  • react的bind

    问题描述 今天重构项目的路由代码,遇到了一个问题,在app.js 的文件中,我使用react-router路由如下...

  • 移动开发中的软件架构

    在移动开发领域,我们往往会遇到软件的可扩展性、可复用性以及可维护性等问题,这就涉及到如何做好软件的架构设计或者重构...

网友评论

      本文标题:在重构HBKit中遇到的一系列架构抉择问题

      本文链接:https://www.haomeiwen.com/subject/eimnxxtx.html