架构平台 - kevin的专栏&&Inter Kakas' NO.21 - CSDNBl...

来源:百度文库 编辑:神马文学网 时间:2024/04/28 08:36:56
管理软件,大部分都是单据输入,单据查询,单据打印,统计查询,所以此平台框架设计的出发点也仅仅依据于此。
1元数据设计
一个单据,分为主从两部分。每部分的字段中文名要录入进去,以为了界面设计 有些字段的录入是参照字典的,哪些字段参照哪些字段,也做个关联 这就是最简单实用的元数据设计
2单据设计
界面运行期动态拖拉的控件多的是,增加单据头,还是细目,有了元数据就好办多了
单据上的控件不外乎日期、文本、数字、字典参照、CHECK、GRID, BUTTON、PAGECONTROL、TREE等等控件不会让你放的,否则就成了DELPHI了,要想修改那些,你就改程序吧,但是我们这样做了,就解决了客户要界面变,录入的字段要增加减少,验证要改变的要求
控件的颜色、长度、约束条件、是否必填、中文名、跳转顺序,你可以存在表里面
3单据保存
这个单据对的什么主从表,有字典对照就可以了
主从表的提交和单表的提交,都很简单,这很通用。
这样录入就完成了。但是,我们这里还缺三块的描述,一个是录入和浏览细目的GRID,一个是字典参照控件,一个是通用字典录入。
4录入和浏览细目的GRID、字典参照控件、通用字典录入
对于字典参照控件,肯定就是一个模糊检索EDIT和一个检索出来的结果显示的GRID。
对于录入细目和浏览用的GRID,需要过滤、定位、打印、预览、输出各种格式[DBF、XML、CVS、HTML]
列的排列先后顺序,哪些列可视。这种功能,在单据录入的GRID中一样通用。
有时候录入的时候发现字典条目没有,就需要增加。这里就用到通用字典录入。
当然,你可以为每一个字典录入做一个模块。这样:在录入单据时也可以用,单独调用也可以专门录入字典。
每个字典录入界面,在表中记录好对应哪个字典表。这样,在程序的任何地方,你都可以调用起这个窗口
输入界面做完了,字典维护也完了,就剩下查询和报表了
5查询
查询条件千变万化,但都在单据的可选字段之中。本质上就是用单据表中的某个列进行查询过滤,结果输出到GRID中,GRID又能打印输出了。至于怎么实现,你应该很清楚其中的奥秘了。对,一切都是元数据在支撑,所以我们一开头就是元数据
6报表
报表其实和查询一样,只不过查询是输出为GRID。但是报表又普通二维表、交叉表、图表、套打表、固定行列表。 报表的查询条件设计和查询一样的原理。报表的设计需要单独的设计工具。但是在主程序中要打印预览报表,说明需要一个报表预览打印控件,可以调出报表和查询条件
输入输出都有了,就应该有个基座把这些功能都装进去,而且要根据每个人的登陆权限动态LOAD
7基座
基座的作用就是验证用户登录是否正确,从服务器上取回用户的配置信息,根据权限分配,建立用户功能菜单,点击菜单的时候就LOAD模块
8组织结构设计、权限分配
组织结构设计:需要有公司-部门-人这样的维护界面。
人又归类为一些角色。角色包含角色特有的功能。这样你在分配权限的时候,就非常容易先给一个人分配一个角色,这样标准功能就都有了,如果这个人还有特殊性,就个别再增删功能。
角色也有高低,这样在使用同一个模块是,如查询我手下所有人的工作单。我是小组长,我就只能看我这个小组的人的工作单,我是科长,我就能看所有小组长,包括各组下的普通员工的工作单。
而权限,这在架构上很有要求。权限分配分为三类:
业务功能权限分配,要能分配到这个模块的每个按钮功能及子功能,大多数普通的管理软件,只能到模块。一个模块,不同的人使用应该有不同的权限。有人就能看,有人就能删除,有人就能修改,有人就能增加。而且更特殊的是,科长能录入负值,其他人不能录入负值。这些很细的功能权限都要分配到。
字典权限的分配。有人就能看,有人就能删除,有人就能修改,有人就能增加
报表权限。有的人能看这张,有的人能看那张。更深入的是:有的人能打印这张,能导出这样。有的人不能导出数据。
管理,管理,就是定规则,然后执行。所以权限是定规则过程,执行就是日常使用了。
9还有一些公共业务函数和使用公共数据库连接池,就放在公共模块中,让普通业务程序员调用。
10还有一些外围的功能,如软件安装加密狗,安装数据库而不是恢复备份,标示这个软件是什么版本打了什么补丁,这样在追查错误时比较容易判定是什么版本。
还有一些,就是登陆日志记录,软件操作错误就把错误记录下来,把界面屏幕抓下来。
当然,如单据审批工作流,单据回溯追单一查到底关联查询,如短信的结合,如单据确认消息发送,这些都是外围的一部份,但却是很重要很实用的功能。
有了这个指导框架,大家在建设自己管理软件的平台的时候就知道该做哪些基础工具,怎么一步步做。
等大家实现了这个平台框架,你会发现,你给了程序员业务描述说明[里面包含要写的表和界面和功能操作说明],给了他数据库结构说明,数据库设计员写好SP和VIEW,普通程序员很快就能做出一个功能和改变一个功能。
如果再加上这个普通程序员写的代码风格统一规范,小函数封装,界面和功能分离,即使没有什么OO和UML,这个产品仍然容易定制和修改。
作为一个技术架构师,就是提供工具和公共功能,并且联合数据库设计师或自己合并担当数据库设计, 使软件就高性能、稳定、安全、可裁减修改。
一个软件的终极目标不就是这些吗?
如果这些都实现了,普通程序员的地位又是怎样呢?
项目经理负责进度和业务描述和质量、架构师负责上述架构、普通开发人员和测试人员保证产品出来、售前售后培训人员调研客户需求培训人员、普通实施技术人员和普通支持人员做好支持
一个梦之队就产生了。中国的软件公司大部分都是50人以下,UML、OO、模式、软件工程,都是不现实的。从目前来看,不乏项目经理,也不乏架构师,因为一个开发团队,只需要一个项目经理和一个架构师。而目前中国软件业特别需要普通程序员。但是很低的工资很少可做的工作,对于本科毕业的大学生来说,这简直就是浪费人才。但是,没办法。就像传统行业,现在特别缺技术工人,农民工太低,城市下岗人太老,本科生不原意下车间,但是没有人愿意上职高和中专。这就是现状,你不接受也得接受。你接受不接受?
我们唯一能做的就是利用现有的资源,把事情做到最好。
中国人的奇迹一般都是这么创造出来的。
行进中开火。
架构平台 - kevin的专栏&&Inter Kakas' NO.21 - CSDNBl... 使用Rundll32.exe和Rundll.exe - rjren的专栏 - CSDNBl... 使用Rundll32.exe和Rundll.exe - rjren的专栏 - CSDNBl... windows下进程间通信的手段有哪些? - tanliyoung的专栏 - CSDNBl... 一些网络协议的定义和内容(如Http等) - joephoenix的专栏 - CSDNBl... 一些网络协议的定义和内容(如Http等) - joephoenix的专栏 - CSDNBl... windows下进程间通信的手段有哪些? - tanliyoung的专栏 - CSDNBl... 编译chm格式PHP手册 - Haohappy的专栏--PHP5研究中心 - CSDNBl... 《Java与模式》学习笔记:设计模式——原则 - shanchao的专栏 - CSDNBl... WinCE BSP工程文件pbcxml分析 - ARM-WinCE的专栏 - CSDNBl... 解决ARX自定义实体类viewportDraw显示问题 - 口吕品的专栏 - CSDNBl... 编译chm格式PHP手册 - Haohappy的专栏--PHP5研究中心 - CSDNBl... WinCE BSP工程文件pbcxml分析 - ARM-WinCE的专栏 - CSDNBl... 谈谈职业规划——陈皓的采访 - 陈皓专栏 【空谷幽兰,心如皓月】 - CSDNBl... 解决远程连接服务器的最大连接数 - Kevin的专栏 - CSDN博客 在 console mode 中使用 C/C 编译器 - Kevin的专栏 - CSDNBlog 给Kevin的一封信 系统架构师的修炼 - welcomejzh的专栏 - CSDN博客 怎样的架构才算好? - thinkingforever的专栏 - CSDNBlog 信息系统开发平台OpenExpressApp - 总体架构的由来 J2EE平台架构上开发CRM的技术过程控制 繁花盛开的乌托邦——明日风尚杂志No Magazine, No Life专栏 - 张嫱的日... windows平台本地化安装Mongrel - 逍遥游魂的专栏 - CSDNBlog windows平台本地化安装Mongrel - 逍遥游魂的专栏 - CSDNBlog