【转】http://ronatona2008.blog.bokee.net/
引子:企业级应用快速开发在业界不是一个新话题,对于作者8年多的职业生涯而言,更是一个持之以恒、孜孜不倦寻求解决方案的课题。最近,该课题有了新的进展,在重构企业融资服务的大背景下推出,尤其有意义。
背景
作者多年来一直从事银行对公融资类产品的研发和实施。在此过程中,很多问题需要思考和改进,归纳了一下,大概有如下几个对于软件活动具有重大意义。
ü 软件产品研发过程中,需求实现的颗粒度保持到什么程度,对于项目实施的意义更大?
ü 软件活动中,应注意哪种资源的积累最有意义?
ü 如何才能做到软件设计的相对通用性?
ü 如何做到对软件产品研发的批量化?
ü 用户需求快速处理的意义?
ü 面向行业的抽象对于批量客户化的意义?
ü 技术上实现低配置无限横向拓展的意义?
对技术的理解
“技术是为了业务实现而服务的。”
相信这句话,所有的软件工程师都没有异议。因此用户需求是第一位的,能实现用户满意的功能是技术存在的意义所在。而与用户的不睦恐怕都源于技术的匮乏,或者说没有做好充分的技术准备,项目就上马了。
过分的依赖技术也不可取,毕竟精力有限、资源有限,无限的技术更新将耗费大量的理解用户需求,与用户沟通的宝贵时间,同样不能最大限度的满足用户需求。
这里,对技术的使用要有一个度字。
对需求的理解
“需求是按照行业来区分的。”
这句话是工作多年才能总结出来的。请诸位仔细回购一下自己做过的项目,尤其是有多个行业经验的工程师,用户的需求虽然可以分为不通的模块,但在实现上是否都可以提炼和抽象。从前台展示、前台操作、后台服务等特性进行总结,你会发现,如果你有很好的设计,其实你可以做到相对通用性的。(当然,如果没有做到相对通用,不能说明你的水平不够,而是你们公司没有给你时间,项目进度太紧张了。)
所以说,在软件实施过程中,一定要抽象总结用户需求。
软件架构模式
“MVC是纯技术模式,应该扩展至业务范畴”
曾几何时,”MVC”是软件设计先进性的标志,诚然,对于开发人员而言,在此模式的大原则下,业务被一定程度的模块化,面向对象的设计方式能够帮助运维人员直观的理解系统、维护功能。事实证明,后台逻辑和页面操作控制逻辑的过度客户化将使系统过分复杂,控制层和服务层设置页面操作控制函数都出现了业务逻辑代码,以此代码进行再实施将会是灾难性的。
所以,软件设计模式应该是:功能层(F)+服务层(S)+控制层(C)+视图层(V)
宝贵的资源积累
“保证 视图层、控制层、功能层的抽象性,业务逻辑体现在服务层 ”
伴随着项目的实施,根据不同的业务展现习惯,视图层会越来越丰富;而不同的操作习惯会积累不同的操作定义;因为业务处理要求的不同,服务层也形成了积累。这些积累都需要通过“视图配置”、“操作配置”和“服务配置”录入平台,以便可以通过“功能配置 ”展现系统。
处理用户需求
“有了以上的积累后,处理用户需求变得相对简单。”
因作者多年来一直从事银行对公融资类系统的研发,所以 EAFD1.0 将首先瞄准银行融资业务管理领域,即EAFD平台第一个实现的系统为”供应链融资管理系统-SPCF”。
在SPCF中,作者分析了企业、银行在此项业务中的需求。
对于企业而言,其采购、生产、销售、库存、财务等过程需要通过供应链管理系统进行信息化和流程化处理,这样才能有效地分析在企业生产过程中,其可用于融资贷款的标的物,也是银行所关注的,另外,通过供应链信息化后,企业有效的提高了管理水平,节约了成本、提高了生产效率。
对于银行而言,银行融资种类比较多,针对不同的标的物会产生不通的融资产品,走不同的业务流程。因此供应链融资系统的需求主要体现在数据采集的多样性、审核、控制及流程化审批上。
于是,SPCF系统中,视图大概分为如下几种:单查询列表视图、双查询列表视图、查询和树混合视图、批量更改视图、流程导航视图;服务除了基础的视图绘画、增、删、查、该外,状态更改服务显得比较重要,当然还有一些其它的业务处理服务,如记账、计算利息等;操作对应服务,当服务客户化了,操作也会相应的客户化。
面向行业,批量客户化实施
“批量客户化是软件商业化的价值目标”
商业化是软件的价值体现,批量客户化则是商业价值最大化的途径。面向行业抽象业务服务,用户视图、业务操作,重用快速开发平台中的资源,做到快速客户化。这样既减少了资源投入,又保证了项目实施的进度和质量,保证了商业利益。
动态横向无限扩展
“动态横向部署,保证了系统访问负载”
系统采用轻量级架构,保证应用的原子性,可随意部署,发布后即可响应服务,逻辑存储于数据库中。由于系统业务采用面向服务的方式定义,服务脚本存在于每一份应用发布包中,每一个节点的服务响应地位是均等的,系统可以选择某一个或几个节点响应视图绘画服务,然后可以根据访问者的IP或者用户信息分配响应服务的节点,这样,对于服务具体的访问负载可以进行控制,系统可以根据用户的数量和访问习惯,合理的分配硬件资源来支撑服务运行。
总结
企业应用快速开发平台,可以最大限度的串接每一次软件研发活动,并将研发成果具体化。
基于软件开发平台实施软件,可以充分发挥程序员的能力,抽象概括业务,形成行业共用服务,支撑批量客户化。
在软件开发平台上面向具体行业实施软件研发,可以节约成本,控制进度,快速响应用户需求,保证商业利益。
分享到:
相关推荐
标题 "5de970ee89108da0b7e19eafd4beaaad:应用程序 ID 11155" 和描述中的 "5de970ee89108da0b7e19eafd4beaaad 应用程序 ID 11155" 提到了一个特定的应用程序标识符,这通常用于唯一地识别软件应用程序或服务。...
WPF(Windows Presentation Foundation)是微软推出的.NET Framework的重要组成部分,它提供了一种强大的图形用户界面(GUI)开发平台,为开发者构建美观、交互性强的应用程序提供了丰富的工具和API。本篇将深入探讨...
它是开发者进行应用开发的理想选择,因为它可以模拟所有生产环境的特性。 下载地址:ed2k://|file|cn_sql_server_2019_developer_x64_dvd_c21035cc.iso|1632086016|7AFACB434CF9716CA7818F39F06BE0F5|/ 3. **SQL ...
微软Hololens2 MRTK插件 Unity开发必备插件包 可下载以下插件联合使用: Microsoft.MixedReality.Toolkit.Unity.Foundation.2.4.0.unitypackage Microsoft.MixedReality.Toolkit.Unity.Extensions.2.4.0. Microsoft...
64-bit ODAC 11.2 Release 6 (11.2.0.4.0) Xcopy for Windows x64 解决Oracle 未安装ODAC报错的问题! ODAC安装方法:http://jingyan.baidu.com/article/e4511cf336ce872b845eafd4.html
--简历的渠道 1:招聘网站,2:猎头招聘,3:员工推荐,4:现场招聘,5:校园招聘,6:媒体广告,7:官网,8:企业人才库,9:其它, 10131:领导推荐,10132:外包,10133:培训机构,10254:职酷 如果不填或填0,...
`3ef26a9ea46c462eafd86e297fb7fed2`可能是`bluebird.js`库的特定版本或相关的文件哈希值,用于验证文件的完整性和来源。在实际项目中,确保引入正确版本的库对于保持代码稳定性和兼容性至关重要。
转换onnx 如果要转换为ONNX,只需运行python3 convert/convert_onnx.py转换电视我们已经在提交** f08d5d78ee000b2c113ac451f8d73817960eafd5 **的tvm版本上进行了测试,其他版本未经测试,因此无法确保也能正常工作...
所以,图中有2个以EF为对角线的平行四边形:EBCF和EAFD。 6. 菱形的性质:菱形的对角线互相垂直且平分。设菱形的边长为a,对角线长度为d1和d2,则周长P=4a,面积S=(d1×d2)/2。已知d1=6,d2=8,周长P=4×(6+8)=52,...