- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 《clean code》第八章 味道和启发
1.注释: a.不恰当的注释 b.废弃的注释 c.冗余的注释 d.糟糕的注释(别闲扯,画蛇添足) e.注释掉的代码(删掉,别担心,是可以找回的)2.函数: a.过多的参数(尽量少) b.输出参数(参数用于输入,而非输出,修改对象状态) c.标识参数(布尔值说明不止做了一件事) d.死函数(永不调用的方法要应该废弃)...
2018-07-12 16:33:41 300
原创 《clean code》第七章 类
1.类的规则: 第一条:短小 第二条:更短小对于函数,通过计算代码行数衡量大小,对于类,通过计算“权责”衡量。a.单一权责原则(SRP) 类或模块有且只有一条加以修改的理由,系统应该由许多短小的类而不是少量巨大的类组成。b.内聚 类应该有少量实体变量,类中的每个方法都应该操作一个或多个这种变量。方法操作的变量越多,越内聚到类上。c.保持内聚性就会得到许多短小...
2018-07-03 19:32:30 393
原创 《clean code》第五章 对象和数据结构
德墨忒耳律 类C的方法f只应该调用以下对象的方法: 1.C 2.由f创建的对象 3.作为参数传递给f的对象 4.由C的实体变量持有的对象
2018-06-21 14:48:04 441
原创 《clean code》第四章 格式
1.变量声明靠近其使用位置。2.实体变量放在类的顶部申明。3.相关函数:若某个函数调用了另外一个,就把他们放在一起,调用者放在被调用者上面。4.概念相关代码放在一起。...
2018-06-21 14:20:54 144
原创 《clean code》第三章 注释
若编程语言足够有表达力,或者我们长于用这些语言来表达意图,就不需要注释。好注释: a.法律信息 b.提供信息的注释(如,解释返回值的意思) c.阐释(阐释部分代码意思) d.警示 e.todo注释 f.公共api中的javadoc坏注释: a.喃喃自语 b.多于的注释 c.误导性注释 e.循规式注释(例如每个函数都要有javadoc) ...
2018-06-20 16:56:02 196
原创 《clean code》第二章 函数
1.短小每个函数行数越短小越好,20行封顶为佳。2.只做一件事3.函数参数a.函数参数越少越好,不得多于三个以上的参数。b.不要传入标志参数,例如传入一个布尔类型,则意味着函数里不止做一件事,应当将此函数拆开成两个函数。c.如果参数过多,可以将参数封装成对象:4.分割指令与询问public boolean set(String attribute, String value);//设值属性值,成功...
2018-06-20 16:38:00 258
原创 《clean code》第一章 有意义的命名
1.名副其实//消逝的时间以日计int d;int elapsedTimeInDays;2.避免误导hp,aix,sco是UNIX平台的专有名称o与0;1与l 相似3.做有意义的区分int a1,a2,a3....getActiveAccount();getActiveAccounts();getActiveAccountInfo();4.使用读的出来的名称int bafdffffss;5....
2018-06-20 15:30:46 245
原创 《Head First》第三节 装饰者模式
背景介绍:星巴兹是一家很火爆的咖啡连锁店,因为扩张很快,需求多样化,原系统已不能满足。原系统设计:购买咖啡时,会要求加各种调料,系统要根据加的不同调料收取不同的费用,导致结构图如下:解决方案:以饮料为主体,然后运行时,以调料来“装饰”(decorate)饮料。比如,顾客要加摩卡和奶泡的深焙咖啡。那么要做的是:1.拿一个深焙咖啡(DarkRoast)对象2.以摩卡(Mocha)对象装饰它3.以奶泡(...
2018-06-04 19:36:49 245
原创 《Head First》第二节 观察者模式
背景介绍:需要建设一个气象站,目前有一个WeatherData对象,会负责追踪目前天气状况(温度,湿度,气压)。现要求建立一个应用,有三种布告板,分别显示目前的状况,气象统计及简单的预报。当WeatherData对象获取最新测量数据时,三种布告板必须实时更新。而且可扩展布告板。WeatherData源文件:第一想法的错误示范:这样会导致不能很好拓展:解决方案:使用观察者模式:出版者+订阅者=观察者...
2018-06-04 19:09:17 140
原创 《Head First》第一节 策略模式
背景介绍:一个关于鸭子的游戏:有各种鸭子,一边游泳戏水,一边呱呱叫。此系统内部设计了一个鸭子超类,并让所有的鸭子继承此超类。关系图:需求:让部分鸭子可以飞(如,橡皮鸭,诱饵鸭等)。原设计方法:在超类上增加fly(),在子类不可以飞的鸭子(如,橡皮鸭)中,覆盖fly()方法,方法里什么都不做。问题:其他不会飞的鸭子都要重写一个空的fly()方法,修改代码重复,且过多。解决方法:分开变化和不变化的部分...
2018-06-04 17:42:50 141
原创 ibaits中sqlMapClient.getCurrentConnection()返回null
//手动回滚SqlMapClient sqlMapClient = null;try {sqlMapClient = this.getSqlMapClient();sqlMapClient.startTransaction();sqlMapClient.getCurrentConnection().setAutoCommit(false);sqlMapClient.star
2017-11-20 15:52:39 892
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人