该公司刚刚完成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笔吧),表值函数作为我的第一选择。

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

转载于:https://www.cnblogs.com/zfyouxi/p/4720677.html

大约HR升级版的设计为组汇总相关推荐

  1. 51单片机STM32交通灯红绿灯十字路口信号灯类设计功能要求汇总

    51单片机STM32交通灯红绿灯十字路口信号灯类设计功能要求汇总 浏览必读: 使用关键词搜索可以达到事半功倍的效果. 电脑浏览器CTRL+F可以使用搜索查找 设计编号J000 功能说明: 1.四路交通 ...

  2. Apple苹果产品MFi设计及标准汇总

    Apple苹果产品MFi设计及标准汇总 MFi是·Made For iPhone/iPad/iPod的缩写, 下面相关资料的汇总, 希望对大家有所帮助! 1. 设计标准 - General: 最新的苹 ...

  3. 数字IC设计笔试题汇总(一)

    数字IC设计笔试题汇总(一) 快秋招了,这篇博客记录了一些最近看见的数字IC设计相关的笔试题,仅供参考 1. 用100MHz的时钟A去采样200MHz的时钟B(与A无关)产生的8bit信号是同步采样还 ...

  4. java毕业生设计一起组局校园交友平台计算机源码+系统+mysql+调试部署+lw

    java毕业生设计一起组局校园交友平台计算机源码+系统+mysql+调试部署+lw java毕业生设计一起组局校园交友平台计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B/S ...

  5. 数字IC设计笔试题汇总(二)

    数字IC设计笔试题汇总(二) 快秋招了,这篇博客记录了一些最近看见的数字IC设计相关的笔试题,仅供参考 1. 在边沿敏感的时序逻辑代码中使用(A)赋值,会导致综合前与综合后仿真结果不一致. A . 阻 ...

  6. 西电算法分析与设计核心考点汇总(期末真题,教材算法导论)

    文章目录 前言 一.历年考题 1.1 判断题 1.2 单选题 1.3 复杂度计算 1.4 分治 1.5 算法设计(01背包,最短路径) 1.6 最大子数组问题 1.7 算法设计(最长回文串) 二.核心 ...

  7. Android App 架构设计相关资料汇总

    1. 前言 只要有1,2年工作经验的程序员,多多少少都会接触到架构东西.可能平时工作中不一定会有机会从0到1完完全全自己去设计一套架构出来,但是如果想成为高级工程师,技术专家,架构师--尽早接触架构方 ...

  8. 薪酬体系怎么设计?详解HR薪酬体系设计的方法、步骤与工具

    HR在定薪时总会遇到这样的情况: 好不容易找到心仪的候选人,顺利走完面试,最后却因为薪资没有别家吸引力拒掉offer. 老员工吐槽,为什么做这么多事,不如新员工拿的多,涨薪还无望? 老板在会上质疑,为 ...

  9. 领域驱动设计系列文章汇总

    Entity Framework之领域驱动设计实践 EntityFramework之领域驱动设计实践 - 前言 EntityFramework之领域驱动设计实践 (一):从DataTable到Enti ...

最新文章

  1. 我们工作到底为了什么(坚持全篇看完你将受益匪浅)(转)
  2. php调用hive,如何进行hive的简单操作
  3. python升级第三方库,Python第三方库的卸载_安装_更新
  4. 腾讯云linux数据盘格式化,腾讯云服务器Centos挂载数据盘的方法
  5. .netcore 整合 log4net
  6. LeetCode 1238. 循环码排列(格雷编码+旋转数组)
  7. 棋魂桌面壁纸图片|大火影视壁纸找高图
  8. TabLayout实现自定义标题栏目功能
  9. HTML菜鸟教程学习笔记
  10. 平均数 中位数 四分位数 方差 标准差
  11. 教你区别几款常用的U盘修复工具
  12. C#远程时间同步助手软件设计
  13. 制作简单的指纹图集,并对其进行处理
  14. 【数字图像处理】双三次插值及其卷积算法(Bicubic Interpolation)
  15. 微生物组-宏基因组分析第8期 (报名直播课免费参加线下2020.7)
  16. 在python中strip_Python中关于strip使用方法的小妙招
  17. LINUX-挂载(如U盘挂载)
  18. c语言武汉市出租车收费标准 3公里以内,武汉的士起步价25日起调至10元 每公里租价1.8元...
  19. 现在开始 -- Steve Pavlina
  20. 统计频次:统计数组中每种模的频次

热门文章

  1. jee--eclipse下tomcat出现did not find a matching property.(转)
  2. SQL Server Denali:SSDT新功能解读
  3. 深入BeanShell脚本对象
  4. 详解数字电视机顶盒的功能技术与应用3
  5. VC++设计简易计算器笔记(一)
  6. 进程在linux系统中原理,Linux系统原理知识 进程切换的概念介绍
  7. pandas读取csv某一列_让pandas处理大数据速度变快的三个技巧
  8. java emf 转jpg_java – emf到jpg的转换
  9. Redis五大基本数据类型及其相关命令及常用用途
  10. 遗传算法入门到掌握(二)