适用于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的目录结构


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做验收测试

Play! framework开发规范相关推荐

  1. Microsoft .NET Compact Framework 开发常见问题解答

    这个 FAQ 有部分是通过编辑公共 .NET Compact Framework 新闻组 (microsoft.public.dotnet.framework.compactframework) 贴出 ...

  2. Microsoft .NET Compact Framework 开发常见问题解答 - 专注.NET技术及其相关应用开发! - 博客园...

    Microsoft .NET Compact Framework 开发常见问题解答 发布日期: 3/30/2005 | 更新日期: 3/30/2005 Microsoft .NET Compact F ...

  3. 安卓开发规范-必读版

    安卓开发规范 工欲善其事必先利其器,工欲利其器必先建其模,细节决定成败,请完善你的小细节 1. 本文转自Blankj: https://github.com/Blankj/AndroidStandar ...

  4. python笔记6 模块与包 程序开发规范 包 re sys time os模块

    模块与包 python 模块首引用加载到内存,如果再次引用此模块,直接从内存中读取. python文件分为:执行文件(解释器运行的文件),被引用文件(import) 模块引用一共发生了3件事: 1.他 ...

  5. 简明 HTML CSS 开发规范

    作者:wjack    文章来源: 蓝色理想 //总论 本规范既是一个开发规范,也是一个脚本语言参考,本规范并不是一个一成不变的必须严格遵守的条文,特殊情况下要灵活运用,做一定的变通.但是,请大家千万 ...

  6. MySQL数据库开发规范-EC

    最近一段时间一边在线上抓取SQL来优化,一边在整理这个开发规范,尽量减少新的问题SQL进入生产库.今天也是对公司的开发做了一次培训,PPT就不放上来了,里面有十来个生产SQL的案例.因为规范大部分还是 ...

  7. 阿里官方Redis开发规范!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:付磊 - 起扬 https://yq.aliyun.com/ ...

  8. mysql开发规范最新版本_MYSQL 开发规范

    数据库命名规范 所有数据库对象表名必须小写 (mybook_db) 命名要做到见名知意,不能使用mysql保留关键字 临时表 tmp_ 开头,备份表以 bak_ 开头 都以时间戳结尾 所有存储相同数据 ...

  9. 阿里云 Redis 开发规范

    摘要:本文介绍了在使用阿里云Redis的开发规范,从键值设计.命令使用.客户端使用.相关工具等方面进行说明,通过本文的介绍可以减少使用Redis过程带来的问题. 一.键值设计 1. key名设计 (1 ...

最新文章

  1. oracle高级查询用法
  2. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1041:奇偶数判断
  3. 机器学习——深度学习之编程工具、流行网络结构、卷积神经网络结构的应用
  4. [html] H5播放的video视频,如何实现对视频截图?
  5. android 通讯录 备份,安卓Android手机通讯录怎么备份 卓联系人备份 卓手机联系人导出...
  6. 【算法分析与设计】二分查找平均查找长度的求解
  7. 情爱难剪断,菩提树下悟佛缘
  8. 用python写一个文件管理程序下载_Python管理文件神器 os.walk
  9. 数据库设计经验谈[2]
  10. mobi格式电子书_没有Kindle,如何看Kindle电子书?
  11. next主题配置文件解读
  12. css插件载进去ps里面,CSS3Ps(ps图层插件)官方版
  13. 机器学习入门之异常检测
  14. 自然语言三兄弟NLP、NLU、NLG傻傻分不清?一文搞懂它们的区别
  15. 数值积分方法之2——梯形法与外推法求近似积分
  16. java apns feedback_php从苹果apns的feedback服务器获取推送失败的token
  17. VMware扩展Ubuntu分区容量大小
  18. php开源 会员资料,会员详情/会员信息/用户信息
  19. 【QT学习六】QTextEdit
  20. 网络综合布线线缆如何敷设布放_网络综合布线中穿线工作技术要求

热门文章

  1. Java 北大青鸟 第一学期 第四章 选择结构(二) 上级练习+课后作业
  2. 虚幻四蓝图编辑之开关门
  3. 天气预报查询 API + AI 等于王炸(一大波你未曾设想的天气预报查询 API 应用场景更新了)
  4. 服务器删除临时目录问题
  5. python实现外部静态服务器,浏览器通过HTTP与之通信2
  6. i5四核八线程怎么样_英特尔正式发布第八代酷睿处理器!i5/i7全线四核八线程!...
  7. 编译原理——C++版桌面计算器
  8. Springboot注入RestTemplate异常Field restTemplate in xxx.ApiRestUtils required a bea
  9. 蓝桥杯.第几个幸运数字(数学_因子)
  10. Xilinx FPGA PCIe XDMA性能测试报告(一)