V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vista980622
V2EX  ›  Apple

笑到肚子疼的 iOS 开发建议

  •  1
     
  •   vista980622 · 2017-05-27 12:39:42 +08:00 · 7668 次点击
    这是一个创建于 2738 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近在推特上看到了 @realbadiostips 这个账户发出了一大批糟糕的 iOS 开发建议,简直笑到肚子疼。下面我就来翻译一下这些推文,请各位一同欣赏:

    1 - 要给变量取名字?用拼音首字母就对了!这样代码不但短小精悍,同时有效减少手臂酸痛。



    2 - 公司的 HR 面试官才不在乎你会不会写单元测试、是否精通算法,或者了不了解平台的 API。只要告诉他们你大量依赖并熟练使用各种第三方 CocoaPods 库就够了!



    3. 想要离线缓存数据?千万别用数据库,那东西太复杂了,又要考虑线程、又要担心合并策略,特别容易出错。你应该用经过初级程序员们千锤百炼的 NSUserDefaults,稳定性坚如磐石。



    4. 还记得编译 app 的时候出现的那些警示么?其实这是水果的阴谋。警示多了,说明你对 iOS 的底层了解太深,水果怕你滥用权限。所以千万别浪费宝贵的休息时间去纠错,而是应该对你的成就感到由衷的开心。



    5. 在编写 app 的时候务必牢记:在用户第一次启动 app 的时候,一定要让系统弹出 11 个 Alert,向用户索取所有能索取到的隐私权限:相机、麦克风、定位服务、联系人、日历、提醒事项、蓝牙共享、健康、音乐、语音识别和 HomeKit。毕竟,要是第一次启动的时候不问全了,之后需要用这些权限的时候忘了索取可就坏了 —— 忘了的话,傲娇的水果是会直接让你的 app 崩溃的。



    6. 如果你是面试官,面试 iOS 程序员的时候一定要叫他们在白板上用 RxSwift 从头开始编写神经网算法。这样不但让你在面试时变成威风凛凛的指挥官,而且还能让他们在今后工作期间对你俯首贴耳。



    7. 进阶技巧:在写代码的时候记得不要换行。这样不但会加快自动补全的准确度,还会改善编译的速度。另外,在设置调试断点的时候你也不用上下翻来翻去了。



    8. 想防止代码异味?简单!首先保存 Xcode 项目。然后打开终端,只 commit 现有改动到本地的 git 源,但不要把变更推到 Github 上。最后用 Finder 打开工程目录,在笔记本开盖的情况下把整机泡到高浓度酒精里。搞定!



    9. 想知道你用的第三方库稳不稳定?简单!找库就像买二手车 —— 经过的各种修修补补和维护当然越少越好。



    10. MVC 其实是 Most Viable CocoaPod (最明显的 CocoaPod) 的缩写。



    11. 把复杂的代码全部丢进异步后台线程里能够提升性能。只有原始人才用的整数、布尔值和 UISegmentedControl 才需要在主线程里执行。



    12. 程序里各种功能的 KPI 不够?简单!先强制注销用户,然后用灰度下发或者随机算法给登录页面换个地方。这样,你的 app 就变成了一场寻宝游戏,特别有助于用户发现和体验各种之前不知道的功能。



    13. 个人开发者经常接私活?是不是那么多 iTunes Connect 的账号密码记也记不清了?哎,你们太不会变通了。把这些 iTunes Connect 的账号密码存到 Info.plist 里不就好了吗?随用随取!



    14. 在 AppDelegate 里的代码越多,你的 app 运行速度越快。AppDelegate 和 CPU 之间的距离最短,性能开支最少。

    52 条回复    2017-05-30 19:23:32 +08:00
    guanqian
        1
    guanqian  
       2017-05-27 12:44:04 +08:00
    虽然不懂 ios 开发,但是,哈哈哈哈哈。
    zaxlct
        2
    zaxlct  
       2017-05-27 12:47:54 +08:00 via Android
    翻译的不错
    irainsoft
        3
    irainsoft  
       2017-05-27 12:50:23 +08:00
    第 13 条 hhhhhh
    vista980622
        4
    vista980622  
    OP
       2017-05-27 12:53:18 +08:00
    @zaxlct Thx! :D
    mooczz
        5
    mooczz  
       2017-05-27 12:56:08 +08:00
    😂
    loveuqian
        6
    loveuqian  
       2017-05-27 13:26:16 +08:00 via iPhone
    全部赞同
    wym572
        7
    wym572  
       2017-05-27 13:37:44 +08:00 via iPhone
    这样的 App 过不了审核。
    jayzjj000
        8
    jayzjj000  
       2017-05-27 13:38:48 +08:00
    有没人帮忙试一下 13 条的账号密码 233333333
    bullettrain1433
        9
    bullettrain1433  
       2017-05-27 13:50:35 +08:00
    - -iOS 都被这些人搞浑水了
    alice1991
        10
    alice1991  
       2017-05-27 13:55:12 +08:00
    受益匪浅
    vincentxue
        11
    vincentxue  
       2017-05-27 14:26:37 +08:00
    这明显是自黑的吧?
    vista980622
        12
    vista980622  
    OP
       2017-05-27 14:30:21 +08:00
    @vincentxue 恩,是个恶搞的推特账户。
    andyL
        13
    andyL  
       2017-05-27 14:58:22 +08:00
    66666,真的是诶,我都是这么干的,借此获得多次优秀员工。
    这个推主很有才,我要关注。终于找到水平相近的,可敬的对手了。

    🤓
    andyL
        14
    andyL  
       2017-05-27 14:59:47 +08:00
    翻译的不错,Btw,你 catch 到 point 了
    hst
        15
    hst  
       2017-05-27 15:01:24 +08:00
    好欢乐啊
    andyL
        16
    andyL  
       2017-05-27 15:02:51 +08:00
    楼主啊,能不能转载到公众号,灰常感谢 🙏🙏
    andyL
        17
    andyL  
       2017-05-27 15:06:39 +08:00
    - Keep your variable names to 1 or 2 characters. Keeps your code Swifty and saves your rams.
    - 给变量命名一定要精简,尽量只用 1-2 个字符,这样可以使你的代码运行更加流畅,并且可以有效的减少程序对内存的占用
    andyL
        18
    andyL  
       2017-05-27 15:11:25 +08:00
    变量命名
    - 一定要精简,尽量只用 1 个字符,26 个不够用的情况下可以适量增加。
    - 有时候自己都看不懂?你需要新建一个文本文档来仔细描述这个变量的作用,以用来查看其具体的含义。
    - 用完之后请注意加密这个文档,以免被别人解读。这个技巧有个最大的好处:你也许可能变成公司不可或缺的的顶级程序员。
    andyL
        19
    andyL  
       2017-05-27 15:11:46 +08:00
    这一个是我自己瞎掰的 哈哈哈哈
    wangleineo
        20
    wangleineo  
       2017-05-27 16:32:53 +08:00
    但是我觉得 NSUserDefaults 真的很好用啊...
    vista980622
        21
    vista980622  
    OP
       2017-05-27 17:09:17 +08:00
    @andyL 转载到公众号没问题!
    vista980622
        22
    vista980622  
    OP
       2017-05-27 17:10:12 +08:00
    @andyL 那个你自己掰的变量命名亮了!(要是用 Swift 的话,还可以加一条用 Emoji 命名)
    vista980622
        23
    vista980622  
    OP
       2017-05-27 17:11:15 +08:00
    @wangleineo NSUserDefaults 好不好用要看用途,要是轻量的数据或者设置的话确实很好用。要是数据库大了就有点... 不太合适?
    hshw
        24
    hshw  
       2017-05-27 17:12:43 +08:00
    这是反讽吧
    wangleineo
        25
    wangleineo  
       2017-05-27 17:19:57 +08:00
    @vista980622 没错,就是轻量数据。app 在本地缓存的数据也就不到 100 条吧,虽然是结构化的,但是感觉用数据库有点多余。
    vista980622
        26
    vista980622  
    OP
       2017-05-27 17:20:26 +08:00
    @wangleineo 恩,100 条的用 NSUserDefaults 绝对没错!
    vista980622
        27
    vista980622  
    OP
       2017-05-27 17:24:11 +08:00 via iPhone
    @hshw 恩,当然是反讽。
    andyL
        28
    andyL  
       2017-05-27 18:27:10 +08:00
    @vista980622
    @all
    整理了一下,放到公众号和简书上了。http://mp.weixin.qq.com/s/q6sWeJ0-syp10BsffjYGoQ

    简书: http://www.jianshu.com/p/1325d6dc6678

    🤓🤓🤓
    vista980622
        29
    vista980622  
    OP
       2017-05-27 18:31:57 +08:00
    @andyL 看到了!还有你的二次创作 :D
    andyL
        30
    andyL  
       2017-05-27 18:32:42 +08:00
    @vista980622 哈哈哈哈
    n6DD1A640
        31
    n6DD1A640  
       2017-05-27 20:38:20 +08:00
    。。。人干事
    EagleB
        32
    EagleB  
       2017-05-27 21:40:36 +08:00
    AppDelegate 和 CPU 之间的距离最短,喷了
    CSwater
        33
    CSwater  
       2017-05-27 21:52:31 +08:00
    @andyL 不交代一下前因后果,你会被人糊墙上的……
    andyL
        34
    andyL  
       2017-05-27 21:55:36 +08:00
    @CSwater 不太明白,什么前因后果,啥叫糊墙上😅😅
    CSwater
        35
    CSwater  
       2017-05-27 22:23:38 +08:00
    @andyL 有人会没看完就开喷。
    onefouroo
        36
    onefouroo  
       2017-05-27 22:27:22 +08:00 via iPhone
    照着第 5 条做一次 :D
    BoBoy
        37
    BoBoy  
       2017-05-28 01:50:37 +08:00 via iPhone
    没感觉哪里好笑, 倒是感觉你很无聊。
    vista980622
        38
    vista980622  
    OP
       2017-05-28 04:00:15 +08:00   ❤️ 2
    boywang004
        39
    boywang004  
       2017-05-28 08:01:30 +08:00
    好想顺手写个 Java 版……
    andyL
        40
    andyL  
       2017-05-28 08:18:30 +08:00
    @BoBoy 感觉你就是一条无聊的蛆虫
    andyL
        41
    andyL  
       2017-05-28 08:19:54 +08:00
    @vista980622 昨天没看懂 emoji 命名的梗,哈哈
    luanjia
        42
    luanjia  
       2017-05-28 08:31:27 +08:00 via Android
    哈哈哈哈哈,不懂 iOS,但是这些建议是服气的 2333
    lsyAndroid
        43
    lsyAndroid  
       2017-05-28 09:52:46 +08:00 via Android
    android 也能用吗?微笑脸
    BoBoy
        44
    BoBoy  
       2017-05-28 09:58:38 +08:00 via iPhone
    @andyL 是吗?那可能你还是太年轻,年轻人犯点错,我怎么能和你计较呢。👏🏻
    yxjxx
        45
    yxjxx  
       2017-05-28 11:58:34 +08:00
    yxjxx
        46
    yxjxx  
       2017-05-28 12:01:48 +08:00
    信✅
    达✅
    雅❓
    oulongqi
        47
    oulongqi  
       2017-05-28 13:00:31 +08:00
    哈哈哈哈哈哈笑死
    gongjianhui
        48
    gongjianhui  
       2017-05-29 12:51:26 +08:00
    @livid 全文转载。
    gongjianhui
        49
    gongjianhui  
       2017-05-29 12:53:18 +08:00
    @gongjianhui #48 呃... 好像不是
    Livid
        50
    Livid  
    MOD
       2017-05-29 13:13:07 +08:00   ❤️ 1
    @gongjianhui 这是楼主的二次创作。源推是全英文的。这些中文配图也是楼主自己加上的。

    作为一个曾经写过几年 iOS 的人表示很棒。
    zgqq
        51
    zgqq  
       2017-05-29 18:27:59 +08:00
    原谅我实在找不到笑点
    smilexyk
        52
    smilexyk  
       2017-05-30 19:23:32 +08:00 via iPhone
    我在想要是真有人按照这个来写代码怎么办……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2847 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 08:49 · PVG 16:49 · LAX 00:49 · JFK 03:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.