文档章节

细化迭代一:[迟到很久的]软件架构设计

m
 mtlyx
发布于 2015/04/19 18:54
字数 767
阅读 37
收藏 0

一、软件分层

    1、UML包图:


    2、描述:

        本次课程设计采用play框架(半路弃用ssh,架构师表示真的不想坑害队友==),为什么要使用play; 前端采用amaze ui, 戳这里是amaze ui

           view: 用户视图层,使用play默认scala template渲染模板,同时使用国产前端框架amaze ui

           cotroller:  控制器

           model: 模型

           router: 路由,负责请求方法跳转

二、接口命名规范

    (1) 各层包及类命名规范 : 

         总体原则:包名所有字母小写,类名采用 “驼峰标识”,由于paly遵循默认大于设置的设计思想,所以对各种类和方法的命名已有规定,此处遵循play命名规范;

    (2) 其它命名规范 :

         1.变量命名:  

            变量名首字母必须小写,如果该变量名有多个单词组成,后面的单词首字母大写, 单词与单词之间不要使用"_"做连接,变量名访问控制必须为私有, 可以对其增加 setter与getter方法;  

         2.常量命名:  

            所有字母大写,如果有多个单词组成,单词与单词之间以” _“隔开。而且 该变量必须是公共、静态、final类型;       

         3.方法命名:  

            首字母必须小写,如果该变量名有多个单词组成,后面的单词首字母大写, 单词与单词之间不要使用"_"做连接。单词不要使用名词 ; 

    (3) 前端规范:

        按照约定的文件摆放位置,命名规范遵循前端命名规范,和后台通过ajax进行交互;

    (4) 类Restful接口设计规范 : 

        1.响应请求规范:

          请求:GET: 使用url传参,如:?a=1&b=2; POST: 使用Json传参,从request.body中获取此Json,如:'{"a": 1, "b": 2}' ;

          响应:返回值格式为json,分为成功返回(ok_json)和失败返回(fail_json):

            ok_json示例:{data: {"user_id": 1},"error": "", "retmsg": "1"} ;

            fail_json示例:{data: {}, "error": "no pointer event","retmsg": "0"}

        2.接口规范:

           如/customer/add;

三、架构相关设计模式

        1、关于DAO模式:

             Play实体采用ActiveRecord模式,将Struts中的dao与pojo合并,ActiveRecord也属于ORM层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。Play也提倡使用ActiveRecord模式进行快速开发,其主要思想是:

            每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field;

            ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;

            ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑;

        2、关于MVC模式:

             如包图所示,同时采用play注解。




© 著作权归作者所有

共有 人打赏支持
m
粉丝 4
博文 4
码字总数 2887
作品 0
中山
私信 提问
转一篇不错的简约开发过程定义

最近在看江南白衣的springside项目的时候,发现一篇不错的开发过程定义,可以作为希望或刚成为项目经理的同志们屡屡思路,做为参考. 1. 介绍 本文档基于Agile UP原则,从活动、工件、工具几方面...

orpheus
2009/08/01
0
0
统一软件开发过程——RUP

RUP(rational unified process)是一个面向对象且基于网络的程序开发方法论。它是以面向对象方法为基础的方法,RUP坚持以用例驱动,以架构为中心,迭代和增量的开发方法。 下面以思维导图为...

邵鸿鑫
2014/01/27
0
0
敏捷开发一千零一问系列之九:总体架构什么时机进行?(上)

这是敏捷开发一千零一问系列的第九篇。(之一,之二,之三,问题总目录) 问题 总体架构设计在什么时机进行?是每个迭代做还是先做完再迭代? 这是少数几个被提到的技术问题。在两天的培训课...

疯狂的艺术家
2012/03/02
0
0
软件生命周期模型及其选择

瀑布模型/改进的瀑布模型  虽然瀑布模型仍然存在很多的问题有待解决,但瀑布模型仍然是最基本的和最效的一种可供选择的软件开发生命周期模型.瀑布模型要求软件开发严格按照需求->分析->设计-...

灵动生活
2010/02/08
0
0
架构设计目录

架构引用维基百科:软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客...

zting科技
2017/01/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Deepin 安装wireshark抓包工具

一、关于deepin和wireshark deepin目前已经发展到15.8了,开发Android毫无压力,在四个月的使用时间里,已经非常习惯了。目前想处理一些网络问题,因此尝试在deepin上安装一个抓包工具。dee...

IamOkay
32分钟前
5
0
Docker镜像仓库服务-Nexus

建立云原生集群系统,建立自己的私有Docker镜像仓库必不可少。一方面可以加快多节点部署容器镜像的下载速度,另一方面是为了安全(容器里存储有系统所有的信息、包括密码、数据库等等,切记不...

openthings
44分钟前
1
0
127.0.0.1 和 0.0.0.0 地址的区别

1. IP地址分类 1.1 IP地址表示 IP地址由两个部分组成,net-id和host-id,即网络号和主机号。 net-id:表示ip地址所在的网络号。 host-id:表示ip地址所在网络中的某个主机号码。 即: IP-a...

华山猛男
今天
22
0
解决Unknown host 'd29vzk4ow07wi7.cloudfront.net'. You may need to adjust the proxy settings in Gradle.

把 总项目 下的 build.gradle 中的 两个 jcenter() 用 maven{ url ‘http://maven.aliyun.com/nexus/content/groups/public/’} 代替。...

lanyu96
今天
6
0
基于redis的分布式锁

redisson提供了基于redis的分布式锁实现方式,本文就尝试了下锁的使用方式。Redisson同时还为分布式锁提供了异步执行的相关方法,第二节执行介绍。 一、可重入锁验证 同一个jvm里面同一线程的...

noob_chr
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部