zoukankan      html  css  js  c++  java
  • Web项目开发小结

      经过近4个多月的历程,该系统的第一阶段也算是完成了,总算是能挂到测试环境让人去测试,现在只等待系统上线,以及下一阶段的开发进行,相信也不会很久了,不过能够在年前将这个东西弄完,也是算为2015年做了一个稍微好点的开端吧。

      说起这个系统,也算是泪牛满面了。从项目的需求分析阶段开始说吧,其实这只是风控部门的一个构想,他们将这个诉求提到公司高层那里,得到上面的批复和肯定,但是需求并不清晰,只是大概知道这个东西做好以后,可以更加的方便风控部门进行数据分析,不过也会方便自己部门进行工作量化,同时规范自身的主体业务,明确细分工作要点...大概可以这样理解吧。虽总裁关注首肯,可是这个系统毕竟由外部门主导力推,对己方来说,这些关键性数据是并不愿意共享到其他部门去的,所以刚开始打打太极,经理的说法是,先把本部门的工作做好,一定要保证现有的系统稳定无误的运行,配合好各区域的工作是最重要的,这个东西呢以后还不知道做不做呢,让我工作重心放到现有工作上(说说自己的工作:一个人在战斗,并不是专业的IT Team,属于一个公司的部门的系统工程师,全心全意为本部门服务,负责项目开发,系统维护,数据查询,各类权限管理,外部沟通。端茶送水,捶脚按摩,陪吃陪聊,拍拍马屁等等这些都不是我工作的内容....),因为承担这样一个角色,就注定了后来的路并不好走。

    刚开始进度那叫一个慢,因为己方不太愿意做这个东西,因此一个礼拜顶多就一两次两部门会面讨论该需求,每次不超过1个半小时,如此下来,讨论的结果,2015年7月份完成,按上面的意思,不用急,先处理好自己的事情,每天花2个小时开发就好...

      然后就开始着手做了,手中拥有的资料就是,每次讨论后的笔记,若干个Excel表格,还有断续的记忆,只知道把一些数据录入系统,好吧真的只是录入数据到系统而已....可是问题来了,风控部门是那么的“贴心”,担心我一个人忙不过来,开发过程有难度,表示该需求的所有数据表他们请IT部门的老外主管设计,我只想说你们闹够了没有,他都没来参加过任何讨论,参加完讨论的我都觉得这些数据之间的关联并不清晰,做开发的又不是他,让他去设计这些表结构,我是不是得按照他的建表思维进行开发呢,这个时候让一个外来人横插一脚,难道外来的和尚真的会念经??当时就是很排斥,不过反抗无效。又经过了多少天,数据表的栏位以Excel发给我了,我只想说,除了用Excel来传达这种很关键的信息,就不能用别的吗,没有文字说明,每个字段都不知道是啥,开发个毛线,一大堆表,就只是给了这些表的关系图,看图很容易理解啊,各种主外键相关,但是具体到每个表里面是什么,Excel中无文字说明,接下来的事情就开始画蛇添足了,我只能花时间去理解这些表,遇到不懂的电话咨询对方,总之越看越觉得怪怪的,在这期间不断的有栏位添加,删除,修改,因为根本就是不合逻辑的。但是咱们有困难也要上,要知道自己是专业的,勉强的理解了这些数据表的结构,当我在数据库中按照他们的提供的方案建好了表以后,她们又提供了Excel,注意又是Excel 啊,里面是她们想要的数据,以及她们立案时候能提供给我们的东西,坑爹啊,完全就与这些表关系不大。向经理反馈之后,得到支持,放手去做吧,按照你的想法,能把该项目需求实现就行,不按照她们的数据表进行开发了。那么就开始吧!

      这个纠结的过程用10000字也说不明白,还是我想原因在于,这里核心业务不是软件开发,并且项目是做着内部通用,所以才会显得杂乱无章,不过也让我有了以下的认识:1.跨部门的沟通的重要性以及技巧性,要想让双方达成某一个共识,并且为之向前走,一定要不断地去推,不断跟进。2.同时要不断地提出在这个过程中所发现的问题,看法,以及意见,有问题当场解决,不能解决的记录下来。3.开会必须做笔记,不要过分自信自己的记忆力和理解能力,因为转身你可能就会忘或者记错。4.不要轻易的做承诺,也不要轻易地答应外部门或者客户的一些要求,因为在你看来或许是合理的,用技术手段是可以实现的,但是要知道有些东西,你的老大他同不同意,尤其是部门数据这一块,以及设计到自身业务的这一块,很多管理者都有这样的想法。他们想的是,一个新的东西提出来,最好不要影响到现有的工作流程和业务。所以当外部门的人员与开发人员联系,表示要修改下需求或者新增某一个功能,凡是涉及业务的,不可以私底下答应,一定要请示,或者放到每次的会谈中间来讨论,或者邮件批示等等。5.信息要及时互通,其实就犹如开发过程中,实现了一部分功能,真的需要拿出来给用户去看看,可以不用测试,让他们只看UI,或者看一些模拟填充值,这样对于以后的开发顺利进行是很有作用,因为可以及时发现问题,同可以得到反馈,不是很清楚专业的项目组中,是一个什么样的流程。。。

      开发工具:vs2008,sqlserver2008,that‘s all,使用ASP.Net + js  + Jquery + html + css,基于Web Form的系统。整个的过程还是比较顺利的,不过还是遇到了一些很奇怪的问题,不过最终都是得到了解决。

      问题1.http://q.cnblogs.com/q/69513/,已经提问了,当时纠结了很久,不过回答者给了一个思路,问题得到很好地解决

      问题2.$.ajax方法请求的数据默认是带有缓存的,更新数据库中的基本资料表,它获取的数据还是旧的数据,因此要加上cache:false.如果两个$.ajax方法想让其顺序执行,就需要加上async: false

      问题3.上传附件。如果用asp.net自带的UpdatePanel去实现上传附件时的局部刷新,这是不能实现的,后台是无法获取文件信息的(Request.Files.Count = 0),因此每次点击上传,都会在客户端和服务器端建立一次请求链接,此时肯定页面会刷新,而页面上不仅仅只有这个上传附件的模块,一旦刷新,那么表单中的其他已经填写的数据就会被重置,或者更改,这个时候想到的解决办法是:点击上传附件按钮,使用window.open方法,打开一个单独上传附件的页面,在其中进行附件上传的操作,但是把母页面的GridView放到UpdatePanel中,然后添加一个Timer,Timer事件中进行绑定附件信息的操作,那么当我们在Open出来的窗口上传附件时候,就可以看到母页面的GridView局部刷新,并且并不影响到页面中其他的元素,只是这样设计有个问题就是,因为有timer,所以当页面打开的时候,就会一直不停地访问数据库,进行附件数据绑定,无形中增加了服务器的压力。

      问题4.将Excel中的数据导入到数据表中的时候发现,有的单元格的值会奇怪的miss,看看单元格中值的长度,并没有超过数据表字段的最大长度,但是后面发现该Excel的数据中,除去表头的第一行数据是起到关键性作用的,如果第一行的数据中某一个单元格是以2014-02-02 开头,不论后面接了什么数据,该单元格所对应的列就成为了datetime类型,以后该列的其他单元格就根本没法转变成datetime就导致了数据丢失,为了避免这种情况,让所有列都是以文本格式处理,需要加上IMEX=1 ,详细代码:

    strConn = "Provider=Microsoft.ACE." +
                  "OLEDB.12.0;Extended Properties="Excel 12.0;IMEX=1;HDR=yes;";Data Source=" + fileName;

    这样就不会出现那样的问题了。

      总而言之,所用技术并不复杂,只是业务转的比较繁琐,需求也在不断更新,页面的UI都随着不断变动才是我的痛。不过第一阶段暂告一个段落,准备回家过年了,心情大好呀,这段时间有GF映红的陪伴,跟她在一起真的很幸福,明年继续努力,创造属于我们的未来,好好工作,好好生活,nice~

      

  • 相关阅读:
    django页面分类和继承
    django前端从数据库获取请求参数
    pycharm配置django工程
    django 应用各个py文件代码
    CF. 1428G2. Lucky Numbers(背包DP 二进制优化 贪心)
    HDU. 6566. The Hanged Man(树形背包DP DFS序 重链剖分)
    小米邀请赛 决赛. B. Rikka with Maximum Segment Sum(分治 决策单调性)
    区间树 学习笔记
    CF GYM. 102861M. Machine Gun(主席树)
    2016-2017 ACM-ICPC East Central North America Regional Contest (ECNA 2016) (B, D, G, H)
  • 原文地址:https://www.cnblogs.com/Terry-Li/p/4277061.html
Copyright © 2011-2022 走看看