很多企业已经有了一套自己的固定的业务流程,以及与之相配的信息系统,替这样的企业开发业务系统的时候往往数据库结构和业务流程都是已有的,开发的主要任务就是使得数据流符合已有的业务流程。这种系统开发我称之为以数据为中心的系统开发。这种系统也不是简单的curd的操作,本身的业务流程也非常复杂,由于业务的模块很多,很多内部的人员对不同业务之间的关系也不能准确的把握,企业内部本身也有很多不同的系统,相互之间也有数据交换,系统开发的过程本身也是一种系统进化的过程。所以这样的系统唯一稳定的就是数据库的结构。整个开发的过程也就围绕着数据流来进行。
首先是页面的开发,页面开发通常的流程是,按照客户要求画好HTML 让客户确认,客户确认后建立所有html元素和数据库表的对应关系(比如说客户code对应的数据库的那张表的哪个字段)。最后开始coding。Coding首先就是建立JSP页面,当页面元素很多的时候这的确是一件非常艰苦的工作。
1) 将html改造成相应的JSP的风格。
2) 将数据使用相应的MVC的tag 将数据对应的字段在JSP页面上展开。
3) 添加上相应的辅助信息(比如字段的最大长度,数据的格式信息(日期型?浮点数?字符串))。
4) 提交的时候需要做的一些基本的javascript进行验证,并且需要报错(出错信息需要国际化)。
5) 这些页面的元素提交后,后台提交的数据和相应的业务bean的转化也同样需要大量的工作。
当维护工作开始的时候以后这也个信息散落在巨大的JSP页面的哥哥tag中。并且也散落在javascript的各处。
可以说仅仅是对这写看似简单的页面工作就几乎占了整个工作量的一半不止,当页面复杂的时候更加明显。
如何才能减少这些个复杂工作的工作量呢?
我的想法是从库结构入手:
1) 通过库结构生成相应的javascript对象,每个对象对应一张表的表结构,每个字段对应一个field对象比方说:
User{
code :field{ type=float ,length=9,….. }
}
这样就可以参照CSS的做法 把数据的结构和数据的表现分离出去。把JSP页面分离成为一个数据结构描述和数据表现两个部分。当页面初次展现时候通过javascript
通过不同div中不同的命名规则,将javascript对象和对应的dom对象绑定。这样在做jsp页面的时候就不用考虑字段的辅助信息的内容,基本html原先的设定都不用修改。
2) 由于对象中有长度类型的信息,所以基本的数据验证就就可以通过共同的javascript函数来实现,同时也实现了报错的标准化。
3) 页面初始数据的填写和提交。
Struts 是通过bean的命名规则和tag中的命名规则来通过request进行数据传递的。这种方式的好处是通过form的映射在出错的时候能很好的保存数据。 缺点也很明显。当页面元素多的时候要手工写一大串string
,同时当有多行同名元素的时候只能采用数组的方式来处理,很不方便。
其实采用javascript的对象方式来根据页面上不同的div来收集对应的元素,通过ajax的方式上传到web服务器亦或通过json的方式在传回数据区,通过javasrip填回html。这样无论是数据的组织还是debug 都比较方便
4) 从工作量来说
【1】
javascript对象是自动生成的。几乎不需要工作量。
【2】
将对象binding到dom这应该有共同的函数来实现。
【3】
数据的填写和收集也可以由共同的函数来实现。
【4】
最后提交到web服务器上的数据已经是对象化的了。很容易进行数据的整理。
【5】
维护页面的数据信息都集中在数据区,维护起来非常的方便。
5) 难点就在于共通函数的整合,以及报错处理的共通话,和报错后页面的恢复。
分享到:
相关推荐
系统可能采用了经典的三层架构,包括表现层、业务逻辑层和数据访问层,以实现良好的解耦和可维护性。 1. 表现层:这是用户与系统交互的部分,通常由HTML、CSS和JavaScript组成,负责显示数据和接收用户输入。ASP...
在操作系统中,页面淘汰算法是内存管理的重要组成部分,特别是在虚拟内存系统中,当物理内存不足时,必须将一些页面从内存中移出,为新数据腾出空间。本实验报告聚焦于页面淘汰算法的模拟实现与比较,主要针对北京...
当进程运行过程中需要访问的数据不在内存中时,会发生“缺页”中断,系统会通过特定的算法选择内存中的某一页淘汰,以便将所需页面调入内存。 #### 三、LRU置换算法详解 **LRU置换算法原理:** LRU(Least Recently...
- **具体作用**:通过这种方式,CPU将跳转到以GDT第2项中的base_addr为基地址、偏移量为0的位置执行代码,即head程序的起始位置。这里使用了保护模式下的段选择符。 #### 三、保护模式的关键技术 **6. 保护模式的...
运行截图和结果分析可以帮助我们理解不同算法在不同场景下的表现,而心得体会部分则反映了作者在完成课程设计过程中的思考和成长。 总的来说,页面置换算法是操作系统中虚拟存储管理的关键组件,理解和优化这些算法...
3. **分页与请求分页系统**:分页将内存划分为固定大小的页,请求分页系统在此基础上增加了动态调页和置换功能,允许进程在需要时才加载部分代码和数据。 4. **请求分段系统**:类似地,分段允许按照逻辑结构划分...
选用的关系数据库为ACCESS2003或SQLSERVER2000,编程语言和工具为VB6.0搭配ACCESS2003,操作系统为WINDOWSXP。系统采用ADO数据库连接技术,结构遵循客户-服务器(C/S)模型。 设计要求包括在上机前完成所有源程序的...
以区域为例 各区域充值总金额、充值人数、充值次数、付费率、arpu值分布 交叉分析 以区域和性别为例 不同性别+不同地域环境下,付费率数据…… 渠道分布 品牌、机型、操作系统、分辨率、联网、版本、设备均价、运营...
吞吐量是衡量系统处理请求能力的重要指标,它通常以请求数/秒、页面数/秒、人数/天或业务处理数/小时等单位来表示。在没有遇到性能瓶颈的情况下,吞吐量与虚拟用户数(VU)之间的关系可以用公式F=VU*R/T来描述,其中...
以目标为导向,学会数据拆分 细分到极致 追踪思路 运营的问题,是追踪出来的,不是一次就看出来的 所有的数据都是靠积累和沉淀才能发现问题,单一的数字没有任何意义,只能称为 “数值” 结合/拆分思路 追踪...
性能计数器则提供了服务器和操作系统性能的监控数据,能够帮助我们发现性能瓶颈。 思考时间是指用户在执行连续操作之间,对系统响应的等待时间。在性能测试中,对思考时间的模拟至关重要,因为它更真实地反映了用户...
在当今Web开发领域,Node.js以其异步非阻塞I/O、高性能和可扩展性等特点,已经成为构建高效后端服务的重要工具。本篇将深入探讨一个基于Node.js的图书管理系统,包括其核心概念、设计思路、主要功能以及实现细节。 ...
在实验结果一节中,报告会展示代码运行的截图和数据,这些证据直观地反映了程序的运行效果和性能表现,这对于验证理论正确性和程序的稳定性至关重要。 报告之后,代码部分则将理论转化为实践。在进程管理模块,代码...
项目开发过程中,开发者需要掌握ASP.NET中的关键概念和技术,如ASP.NET页面生命周期、控件事件处理、数据绑定、ADO.NET数据库操作等。此外,他们还需要熟悉SQL语言,以便在数据访问层中编写高效的SQL查询语句,与...
这个名为"ASP.NET基于WEB的工作计划统计分析系统的设计与实现(源代码+论文).zip"的压缩包文件,显然包含了使用ASP.NET技术构建的一个工作计划统计分析系统的完整源代码和相关论文,为学习者或开发者提供了深入了解和...
ASP.NET的核心特性包括:模型-视图-控制器(MVC)架构、动态数据支持、自动页面状态管理等,这些都在餐饮管理系统中得以体现。 三、毕业设计论文结构 1. 任务书:明确项目目标、需求分析和预期成果,为后续设计提供...
- **战略调整**:鉴于上述观察,公司认识到需要将更多的资源和注意力转移到H5页面上,以充分利用其作为新用户入口的作用,并支持APP的持续增长。 #### 二、移动SEO做什么? - **组织结构调整**:为了更好地支持...
当内存中没有足够的空闲页面时,该算法会淘汰最早进入内存的页面,以便为新进入的页面腾出空间。虽然其实现简单,但其性能可能不是最优的,因为它可能会导致Belady异常,即分配更多内存反而导致更多的页面置换。 **...
《JSP计算机等级考试查询系统》是一个基于Java服务器页面(JSP)技术开发的应用程序,主要功能是为用户提供计算机等级考试的成绩查询服务。这个系统包含了源代码、论文以及答辩PPT,是学习和理解JSP应用开发的一个...
9. **行业影响**:华为鸿蒙PC版的推出,可能推动整个行业对跨平台操作系统的思考,加速其他厂商对多设备融合的支持,推动智能设备生态的进一步发展。 10. **用户期待**:用户期待鸿蒙OS能提供不同于传统操作系统的...