类功能单一化,代理,代理的代理 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
cralison
V2EX    iDev

类功能单一化,代理,代理的代理

  •  
  •   cralison 2015-08-28 07:57:30 +08:00 1672 次点击
    这是一个创建于 3775 天前的主题,其中的信息可能已经有所发展或是发生改变。

    时间有限,选择深入,放弃广博。

    我把 1000 行的 ViewController ,修改成只有 300 行。也把原来需要 15 个 ViewController ,修改成只用 1 个 ViewController 。

    这样写代码,看起来慢,实则比什么都快。因为下一个 ViewController ,我可以写得同样小、同样漂亮,后面的维护修改将更加一目了然、路径分明。

    怎么做到的呢?
    很简单:建一个对象,把本需要在原地处理扔到这个对象里面去做。

    那么,我的 ViewController 建了什么对象呢?
    4 个。
    1 、 ViewModel
    2 、 APIHandle
    3 、 StoreHandle
    4 、 RouteHandle

    把 ViewController 里做的事情分类,同一类的事情交给同一个对象处理。
    这样可以剥离依赖,使类功能更专一,更利于复用,更容易测试维护,自然,程序就会写得更快更好。

    对象之间互相注册代理,通过协议消息传递行为和数据。
    更利于以后需求迭代、性能优化。

    一块代码,是扔给代理,还是本地处理,主要看代码是否涉及本类实例变量。所有涉及本类实例变量的代码,都应该通过“代理的代理”的形式,返回本地操作。

    后记(下面以聊家常为主,没时间没兴趣的朋友请直接忽略):

    长久以来,人们通过更广博来增加安全感。
    多一个技能,多一份工作,多一位朋友,多一本书,多一个孩子,多一笔存款。
    但是,竞争无处不在,不深刻就不会有优势。输家再多,还是输家。弱项再多,还是弱项。肤浅再多,还是肤浅。
    人们最终都会发现,把全世界犁一遍,除了天怒人怨、破坏生态、累死自己以外,别无用处。而定点深挖,即使收获不到金子,也至少可以得到一口活命的井水。
    深入,最大的误解风险,是怕没有市场。辛辛苦苦深入半生,结果出来的东西没人要,使得自己一生潦倒。
    要知道,深入,是过程,不是结果;是技能,不是印章。
    一个能深入一点的人,只要愿意,就能深入一切。
    所以,只需深入,无需惶恐。
    做深是合作,做广是竞争。

    上午,我说服了老婆要深入。晚上,我说服了老婆要广博。总算把深入的好处和风险都过了一遍。
    通过这样的遍历,对深入的好坏,有了更全面的认知。
    用户需要新功能,没错。但是,用你的新功能,还是用别人的新功能,就没那么简单。况且,有些新功能,只有足够深入才可能做出。
    在这方面,苹果是最好的代表之一。苹果的软硬生态工艺,已经深入到让对手无从复制。当然,你可以做出同样的装饰骗消费者下单,却永远无法给出同样深度的体验。
    近一点,老罗靠着局部深入优化,硬生生地打开了一片市场。“虽然不是特别起眼、重大,但只要用过了,就回不去了。”
    这种小小的“回不去”,积累多了,产品在消费者的心里就树立不可动摇地位置。竞争对手将会越来越崩溃。因为复制成本越来越高,模仿又只等于帮你做宣传。

    深入是积累优势,广博是浪费青春。

    回到现实,不要嫌公司、项目太 Low ,好好去深入去优化。
    记住,深入是过程,是技能。是内在,是上身的东西,永远不要去担心外放不足,或优势消失。

    Vernsu
        1
    Vernsu  
       2015-08-28 09:19:38 +08:00
    Show We Code ?
    iyangyuan
        2
    iyangyuan  
       2015-08-28 11:12:05 +08:00
    no code say jb?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2670 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 09:11 PVG 17:11 LAX 01:11 JFK 04:11
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86