开发中容易忽略和挖坑的场景总结

导语 总结代码设计时容易忽略的场景,需求启动阶段就考虑好各个场景,可以提高代码的健壮性,有效减少bug数

Model

设计协议时,没有考虑数据无更新的场景,不考虑seq存在的必要性
写发送请求代码时,没有考虑频率限制,重入问题
对于高频场景,没有考虑做数据缓存
对于列表数据没有去重逻辑
即发即看的数据(比如帖子,视频),要考虑好假数据的key问题,以及回包后刷新这个临时key的逻辑
忘了考虑超时,重试,网络切换,切后台/前台等等场景
往枚举类型中间插入新值时,要考虑旧版本的数据兼容性
数据量大时,没有考虑分页拉取
数据异步返回时,没有考虑账号已经切换的场景

View

动不动就reload整个tableview
把数据请求代码写到view里面
    这里不是不可以,而是不好,因为view的生命周期系统提供相应的回调,所以很多同学都把数据请求写到view的init方法里,这不仅仅引起代码耦合问题,一些性能问题也难以规避
    没考虑点击的频率限制
动画只会简单实用UIView提供的接口,一些序列动画请直接使用coreAnimatino接口
尽量不要在一个动画的completion里启动另外一个动画。为什么?
    动画一旦启动,无法直接中断。一些放大动画会先记录原来的值,等动画结束再还原回来,这个值很可能在其他地方被修改,导致还原回去的是个错误的值。
随处可见的魔法数字
随处可见的重复布局代码

Controller

动不动就继承系统的VC
    请多组合,少继承
willAppear/didAppear 一定要考虑重入问题
如果一个函数能改成静态的,说明这个函数与VC无关,请放到VC外面去,即使只有一行代码

上报

尽量把上报放到功能实现类的外面

性能

tableview里设置了Cornerradio,boundtomask等属性,生成圆角图片
tableview上的label使用sizetofit方法
这方法有严重的性能问题,请异步使用coretext里的接口来计算size,以免阻塞主线程
上传队列里如果有很多的UIImage,请考虑先存到本地,到真正上传时再从io读进来
上传队列每个task都应嵌套在autoreleasepool中

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网杂技

【小教程】教你拿出app中的图片资源

有一种方法通过ipa或apk包来获得每个资源的切图,今天就来简单介绍下。因为有的同学还不知道这个方法,尤其是没有技术背景的同学(我司UI妹子得知这个方法如获至宝...

2735
来自专栏程序猿DD

我最常用的Intellij IDEA快捷键

原文:http://www.radcortez.com/my-most-useful-intellij-idea-keyboard-shortcuts/ 译文:...

2088
来自专栏向治洪

github pages + Hexo + 域名绑定搭建个人博客增强版

概述 前面我们用github pages + Hexo 搭建了一个简单版的个人博客系统,但是里面的内容单调,很多功能不够完善,所以我们需要对yelle 的主题进...

2878
来自专栏北京马哥教育

Linux 进程管理之四大名捕

一、四大名捕 四大名捕,最初出现于温瑞安创作的武侠小说,是朝廷中正义力量诸葛小花的四大徒弟,四人各怀绝技,分别是轻功暗器高手“无情”、内功卓越的高手“铁手”、腿...

2954
来自专栏Golang语言社区

Go语言TCP Socket编程--1

Go语言TCP Socket编程 Golang的 主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分。在日常应...

3656
来自专栏编程微刊

小程序获取当前日期和时间点的方法

3:在需要使用的js文件中,导入jsvar util = require('../../utils/util.js'); js:

1734
来自专栏IMWeb前端团队

解读bootstrap v4 sass设计

首先关于bootstrap从v3的less转到v4的sass的十万个为什么,这里暂且不表(计划会另起一篇文章对比less,sass,postcss)。 其次本篇...

2960
来自专栏Jerry的SAP技术分享

微信小程序开发系列五:微信小程序中如何响应用户输入事件

通过前面四个章节的介绍,大家对微信小程序的视图和控制器,以及微信调试器的用法已经有了一个最基本的认识了。在这个基础上,让我们进一步学习微信小程序控制器,掌握在小...

1022
来自专栏后端之路

乌龙事件之chrome页面部分白屏

背景 最近客户抱怨网页加载慢 经常出不来,但是从后端查看大部分页面都还算及时结束! 除了和劫持有关的问题之外网页慢!谁的锅?【通过network可以观察得出】 ...

3444
来自专栏为数不多的Android技巧

mac下自动切换输入法

长久以来,输入法一直是困扰mac用户的一个问题;不过随着国内厂商的跟进,这种状况得到了极大的改善。不用自己去折腾什么鼠须管了,狼厂和企鹅都做的不错。

2511

扫码关注云+社区