20180222 , Objc.io_KV ◊◊ 面试,介绍项目



电商项目模块划分:

商品详情页, 多入口

BaseEnv模块:登录,网关,数据库,JSBridge,基础Catagory,Util等
Index业务模块:电商首页模块
Search业务模块:电商搜索模块
ProductDetail业务模块: 商品详情模块
Cart业务模块:购物车模块

电商项目难点:

面试了 20 个初/中级 iOS 工程师之后(上)

iOS面试

按模块,不如按组件

App架构设计经验谈:展示层的设计

比如一个电商App,可能会有首页、附近、分类、我的四大模块,工程结构也根据这四大模块进行划分,
同样的,iOS则分为四个分组:home、nearby、category、user。

之后,每个模块下相应的页面就放入相应的模块。那么,问题来了,商品详情页应该属于哪个模块呢?首页会跳转到商品详情页,附近也会跳转到商品详情页,分类也会跳转到商品详情页,用户查看订单时也能跳转到商品详情页。有些页面,并不能很明显的区分出属于哪个模块的。我接手过的,按业务划分的二手项目中(即不是由我搭建的项目),我要找一个页面时,我认为应该属于A模块的,但在A模块却找不到,问了同事才知道在B模块。类似的情况出现过很多次,而且不止出现在我身上,对业务不熟悉的开发人员都会出现这个问题。而且,对业务不熟悉的开发人员开发新的页面或功能时,如果对业务理解不深,划分出错,那也将成为问题,其他人员要找该页面时更难找到了。

因此,我更喜欢按组件划分的工程结构,因为组件每个人都懂,不管对业务熟不熟悉,查找起来都明显方便很多。

controllers 存放所有ViewController
cells 存放所有Cell,包括TableViewCell和CollectionViewCell
views 存放所有自定义控件或对系统控件的扩展
utils 存放所有的工具类

你可能感兴趣的:(20180222 , Objc.io_KV ◊◊ 面试,介绍项目)