唐大仕 http://www.dstang.com dstang2000@263.net JAVA 程序设计 怎样写好程序 唐大仕 http://www.dstang.com dstang2000@263.net
内容提要 1. 写好程序的一些经验 2. 重构与设计模式 3. 反射、反编译与混淆
1. 怎样写好程序 —经验谈
写好“单词” 变量 常量 Java语言编码规范(Java Code Conventions) 大小写:变量小写,方法名、类名大写 长度:单个字母的变量只能在三五行内结束 含义:用特定含义,控件用匈牙利命名法 不用temp,it ,do等没有意义的词 常量 数字常量用const或enum或配置 不要从天上掉下来一个数 字符串常量 Java语言编码规范(Java Code Conventions) http://www.oracle.com/technetwork/java/codeconv-138413.html
写好“语句” 简单语句 写好赋值语句 使用中间变量 使用括号 分支语句 循环语句 变量局部化
写好“函数” 写简单程序 使用卫语句降低层次 语句不要太多 层次不要太多 改变算法 将一段语句提出来,形成新的函数 将内部语句提出来,形成新的函数 改变算法 如果太复杂了,说明思路还不够清晰
写好“对象” 对象的功能是独立的 高内聚 不要太多的成员 处理好对象之间的关系 保存:构造时传入 关联:使用方法 通信:使用事件
“定律” 写简单程序 代码永远不要写两遍 推论:永远不要copy代码
2. 重构与设计模式
重构 Refactor 《重构—改变既有代码的设计》 Eclipse中的重构功能 Reflactoring:Improve the Design of Existing Code Martin Fowler著 Eclipse中的重构功能 点右键,重构 重命名(写好单词) 提取方法(写好函数)
设计模式 Design Pattern Design Pattern, GOF 总结了23种设计模式 深入浅出设计模式 Head First Design Pattern 中文版
3. 反射、反编译与混淆
反射 reflection java.lang.reflect.* 获取类相关的信息 创建相关的实例 调用相关的方法 类名.class Class.forName(类名) 获取类相关的信息 例:ClassViewer.java 创建相关的实例 调用相关的方法
反编译 JAD工具 及 Jd-gui.exe
Obfuscate 代码混淆器 对类、方法、变量等进行更名 加密字符串 打乱流程 加入特定字节,使反编译程序不能工作 有很多这样的产品