摘要: 最后我们来讲一下代码风格的问题1. 魔法数字,也有叫数字常量的 总之,就是一个数字戳在那,谁也不知道这是什么意思, 这种代码还会导致一个问题就是代码的值发生变化的时候,无法确保所有的相关代码都得到修改。 OpenWnn里这种情况太多了,就不一一列举了。 同样的字符串常量也是一个问题。 对于这种情况,定义成常量并不是解决问题的唯一办法,还有很多更好的办法,比如,拆分类。2. 静态表 Java代码中的静态块static{}可以让一部分固定的赋值代码提前执行,但是如果用不好这个特性,反而这个会成为代码的问题。 RomKan代码中的romkanTable ,表示输入的英文字母是如何转换成为假名的。 但 阅读全文
posted @ 2012-11-30 13:05 史蒂芬.王 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 结构问题是所有问题中最严重的问题,这里的很多问题都反映了作者缺少基本常识。代码的结构就像房屋的结构一样,是支撑整个代码的框架。如果房屋的结构不够结实,房屋就会倒塌。如果代码的结构不够良好那么修改Bug或者对应需求变更的时候就要付出昂贵的代价。1. 缺少MVC结构 严重程度:非常高 输入法和其他应用程序一样,都是由:数据(Model),视图(View)和控制器(Control)构成的,但是OpenWnn没有按照MVC划分类包,也难以区分哪部分代码是数据,那部分代码是视图。2.错误的从属关系 严重程度:非常高 各种对象之间应该有一定的从属关系,例如:图书管理有书架,书架上面有图书。就绝不可以说书里 阅读全文
posted @ 2012-11-30 12:07 史蒂芬.王 阅读(634) 评论(0) 推荐(0) 编辑
摘要: 接前文,我们继续分析OpenWnn的注释问题1. 为了注释而注释 严重程度:中 注释就是把方法或者变量的名称再重写一遍,这种工作纯属是浪费时间,可以不用花费这种工时。/** Current key-mode */ protected int mCurrentKeyMode; 这种情况在OpenWnn中特别多。2. 啰嗦的注释 严重程度:低 本来可以很短就能够写完的注释,却要写很长的注释,结果也没有因为写的长对于理解产生有益的帮助。 这种情况在OpenWnn中非常少。3. 步步皆注释 严重程度:中 这种情况会拉开代码间距,使代码变得不再流畅。 这种情况在OpenWnn中也非常少。4.缺少注释.. 阅读全文
posted @ 2012-11-30 11:53 史蒂芬.王 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 什么是错题本? 最近一直有热心读者提出:能否找到一个写的不太好的工程例子,然后解析其中的代码错误,让我们能够从中更为直观的体会到糟糕的代码书写。这么多年接触了许多糟糕的代码,但是苦于不能公开,也难以做到。不过,后来接触到了OpenWnn,这是一个很好的工程,它的代码中几乎充斥着各种各样的代码书写坏习惯。就好像中学生的错题本一样,打开一看都是各式各样的错误。足以警醒以后不再犯同样的错误。本章我们将对OpenWnn的代码问题进行解析,从命名、注释、结构和风格四个方面分别进行阐述。什么是OpenWnn呢? 我在前面的博客里至少两次提到这个工程。这是一个Android下的开源日文输入法,由Omron 阅读全文
posted @ 2012-11-30 11:14 史蒂芬.王 阅读(2048) 评论(0) 推荐(0) 编辑