适用于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. KeelKit 中集成了代码统计功能
  2. 算法---------括号生成
  3. ELSE 技术周刊(2017.11.20期)
  4. 与时俱进:在JAX-RS API中采用OpenAPI v3.0.0
  5. tcp和udp的区别和三次 四次挥握手 http://www.cnblogs.com/bizhu/archive/2012/05/12/2497493.html...
  6. java vector 输出_5.7(java学习笔记)Vector、Enumeration
  7. Windows与Linux(服务器)之间大文件传输
  8. java删除指定目录下文件_Java中循环删除指定目录下的文件
  9. 004redis与python的交互
  10. oracle sqe值,质量感悟 | 无论什么层次的供应商都喜欢跟SQE中的高手过招儿
  11. matlab中solver函数_Matlab中微分方程的模型
  12. 详细解释下头条图文和微头条发布建议
  13. 微信团队回应“部分用户朋友圈无法刷新”;罗永浩:准备做综艺节目;Apache Spark 3.0 发布| 极客头条...
  14. Android 沉浸式状态栏完美解决方案
  15. 数据绑定控件Reperter
  16. UGUI自定义组件之Image根据Text大小自动调整
  17. 啮齿类动物大尺度功能网络
  18. TestCenter测试管理工具问题详解(6)
  19. 怎么看mmdetection版本_mmdetection使用指南
  20. 脑子笨的人可以学计算机吗,学理科吃力,我真的很笨吗

热门文章

  1. 五种开源协议的比较(BSD、Apache、GPL、LGPL、MIT)
  2. usb计算机连接无法连接电脑,如何用数据线连接计算机总是提示无法建立连接,并且USB调试已打开. -...
  3. 服务器冗余电源维修图纸,服务器的冗余电源技术
  4. TypeScript项目引用(project references)
  5. sql脚本自动完成数据库创建、切换、建表、数据初始化
  6. 欧拉函数(dayn)
  7. 汽车主动悬挂系matlab,基于Matlab的汽车主动悬架控制器设计与仿真.doc
  8. 大数据课堂笔记 HDFS的shell操作
  9. 2022年第十三届蓝桥杯 python B组 第B题 寻找整数
  10. .net5项目集成百度富文本编辑器umeditor最全教程(含源码)