Atitit v3项目快速推进的推荐技术标准化 规范 流程
为了加快进度,大力简化技术复杂度。。如在已有项目二次开发,则原模块技术架构尽可能不变,新增模块则可以应用新办法
1. 快速开发 简化开发的原则 2
1.1. 上手难度小 复杂度低 业界趋势观测 2
1.2. 免配置,免编译 2
1.3. 统一化技术栈 2
1.4. Dsl 4gl 优先于 3gl , 3.5gl 优先于3gl 2
1.5. 可读性优先原则 2
1.6. Hybrid原则 2
2. Gui界面方面 主要是h5体系 2
2.1. 技术体系:全面的前后台分离 2
2.2. 全面使用客户端界面技术mvc 优先于服务端界面技术 全面使用h5 html扩展名文件模式 2
2.3. Ajax fetch +es6+vue.js绑定数据 3
2.4. 主要框架 jquery vue.js 3
2.5. 主要工具html ide 是 dw cs ,js ide 是webstorm等 3
2.6. 注意模块化路径,模块自包含 3
2.7. 界面路径放在主项目下,不要放在web-inf 3
3. 中间层di ioc 接口 4
3.1. 使用静态工厂 servicelocator 优先于使用spring 大力降低技术难度复杂度 4
3.2. 为了保持对spring的了解,以便二次开发某些客户项目,可以在少部分模块,使用spring 4
4. 架构 与rest接口 4
4.1. 优先俩层架构实现,,少部分复杂模块三层 4
4.2. 减少interface,尽可能一个后端service实现一个实体功能。如此模块确实有必要扩展,才使用interface模式。 4
4.3. 业务逻辑适当分散在dsl js 存储过程 触发器 4
4.4. 后端弱化为web版jdbc驱动 前端js可直接传递sql到后端,获取数据,绑定到界面控件 5
4.5. 接口通用化 内部传输dsl作为数据 5
5. 数据存储 5
5.1. 技术体系,dsl化 4gl化 sql化 5
5.2. 框架方面使用apache dbutil ,mybatis优先于hibernate 5
5.3. 数据返回与绑定 使用map通用模式 优先于 实体domain模式 5
5.4. 适当使用存储过程 触发器 视图 简化开发 6
5.5. 要使用数据库gui管理工具比如navicate,简化开发,不要全程代码模式 6
5.6. 为了保持对hibernate的了解,可以在某些简单独立模块适当的使用hibernate 6
Dsl 领域特定语言,包含 H5 sql 等,4gl 第四代语言
Js等script语言被称为3.5gl
Java c#这一类就是3gl了。 语言代际越高越简单易读,反之越繁琐。。
二次开发中途加入也是常见的。。保持对原有模块框架体系的不变,但新模块使用新的更加简单快捷的技术来实现即可。。其次,所有的框架都可以混合使用的,以便根据项目或者产品情况,取长补短,综合起来是王道
界面文件扩展名即是html。。。前段界面全静态,方便前后端人员同时介入以及工作压力分担。甚至基于我们开发的通用接口,前段人员可以独立完成一个项目(需要懂点sql)。。
界面文件扩展名即是html。前端设计出界面后可以直接附加ajax即可连接后端,中间随时也方便前端人员调整界面
数据通信通过通过服务端js数据获取模式(主要应用在查询场合,大部分时候比ajax更加简单),以及ajax (编辑场合,当然查询场合也可,根据情况判断)
不要使用服务端界面技术jfinal,jstl el jsp freemark struts等等就不推荐了。
Fetch是取代jq与原生ajax的w3c标准化api。。
Es6在ie兼容上可能有一些问题,但对于快速开发很有用,项目可以统一使用浏览器chrome56+来实现。。特别是es6的lambda,大力简化代码复杂度
Json数据绑定界面控件vue。js
如需要美观度,适当使用css框架 bootstrap 美化下,如项目没要求,可以先不管美观度
vue.js 用来绑定数据到界面table控件,form表单等。
也可以使用jq单独绑定每个form表单内的控件,比较繁琐些,推荐使用vue绑定
不推荐anrular.js这类较为复杂的框架了。
模块所用的特有的html js css img都放在同一模块文件夹下,可以建立子文件夹按照类型,如果文件多的话。
不推荐不管什么模块,凡是图片统统扔到image目录,凡是js统统js目录。
界面路径放在主项目webroot下,不要放在web-inf,这样增加一些额外代码才能直接访问,而且需要服务端mvc增加复杂性
只有在必要的某些模块的某些功能,确实需要这样的扩展性时候,才使用spring完成此功能。
相对来说。Spring较为复杂繁琐。
这部分模块最好比较简单,独立。这样不太影响项目进度。。各得其所
Servcie 与dao合并,去除interface。。直接一个xxService.java文件实现一个模块功能。
二八原则,大部分模块都是简单的。
有些业务逻辑使用js实现更加简单,有些存储过程更简单。
不要把业务逻辑一股脑全部塞到java后端代码里面,这样开发起来较为繁琐和麻烦。
Js sql的优点就是dsl 化方便开发。
前端js可直接传递sql到后端,获取数据,绑定到界面控件。
注意::这个可大力简化开发。。
适合与后台界面管理xxx系统的模块,不会有安全隐患,因为需要登陆才能使用,而且都是内部人员登陆。。
但不适合与面向公众开放的模块,在公众模块会有一定安全隐患。。。
对于数据库项目,一般涉及数据操作的大部分为sql语句。。
或者更高的安全性或者数据库移植性,使用sp存储过程
其他方面使用同一的http param模式的dsl,指明要调用的java方法路径与参数传递
查询方面使用dbutil 更加简单,特别复杂条件。。二八原则,一个项目80%是查询,20%才是增删改
通过json框架返回序列化效果是一样的,但可以大力减少复杂度。。增强通用性。
方便二次开发某些项目。。因为这些项目可以使用了这类orm框架
作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher
捕鸟王"Bird Catcher kok 虔诚者Pious 宗教信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak 万兽之王
简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴
全名::Emir Attilax Akbar bin Mahmud bin attila bin Solomon bin adam Al Rapanui 埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当 阿尔 拉帕努伊
常用名:艾提拉(艾龙), EMAIL:1466519819@qq.com
头衔:uke总部o2o负责人,全球网格化项目创始人,
uke交友协会会长 uke捕猎协会会长 Emir Uke部落首席大酋长,
uke宗教与文化融合事务部部长, uke宗教改革委员会副主席
uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,
uke 首席cto 软件部门总监 技术部副总监 研发部门总监主管 产品部副经理 项目部副经理 uke科技研究院院长uke软件培训大师
uke波利尼西亚区大区连锁负责人 汤加王国区域负责人 uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人
Uke软件标准化协会理事长理事长 Uke 数据库与存储标准化协会副会长
uke终身教育学校副校长 Uke医院 与医学院方面的创始人
uec学院校长, uecip图像处理机器视觉专业系主任 uke文档检索专业系主任
Uke图像处理与机器视觉学院首席院长
Uke 户外运动协会理事长 度假村首席大村长 uke出版社编辑总编
转载请注明来源:attilax的专栏 ?http://blog.csdn.net/attilax
--Atiend v8