该公司刚刚完成HR系统升级,系统从单一公司实现使用更多的公司使用变更。在一个月的时间升级,虽然很苦,但他们自己的系统架构的感觉获益,有以下的详细的见解:

一、MVC还是非常重要

系统框架是五年前用delphi设计的。採用的基类加扩展类的模式来扩充新业务表单,表单内充满了业务逻辑。因为没有採用MVC模式。以至于我看完并改完了10万源码。还未包括108支SQL脚本写的报表。若採用了MVC模式。我想我仅仅要改M层就能够了,当系统越大。模式就越重要,不然,系统改动会将软件开发由智力劳动变成体力劳动。

在以后的开发中,我想仅仅要系统达到模块级了。就应该採用MVC模式设计。设计前要想清楚、看远一点。

二、分层设计非常重要

系统採用的是三层架构。这一点让我省了不了心,数据的提交(新增、改动、删除)封装在中间层,client仅仅要调用其方法就可以,採用的是client採用公文包方式,将变更的数据交给服务端,而不是一个client数据集相应一个服务端数据集的模式。提高了业务开发效率。

两层的系统已经无法适应有多分支机构的公司了,即使你如今的公司没有分支机构。也不要用两层模式了,由于外地办公的须要会非常快成为你面临的问题。我们能够採用citrix的虚拟应用、虚拟桌面或window的远程桌面来公布我们的两层应用,但从我们的实际使用效果来看,都不如用户直接使用本地程序的体验好。并且还会添加了布署成本。最好直接採用web系统来建立系统。

三、适度封装业务类非常重要

系统曾经非常多方法都封装在一个类中,时间久了,就忘记了这个类中有这种方法。可是若将业务分类创建。那须要相关类的方法时。就会非常自然的想到这种方法的类。这样降低了方法的反复开发。

四、版本号控制非常重要

尽管这次改动由我一个人完毕,但在我须要的时候,我能够将某些功能交给其它同事来完毕,版本号控制给了我一个团队协同开发的选择。

五、存储过程与函数的选择

在改动大量存储过程时发现。里面有很多的insert into #tmp exec myprocedure的语句。若能将这样的语句改成insert into #tmp select xxx from dbo.fn_xxxx()的方式,存储过程代码会变得更易于阅读,调用更方便。所以在开发SQL脚本时。能用函数实现的,且返回数据集不是太大(多大算大,不超直播5000笔吧),表值函数作为我的第一选择。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

大约HR升级版的设计为组汇总的更多相关文章

  1. 寻找丢失的微服务-HAProxy热加载问题的发现与分析 原创: 单既喜 一点大数据技术团队 4月8日 在一点资讯的容器计算平台中,我们通过HAProxy进行Marathon服务发现。本文记录HAProxy服务热加载后某微服务50%概率失效的问题。设计3组对比实验,验证了陈旧配置的HAProxy在Reload时没有退出进而导致微服务丢失,并给出了解决方案. Keywords:HAProxy热加

    寻找丢失的微服务-HAProxy热加载问题的发现与分析 原创: 单既喜 一点大数据技术团队 4月8日 在一点资讯的容器计算平台中,我们通过HAProxy进行Marathon服务发现.本文记录HAPro ...

  2. [iOS UI设计笔记整理汇总]

    8.UIsearchbar放到Navigationbar 上(意思是建个View作为titleview) //此处调用的是第三方封装的SearchBar,也可以自定义. self.searchBarW ...

  3. 100个iOS开发/设计面试题汇总

    常见问题 你昨天/这周学习了什么? 你为什么热衷于软件开发? 你对哪一种控制系统比较熟悉? 是否参与过GitHub项目? 是否参与过GitHub或其他同类型网站的iOS开源项目? 请描述一下你的iOS ...

  4. lr_场景设计之组场景、nmon监控

    1.组场景常用于回归 ,可以设置成一个脚本后多久运行下一个脚本: Real-world Schedule和Basic schedule的区别:根据官方文档,这两种模式下,场景中的每个虚拟用户组(可看成 ...

  5. 2019新版UI设计面试题汇总(附答案)

    问题一.Android手机的常用设计尺寸有_________.怎么适配ios和安卓. 答案:安卓320 X 480是常规模拟器.但现在的开发都是用360x640做一倍率.480 X 800(1.5倍率 ...

  6. .NET开源工作流RoadFlow-表单设计-单选按钮组

    单选按钮组即:<input type='checkbox'/>控件: 绑定字段:与数据表的某个字段绑定. 数据源: 1.数据字典:在下面字段项中选择对应在数据字典项. 2.自定义:自己输入 ...

  7. 100个iOS开发/设计面试题汇总,你将如何作答?

    原文: http://www.csdn.net/article/2015-01-19/2823604-ios-interview-questions 常见问题 你昨天/这周学习了什么? 你为什么热衷于 ...

  8. RS报表设计采用Total汇总过滤出错

    错误信息: DMR 子查询计划失败,并产生意外错误.: java.lang.NullPointerException 如图 原因是在RS过滤器中添加了: total([门诊人次] for [明细科室] ...

  9. 电子技术经典资料汇总:PCB设计篇

    电子技术经典资料汇总:PCB设计篇,下面的链接是一个一个的文件下载的,也是压缩包的内容,只不过我把他们给汇总成了一个压缩包,方便大家下载,还有更多电子技术必备基础资料,通信无线类的,C语言篇的,关于电 ...

随机推荐

  1. IntelliJ IDEA15开发时设置中java complier 的问题

    Error:java: Compilation failed: internal java compiler error set中java complier 设置的问题  ,项目中有人用jdk1.6 ...

  2. 我学的是设计模式的视频教程——命令模式vs策略模式,唠嗑

    课程视频 命令模式vs策略模式 唠嗑 课程笔记 课程笔记 课程代码 课程代码 新课程火热报名中 课程介绍 版权声明:本文博主原创文章,博客,未经同意不得转载.

  3. 在前端一定要了解的HTML,CSS知识

    盒子模型 每个盒子都有4个属性:内容(content).填充(padding).边框(border).边界(margin) 每个属性都有四个部分:上.右.下.左 块级元素 内联元素 块级元素(bloc ...

  4. 微服务API Gateway

    翻译-微服务API Gateway 原文地址:http://microservices.io/patterns/apigateway.html,以下是使用google翻译对原文的翻译. 让我们想象一下 ...

  5. UVA 257 - Palinwords(弦HASH)

    UVA 257 - Palinwords 题目链接 题意:输出一个文本里面的palinword,palinword的定义为.包括两个不同的回文子串,而且要求回文子串不能互相包括 思路:对于每一个单词推 ...

  6. 云梯vpn

    刚和大饼合买了一个云梯的vpn 表示可以把俺的优惠连接放出来了 貌似必须是新注册用户才能够享用优惠 http://protizi.com/?r=5e3fecd7eae558ec 把云梯推荐给朋友们 让 ...

  7. 使用 Visual Studio 对exe文件进行数字签名

    使用"VS2013 开发人员命令提示"运行签名工具.转到要签名的文件目录运行命令: signtool sign /a 要签名的程序.exe signtool 的相关命令 Usage ...

  8. mapxtreme C# 完美车辆动态轨迹展示

    演示程序请在 http://pan.baidu.com/s/1jG9gKMM#dir/path=%2F%E4%BA%A7%E5%93%81%2FDemos 找 Trajectory.rar 轨迹回放功 ...

  9. linux下一个apache+tomcat负载均衡和集群

    先说一下我的环境 一个ubuntu虚拟机, 一个apache2.2示例 两tomcat1.7示例 1.安装apacheserver sudo apt-get install apache2 假设要重新 ...

  10. WSHPSRS-匹克选择列表生成器-SRS(R12.2.3)

     匹克选择列表生成器-SRS(R12.2.3) --US Program:Pick Selection List Generation - SRS Short Name:WSHPSRS Appli ...