5W1h分析法分析---play框架
5W1H(WWWWWH)分析法也叫六何分析法,是一种思考方法,也可以说是一种创造技法。
一、play框架是什么(What)
Play是一款开源、轻量、无状态、Web友好的架构,使用Java语言编写并遵循MVC模式,集成了当今Web开发所需的组件和API。此外Play可以给应用程序提供可预测的和最小的资源消耗(CPU,内存,线程),可构建高扩展的应用程序。
play官网:http://www.playframework.com/
中文社区网站:http://play-framework.herokuapp.com/
下载play框架的链接是:http://www.playframework.com/download
二. 在何种场合下用(where)
1. play 2.3.1版本以上需使用jdk6.0以上的版本
2. 敏捷异步开发小型网站,必须符合play框架的规则约定
3. play+mongodb 实现json to json的处理方式来处理业务
4. 使用scala减少代码的重复和冗余
5. netty(akka)+reactiveMongo+wsClient异步构建系统,轻负载响应快
6. 用docker+nginx实现动态横向扩展
7. 从开发到测试、发布都可以通过Jenkins及相关插件完成,完成的dev自动化提高团队效率
三.时间和程序(when)
在快速搭建小型网站时使用。
四.哪些人适合用这个框架(who)
这个框架适合做java后台开发的朋友学,快速开发原型,以及掌握scala语言和groove的朋友学。
五.为什么要用这个框架(why)
优势:
1. Play2的模板引擎
Play2的模板是很强大并且容易上手的. 相对于Java领域其他模板引擎(Freemarker, Velocity, JSP, Groovy, etc), 主要有三个特点.
使用 Groovy 作为视图层模板使用的表达式语言。模板之间的继承机制避免了重复的代码。
1) 简单易上手, 没有JSP里面繁杂的内置对象和指令, 所有功能都通过方法调用完成.
2) 主流IDE中都支持Play模板的静态类型检查, 类似JSP.
3) 支持反向路由,支持异步开发。
2. 热部署
2. 无需重启服务器
3. 内置dev/prod环境,内置部署脚本
平常开发的时候使用run启动Play,是跑在dev模式。 Play会定时扫描源码目录进行热更新,并且类都是访问的时候再加载,提高启动速度。 使用start启动项目就运行在prod模式。Play内置dist命令,可以把所有的文件打包成一个zip,解压之后直接运行bin目录下的可执行文件即可启动项目,除了JDK之外无须任何其他外部依赖。 这大大减轻了运维成本,同时也能够很方便的进行持续集成(CI)。
4. 使用Play开发的Server大部分能做到Stateless
这个之前也说过,Play抛弃了Servlet/JSP里Session等概念, 内置没有提供方法将对象与服务器实例进行绑定(你要使用HashMap存的话Play也没办法)。 推荐的做法是使用外部缓存, 比如Redis, Memcached等。可能有人会觉得没有Session是Play的一个缺点(Play里的Session和Servlet Session不是一回事), 但是只要你开发过流量大一点的应用, 你就会理解这点。无状态,可拓展性好。比如它的session是以加密方式保存在cookie中的。
5. 好用的配置库
如果你之前开发过Java项目, 肯定写过**.properties或者管理过一大堆的xml。Java内置库对properties文件的处理是很弱的,你不得不自己写一些工具类去进行处理, 而且properties文件还不支持更复杂的语法。Play使用Typesafe Config库,配置文件使用HOCON格式,默认配置文件为application.conf。 你能很容易读取里面的配置, 并且你也可以把自己的配置写在里面。所以项目中基本不需要使用properties或者xml文件了,除了第三方库需要的。
6. Play插件
RoR框架之所以好用,主要原因之一就是围绕RoR有相当丰富的插件可供选择,很多业务功能甚至都不需要开发就能实现。Play的插件数量当然相对于RoR还是要少一些, 不过你遇到的需求基本都有现成的插件可以使用。比如发邮件, 授权和验证, sitemap生成,第三方登录等等。自己写一个插件也很简单。
7. 优秀的测试支持
因为Play诞生的时候TDD已经很火热,所以Play对测试的支持非常好。
8. 优秀的REST支持
Play2从诞生起就能很容易的支持RESTful风格的架构
劣势:
1. 编译速度太慢
2. 反传统的Java框架,完全抛弃Servlet
3. play!社区比较沉稳,没有太多的市场宣传和功能承诺,目前还不太会吸引不太懂技术的人或者说要有hacker精神才会进行尝试。
4.由于约定和封装太多,不适合企业应用的灵活性和高扩展性需求。
5.对大型的网站来说,性能,安全性等方面可能不太适合
六.怎么用这个框架(how)
1.配置好jdk 1.6 版本以上这个就不多说了
然后查看目录,可以看到:
app/ 存放一些CODE的地方。比如类,领域模型什么的。
conf/ 很明显是存放配置文件的。
lib/ 系统中需要用到的JAR包。
public/ 应该是放一些资源文件的地方,比如HTML里的图啦,CSS啦,JS文件什么的。
test/ 测试类,把测试的东西都放这里。
注意:PLAY使用UTF-8字符集,所以我们所有的格式应该使用UTF-8。
浏览器中输入http://localhost:9000/出现如下页面,说明成功了
5W1H(WWWWWH)分析法也叫六何分析法,是一种思考方法,也可以说是一种创造技法。
一、play框架是什么(What)
Play是一款开源、轻量、无状态、Web友好的架构,使用Java语言编写并遵循MVC模式,集成了当今Web开发所需的组件和API。此外Play可以给应用程序提供可预测的和最小的资源消耗(CPU,内存,线程),可构建高扩展的应用程序。
play官网:http://www.playframework.com/
中文社区网站:http://play-framework.herokuapp.com/
下载play框架的链接是:http://www.playframework.com/download
二. 在何种场合下用(where)
1. play 2.3.1版本以上需使用jdk6.0以上的版本
2. 敏捷异步开发小型网站,必须符合play框架的规则约定
3. play+mongodb 实现json to json的处理方式来处理业务
4. 使用scala减少代码的重复和冗余
5. netty(akka)+reactiveMongo+wsClient异步构建系统,轻负载响应快
6. 用docker+nginx实现动态横向扩展
7. 从开发到测试、发布都可以通过Jenkins及相关插件完成,完成的dev自动化提高团队效率
三.时间和程序(when)
在快速搭建小型网站时使用。
四.哪些人适合用这个框架(who)
这个框架适合做java后台开发的朋友学,快速开发原型,以及掌握scala语言和groove的朋友学。
五.为什么要用这个框架(why)
优势:
1. Play2的模板引擎
Play2的模板是很强大并且容易上手的. 相对于Java领域其他模板引擎(Freemarker, Velocity, JSP, Groovy, etc), 主要有三个特点.
使用 Groovy 作为视图层模板使用的表达式语言。模板之间的继承机制避免了重复的代码。
1) 简单易上手, 没有JSP里面繁杂的内置对象和指令, 所有功能都通过方法调用完成.
2) 主流IDE中都支持Play模板的静态类型检查, 类似JSP.
3) 支持反向路由,支持异步开发。
2. 热部署
2. 无需重启服务器
3. 内置dev/prod环境,内置部署脚本
平常开发的时候使用run启动Play,是跑在dev模式。 Play会定时扫描源码目录进行热更新,并且类都是访问的时候再加载,提高启动速度。 使用start启动项目就运行在prod模式。Play内置dist命令,可以把所有的文件打包成一个zip,解压之后直接运行bin目录下的可执行文件即可启动项目,除了JDK之外无须任何其他外部依赖。 这大大减轻了运维成本,同时也能够很方便的进行持续集成(CI)。
4. 使用Play开发的Server大部分能做到Stateless
这个之前也说过,Play抛弃了Servlet/JSP里Session等概念, 内置没有提供方法将对象与服务器实例进行绑定(你要使用HashMap存的话Play也没办法)。 推荐的做法是使用外部缓存, 比如Redis, Memcached等。可能有人会觉得没有Session是Play的一个缺点(Play里的Session和Servlet Session不是一回事), 但是只要你开发过流量大一点的应用, 你就会理解这点。无状态,可拓展性好。比如它的session是以加密方式保存在cookie中的。
5. 好用的配置库
如果你之前开发过Java项目, 肯定写过**.properties或者管理过一大堆的xml。Java内置库对properties文件的处理是很弱的,你不得不自己写一些工具类去进行处理, 而且properties文件还不支持更复杂的语法。Play使用Typesafe Config库,配置文件使用HOCON格式,默认配置文件为application.conf。 你能很容易读取里面的配置, 并且你也可以把自己的配置写在里面。所以项目中基本不需要使用properties或者xml文件了,除了第三方库需要的。
6. Play插件
RoR框架之所以好用,主要原因之一就是围绕RoR有相当丰富的插件可供选择,很多业务功能甚至都不需要开发就能实现。Play的插件数量当然相对于RoR还是要少一些, 不过你遇到的需求基本都有现成的插件可以使用。比如发邮件, 授权和验证, sitemap生成,第三方登录等等。自己写一个插件也很简单。
7. 优秀的测试支持
因为Play诞生的时候TDD已经很火热,所以Play对测试的支持非常好。
8. 优秀的REST支持
Play2从诞生起就能很容易的支持RESTful风格的架构
劣势:
1. 编译速度太慢
2. 反传统的Java框架,完全抛弃Servlet
3. play!社区比较沉稳,没有太多的市场宣传和功能承诺,目前还不太会吸引不太懂技术的人或者说要有hacker精神才会进行尝试。
4.由于约定和封装太多,不适合企业应用的灵活性和高扩展性需求。
5.对大型的网站来说,性能,安全性等方面可能不太适合
六.怎么用这个框架(how)
1.配置好jdk 1.6 版本以上这个就不多说了
2.下载play框架,配置路径:
下载play框架,然后配置环境变量到path;
输入play help看到控制台如下:
3.创建新的play应用:
play new firstApp ====》 firstApp===》2
然后查看目录,可以看到:
app/ 存放一些CODE的地方。比如类,领域模型什么的。
conf/ 很明显是存放配置文件的。
lib/ 系统中需要用到的JAR包。
public/ 应该是放一些资源文件的地方,比如HTML里的图啦,CSS啦,JS文件什么的。
test/ 测试类,把测试的东西都放这里。
注意:PLAY使用UTF-8字符集,所以我们所有的格式应该使用UTF-8。
4. cd helloworld, play run helloworld 运行play application,然后输入http://localhost:9000/跳转到指定页面就算成功了。
进入到工程目录下,运行程序:
浏览器中输入http://localhost:9000/出现如下页面,说明成功了