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的目录结构
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开发规范相关推荐
- Microsoft .NET Compact Framework 开发常见问题解答
这个 FAQ 有部分是通过编辑公共 .NET Compact Framework 新闻组 (microsoft.public.dotnet.framework.compactframework) 贴出 ...
- Microsoft .NET Compact Framework 开发常见问题解答 - 专注.NET技术及其相关应用开发! - 博客园...
Microsoft .NET Compact Framework 开发常见问题解答 发布日期: 3/30/2005 | 更新日期: 3/30/2005 Microsoft .NET Compact F ...
- 安卓开发规范-必读版
安卓开发规范 工欲善其事必先利其器,工欲利其器必先建其模,细节决定成败,请完善你的小细节 1. 本文转自Blankj: https://github.com/Blankj/AndroidStandar ...
- python笔记6 模块与包 程序开发规范 包 re sys time os模块
模块与包 python 模块首引用加载到内存,如果再次引用此模块,直接从内存中读取. python文件分为:执行文件(解释器运行的文件),被引用文件(import) 模块引用一共发生了3件事: 1.他 ...
- 简明 HTML CSS 开发规范
作者:wjack 文章来源: 蓝色理想 //总论 本规范既是一个开发规范,也是一个脚本语言参考,本规范并不是一个一成不变的必须严格遵守的条文,特殊情况下要灵活运用,做一定的变通.但是,请大家千万 ...
- MySQL数据库开发规范-EC
最近一段时间一边在线上抓取SQL来优化,一边在整理这个开发规范,尽量减少新的问题SQL进入生产库.今天也是对公司的开发做了一次培训,PPT就不放上来了,里面有十来个生产SQL的案例.因为规范大部分还是 ...
- 阿里官方Redis开发规范!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:付磊 - 起扬 https://yq.aliyun.com/ ...
- mysql开发规范最新版本_MYSQL 开发规范
数据库命名规范 所有数据库对象表名必须小写 (mybook_db) 命名要做到见名知意,不能使用mysql保留关键字 临时表 tmp_ 开头,备份表以 bak_ 开头 都以时间戳结尾 所有存储相同数据 ...
- 阿里云 Redis 开发规范
摘要:本文介绍了在使用阿里云Redis的开发规范,从键值设计.命令使用.客户端使用.相关工具等方面进行说明,通过本文的介绍可以减少使用Redis过程带来的问题. 一.键值设计 1. key名设计 (1 ...
最新文章
- KeelKit 中集成了代码统计功能
- 算法---------括号生成
- ELSE 技术周刊(2017.11.20期)
- 与时俱进:在JAX-RS API中采用OpenAPI v3.0.0
- tcp和udp的区别和三次 四次挥握手 http://www.cnblogs.com/bizhu/archive/2012/05/12/2497493.html...
- java vector 输出_5.7(java学习笔记)Vector、Enumeration
- Windows与Linux(服务器)之间大文件传输
- java删除指定目录下文件_Java中循环删除指定目录下的文件
- 004redis与python的交互
- oracle sqe值,质量感悟 | 无论什么层次的供应商都喜欢跟SQE中的高手过招儿
- matlab中solver函数_Matlab中微分方程的模型
- 详细解释下头条图文和微头条发布建议
- 微信团队回应“部分用户朋友圈无法刷新”;罗永浩:准备做综艺节目;Apache Spark 3.0 发布| 极客头条...
- Android 沉浸式状态栏完美解决方案
- 数据绑定控件Reperter
- UGUI自定义组件之Image根据Text大小自动调整
- 啮齿类动物大尺度功能网络
- TestCenter测试管理工具问题详解(6)
- 怎么看mmdetection版本_mmdetection使用指南
- 脑子笨的人可以学计算机吗,学理科吃力,我真的很笨吗
热门文章
- 五种开源协议的比较(BSD、Apache、GPL、LGPL、MIT)
- usb计算机连接无法连接电脑,如何用数据线连接计算机总是提示无法建立连接,并且USB调试已打开. -...
- 服务器冗余电源维修图纸,服务器的冗余电源技术
- TypeScript项目引用(project references)
- sql脚本自动完成数据库创建、切换、建表、数据初始化
- 欧拉函数(dayn)
- 汽车主动悬挂系matlab,基于Matlab的汽车主动悬架控制器设计与仿真.doc
- 大数据课堂笔记 HDFS的shell操作
- 2022年第十三届蓝桥杯 python B组 第B题 寻找整数
- .net5项目集成百度富文本编辑器umeditor最全教程(含源码)