CS项目总结
最近做了近一年的CS项目终于接近完工了,有一种脱离苦海,跳出泥潭的感觉。虽然此项目做的很不理想,但它却给了我颇多感受,许多经验教训值得总结。
1。总的技术解决方案大方向上选择的不合适,导致后期对新的需求,新功能开发上难度上成倍的增加,致使软件的易用性、容错性、扩展性都很不理想,维护起来也相当麻烦,做到后期,bug满天飞,拆东墙补西墙的感觉,真的感觉自己掉进了一个泥潭,怎么都爬不出来的感觉。虽然此方案不是我能决定的,但是在初期,我却从来没有去主动深入的思考过此方案的利弊,以及对以后扩展性等各个方面的影响,这方面做的很不好,遇到问题一定要深入思考,要有自己的想法和思路,不能不加思考的人云亦云,跟上上面走。
2.软件核心模块的构架设计,这一块主要是由我负责的,由于没有考虑到以后需求的巨大变更,致使它不能根据需求的变化去很好扩展新的功能。出现这种问题时本来可以通过重构来适当的调整设计以使后面的开发工作更容易进行,但由于怕麻烦,存在一种这是最后的需求了,实现了就可以了的心理,致使越来越难重构,越来越难进行新功能的开发。
3.核心控件的选择上不够谨慎,为后期的开发带来了巨大的困难。
4.需求分析做的不够到位,和PM的沟通做的不够,致使需变动的太频繁。
通过对这个项目的总结,下面的经验是值得注意的,放之四海而皆准:
1.遇到问题,不要人云亦云,要有自己独立的想法和思路,不要怕麻烦,怕吃力不讨好。不要认为别人已经提供了方案了,我照着做就行,那个不是我的职责范围,只有通过不断的思考,不断的尝试,才能锻炼自己,不断的进步。
2.遇到困难时不能不能总想着逃避,越想躲着它,你会发现它越会找上你,一定要主动的想着去解决困难,这样你会发现后的跟会越来越好走,否则的话,后面会困难重重,举步维艰。
3.遇到需求和实现有冲突时,不能先从开发人员的角度去考虑怎么样实现起来简单来要求需求的调整,首先要从用户的角度去考虑怎么样更易用,更友好。当然这一点不是绝对的,要找到一个好的平衡点,把握好度,有时候一些小的需求的变更可能影响很大,这时就要进量找到一个折中的方案去说服用户。
4.关于控件、技术选择上要考虑到以下几点:
1)控件的扩展性,可否满足以后的潜在需求。
2)控件有没有很好的技术支持,出了问题有没有团队来修复,一些使用上的问题,有没有相关文档、例子、或者团队可以咨询。
3)控件的性能问题,要有压力测试,考虑大数据问题
5.团队的协作性方便,不能放任不管,没有主次之分,这样很容易各做各的,相互推卸责任,没有统一的规范和风格,一定要有一个人去主导,去定制规则,使大家在最优的主线下去最大的发挥主观能动性。
CS项目总结的更多相关文章
- BS项目启动任意EXE文件或者CS项目
1. 基于注册表启动exe程序 1. 桌面新建注册表执行文件:protocal.reg 2. 任意文本编辑器打开该文件 Windows Registry Editor Version 5.00 [HK ...
- web.csproj Compile 下出现两个同名 xxx.cs 项目中出现两个xxx.cs
删掉一个就好了 ItemGroup Compile 为加载的cs代码文件
- 2018北美部分CS项目学费
yearly cost from official website USC 城里 24credit about 49k + cost of room&food BU 城里 NEU 65k 城里 ...
- 最近跟进一个CS项目,用到c#基础知识,准备开个分类记录一下
C#在txt类文件中追加内容 string path = "test.txt";FileStream mystream = new FileStream(path, FileMod ...
- DateHelper.cs日期时间操作辅助类C#
//==================================================================== //** Copyright © classbao.com ...
- Web自定义协议,BS端启动CS端,
实例 1.准备CS项目,windows窗体应用程序,拖进来一个label控件来接受BS的参数,并显示,右击生成,复制该文件的bin目录下的exe,例如放在以下路径,例如C:\\simu\\下, 2.编 ...
- Npoi Web 项目中(XSSFWorkbook) 导出出现无法访问已关闭的流的解决方法
原本在CS项目中用的好好的在BS项目中既然提示我导出出现无法访问已关闭的流的解决方法 比较郁闷经过研究 终于解决了先将方法发出来 让遇到此问题的筒子们以作参考 //新建类 重写Npoi流方法 publ ...
- CS系列(一):Cobalt Strike初体验
0X01 环境准备 Cobalt Strike安装包(链接:https://pan.baidu.com/s/1wCHJcJrF6H0wUCdetz3Xjg 提取码:rjuj) Cobalt Strik ...
- CS系统中分页控件的制作
需求:在一个已有的CS项目(ERP中),给所有的列表加上分页功能. 分页的几个概念: 总记录数 totalCount (只有知道了总记录数,才知道有多少页) 每页记录数 pageSize (根据总 ...
随机推荐
- 1.4(Spring学习笔记)Spring-JDBC基础
一.Spring JDBC相关类 1.1 DriverManagerDataSource DriverManagerDataSource主要包含数据库连接地址,用户名,密码. 属性及含义如下配置所示: ...
- C#将json字符串解析成对象
首先我们在客户端生成json字符串,通过ajax把该字符串传到服务器端 //这是一个以id,email,age的json字符串 var jdata="[{\"id\&quo ...
- 64位下安装Scrapy 报错 "could not find openssl.exe" 的解决方法。
其实就是安装对应的64位 pyOpenSSL 就行了, 下载地址如下: https://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-lafs-dep-egg ...
- WebApi单元测试记录
一.MessageHandler不一定是全局的,也可以只应用到指定的Router上 .定义一个handler // Pipelines HttpMessageHandler affiliateShip ...
- hibernate CascadeType属性
CascadeType.PERSIST 只有A类新增时,会级联B对象新增.若B对象在数据库存(跟新)在则抛异常(让B变为持久态) : 级联保存,当调用了Persist() 方法,会级联保存相应的数据 ...
- scrapy-splash抓取动态数据例子十二
一.介绍 本例子用scrapy-splash通过搜狗搜索引擎,输入给定关键字抓取资讯信息. 给定关键字:数字:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二. ...
- LeetCode(28)Implement strStr()
题目 Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if nee ...
- s3c6410 Linux 驱动开发环境搭建
s3c6410 Linux 驱动开发环境搭建 -- 既然你是做Linux开发的,你还用虚拟机? 非常多人都在win下做开发,于是SD_writer.exe之类的烧写工具"大行其道" ...
- Yii2系列教程七:Behaviors And Validations
这一篇文章的开头就无需多言了,紧接着上一篇的内容和计划,这一篇我们来说说Yii2的Behavior和Validations. Behavior 首先我们来说说Behavior,在Yii2中Behavi ...
- python对solr进行查询、插入操作(GET\POST)
循环查询一个列表中词的个数: #coding=utf-8 import requests ls = [u'我', u'是', u'一个', u'天才', u'你', u'也是'] for item i ...