![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
系统设计杂谈
kevin_水滴石穿
平心静气,日积月累,厚积薄发
展开
-
论代码规范-命名的重要性
前几天在做数据迁移的时候发现了一个奇怪问题,导入客户数据后,在单据里面有一个用户发现他的送货客户和结算客户反过来了,但是其他用户都没有反馈过这个问题,于是我们就仔细调查,发现在数据库里这2个客户的字段还真是容易迷惑人。本来基础数据中的结算客户命名是CreditCustId,到了单据里却变成了CustId.这个老系统也是久经沧海,从诞生到现在已经10多年了,而且开发人员已经换了一波接一波了,最早的那批人早就不在公司了,文档也不全,很多不确定的地方只能翻查代码,工作量可想而知。 所以...原创 2021-05-23 12:53:52 · 306 阅读 · 0 评论 -
手机端系统提交数据的创建时间验证的问题
今天查看系统时,发现手机端系统提交的数据中存在一些日期特别离谱的数据。比如创建时间为1978年和2019年的数据都出现了。果真是穿越了半个世纪了。于是我马上将问题提交出来,安排同事处理,并分析产生数据的原因,并且寻找解决方案。 经过一番验证终于发现了其中的蹊跷,原来手机系统只是在应用系统登录时会验证时间,而且如果是断网状态是不会验证的。由于在断网状态下可以编辑保存数据,原创 2013-09-26 20:55:57 · 1203 阅读 · 0 评论 -
长假引起的系统审批流的变更的思考
马上就要到国庆长假了,今天突然有经销商用户询问,关于以往的一些业务审批和审核流程的时间点的问题了。原来费用报销的时间点是每月7日前完成,但是由于10月国庆7天长假,根本不可能完成提交,更别论审批了啊。所以用户纷纷来电询问此事,是否要考虑延期之类问题,或者是否要求提前开始提交。 用户的担心是实际的,但是是多虑的。因为系统中有日历即每年的工作日历都有保存,只要你将今年的原创 2013-09-26 21:06:22 · 1013 阅读 · 0 评论 -
那些代码中我们常犯的错误你有木有。。。
写了这么多年代码,遇到的Bug和看到Bug,相信已经很多了,想必大家对于取数据,截断数据,拼接数据之类的操作应该是非常熟悉的了。先列出如下几个例子: 示例1: int BillID=DsData.Table[0].Rows[0]["BillID"].ToString(); 示例2: string strNo=strSno.原创 2013-11-21 16:06:41 · 994 阅读 · 0 评论 -
引用一个网络图片作为样式的致命悲剧
昨天下午一直运行良好采购系统突然出现了致命问题,采购订单无法新建和编辑了,刚开始我们以为只是个别客户的电脑配置和浏览器设置有问题。但是很快就有大面积的用户反映采购功能都无法正常使用了。原创 2013-12-25 14:19:29 · 1057 阅读 · 0 评论 -
适配器模式的随想
形而上者谓之道,形而下者谓之术原创 2014-03-22 13:10:50 · 849 阅读 · 0 评论 -
企业应用软件如何借鉴电商软件的优点
现在电商的发展非常火爆,几乎人人都和电商有过亲密接触。但是说到电商网站或者软件使用的一些技术和架构,估计清楚的人就不多了。比如双11淘宝抢购,这个并发量可以说是世界之最了,那这后面需要什么样的牛逼技术来支持呢。这些电商网站中采用的技术和架构是否可以在我们做企业应用时借鉴呢?当然可以啊,最近我们就针对目前我们公司内部运维多年的系统遇到的一些问题讨论,并探讨如果采用电商网站使用的一些技术是原创 2015-01-08 16:03:56 · 1004 阅读 · 0 评论 -
WPF与WinForm开发有什么区别?
WPF与WinForm开发有什么区别?2010-11-06 21:43WPF开发于WinForm之后,从技术发展的角度,WPF比WinForm先进是不容置疑的。我觉得WPF相比于WinForm有下面的一些较好的特性: 解决Window Handle问题 在Windows GDI或WinForm开发中复杂的GUI应用程序,会使用的大量的控件,如Grid等。转载 2014-12-25 10:30:36 · 1306 阅读 · 0 评论 -
WPF与winform与silverlight的区别
收到了一封学生的邮件: =========================== 金老师您好: 最近在学C#.NET,基本语法学习的差不多了,接下来准备学习图形界面设计部分。但是我目前对于.NET的WinForm、wpf、silverlight这三者的关系弄的不是很清楚,一般书中很少介绍wpf和silverlight,网上搜了一下关于WinForm和wpf的区别,有的说WinFor转载 2014-12-25 10:31:38 · 643 阅读 · 0 评论 -
软件项目开发中需求分析与设计时间和开发时间的比例分配的问题
从毕业到现在做开发已经有近7年了,大大小小的项目也经历了几十个了。在项目开发的过程中很少有项目在设计阶段投入很多时间的,有很多情况下,甚至都没有怎么做设计就直接开始编码了,处于一种边开发边设计到状态,还有些时候,设计就是完成一些文档来应付下,很少有认认真真做设计,然后就直接开始编码,如果遇到需求上问题,再确认。还有些时候,是一边确认需求,一边开始做原型,然后再进入开发,这种方式倒是比较原创 2014-12-27 19:07:23 · 32032 阅读 · 2 评论 -
系统之间接口的可移植性考虑
前些年公司各个系统之间的接口大多通过数据库链接服务器来相互之间推数据或者拉数据,因为这些系统的数据库都部署在公司到内网中,且属于同一网段,使用视图来提供数据源,通过作业来执行存储过程取数,设置好作业到执行频率来控制执行频次。这些年过去了,系统之间到接口越来越多,同步作业也是越来越多,也越来越难以维护了。 现在要开始考虑升级系统或者将系统移植到第三方的云平台的问题了原创 2014-12-27 14:58:00 · 1605 阅读 · 0 评论 -
函数的得墨忒耳法则
得墨忒耳定律也叫做“最少了解原理”,是一种软件设计原理,尤其是应用到面向对象的程序设计中,基本原理为:每个对象对其他对象只能有最少的了解:只有总体才能接近个别对象;每个对象只能和自己的朋友对话:不要和陌生人说话;只和自己最亲密的朋友对话。[c-sharp] view plaincopy函数的得墨忒耳法则规定,某个对象的任何方法转载 2015-10-23 10:53:56 · 576 阅读 · 0 评论 -
利用业务中的主动和被动巧妙的驱动用户遵守规则
最近的半年里总是会在财务对账期间接到一些人为失误导致的业务问题。财务对账这个功能已经上线了半年多了,业务也很稳定了,但是每个月都会有分公司的财务人员出现漏审批对账信息或者忘记审批的现象。同时经销商也会有忘记对账的情况。虽然我们系统和SAP都对对账业务的期限做了很严格的管控,并且过期不候,但是意外的几率还是一如既往的会出现。不得以我们只得从买家和卖家的心里来做一个分析了。当你发生原创 2013-09-24 13:57:35 · 977 阅读 · 0 评论 -
一时失误的权限设计
最近接到一个需求需要增加一个功能的权限控制点。以前由于设计时没有考虑权限这块,这是允许管理员进行操作,但是随着业务的发展和实际需要,使用管理员账号来做相当的不便。所以决定加上这个权限控制点。具体来说说我们这个需求吧,其实也不难。就是要给客户批量导入,客户批量修改,客户批量更新增加一个新增和修改的权限。刚开始我也认为很简单,接到需求后,我了解清楚,并和BA确认完毕后,就将任务交代给另外一原创 2013-09-24 13:34:16 · 893 阅读 · 0 评论 -
逻辑性错误出现后的杯具和启示
上个月发布了一个新的功能性需求,发布后快一个月了一直都没有什么问题反馈,用户也没有提示Bug之类的,但是上周有个用户突然说有一个他修改采购入库单据出现错误,错误的原因是他修改了入库单的产品明细的单位,听到这个消息我们的运维人员感到困惑,因为以前系统一直是不让修改入库单据的单位的啊,而且明细数据都是根据采购单据号直接取出来的啊,只有数量时可以更改的啊。所以实施人员赶紧自己验证了下,发现现在单位确实可原创 2012-09-10 22:44:17 · 800 阅读 · 0 评论 -
基础数据错误的痛苦
前段时间系统的基础数据进行了几次变更,根据公司的要求将部分数据进行了修改,也导入了部分新的数据。当时虽然也进行了审查,但是一段时间后后果才表现出来,有的业务单据的单位出现了问题,有的转换系数出现了,有的产品代码出现了重复,而且我们系统和SAP及其他系统都有接口,其他系统的基础数据出现问题时,也将数据传给了我们的系统,导致我们本来没有问题的数据也出现了问题,现在状况十分糟糕,乱象十足啊。原创 2012-10-13 10:47:42 · 867 阅读 · 0 评论 -
数据精度问题的处理
数据精度这是一个很小的问题,在.net中都有专门的函数来进行处理,System.Decimal.Round,可是你知道 System.Decimal.Round(a,2),System.Decimal.Round(a,2)和System.Decimal.Round(a,2,MidpointRounding.AwayFromZero)这2个函数的区别吗,还有在SQLServer数据库中 Roun原创 2013-01-09 10:52:30 · 2048 阅读 · 0 评论 -
导入Excel数据时对数据校验提示方法
最近在工作中经常遇到客户反映批量导入数据时,提示导入的数据出错后,不能非常方便的定位到那些行的具体那些列的数据出现了错误。 于是公司专门组织了一次专题的讨论会议,想集思广益解决该问题。有一位同事做了一个用VS2012做了一个插件安装后会在Excel文件中显示出来,可以通过该插件对Excel中的数据进行校验,并对出现错误的行和具体的数据项进行标示,方便用户定位错误。对于B/S架构原创 2013-02-28 11:07:31 · 12351 阅读 · 0 评论 -
基础数据的来源的统一
临近清明节的这几天,请3天假可以连着休息8天,对于上班族来说,这真是一个难得的休假机会。因此这几天休假的同事比较多,因此我也就暂时代理了几天的二级运维的工作。从这几天接收到运维工作来看,基础数据同步的问题占的比例较大。 就拿一个销售组织对应关系的例子来说明下。某经销商下了个采购订单,传送到SAP发现对应的销售组织不对,马上给返了回来,要求重新检查后再传送,经销商于是重新审核后再原创 2013-04-03 15:15:03 · 1277 阅读 · 0 评论 -
异常情况监控系统的设计随想
最近这段时间由于机房调整,硬件更新,网络改造等工作不断实施,引起很多问题,比如服务器不稳定,网络经常故障等等。结果导致系统问题频出。如系统服务器宕机,数据库服务器宕机,网络超级卡等等。用户的意见很大,我们也疲于应付这些问题。 前几天在处理完一次异常事故后,我们进行了探讨建立公司的系统异常故障的预警信息发布平台的可能性。考虑到公司的应用系统比较多,而且分布在多台不同的服原创 2013-06-10 17:31:14 · 1240 阅读 · 0 评论 -
系统之间的接口测试
应用系统之间相互交换信息,一般都得通过接口来实现。实现方式也有多种多样,webservice,wcf,remoting等等,但是实现这些接口后,测试可能就需要几个系统联动才行,但是有时候如果都是在生产环境的时候,恐怕不是很方便。特别是考虑到生产环境的特殊性,有时候在测试环境都OK,但是上了生产环境就趴窝的情况也很多,但是有时候还不是那么容易发现问题。 最近公司的接口进行原创 2013-06-08 13:35:18 · 2859 阅读 · 0 评论 -
SAP接口设计的扩展性考虑
由于现在的系统和SAP的接口出现了几次变更,因此需要对系统进行设计改造。由于系统中和SAP交互的接口不止一处,而且也是在不同的时间段进行开发,并由不同的人员来完成的,因此我在维护升级的过程中,发现了以前设计的可借鉴之处和缺点。 首先是财务对账接口的修改,由于需要在SAP中查看报表中多增加几个字段,本来应该是很容易搞定的事情,但是我查看了下接口的代码和配置文件发现,这个居然要更原创 2013-07-10 17:36:36 · 1520 阅读 · 0 评论 -
执行力的不够的系统解决方案
前几天我写了一篇文章讲述了执行力的问题--系统的无奈。那我们今天来从另外一个角度来看待这个问题,怎样使用的系统来解决这个执行力的问题。 其实上次提到的需求问题无非是由于数据需要整理,但是为了防止分公司不按时交作业,或者欺骗领导,不得以采取了交作业的方式来解决问题。但是其实我们还是可以使用系统来解决这个监督问题。 怎么解决呢?由于我们是想检查下原创 2013-08-21 21:15:19 · 735 阅读 · 0 评论 -
闲谈企业管理--执行力的问题
最近由于了解到公司业务系统中关于财务和费用报销方面的后台运维处理的案例特别多。总结起来有如下几类: 1.财务对账到了审核日期没有审核的,过了对账日期但是没有对账提交的。 2.费用报销申请都过期了还没有提交的,有的甚至长达半年,只好补录了。 3.排班和考勤也是过了提交日期没有提交,只好补录。 4.本来系统严格进行控制其他业务流程也是原创 2013-08-24 11:06:27 · 767 阅读 · 0 评论 -
系统功能的可配置性设想
系统功能分步上线,比如先一步步试点上线。分批次的上线一些业务功能。这样的设计大家考虑过没有啊?最近在配合SAP做一个项目时,SAP的同事突然提到,新项目的上线希望能够分批次按照功能点来多次上线,以保证新的业务功能有一个试点观察的时间。这下可把我们其他几个相关系统的负责人搞 了。有些业务的功能点分批上线没有什么大的问题,但是要做到灵活可配置的按照行政区域或者不同分公司不同时原创 2013-09-24 15:58:04 · 3277 阅读 · 0 评论 -
切身体会设计系统时的前瞻性问题
这几天遇到用户提出的一个新需求,要求在现有系统的基础上增加一种新的销售模式,其实也算不上新的销售模式,只不过是由于收货方式有点区别,要在以前的价格基础上做订单时有个调整即可。但是做这种单据可以有几种方式,其中一种是有采购入库单直接生成的销售出库单,写设计方案时,我就发现了一个头痛的问题,目前系统已经将销售模式写死了,比如SaleType(1表示正常销售,2表示调拨销售,3原创 2012-08-29 20:16:45 · 1212 阅读 · 0 评论