最近在推特上看到了 @
realbadiostips 这个账户发出了一大批糟糕的 iOS 开发建议,简直笑到肚子疼。下面我就来翻译一下这些推文,请各位一同欣赏:
1. 要给变量取名字?用拼音首字母就对了!这样代码不但短小精悍,同时有效减少手臂酸痛。
http://wx2.sinaimg.cn/large/6c6498acgy1ffzt6jqnmmj20vo0njdmz.jpg2. 公司的 HR 面试官才不在乎你会不会写单元测试、是否精通算法,或者了不了解平台的 API。只要告诉他们你大量依赖并熟练使用各种第三方 CocoaPods 库就够了!
http://wx2.sinaimg.cn/large/6c6498acgy1ffzt6qb208j21340w5gs8.jpg3. 想要离线缓存数据?千万别用数据库,那东西太复杂了,又要考虑线程、又要担心合并策略,特别容易出错。你应该用经过初级程序员们千锤百炼的 NSUserDefaults,稳定性坚如磐石。
http://wx1.sinaimg.cn/large/6c6498acgy1ffzt794z6cj210t0l8qch.jpg4. 还记得编译 app 的时候出现的那些警示么?其实这是水果的阴谋。警示多了,说明你对 iOS 的底层了解太深,水果怕你滥用权限。所以千万别浪费宝贵的休息时间去纠错,而是应该对你的成就感到由衷的开心。
http://wx1.sinaimg.cn/large/6c6498acgy1ffzt7dt6s9j20e0022wec.jpg5. 在编写 app 的时候务必牢记:在用户第一次启动 app 的时候,一定要让系统弹出 11 个 Alert,向用户索取所有能索取到的隐私权限:相机、麦克风、定位服务、联系人、日历、提醒事项、蓝牙共享、健康、音乐、语音识别和 HomeKit。毕竟,要是第一次启动的时候不问全了,之后需要用这些权限的时候忘了索取可就坏了 —— 忘了的话,傲娇的水果是会直接让你的 app 崩溃的。
http://wx2.sinaimg.cn/large/6c6498acgy1ffzt7niemqj219w0msgzg.jpg6. 如果你是面试官,面试 iOS 程序员的时候一定要叫他们在白板上用 RxSwift 从头开始编写神经网算法。这样不但让你在面试时变成威风凛凛的指挥官,而且还能让他们在今后工作期间对你俯首贴耳。
http://wx4.sinaimg.cn/large/6c6498acgy1ffzt7qq95yj20cr09pjsh.jpg7. 进阶技巧:在写代码的时候记得不要换行。这样不但会加快自动补全的准确度,还会改善编译的速度。另外,在设置调试断点的时候你也不用上下翻来翻去了。
http://wx2.sinaimg.cn/large/6c6498acgy1ffzt84jnczj213k0cik2f.jpg8. 想防止代码异味?简单!首先保存 Xcode 项目。然后打开终端,只 commit 现有改动到本地的 git 源,但不要把变更推到 Github 上。最后用 Finder 打开工程目录,在笔记本开盖的情况下把整机泡到高浓度酒精里。搞定!
http://wx3.sinaimg.cn/large/6c6498acgy1ffzt89ahutj21kw0q34qr.jpg9. 想知道你用的第三方库稳不稳定?简单!找库就像买二手车 —— 经过的各种修修补补和维护当然越少越好。
http://wx1.sinaimg.cn/large/6c6498acgy1ffzt8yah24j21kg0ven1y.jpg10. MVC 其实是 Most Viable CocoaPod (最明显的 CocoaPod) 的缩写。
http://wx1.sinaimg.cn/large/6c6498acgy1ffzt90atpnj20po0aq3z6.jpg11. 把复杂的代码全部丢进异步后台线程里能够提升性能。只有原始人才用的整数、布尔值和 UISegmentedControl 才需要在主线程里执行。
http://wx1.sinaimg.cn/large/6c6498acgy1ffzt95w15cj213k0l2wp1.jpg12. 程序里各种功能的 KPI 不够?简单!先强制注销用户,然后用灰度下发或者随机算法给登录页面换个地方。这样,你的 app 就变成了一场寻宝游戏,特别有助于用户发现和体验各种之前不知道的功能。
http://wx4.sinaimg.cn/large/6c6498acgy1ffzt6eu3ycj20yi1pcn6c.jpg13. 个人开发者经常接私活?是不是那么多 iTunes Connect 的账号密码记也记不清了?哎,你们太不会变通了。把这些 iTunes Connect 的账号密码存到 Info.plist 里不就好了吗?随用随取!
http://wx1.sinaimg.cn/large/6c6498acgy1ffzt9d3lqej21520duq70.jpg14. 在 AppDelegate 里的代码越多,你的 app 运行速度越快。AppDelegate 和 CPU 之间的距离最短,性能开支最少。
http://wx3.sinaimg.cn/large/6c6498acgy1ffzt9hww57j211w0mcthm.jpg