- 博客(16)
- 收藏
- 关注
原创 软件开发随想:“珍惜第一次”
<br />首先声明这是谈软件开发,不必要过多联想!<br />“珍惜第一次”,这是最近和一个朋友讨论是继承还是组合时碰撞出来的一个想法。多重继承曾经很强大,但也一直被诟病。C++支持多重继承,但和C++“同辈份”的Objective-C以及“下一代”的Java、C#都不支持多继承。继承很强大,可以轻易复用父类代码。但在考虑多重继承的情况下,继承有代价,因为只能有一次。比如设计是经常会遇到这样的情况:A类因为需求1要从B继承,同时因为需求2要从C继承,这样就容易陷入“二选一”的尴尬境地。这类问题往往是滥用继
2011-04-29 18:16:00 511
原创 软件开发随想:“分享”
<br />进入IT这个行当以来,遇到过很多人也经历过一些事。因为得到别人的分享,我学习并成长了;也因为跟别人分析,思考并进步着。分享的时候需要强迫自己思考和提高,没有十二分的准备说不出十分的精彩。分享的准备过程就是知识从碎片化到系统化,从表面到深刻的过程。分享一直是驱动我的一种动力。但目前的环境让我感觉到无比的困难。<br /> 需求上:没有共同愿景,不知道“饼”在哪里<br /> 设计上:无法形成团队共识,零乱而无须<br /> 实现上:八仙过海,各
2011-04-29 18:16:00 566
原创 软件开发随想:“藕断丝连”
<br />对待感情,这可不是什么好的解决。但在软件开发中我却发现了它的位置。<br />早上刚到公司就看到新浪微博上看到一个仁兄问:“怎样才算低耦合,高内聚?”。难得微博上还有讨论技术的!也许是早上思维还算活跃,蹦入了我脑海的不是什么单一职责原则、面向接口编程、优先使用组合等等,而是“藕断丝连”。对,就应该是这感觉。如果模块间是“一刀两断”的,彼此间没有任何联系,那就不会有最终的产品或应用。而反之如果是紧密结合的也就失去了模块的意义。设计的过程其实是不断调整职责分配、关联以及数据交互的过程,这样的过程没有
2011-04-29 18:15:00 692 1
原创 iPhone开发重构:从硬编码到模型到规律
经过几个阶段的重构,代码不仅“瘦身”了,而且逻辑更清晰了。通过这样一个从硬编码到模型到规律的过程,大家看到的应该不仅仅是不断改进的代码,而且还会感觉到重构的迭代性和无止境吧!任何的设计和实现都只能是在某种情境和阶段是合理的,而不存在一个永远完美的答案。
2011-04-20 20:04:00 1008 1
原创 iPhone开发重构:提取方法以调整抽象层次
写代码有时和说话一样,要体现层次感,可能是首先罗列要点,然后再逐点细化。但如果时而说要点,时而谈细节,就会造成听者理解上的障碍。
2011-04-15 21:31:00 982
原创 iPhone开发重构:提取方法以调整函数粒度
记得刚开始做软件开发的时候,我的导师就在一次函数设计的时候说:“函数粒度很重要,但即使我做了接近二十年的软件,有时也无法很好把握粒度。这点就只可意会不可言传了。”这句话可能一部分是出自谦虚,但更多是道出软件开发的规律。当时我们无法去理解,现在开始慢慢理解。
2011-04-15 21:30:00 768
原创 iPhone开发重构:提取公用的方法以清理重复代码
代码重复是一个比较明显的“坏味道”,提取公用的方法就是解决的途径之一。iPhone开发中,使用UITableView的时候就有如下一段“经典”的模板代码,因为这是项目模板自动生成的,所以很多人就自然接受了。但随着越来越多地通过copy&paste在一个项目中使用这段代码,大家是否有些采取行动的压力呢?好吧,我们就从这“动刀”吧!
2011-04-15 21:29:00 1081
原创 iPhone How-to:静态库中使用Category
在iPhone开发中,Category是广泛使用的一种Objective-C的特性,不过如果在静态库中如果使用Category就会遇到一些意外的崩溃,原因就是在使用静态库的应用中会无法发现库中Category的声明。对此stack overflow上也有专门的讨论,并提示说要使用-all_load的编译选项。不过在我实际的项目开发中却这种方法却无法解决问题。经过一番调查和尝试,最终采用的解决办法就是创建一个冗余类,然后将所有的Category都放在该类的文件中,这样在无需实例化冗余类的情况就可以骗过编译器,
2011-04-12 09:32:00 1148 1
原创 iPhone How-to:给导航栏贴图
通过tintColor属性可以定制UINavigationBar的背景颜色,但如果需要设定渐变色、甚至纹理来说,就需要贴图了。比较“暴力”的一种做法就是通过Category来重新实现- (void) drawRect:(CGRect)rect的实现,“暴力”是因为这种杀伤面很广,所有项目内的UINavigationBar都会因此改变。这点在应用中应该格外小心。
2011-04-02 10:31:00 1434
原创 iPhone How-to:播放gif动画
iPhone SDK提供了多种动画手段,UIView、UIImageView和CALayer都支持动画。但如何处理常见的gif动画呢?UIWebView提供了答案。
2011-04-02 10:30:00 2102
原创 iPhone How-to:给UIView拍照
基本原理就是主要将UIView的layer描绘到图形上下文。本文将介绍UIView的全局拍照和局域拍照。
2011-04-02 10:29:00 844
原创 设计模式口号版
最近在进行一些设计模式讨论的时候发现有些参与者还是容易混淆于不同的模式之间,结合喊口号的国情,一时兴起杜撰一份设计模式的口号版,虽然好些还不贴切和到位,但还是发表出来,希望可以抛砖引玉以征集更多更好的口号!
2011-04-01 20:20:00 614
原创 读懂程序员
最近项目中一些交流的问题让我很是触动。从最早的程序员,到后面的管理人员,再“沦落”到现在的程序员,我感觉自己应该反思下程序员某些典型的话语中的深层次含义,避免一些沟通中的误解。
2011-04-01 20:19:00 583
原创 也谈用户体验
本人的iPhone“处女作”最终(完成开发但延迟发布)命运带给我的触动挺大的。需要反省的地方很多,但首先可能应该谈谈用户体验。不过首先要声明下,本人不是这方面的专家,所以可能反省得不到位,甚至会有偏差,还希望大家多多包涵。
2011-04-01 20:17:00 767
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人