随笔分类 -  系统设计

《假如我是苹果》的姊妹篇
摘要:用公共头文件来实现个人提炼的功能模块的集中管理,如此,则公共头文件就有点像开发包了。只是,这个开发包是开放源码的。PersonPublicHeader.h 汇集各个公共模块的头文件,然后在业务类中引用被头文件,则再也不用逐个引用功能模块的头文件了。 阅读全文
posted @ 2013-12-28 06:38 ygm900 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-12-25 15:49 ygm900 阅读(334) 评论(0) 推荐(0) 编辑
摘要:在软件开发阶段,我们常常说到一个词“业务流程”。但是这个词具体是什么意思,好像没有几个人能够说得清楚。近期,为了研究设计模式,朋友发来一个他们公司开发的软件产品供我学习参考。拿到这款产品后, 我思考了如下的问题:(1)怎样才能快速熟悉这款软件产品,并能够向他人描述这款产品?(2)怎样评价这款产品的设计模式是否合理?依据什么样的标准呢?(3)这款产品的设计模式还有改进的余地吗?怎样改进?想来想去,无从入手。脑子里不断盘旋的是这么几个词“业务流程”、“模块”、“功能”、“流程图”、“业务”、“UML”、“业务模型”。很乱,没有头绪。终于,在和另外一位朋友闲聊软件设计模式的时候,突然领悟。业务和流程 阅读全文
posted @ 2013-12-17 13:20 ygm900 阅读(996) 评论(0) 推荐(0) 编辑
摘要:接触iOS手机开发有一段时间了。总体来说,苹果公司设计的开发环境还是非常人性化的。很容易上手,也方便深入。 在组织大型项目的代码文件时,我们常用MVC的思想。MVC的概念讲起来非常简单,就和对象(object)一样。但是理解和应用起来却非常困难。今天我们就试着探讨一下MVC设计理念。 M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。 比如一批统计数据可以分别用柱状图、饼图来表示。 C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。 再实际开发中,M虽然本意是业务模型,但通常被理解为数据... 阅读全文
posted @ 2013-12-13 20:37 ygm900 阅读(12060) 评论(0) 推荐(0) 编辑
摘要:转:http://jinkeu.blog.163.com/blog/static/2089212920115304113798/ 阅读全文
posted @ 2013-07-10 15:26 ygm900 阅读(217) 评论(0) 推荐(0) 编辑
摘要:重用控件类代码的一个非常好的解决方案:所有一样的控件其名字均用同样的一个名字。只是在最后赋值的时候,将创建好的控件赋给我们需要用到的那个控件。- (id)initWithFrame:(CGRect)frame arrowImageName:(NSString *)arrow textColor:(UIColor *)textColor { if((self = [super initWithFrame:frame])) { self.autoresizingMask = UIViewAutoresizingFlexibleWidth; sel... 阅读全文
posted @ 2013-07-09 14:56 ygm900 阅读(978) 评论(0) 推荐(0) 编辑
摘要:将数据处理逻辑集中到一处进行管理,逐步实现真正有效的 MVC 分层结构。 阅读全文
posted @ 2013-07-03 17:29 ygm900 阅读(229) 评论(0) 推荐(0) 编辑
摘要:参考:http://www.cocoachina.com/bbs/read.php?tid-6209.html 阅读全文
posted @ 2013-05-31 18:29 ygm900 阅读(142) 评论(0) 推荐(0) 编辑
摘要://开启iphone网络开关[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; ASIFormDataRequest *request = [[ASIFormDataRequest alloc] initWithURL:[NSURLURLWithString:host]];//超时时间 request.timeOutSeconds = 30; //定义异步方法 [request setDelegate:self];[request setDidFailSelector:@selector(reques 阅读全文
posted @ 2013-05-31 16:24 ygm900 阅读(3018) 评论(0) 推荐(0) 编辑
摘要:- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self;}#pragma mark - Start 数据入口-(void)inputData{ //对程序级的全局变量用局部变量获取出来,然后转存给当前viewCo... 阅读全文
posted @ 2013-05-30 11:12 ygm900 阅读(179) 评论(0) 推荐(0) 编辑
摘要:1、再每个viewDidLoad 方法中都尽量不要写业务逻辑相关的代码。viewDidLoad方法最好只用于展示view。 业务逻辑可以再另外的线程中进行处理,这样用户的操作感觉会相对流畅。2、再使用 UITableView 时,不要在-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 方法中写绘制画面的代码。建议在另外的方法中为每个cellview 绘制一个view ,然后将这些view 存储在 NSMutableArray 中。cellFo 阅读全文
posted @ 2013-05-26 05:30 ygm900 阅读(909) 评论(0) 推荐(0) 编辑
摘要:宁愿多写几行代码,也要保证每个方法的内聚特性。方便后期的扩展和维护。 阅读全文
posted @ 2013-01-26 12:34 ygm900 阅读(265) 评论(0) 推荐(0) 编辑
摘要:1、代码结构清晰,易于维护、易于管理内存2、高内聚、松耦合,模块化设计,可重用3、易扩展4、易优化(内存使用调优、性能调优) 阅读全文
posted @ 2013-01-25 14:07 ygm900 阅读(166) 评论(0) 推荐(0) 编辑
摘要:获取数据和解析数据的方法尽量分开写,这样可以降低代码之间的耦合性 阅读全文
posted @ 2013-01-23 21:27 ygm900 阅读(233) 评论(0) 推荐(0) 编辑
摘要:1、数据库设计时,不要用id这样的此,因为id在oc中是关键词。2、在绘制画面,申请view时,尽量不要简单地命名为view因为,系统也有自己默认的view。它们在进行释放时,容易被混套。同理,最好不要简单地将类名小写后命名为对象,这样会存在一定的风险。3、下划线怎样使用,划拨给数据库使用,还是在代码中用,这需要一个统筹的规划。4、数据库字段命名和代码中的实体命名要统筹起来考虑,不要只想一个片面。5、用类的首字母简写加下划线作为代码中对象、变量的前缀,会很方便我们使用。 阅读全文
posted @ 2013-01-21 12:05 ygm900 阅读(191) 评论(0) 推荐(0) 编辑
摘要:一段代码展现一个流程,流程在代码中内聚 阅读全文
posted @ 2012-12-27 22:37 ygm900 阅读(177) 评论(0) 推荐(0) 编辑
摘要:尽可能地让文档融入代码,尽可能地让代码脱离文档 阅读全文
posted @ 2012-12-24 11:42 ygm900 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2012-12-19 16:41 ygm900 阅读(194) 评论(0) 推荐(0) 编辑
摘要:用户可见的一个“元素级功能”对应着一个流程,这个流程在代码中对应着一个“代码块”。这样的设计将大大提高代码大易读性和可维护性。 阅读全文
posted @ 2012-12-15 10:44 ygm900 阅读(195) 评论(0) 推荐(0) 编辑
摘要:拆套:尽量让代码的嵌套在三层以内(常用的方法是用“分支”替代“if...else”嵌套)解耦:拆解各个类只见的耦合,提高各个类的内聚封装:将独立的功能封装为独立的模块,逐渐形成component library重构:对原代码流程进行优化 阅读全文
posted @ 2012-12-13 23:20 ygm900 阅读(577) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示