Atitit 项目的主体设计与结构文档 v5
Atitit 项目的主体设计与结构文档 v5
3.1. cross device跨设备(pc 手机 平板)3
3.2. cross screen跨不同屏幕(pc,手机,平板等尽可能兼容大小不同屏幕)3
3.4. 高扩展性(为以后不断的修改留下很好的余地以及较为容易的扩展3
3.6. 源码可读性dsl提升,(为以后维护修改方便维护性3
3.7. 跨平台(微信平台等app内嵌, 安卓平台app内嵌,ios平台app内嵌,pc平台)3
3.8. 跨架构部署(支持多种部署方式,bs web cs 桌面程序,Hybrid)3
3.9. 部署友好(尽可能支持绿色版复制部署,免安装sdk等)3
4.1. 跨语言环境与跨平台gui方案静态 h5+rest方案(重要)4
4.2. 客户端ui控件,避免服务端ui控件,提升扩展性(重要)4
4.3. 客户端mvc方案 避免服务端mvc方案,提升扩展性(重要)4
5. 后端语言选择企业级架构与语言体系 java 体系 net体系5
1. 版本历史说明
V5 完善了一些细节,增加了对报表架构的说明
v3 v4 继续完善细节
V2 基本内容完善
V1 大概提纲与部分内容
2. 功能大概说明
参见具体的功能文档
3. 实现的目标
3.1. cross device跨设备(pc 手机 平板)
3.2. cross screen跨不同屏幕(pc,手机,平板等尽可能兼容大小不同屏幕)
3.3. 跨语言标准化api
3.4. 高扩展性(为以后不断的修改留下很好的余地以及较为容易的扩展
3.5. 兼容性
3.6. 源码可读性dsl提升,(为以后维护修改方便维护性
3.7. 跨平台(微信平台等app内嵌, 安卓平台app内嵌,ios平台app内嵌,pc平台)
3.8. 跨架构部署(支持多种部署方式,bs web cs 桌面程序,Hybrid)
3.9. 部署友好(尽可能支持绿色版复制部署,免安装sdk等)
4. 前端界面Gui总体架构
4.1. 跨语言环境与跨平台gui方案静态 h5+rest方案(重要)
页面界面ui使用html静态页面模式,与后端交互通过ajax rest接口。。
这样方便同一个页面界面ui,可以同时应用在不同的语言与平台环境里面(比如java net php 微信 安卓 ios等跨平台app),此外手机平板 pc桌面程序等app可能需要直接把html打包在本地。。
使用客户端h5界面,可以避免平台环境绑定写死。。
如果使用服务端的jsp aspx php等模式,则会造成跨语言环境平台性的丧失,jsp是无法运行在net环境下的,反之aspx也无法运行在java环境下,而且手机平板本地app打包只能解析运行html。。
实现了较为清晰的前后端分离,团队情况下也可以同时提升俩端的开发效率
Ui方面优先使用公有标准h5,尽可能避免私有标准的ui方案,比如wpf(就是ms的h5),微信小程序(就是腾讯的h5)等。。Native方案更不推荐,除非很需要性能(通常是重度游戏,音视频等项目)。。
4.2. 客户端ui控件,避免服务端ui控件,提升扩展性(重要)
标准h5控件可能不足,推荐搭配比如amazeui bootstrap等使用广泛的跨平台ui控件,尽可能同时支持手机最好了,现在移动化是个很大趋势。。Easyui也是个不错的控件库。
如果使用了比如struts,wpf等服务端控件,就会造成环境与平台绑定,导致ui界面移植性丧失
4.3. 客户端mvc方案 避免服务端mvc方案,提升扩展性(重要)
目前常用的客户端mvc 推荐例如 angular.js vue.js等东东,同时搭配jquery等框架库
4.4. 页面流程跳转前端js实现,方便日后调整维护修改
4.5. 其他
统一的gdi与dom api
提升用户体验,界面ui动画
页面转换过渡期间动画
后端交互jq ajax 以及服务端脚本共同使用
不使用浏览器扩展模式。不好调试
界面音效设计,略
5. 后端语言选择企业级架构与语言体系 java 体系 net体系
首选企业级语言java 体系。各方面资料齐全,全体系,桌面,web,安卓系统全跨越,方便代码重用。
C# net也是企业级语言,但是跨平台较弱了,也不可做安卓手机平板app等。
其他的php 就要非常谨慎选择了 ,php 做做简单web快速开发效率高,不过较为复杂企业级应用做不了,手机平板一类app也不可。 此外源码外漏,较容易被病毒木马篡改,嵌入病毒代码片段,安全隐患。。
node.js python这一类就比较非主流了,一般不推荐了。。
尽力避免过时淘汰的语言技术,比如VB delphi asp pb 等。。
6. 中间层架构
6.1. Ioc架构容器化(重要)
6.2. 8.16. Rest 接口rest化(重要)
6.3. Hybrid集成化
6.4. Plugin插件体系模块化
6.5. Dsl化
6.6. Func base unit 基于功能的单元
6.7. platform平台化
6.8. 8.17. Text 协议文本化
7. 存储层架构
7.1. Oodb化,尽可能的oo化。
7.2. 推荐Mysql数据库,开发部署友好性高
常用的三大数据库mssql (sql server) ,mysql ,oracle 。。
sql server的主要问题是必须要安装(这个也是ms系列的通病,包括ide vs ,office,sdk等),常常这些大型软件安装麻烦,特别不同的环境,可能不同的要求,常常不能满足条件造成回滚,可能需要重启服务器,反复安装几次才可成功,此外只能在win平台。。
Mysql,绿色版免安装,部署方便,可以安装为服务,也可以单进程运行。跨linux win等服务器平台。推荐的此数据库
Oracle貌似也可绿色版运行。但是超大型数据库,比较麻烦,体积庞大,影响开发效率,除非很大型的项目,否则避免使用。
7.3. 动态orm
常用的全自动化orm架构,配合半自动化的orm架构,配合完全动态化的orm架构会更好。。
8. 报表与图表
一般的报表重点在于图表可视化展示,这里涉及到界面ui的还是h5 js 优先了。。方便多个语言环境与多个不同设备显示。
常用的图表,一般有4大图表(条形图、柱状图、折线图和饼图),此外还有金字塔,组织架构图,地图等常用图表
常用的图表类库,按照流行度排列如下 Highcharts 》》Chart.Js >>百度Echart
传统上net java系列都有一些报表图表控件,但是一般就不推荐了,因为那些是服务端ui控件,除非客户端H5 js图标库不能满足需求的列外。。
9. 配置
多模块架构配置设计
9.1. 参考资料
Atitit.js图表报表工具比较
作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher
捕鸟王"Bird Catcher 王中之王King of Kings 虔诚者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部落首席大酋长,uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,奶牛科技cto ,uke 首席cto uke波利尼西亚区大区连锁负责人,克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke汤加王国区域负责人。布维岛和南乔治亚和南桑威奇群岛大区连锁负责人
Uke软件标准化协会理事长理事长 uke终身教育学校副校长
Uke 数据库与存储标准化协会副会长 uke出版社编辑总编
转载请注明来源:attilax的专栏 http://blog.csdn.net/attilax
--Atiend