001 容错机制
思路利用swizzle机制在NSArray 分类+load()方法涉及到元素访问等方法进行混淆,对索引进行拦截判断
002 布局方式固定,可以预排版
通过预判版可以有效减少卡顿的出现,让CPU GPU有更多的资源来处理数据解析和控件渲染
003 利用多线程组,将首页多个网络请求操作合理调配
dispatch_group_t 将一些操作 enter 或者leve
可以利用dispatch_source_t 资源调度来生成更加精确的定时器,相比NSTimer,它不需要依赖于runloop,从源码代码看它是基于内核时针调度关键词os_auto
可以用dispatch_semaphore_t 信号量来最大并发量 ,通过dispatch_semaphore_wait -1 dispatch_semaphore_signal +1来控制
也可以利用NSOperationQueue
004 业务模块之间耦合度要低
最好是各个模块老死不相往来,通过中介模式将两者跳转串起来
005 产业务稳定的情况下组件化拆分
组件化是业务模块成熟稳定的标志,先一个路由模块将各大模块通过key-value的方式注册,通过target-action将通过路由将不同模块之间连接起来,传递参数给另一个模块。
那么以后开发的时候 开发着就专注于自己模块的开发,通过POD的的形式将开发的模块集成到目标的项目中这样就可以适配各种项目已达到快速部署的目的。
006 与服务器端需要引入心跳以及退出指令
因为大量用户在线链接到服务器,服务器的负载会增大,通过客户端与服务器商定好每隔一段时间的给服务器发送心跳就说明服务器和客户端是链接的,那么服务器就不会将该链接清除,退出指令发送给服务器那么服务器就不用等待那几秒就可以立马断开,将宝贵的资源分配给正在连接的用户。
007 大量图片缓存处理机制设定最大缓存size定期清空缓存
// Setting disk cache
[[[SDImageCache sharedImageCache] config] setMaxCacheSize:1000000 * 20]; // 20 MB
// Setting memory cache
[[SDImageCache sharedImageCache] setMaxMemoryCost:15 * 1024 * 1024]; // aprox 15 images (1024 x 1024)
008 网络层面进行优化
研究TCP UDP HTTPS协议。
009 内嵌WebView 加载速度提升
1.CDN加速
2.在本地缓存衣服HTML CSS布局,加载的时候求专注JS调用资源和WebView渲染
3.获得的服务器HTML CSS等代码直接注入到WebView
4.可以查看掘金字节技术博客
010 代码注释清晰易于维护
这是一个成熟程序员的标配
011 项目模块分层清晰
这是一个成熟高级程序员的标配