SlideShare a Scribd company logo
Best Practice for Coding


                冯斌
     kid.stargazer@gmail.com
           珠海 正点科技
       2011-08 @ZhuHai , CN
       Power by
本文档将告诉你:
● 业界普遍认可的编码习惯

● 优秀程序员的一些想法

● 我的编程体会
本文档不会试图告诉你:
● 唯一标准

● 不变的规范

● 某种语言的编程细节
编程建议
命名
变量名

● 达意    "ct"?  "bt"?  "l"?

● 简洁     "friendsFromServer"?

● magic number    "3600000"?
命名
方法签名 - 对外接口

● 不要说废话 "getItemById(int id)"?

● 不要说太多 "getItemFromSQLite"?

● 无二义
命名
类签名

● 模块化命名

● 抽象与实现
统一风格
多种风格

避免在同一工程中出现

不要经常改变编码风格, 除非真的
很Sucks
访问范围与生命周期
访问范围与命名紧密相关

● 访问范围越大, 命名应越细致

● for(int i; i<size; i++)

● 在不增加复杂度的情况下尽可能隔离
  变量
访问范围与生命周期
生命周期 - static, final, ...

● 谁是对象的管理者

● 对外暴露尽可能使用不可变的对象

● 生命周期越长, 访问范围控制越严格

● 保护性拷贝
Sucks 复制/粘贴 代码冗余
Why 每次复制/粘贴时都思考一下

● 重复逻辑不可忍受

● 修改不便

● 制造混乱, 降低代码的可阅读性
了解和使用类库
标准库

● 可靠, 经严格测试, 不同版本行为固定

● 主流, 易读, 易维护, 易重用

● 持续改进
妥善处理异常

● 关键逻辑的异常处理

● 忽略异常, 几乎都是不正确的
哲学 or 原则
分割问题
现实世界的复杂性

● MVC

● 模块, 分工, 协作

● 划分方法, 需要长时间的积累
K.I.S.S
Keep It Simple, Stupid

● 保持简洁的设计

● 更多的代码(逻辑), 引入更多的复杂
  度

● 弹性, 灵活
优化
优化三原则:
不要优化, 不要优化, 不要优化

● 确认你的代码真的需要优化

● 真正地找到瓶颈

● 优化使代码更复杂
重构
易变的需求

● 带病的代码, 日后的灾难

● 需要足够的测试

● 单元测试
注释
注释能提高代码的可读性

● 避免代码段落中插入过多的注释

● 使用变量名, 方法名来解释代码

● 对外接口, 都应该在完整的注释

● 方法注释, 做了什么而不是怎么做
语言特性
优秀的代码, 需要充分运用语言特
性

● 充分发挥语言自身的强大功能

● 体会编程语言在设计思想

● 不同的语言, 不同的设计思想
工具
Linux (*UNIX)

● 30年前的设计, 仍然让人爱不释手

● 编程哲学

● 非常强大的开发环境

● 入门阵痛期
书籍
了解优秀工程师的思维

● Effictive Java

● Clear Code

● UNIX编程艺术

More Related Content

Similar to Best practice for coding (8)

PDF
3. java basics
netdbncku
 
PPT
Android最佳实践
supernlee
 
PDF
软件开发工程化的个人体验
March Liu
 
PDF
编写可阅读的代码
LC2009
 
PPT
软件工程 第七章
浒 刘
 
PPTX
程序命名设计的一些规范和提示
Tony Deng
 
PDF
编写优雅的代码(微信)
美团大众点评
 
PDF
编写优雅的代码(微信)
欣迪 祖
 
3. java basics
netdbncku
 
Android最佳实践
supernlee
 
软件开发工程化的个人体验
March Liu
 
编写可阅读的代码
LC2009
 
软件工程 第七章
浒 刘
 
程序命名设计的一些规范和提示
Tony Deng
 
编写优雅的代码(微信)
美团大众点评
 
编写优雅的代码(微信)
欣迪 祖
 

Best practice for coding