Play! framework开发规范

适用于Play! framework 1.2.4版

Play! Framework简介

Play! framework并不是一套spring、structs那样的可植入框架。它是一套集成式快速开发框架,提供了开发完整web应用的全套解决方案,它内置:

  • 一个基于Apache Mini的速度超快的Web Server
  • 动态编译装载Java类,让调试Java像调试Javascript那样简单
  • View层<–>Controller层消息传递高度封装,使用简便
  • 基于Groovy的view层模板引擎,代码灵活,易读
  • 极为方便的测试、排错方案
  • 预定义的文件组织约定、模块组织约定

Play! Framework的目录结构

Play! framework开发规范
app: java的src根目录,存放mvc动态内容

  • –controllers: 控制器
  • –models: 模型
  • –views: 视图

test: 测试用例的根目录,存放单元测试、功能测试、selenium测试等

  • BasicTest(单元测试),关注模块用到的“单元功能”正确
  • FunctionTest(集成测试)关注“模块功能”正确
  • selenium(验证测试)关注“网站功能“正确

conf: 配置文件存放目录

  • application.conf保存程序用到的所有配置
  • dependencies.yml保存本play项目对其他模块或库的依赖
  • messages保存i18n国际化信息
  • routes保存http请求与action的对应关系

eclipse: 保存用于eclipse项目需要的文件(不提交svn)
lib: 保存第三方jar包的目录
public: 保存所有静态文件的目录

  • –images: 保存图片
  • –javascript: 保存js
  • –stylesheets: 保存css

Play! Framework的编码规范

所有文件都使用UTF-8
Play Controller风格

  • RESTful的route定义
  • 直接提交到action的参数映射(无request的params解析)
  • 根据返回内容的数据类型,选择render,renderText和renderJSON

Play Model风格

  • 使用内置JPA引擎处理持久化
  • Model的属性使用public修饰
  • 使用JPA注解定义库表
  • 使用“爆血膜型”编程(无DAO,无Service,所有业务放Model里)

Play View风格

  • 使用#{extends ‘xxx.html’ /}来统一页面模板
  • 使用自定义标签#{xx xx /}来重用html
  • 使用#{list items:xx,as:’x’} 来遍历集合
  • 使用${xxx.format()}JavaExtensions来格式化显示内容
  • 像JSP中尽量不使用<%%>一样,play的html中尽量不使用%{}%,逻辑放到Model里
  • 不使用内联样式,统一使用外部css

注释规范

  • 原则:简明扼要
  • 代码即注释,类型、变量命名明确化
  • M、V、C中每个文件要有一个文件注释,标明本文件的用途。
  • M、V、C中每个方法要有一个方法(含参数)注释,标明本方法的用途。
  • M、V、C中每个方法内部不易理解的代码块要写注释,注明代码意图。
  • 易于理解的代码不写注释
  • 自定义html tag必须编写注释,注明用途,并标明每个参数的用法。

测试规范

Play!框架开发测试规范

  • 按功能模块编写测试用例,测试用例使用后不删除,以便回归
  • 使用BasicTest做单元测试
  • 使用ApplicationTest做集成测试
  • 使用selenium做验收测试