最近做了近一年的CS项目终于接近完工了,有一种脱离苦海,跳出泥潭的感觉。虽然此项目做的很不理想,但它却给了我颇多感受,许多经验教训值得总结。

1。总的技术解决方案大方向上选择的不合适,导致后期对新的需求,新功能开发上难度上成倍的增加,致使软件的易用性、容错性、扩展性都很不理想,维护起来也相当麻烦,做到后期,bug满天飞,拆东墙补西墙的感觉,真的感觉自己掉进了一个泥潭,怎么都爬不出来的感觉。虽然此方案不是我能决定的,但是在初期,我却从来没有去主动深入的思考过此方案的利弊,以及对以后扩展性等各个方面的影响,这方面做的很不好,遇到问题一定要深入思考,要有自己的想法和思路,不能不加思考的人云亦云,跟上上面走。

2.软件核心模块的构架设计,这一块主要是由我负责的,由于没有考虑到以后需求的巨大变更,致使它不能根据需求的变化去很好扩展新的功能。出现这种问题时本来可以通过重构来适当的调整设计以使后面的开发工作更容易进行,但由于怕麻烦,存在一种这是最后的需求了,实现了就可以了的心理,致使越来越难重构,越来越难进行新功能的开发。

3.核心控件的选择上不够谨慎,为后期的开发带来了巨大的困难。

4.需求分析做的不够到位,和PM的沟通做的不够,致使需变动的太频繁。

通过对这个项目的总结,下面的经验是值得注意的,放之四海而皆准:

1.遇到问题,不要人云亦云,要有自己独立的想法和思路,不要怕麻烦,怕吃力不讨好。不要认为别人已经提供了方案了,我照着做就行,那个不是我的职责范围,只有通过不断的思考,不断的尝试,才能锻炼自己,不断的进步。

2.遇到困难时不能不能总想着逃避,越想躲着它,你会发现它越会找上你,一定要主动的想着去解决困难,这样你会发现后的跟会越来越好走,否则的话,后面会困难重重,举步维艰。

3.遇到需求和实现有冲突时,不能先从开发人员的角度去考虑怎么样实现起来简单来要求需求的调整,首先要从用户的角度去考虑怎么样更易用,更友好。当然这一点不是绝对的,要找到一个好的平衡点,把握好度,有时候一些小的需求的变更可能影响很大,这时就要进量找到一个折中的方案去说服用户。

4.关于控件、技术选择上要考虑到以下几点:

   1)控件的扩展性,可否满足以后的潜在需求。

   2)控件有没有很好的技术支持,出了问题有没有团队来修复,一些使用上的问题,有没有相关文档、例子、或者团队可以咨询。

   3)控件的性能问题,要有压力测试,考虑大数据问题

5.团队的协作性方便,不能放任不管,没有主次之分,这样很容易各做各的,相互推卸责任,没有统一的规范和风格,一定要有一个人去主导,去定制规则,使大家在最优的主线下去最大的发挥主观能动性。

CS项目总结的更多相关文章

  1. BS项目启动任意EXE文件或者CS项目

    1. 基于注册表启动exe程序 1. 桌面新建注册表执行文件:protocal.reg 2. 任意文本编辑器打开该文件 Windows Registry Editor Version 5.00 [HK ...

  2. web.csproj Compile 下出现两个同名 xxx.cs 项目中出现两个xxx.cs

    删掉一个就好了 ItemGroup Compile 为加载的cs代码文件

  3. 2018北美部分CS项目学费

    yearly cost from official website USC 城里 24credit about 49k + cost of room&food BU 城里 NEU 65k 城里 ...

  4. 最近跟进一个CS项目,用到c#基础知识,准备开个分类记录一下

    C#在txt类文件中追加内容 string path = "test.txt";FileStream mystream = new FileStream(path, FileMod ...

  5. DateHelper.cs日期时间操作辅助类C#

    //==================================================================== //** Copyright © classbao.com ...

  6. Web自定义协议,BS端启动CS端,

    实例 1.准备CS项目,windows窗体应用程序,拖进来一个label控件来接受BS的参数,并显示,右击生成,复制该文件的bin目录下的exe,例如放在以下路径,例如C:\\simu\\下, 2.编 ...

  7. Npoi Web 项目中(XSSFWorkbook) 导出出现无法访问已关闭的流的解决方法

    原本在CS项目中用的好好的在BS项目中既然提示我导出出现无法访问已关闭的流的解决方法 比较郁闷经过研究 终于解决了先将方法发出来 让遇到此问题的筒子们以作参考 //新建类 重写Npoi流方法 publ ...

  8. CS系列(一):Cobalt Strike初体验

    0X01 环境准备 Cobalt Strike安装包(链接:https://pan.baidu.com/s/1wCHJcJrF6H0wUCdetz3Xjg 提取码:rjuj) Cobalt Strik ...

  9. CS系统中分页控件的制作

    需求:在一个已有的CS项目(ERP中),给所有的列表加上分页功能. 分页的几个概念: 总记录数  totalCount (只有知道了总记录数,才知道有多少页) 每页记录数  pageSize (根据总 ...

随机推荐

  1. UWP 程序抛出异常时总是跳到“global::System.Diagnostics.Debugger.Break();”的解决办法

    调试 C# 程序时,如果遇到异常,VS 会中断,指出导致异常的语句.但是最近调试 UWP 程序时,发现总是在“global::System.Diagnostics.Debugger.Break();” ...

  2. oracle: 浅谈sqlnet.ora文件的作用,及SQLNET.AUTHENTICATION_SERVICES设置

    关于sqlnet.ora的说明: *****************************************************FROM ORACLE11G DOCS*********** ...

  3. sun.misc.BASE64Decoder导入异常及处理思路

    Java后台保存base64图片数据 使用byte[] bytes = new BASE64Decoder().decodeBuffer(str);需要引入sun.misc.BASE64Decoder ...

  4. 排查java.lang.OutOfMemoryError: GC overhead limit exceeded

    帮助客户排查java.lang.OutOfMemoryError: GC overhead limit exceeded错误记录: 具体网址: https://support.oracle.com/e ...

  5. WebGL可视化地球和地图引擎:Cesium.js

    http://www.open-open.com/lib/view/open1427341416418.html   Cesium 是一个JavaScript 库用于在Web浏览器创建 3D 地球和 ...

  6. SVG 基础图形

    SVG 基础图形 SVG包含了以下的基础图形元素: 矩形(包括可选的圆角),使用<rect>元素创建 圆形,使用<circle>元素创建 椭圆形,使用<ellipse&g ...

  7. 【招聘App】—— React/Nodejs/MongoDB全栈项目:消息列表

    前言:最近在学习Redux+react+Router+Nodejs全栈开发高级课程,这里对实践过程作个记录,方便自己和大家翻阅.最终成果github地址:https://github.com/66We ...

  8. js 上传图片进行回显

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. [Parcel] Running TypeScript with parcel-bundler

    TO get started with TypeScirpt quickly in your local computer is using parcel-bunlder: npm i -g parc ...

  10. 关于Linux开源项目基础组件make编译流程

     关于Linux开源项目基础组件make编译流程 非常多Linux开源项目都会用到编译出可运行文件的make.这个是有一套流程的. 首先,GNU构建系统:https://en.wikipedia. ...