你是在正在创建一个坑还是在扩建一个坑?

  这周的工作终于告一段落,费神的一周啊。在历史功能上开发新功能,历史代码还有bug。开发过程中心情相当的纠结。还好,最后还是把它拿下了,逻辑还算清晰,但是就是代码太多了,这个提醒我们,在编码规则中必须加一条,一个方法的代码不能超过多少行代码,每行代码不能超过多少字,每个类不能超过多少个方法。

  其实大家都知道,作为具体业务开发,很多情况是根据业务,一般就不会做过多结构和代码优化的考虑。一切主要为具体的功能服务,这样的思路对于小模块或者说逻辑不是很多功能需求来说,似乎并没有什么错;但是长此以往,你就会发现,以这种思路做出来的功能,到最后总有几个坑留在整个项目中。不动它当然没有什么问题,但是一旦要在这个基础上做扩展,就像在原来坑的基础上做更大更深的坑一样,一发不可收拾。所以,我们在做代码规范的时候,必须做一些必要的限制和控制。这样控制可以解决方法过大,单行代码过多,代码浏览不方便。还能有意思的提醒我们的业务开发者,在遇到普通或复杂业务逻辑都必须作结构上的优化,该封装的要封装,该灵活控制的要灵活控制。这样才能让我们在整个项目未来的发展和功能的修改升级时得心应手,收放自如。

  在我遇到的开发中遇到比较多的都是流程性的功能会出现方法过大,加之在开发过程中作为开发者的我们通常是以惯性思维来解决问题,所以方法过大就会成为必然。所以在开发之初也要考虑未来的发展,这一思路也是必不可少的。做必要的封装解耦,把不变的业务逻辑分析出来封装,把容易变的逻辑分析出来解耦,这样在做扩展的时候,就可以得心应手,不必纠结,无论是开发测试,还是从公司开发成本来说,都可以省一笔不小的数目。

  单行代码过多,能开的比较多的一般是针对一个对象的方法的多层调用。大家一般的习惯是放在一行处理,如果分开又要新声明变量来接收然后调用后续的方法。其实大可不必这么麻烦,现在的编辑器和编译器是支持换行的,你只需要在合适的地方换行就ok。劲量让所有代码在一屏和主视线能接收的范围内以方便浏览,在这个过程中可以允许通过屏蔽下滑浏览其余代码。如果你写的代码又要让代码横向滑动又要纵向滑动才能看完,这该是多么痛苦的一件事情,你觉得呢?

时间: 2024-11-02 16:22:20

你是在正在创建一个坑还是在扩建一个坑?的相关文章

OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法

<span style="font-size:24px;">//////第一种方法 // NSMutableArray *arr = [NSMutableArray array]; // for (int i = 0; i < 13; i ++) { // [arr addObject:[NSString stringWithFormat:@"lanou%d",i + 1]]; // } // NSLog(@"%@",arr);

PyCharm下创建并运行我们的第一个Django项目

PyCharm下创建并运行我们的第一个Django项目 准备工作: 假设读者已经安装好python 2x或3x,以及安装好Django,以及Pycharm 1. 创建一个新的工程 第一次运行Pycharm时,欢迎界面如下: 点击创建新的工程,选择左边面板的Django,填写Location, 以及Application name(我分别填写的是mysite,以及 polls,location填写的mysite相当于你的工程名字) 点击Create,创建项目. 2. 探索项目的结构 自动生成了Dj

OneExerciseOne创建一个类,它包含一个int域,一个char域,他们都没有初始化,验证Java执行了默认初始化

在学习<Thinking In java>时,遇到Chapter 2的Exercise 1,问题是这么说的"/**创建一个类,它包含一个int域,一个char域,他们都没有初始化,将他们的值打印出来,验证Java执行了默认初始化".刚拿到这道题目我是这么写的. 1. package Two; public class ExerciseOne {public static void main(String [] args){int a;char c;System.out.pr

一个接口能否继承另一个接口?一个抽象类能否实现一个接口?

都可以: 一.一个接口能否继承另一个接口? 接口继承接口  本质就是一个抽象类继承另一个抽象类(它们都没写方法的实例).当一个类继承了一个抽象类,它必须要重写父类 抽象类中的抽象方法,如果不去重写父类抽象方法的实例,那么这个类也是抽象类(这个抽象子类,直到重写这个抽象方法的实例为止, 才能摆脱抽象的命运).其实我们想想,一个类去实现一个接口也不就是一个实体子类把一个抽象的所以抽象方法实例化(重写了 抽象父类 中全部抽象方法),当然抽象类和接口还是有区别的.我上上篇就写到了抽象类和接口的区别,有兴

Entity Framework 6 Recipes 2nd Edition(11-2)译 -&gt; 为一个”模型定义”函数返回一个计算列

11-3. 为一个”模型定义”函数返回一个计算列 问题 想从”模型定义”函数里返回一个计算列 解决方案 假设我们有一个员工(Employee)实体,属性有: FirstName, LastName,和BirthDate, 如 Figure 11-3所示. Figure 11-3. An Employee entity with a few typical properties 我们想要创建一个”模型定义”函数,让它返回FirstName 和LastName 合并后的full name . 我们想

一个不知道体谅难处,一个说话伤人自尊,矛盾的种子已悄悄埋下

860年9月,英法联军兵临城下,咸丰帝下令顺天府征集数百辆马车,对外宣称要率军亲政,实则是准备外逃.当时的上谕这样写道:“即将巡幸之预备,作为亲征之举.”熟料,消息一出,各位王公大臣纷纷上奏,劝说皇帝不要离开北京,民间也是谣言满天飞,“众情益涣,岌岌可危”.咸丰为了稳定大局,不得不又下令把所有车马“分别发还”.没想到,局势迅速恶化,不得不逃往热河,而仓促之间,根本无法聚集那么多宫廷车马,除了皇帝以外,其他人一律乘坐从民间雇佣来的车马. 这可坑苦了一帮佳丽妃嫔,平常颐指气使,享尽荣华富贵,哪遭过这

第一个lucene程序,把一个信息写入到索引库中、根据关键词把对象从索引库中提取出来、lucene读写过程分析

新建一个Java Project :LunceneTest 准备lucene的jar包,要加入的jar包至少有: 1)lucene-core-3.1.0.jar     (核心包) 2) lucene-analyzers-3.1.0.jar    (分词器) 3) lucene-highlighter-3.1.0.jar    (高亮器) 4) lucene-memory-3.1.0.jar       (高亮器) 新建实体类:Article, 属性:id,title,content; gett

18.n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始, 每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。 当一个数字删除后,从被删除数字的下一个继续删除第m个数字。 求出在这个圆圈中剩下的最后一个数字。

转载请注明出处:http://www.cnblogs.com/wuzetiandaren/p/4263868.html 声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己也方便有类似问题的朋友,本文的思想也许有所借鉴,但源码均为本人实现,如有侵权,请发邮件表明文章和原出处地址,我一定在文章中注明.谢谢. 题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始, 每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字). 当一个数字

MFC 一个类訪问还有一个类成员对象的成员变量值

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/35263857 MFC中一个类要訪问另外一个类的的对象的成员变量值,这就须要获得原来那个类对象的指针,事实上有好几种方法都能够实现. 比方维护一个单例模式.设置静态变量等等.我们这里举个列子,实现多个类之间的相互訪问. 一.演示样例:创建MFC对话框,实现对个对话框之间数据訪问 我们创建一个MFC对话框应用程序,命名为Visitproject. 对话框本身有一个主界面(CVis