如果让我完善几年前的一个项目改进方案,我会做哪些改进

&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!The page is temporarily unavailable
nginx error!
The page you are looking for is temporarily unavailable.
Please try again later.
Website Administrator
Something has triggered an error on your
This is the default error page for
nginx that is distributed with
It is located
/usr/share/nginx/html/50x.html
You should customize this error page for your own
site or edit the error_page directive in
the nginx configuration file
/etc/nginx/nginx.conf.中国领先的IT技术网站
51CTO旗下网站
当我完善几年前的一个老项目时,我做了哪些改进
最近几个月利用业余时间完成了一个项目。这个项目其实是2008年我在前公司做的一个web项目。后来客户想要对项目做升级,牵扯到一些功能的变动及界面的修改。由于当时整个项目的架构和主要编码都是我做的,所以前公司老总喊我来接这个项目,使用业余时间完成。我考虑了一下答应了。为了挣点钱养家就拼点呗。
作者:无敌北瓜来源:网络整理| 15:46
最近几个月利用业余时间完成了一个项目。这个项目其实是2008年我在前公司做的一个web项目。后来客户想要对项目做升级,牵扯到一些功能的变动及界面的修改。由于当时整个项目的架构和主要编码都是我做的,所以前公司老总喊我来接这个项目,使用业余时间完成。我考虑了一下答应了。为了挣点钱养家就拼点呗。
几个月前在接这个活前,我曾写过一篇文章如果让我完善几年前的一个项目,我会做哪些改进?。主要从工程实践的角度讲述了我将进行那些改进。
经过几个月的辛苦开发,终于完成了这次的功能升级,拿到了报酬。针对这种遗留系统,我来谈谈我具体都进行了那些改动。
1. 不用动的地方尽量不动。由于代码是08年我作为实习生写的,那代码自然惨不忍睹,有些地方写的非常累赘。经过几年打磨的我对代码质量要求已经上升了很多个层次,看到这些烂代码不禁忍不住要重构。但是我忍住了,因为这是个遗留系统,当时就没有写单元测试,所以重构过程肯定风险较大。另外工期只能用业余时间,要以新需求为主,只改开发新需求时需要碰的那些代码。
2. 使用github作为代码托管服务。即使是一个人开发,也需要使用源代码管理工具,这样做起来自己心里才有底。而github自己用了好几年了,非常好用,而且自己买了github的会员。所以这次把代码以私有仓库的方式放在上面。随时写,随时提交,比自己搭建源代码服务器方便的多。
3. 引入bootstrap框架作为前端框架。这次升级一个重要任务是对前端进行优化,使其能兼容多个浏览器。08年的时候大家都在用IE6,IE7,IE8都很少有人用。过了这么多年网站早都不能兼容现代浏览器了,而且屏幕分辨率适配也很差劲。作为一个前端菜鸟,我只花了一点时间学习了bootstrap,就快速把它引入到了我的项目中。我基本上把以前的css、js代码都删除了,使用bootstrap轻轻松松的就把这个老站改成了一个兼容多个浏览器,多种屏幕尺寸的网站。
4. 升级.net中使用的各种组件。这个网站使用的是WebForm框架,版本为2.0。我发现在现代浏览器下WebForm组件生成的前端HTML,CSS及JavaScript存在大量不兼容的问题。网站页面变得很不稳定。当升级到4.0平台后,问题得到大大改善。另外我还使用了AjaxControllToolKit组件,发现在某些浏览器下(比如360浏览器)页面局部刷新不了。所以我也一并升级到了最新的15.3版本。虽然把各种组件都升级了,还存在一些JavaScript问题,比如日历选择框无法正常显示与选择。我采用的方法就是抛弃掉旧的JS代码,寻求成熟的JS框架来替代。比如使用bootstrap-datepicker组件来实现日历框的选取。
5. 采用最新的Visual studio编辑器。微软终于想通了,与其让我们天朝成天用盗版的Visual Studio,不如直接开放一个社区版出来。我下载了Visual Studio 2013社区版,并给其装上了ReSharper组件。由于ReSharper是收费的,但是有差不多1个月的试用期。之前一直使用Intellij开发工具做开发,能在Visual Studio 2013中使用它也是觉得很爽。
6. 引入了package管理工具,使用Nuget来安装、管理各种项目依赖。使用过程中我发现Nuget没有Java平台下的Maven或Gradle强大。很多依赖都不是最新版本,管理理念也不太一样。不过聊胜于无吧。像bootstrap等前端组件以及ajaxcontrolToolkit等后端组件我都是通过Nuget来管理的。
7. 使用事务机制处理系统中的核心逻辑。这个系统是一个编码管理系统,主要处理炸药、雷管编码的整个流通过程。系统有的时候会出现重复编码的情况,比如一发雷管的编码同时存在于库存中和消耗库中。这是由于雷管从在库状态转换为消耗状态时出了问题,并没有在库存中删除该编码。这次升级我把类似的逻辑都用事务来处理,一旦发生异常就会整体回滚,不会造成脏数据的情况。
其实我还想引入的几个点由于种种原因都没有完成。
1. 没有添加单元测试。本来想给Vistual Studio 2013添加单元测试框架,奈何花了几个小时都没整好。另外工程目录方面也需要进行一定的调整来引入测试项目,整了一次没搞定后也不了了之。由于这次升级80%功能是前端页面的改进,涉及后端代码修改的不多,所以没有单元测试的情况下修改已有代码还是比较有信心的。
2. 没有引入持续集成。还是时间成本的原因。毕竟这个活都是使用业余时间完成的,搭建C#栈的CI估计要花上好几天,所以最后并未实现。
3. 自动化部署。之前对.NET下的网站的部署都是手动的,将编译生成后的文件复制到服务器上,暂停IIS,重载文件,重新启动IIS。其实这些都是可以自动化完成的,自己没花时间研究,所以也未实现。
4. 使用成熟的log框架给系统关键逻辑打上log。这个纯粹是自己懒,不想做。因为加log方便自己以后排查错误,对客户来说没有任何影响,自己就懒得弄了。
5. 没有引入自动化测试。还是时间成本的原因,编写web的自动化测试太花时间了,所以只能舍弃。
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条头条专题专题专题
24H热文一周话题本月最赞
讲师:5人学习过
讲师:29人学习过
讲师:5人学习过
精选博文论坛热帖下载排行
本书描述的是在逆向与反逆向之间展开的一场旷日持久的拉锯战。作者Eldad Eilam以一个解说人的身份为我们详尽地评述了双方使用的每一招每一...
订阅51CTO邮刊综合(79)
博客 - 伯乐在线 by promumu
最近几个月利用业余时间完成了一个项目。这个项目其实是2008年我在前公司做的一个web项目。后来客户想要对项目做升级,牵扯到一些功能的变动及界面的修改。由于当时整个项目的架构和主要编码都是我做的,所以前公司老总喊我来接这个项目,使用业余时间完成。我考虑了一下答应了。为了挣点钱养家就拼点呗。
几个月前在接这个活前,我曾写过一篇文章。主要从工程实践的角度讲述了我将进行那些改进。
经过几个月的辛苦开发,终于完成了这次的功能升级,拿到了报酬。针对这种遗留系统,我来谈谈我具体都进行了那些改动。
1. 不用动的地方尽量不动。由于代码是08年我作为实习生写的,那代码自然惨不忍睹,有些地方写的非常累赘。经过几年打磨的我对代码质量要求已经上升了很多个层次,看到这些烂代码不禁忍不住要重构。但是我忍住了,因为这是个遗留系统,当时就没有写单元测试,所以重构过程肯定风险较大。另外工期只能用业余时间,要以新需求为主,只改开发新需求时需要碰的那些代码。
2. 使用github作为代码托管服务。即使是一个人开发,也需要使用源代码管理工具,这样做起来自己心里才有底。而github自己用了好几年了,非常好用,而且自己买了github的会员。所以这次把代码以私有仓库的方式放在上面。随时写,随时提交,比自己搭建源代码服务器方便的多。
3. 引入bootstrap框架作为前端框架。这次升级一个重要任务是对前端进行优化,使其能兼容多个浏览器。08年的时候大家都在用IE6,IE7,IE8 都很少有人用。过了这么多年网站早都不能兼容现代浏览器了,而且屏幕分辨率适配也很差劲。作为一个前端菜鸟,我只花了一点时间学习了bootstrap,就快速把它引入到了我的项目中。我基本上把以前的css、js代码都删除了,使用bootstrap轻轻松松的就把这个老站改成了一个兼容多个浏览器,多种屏幕尺寸的网站。
4. 升级.net中使用的各种组件。这个网站使用的是WebForm框架,版本为2.0。我发现在现代浏览器下WebForm组件生成的前端HTML,CSS 及JavaScript存在大量不兼容的问题。网站页面变得很不稳定。当升级到4.0平台后,问题得到大大改善。另外我还使用了 AjaxControllToolKit组件,发现在某些浏览器下(比如360浏览器)页面局部刷新不了。所以我也一并升级到了最新的15.3版本。虽然把各种组件都升级了,还存在一些JavaScript问题,比如日历选择框无法正常显示与选择。我采用的方法就是抛弃掉旧的JS代码,寻求成熟的JS框架来替代。比如使用bootstrap-datepicker组件来实现日历框的选取。
5. 采用最新的Visual studio编辑器。微软终于想通了,与其让我们天朝成天用盗版的Visual Studio,不如直接开放一个社区版出来。我下载了Visual Studio 2013社区版,并给其装上了ReSharper组件。由于ReSharper是收费的,但是有差不多1个月的试用期。之前一直使用Intellij开发工具做开发,能在Visual Studio 2013中使用它也是觉得很爽。
6. 引入了package管理工具,使用Nuget来安装、管理各种项目依赖。使用过程中我发现Nuget没有Java平台下的Maven或Gradle强大。很多依赖都不是最新版本,管理理念也不太一样。不过聊胜于无吧。像bootstrap等前端组件以及ajaxcontrolToolkit等后端组件我都是通过Nuget来管理的。
7. 使用事务机制处理系统中的核心逻辑。这个系统是一个编码管理系统,主要处理炸药、雷管编码的整个流通过程。系统有的时候会出现重复编码的情况,比如一发雷管的编码同时存在于库存中和消耗库中。这是由于雷管从在库状态转换为消耗状态时出了问题,并没有在库存中删除该编码。这次升级我把类似的逻辑都用事务来处理,一旦发生异常就会整体回滚,不会造成脏数据的情况。
其实我还想引入的几个点由于种种原因都没有完成。
1. 没有添加单元测试。本来想给Vistual Studio 2013添加单元测试框架,奈何花了几个小时都没整好。另外工程目录方面也需要进行一定的调整来引入测试项目,整了一次没搞定后也不了了之。由于这次升级 80%功能是前端页面的改进,涉及后端代码修改的不多,所以没有单元测试的情况下修改已有代码还是比较有信心的。
2. 没有引入持续集成。还是时间成本的原因。毕竟这个活都是使用业余时间完成的,搭建C#栈的CI估计要花上好几天,所以最后并未实现。
3. 自动化部署。之前对.NET下的网站的部署都是手动的,将编译生成后的文件复制到服务器上,暂停IIS,重载文件,重新启动IIS。其实这些都是可以自动化完成的,自己没花时间研究,所以也未实现。
4. 使用成熟的log框架给系统关键逻辑打上log。这个纯粹是自己懒,不想做。因为加log方便自己以后排查错误,对客户来说没有任何影响,自己就懒得弄了。
5. 没有引入自动化测试。还是时间成本的原因,编写web的自动化测试太花时间了,所以只能舍弃。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:13312次
排名:千里之外
转载:81篇
(21)(18)(6)(1)(7)(17)(3)(8)本文系《开发者头条》 5 月 15 日好评文章,作者 @无敌北瓜。感谢 @ThoughtWorks 推荐。作者微博:/hbw0925原文地址:http://toutiao.io/r/8rs3l【开发者头条微信号】 kaifazhetoutiao 欢迎关注!最近几个月利用业余时间完成了一个项目。这个项目其实是2008年我在前公司做的一个web项目。后来客户想要对项目做升级,牵扯到一些功能的变动及界面的修改。由于当时整个项目的架构和主要编码都是我做的,所以前公司老总喊我来接这个项目,使用业余时间完成。我考虑了一下答应了。为了挣点钱养家就拼点呗。几个月前在接这个活前,我曾写过一篇文章如果让我完善几年前的一个项目,我会做哪些改进?。主要从工程实践的角度讲述了我将进行那些改进。经过几个月的辛苦开发,终于完成了这次的功能升级,拿到了报酬。针对这种遗留系统,我来谈谈我具体都进行了那些改动。不用动的地方尽量不动。由于代码是08年我作为实习生写的,那代码自然惨不忍睹,有些地方写的非常累赘。经过几年打磨的我对代码质量要求已经上升了很多个层次,看到这些烂代码不禁忍不住要重构。但是我忍住了,因为这是个遗留系统,当时就没有写单元测试,所以重构过程肯定风险较大。另外工期只能用业余时间,要以新需求为主,只改开发新需求时需要碰的那些代码。使用github作为代码托管服务。即使是一个人开发,也需要使用源代码管理工具,这样做起来自己心里才有底。而github自己用了好几年了,非常好用,而且自己买了github的会员。所以这次把代码以私有仓库的方式放在上面。随时写,随时提交,比自己搭建源代码服务器方便的多。引入bootstrap框架作为前端框架。这次升级一个重要任务是对前端进行优化,使其能兼容多个浏览器。08年的时候大家都在用IE6,IE7,IE8都很少有人用。过了这么多年网站早都不能兼容现代浏览器了,而且屏幕分辨率适配也很差劲。作为一个前端菜鸟,我只花了一点时间学习了bootstrap,就快速把它引入到了我的项目中。我基本上把以前的css、js代码都删除了,使用bootstrap轻轻松松的就把这个老站改成了一个兼容多个浏览器,多种屏幕尺寸的网站。升级.net中使用的各种组件。这个网站使用的是WebForm框架,版本为2.0。我发现在现代浏览器下WebForm组件生成的前端HTML,CSS及JavaScript存在大量不兼容的问题。网站页面变得很不稳定。当升级到4.0平台后,问题得到大大改善。另外我还使用了AjaxControllToolKit组件,发现在某些浏览器下(比如360浏览器)页面局部刷新不了。所以我也一并升级到了最新的15.3版本。虽然把各种组件都升级了,还存在一些JavaScript问题,比如日历选择框无法正常显示与选择。我采用的方法就是抛弃掉旧的JS代码,寻求成熟的JS框架来替代。比如使用bootstrap-datepicker组件来实现日历框的选取。采用最新的Visual studio编辑器。微软终于想通了,与其让我们天朝成天用盗版的Visual Studio,不如直接开放一个社区版出来。我下载了Visual Studio 2013社区版,并给其装上了ReSharper组件。由于ReSharper是收费的,但是有差不多1个月的试用期。之前一直使用Intellij开发工具做开发,能在Visual Studio 2013中使用它也是觉得很爽。引入了package管理工具,使用Nuget来安装、管理各种项目依赖。使用过程中我发现Nuget没有Java平台下的Maven或Gradle强大。很多依赖都不是最新版本,管理理念也不太一样。不过聊胜于无吧。像bootstrap等前端组件以及ajaxcontrolToolkit等后端组件我都是通过Nuget来管理的。使用事务机制处理系统中的核心逻辑。这个系统是一个编码管理系统,主要处理炸药、雷管编码的整个流通。系统有的时候会出现重复编码的情况,比如一发雷管的编码同时存在于库存中和消耗库中。这是由于雷管从在库状态转换为消耗状态时出了问题,并没有在库存中删除该编码。这次升级我把类似的逻辑都用事务来处理,一旦发生异常就会整体回滚,不会造成脏数据的情况。其实我还想引入的几个点由于种种原因都没有完成。没有添加单元测试。本来想给Vistual Studio 2013添加单元测试框架,奈何花了几个小时都没整好。另外工程目录方面也需要进行一定的调整来引入测试项目,整了一次没搞定后也不了了之。由于这次升级80%功能是前端页面的改进,涉及后端代码修改的不多,所以没有单元测试的情况下修改已有代码还是比较有信心的。没有引入持续集成。还是时间成本的原因。毕竟这个活都是使用业余时间完成的,搭建C#栈的CI估计要花上好几天,所以最后并未实现。自动化部署。之前对.NET下的网站的部署都是手动的,将编译生成后的文件复制到服务器上,暂停IIS,重载文件,重新启动IIS。其实这些都是可以自动化完成的,自己没花时间研究,所以也未实现。使用成熟的log框架给系统关键逻辑打上log。这个纯粹是自己懒,不想做。因为加log方便自己以后排查错误,对客户来说没有任何影响,自己就懒得弄了。没有引入自动化测试。还是时间成本的原因,编写web的自动化测试太花时间了,所以只能舍弃。开发者头条 - 开发者的首选阅读分享平台http://toutiao.io/发现好文章,欢迎来头条。欢迎自荐、欢迎推荐。推荐地址:http://toutiao.io/contribute【微信号】 kaifazhetoutiao 欢迎关注!developerWorks(developerWorks) 
 文章为作者独立观点,不代表大不六文章网立场
developerWorks我们的产品:《码农周刊》 http://manong.io/ 、《开发者头条》 http://toutiao.io/热门文章最新文章developerWorks我们的产品:《码农周刊》 http://manong.io/ 、《开发者头条》 http://toutiao.io/&&&&违法和不良信息举报电话:183-
举报邮箱:
Copyright(C)2016 大不六文章网
京公网安备78

我要回帖

更多关于 持续改进项目计划表 的文章

 

随机推荐