
获得徽章 0
- 关于修 bug 的一点想法:
1. 如果你面对的是多个测试,反馈来的问题往往有可能是重复的。很多人拿到 buglist 之后就马上挨个修,其实正确的姿势应该是先把这些 bug 进行分类,比如归类到某个页面,或者是某个 service。这个过程也是你理清思路,保持冷静的一步;
2. 分类完之后按类别进行修复,然后最重要的一点来了:修复完之后把这个部分的 test case 过一遍!很多人都是修完一个 bug 之后就验证下这个 bug 是不是没了就不管了,最后往往导致这个 bug 修完了,又搞出来其他 bug;
3. 给 bug 分类的时候一定要识别出 bug 的优先级,一般来说,阻断性的 bug(导致主流程不通的 bug)一定是要马上修复并提供新包给测试的,因为等你把所有 bug 修完再给测试打包可能往往已经是半天之后了,测试呢,卡在这个地方,半天时间什么也干不了,极其浪费时间;
4. 多和测试沟通。如果阻断性 bug 修复的时间比较长,一定要提前告知测试,并给一个预期的完成时间点给他,很多人可能会沉浸在修复 bug 这件事件中,觉得最重要的事情就是把手里的 bug 修完,但是换位思考下,你在修 bug 的时候测试对你的情况一无所知,测试这个时候是什么感受?(如果条件允许建议坐到测试旁边修 bug,相信我,无比丝滑)
5. 注意:并不是所有的 bug 都是可以“修”好的!适当时候你要砸碎重来!比如某个方案设计的时候存在比较大的缺陷,导致最后加再多的 if-else 也修不好,那就要考虑重新理清思路,重写,虽然看上去会花费时间比较多,但是从反反复复修 bug 这个角度来说,绝对值得!
6. 最后一点:测试就是上帝!好好跪舔!展开828 - 最近在梳理 Swift 4.2 以来的变动时,发现一个从 4.0 时代开始就被忽略的小细节,关于 Array。
为了完全与 Objective-C 划清界限,Swift 对 Array 进行彻彻底底的重构,进入 Swift 4.0以后,Swift 就将不少兼容 NSArray 的 API 移除了,这其中就包括一个使用频率非常高的 Array.index(of anObject: Any) -> Int
当你试图在敲代码时联想这个API,就会发现编译器没有任何提示,标准库里也找不到这个方法(此前一段时间里我一度认为这是编译器的 bug),但是3.0 时代遗留的代码却不会产生任何警告,甚至你还可以通过盲打来使用这个API,直到今天重新翻阅 Swift 文档才发现,这个 API 是确确实实被移除了,但为什么可以通过盲打来继续使用呢,这是因为 index(of anObject: Any) -> Int 已经「彻彻底底」变为 NSArray 专属了,当你以盲打的方式"强行"使用这个API时,编译器会自动为你的 Array 转换成 针对 NSArray 的兼容模式,实际上你调用的是 NSArray 的方法。
那 Array 难道没有提供相应的替代方法吗?当然有。在文档中我找到了这个方法: func firstIndex(of: Element) -> Int?
看着这个方法名已经很容易猜到它的作用,返回数组中最先匹配到该元素的索引值,NSArray 的内部对 index(of: ) 的实现出于性能的考虑也不外乎也是找到符合条件的第一个元素就停止寻找,直接返回索引值,所以这个方法应该就是替代方案,为了验证想法尝试了一下,果然如此
let array = ["1", "2", "3", "4", "5"]
let index = array.firstIndex(of: "3")
printLog("\(String(describing: index))")
/// print : 2展开评论10