转载:第一次负责项目的总结

简介:

本文转自:啊汉

原文链接:http://www.cnblogs.com/hlxs/archive/2011/10/05/2199329.html

第一次负责项目的总结

         最讨厌的就是写总结,就是想写一下自己的观点和感受。以下观点没有先后顺序,只是按照自己的大脑想到的先后顺序写下来的。大家可能觉得这些观点书上都有,别人也说过,当然你也会发现扯蛋的观点到处都是,现在哥就扯给你看。第一次负责项目总结开始。

 

   在开发一个新项目时一定要把框架搭好。搭个鸡窝你也要考虑选址,材料,大小等。如果你不想浪费你的时间,一定要把框架搭好,

举个例子,由于这个系统是旧系统的改版,很多实现方式都不同,所有的代码都重写,有一个地方是比较要命的,就是这个系统现在就要连接40多个数据库,以后数据库的个数还会增加, 以前的代码里面到处都是数据库连接字符串相关的代码,看起来真是要命啊,我总不能让我的代码里面到处都是这样的东东吧,经理要是看到我这样的设计会怎么想,隔壁邻居小明知道了会怎么想,旧系统的实现方式在新系统根本就行不通,因为很多功能都要整合,突然觉得这个问题好难解决啊,很有压力,最后用了两个多小时把这个问题解决,开心的感觉大家应该都有过,(此时此刻突然想到这种实现方式跟某个设计模式很像),因为数据库问题没有解决其他的开发工作根本不能进行,后来想一想发现其实还是蛮简单很容易想到的。

 

   功能模块化,一个方法实现一个功能,当然这个方法会调用其他的辅助方法,特别是写底层方法的人,你的方法都是写出来让大家调用的,别人实现一个功能还要调你N个方法,你说别人爽不爽,让别人爽了,才是真的爽,一个功能一个方法,看起来也清晰,总之百利无一害,当然要达到这个程度还是要一定的积累的,把事情做得更好当然也需要更多时间,但我们开发中最缺的就是时间。

千万不要把多个功能写在一个方法里,代码看起来比较混乱,不仅别人不容易看出作者的意图,过几天之后可能作者都不相信是自己写的代码,自己不好好看也不知道是用来干嘛的,这种代码维护和升级都是很麻烦的,重写这种代码是相当痛苦的。

 

         尽量减少硬编码,如果我看到代码中存在大量硬编码,第一感觉就是作者的水平不怎么样,感觉这样的代码就是用浆糊粘起来的,一动就破,这样的代码改起来是相当麻烦的(你不觉得修改一两处就能达到想要的效果是件很爽的事情吗),你要到处寻找并修改掉,还会担心自己是否有漏掉。

          

         不要急着下手写代码,有人说一拿到需求就开始写代码的人是加班最多的人,有时候我们一看到需求就大致知道代码怎么写,就情不自禁的想写下来,但我们必须克制,等框架搭好了,整体思路清晰了在写吧,如果你有灵感的火花闪过,可以先写下思路,如果是因为太简单了就不用理它了,因为你是一个程序员,你必须有能力能很快的搞定一些事情。把框架搭好在做开发是一个成熟稳重的表现,在开发过程中也是要想清楚在动手,乔峰在用降龙十八掌的时候是要先运功的,先动脑,在动手表现出你是一个老手,资深***,不是一个新手。

  

   先把一个功能做到极致,尽量考虑得更周全,其他类似的功能开发起来就很快了,因为思路你已经有了,还有实例,在实现这个功能的过程你肯定也攻克了一些技术难题,当然一些技术难题应该是在设计构架的时候就应该考虑的,如果你的代码写得比较好的话,方法写得比较灵活,没有硬编码,那么这样的方法直接Copy过来不需要做任何改动,同时也说明硬编码是一无是处,当然可能有时候在某些地方他的效率会好点,但绝对是微乎其微的。但是如果你对多个功能四处开火的话,你会发现你在单位时间内做了很多事,但都是半成品,说不定连半成品都不是,一个功能还没有做好你就去做类似的功能,开发到后面如果发现一个很重要的问题你没有考虑,你发现你以前的假设是不合理的,你可能要推翻你以前的思路重来,你会在心里大喊天啊,就像我经理开玩笑的说:“太汉,你完蛋了”。

举个例子,数据的显示我本来用都是用Repeater加自己写的分页控件,但是我自己写的分页控件只能获取Get参数不能获取Post参数,我想就算我自己的分页控件不能获取Post参数,也可以用AspNetPager,我就一直这样开发着,分页到最后实现,到最后才发现,AspNetPager也不能获取Post参数,我也没有时间去研究AspNetPager是否可以获取Post参数,我只好把这个事实告诉经理,他开玩笑的说:“太汉,你完蛋了”。最后所有的Repeater全部改成DataGrid,用它自带的分页控件,当然这个综合考虑的结果。

 

   作为一个程序员,我不太赞成长时间的工作,就算是项目很忙,也不需要加班到晚上九点多吧,我考虑到四点:

   1:长时间工作效率不高

   2:程序员也是要有自己的私生活的

   3:业余时间学自己想学的知识,充电啊

   4:做开发不一定要坐在电脑面前,文思涌泉大家听过吧,就是你在WC的时候啊,听说吴克群就喜欢在WC里面搞创作(其实程序员也是很八卦的)

 

   开发是一个智力的工作,如果你还没有感觉到,那你以肯定走了弯路,以前晚上加班的时候问题解决不了了,我还在那里死磕,弄到很晚,现在遇到问题了,八点多了,大脑感觉累了,我一般都会选择回去,好多次问题都是在公交上解决的,大家都是用脑的人嘛,别信那些说自己以前是多么的疯狂,弄到几点几点的,很牛X的牛也是要合理的休息的,会利用自己时间的人总是让我很敬佩,刘未鹏有本书叫《暗时间》,我只看了目录,结合书名和目录我想他就是将怎么充分利用自己的时间的,不用总是对着电脑在那里敲,反复的敲,我还是比较赞成文思涌泉,闭目养神什么的,渴望一个自由的空间,而不是感觉有一双双眼在看着你的工作环境,程序是一个创作性的工作,不是苦力,我们会经常看到什么离开你的电脑,远离你的电脑去做开发这样的文章。不就让我们多动脑,多思考吗,古人总结很多的,现在越来越觉得古人总结的一些道理真是太好,太神奇了,让我感触最深的一句就是“温故而知新”,因为N年前发生的很多事情我还记得很清楚,离题了。

就是一些自己观点和想法,写得不全面,自己也没有做到,扯蛋这种事情大家都会吗,当然包括我,好久没扯了,今天哥就扯了,怎么了。

点题:这就是我的第一次负责项目总结,谢谢大家的观看,未完待续,在等待的过程中,你可以看看陈太汉的其他博客啊,说不定还有其他的收获呢。

         补充一个观点:我的文章不仅仅是写给你看的,也是写给别人看的。其实我是想说让我们开心一下。

  

作者:陈太汉

博客:http://www.cnblogs.com/hlxs/


本文转载自海 子博客园博客,原文链接:http://www.cnblogs.com/dolphin0520/archive/2011/11/13/2247577.html如需转载自行联系原作者


相关文章
|
自然语言处理 Python
Python 句法错误:"SyntaxError: invalid character in identifier",原因及解决方法
Python 句法错误:"SyntaxError: invalid character in identifier",原因及解决方法
7284 0
|
缓存 负载均衡 应用服务中间件
Nginx配置
【10月更文挑战第22天】在实际配置 Nginx 时,需要根据具体的需求和环境进行调整和优化。同时,还需要注意配置文件的语法正确性和安全性。
306 63
|
11月前
|
存储 分布式计算 安全
阿里云服务器经济型、通用算力型、计算型、通用型各主要实例性能、适用场景对比
在阿里云目前的活动中,云服务器实例规格有几大类,分别是轻量应用服务器、经济型e实例、通用算力型u1实例,第七代计算型c7、通用型g7、内存型r7实例,第八代计算型c8i、通用型g8i、内存型r8i实例,倚天云服务器实例计算型c8y、通用型g8y、内存型r8y实例,不同类型的实例规格,性能和适用场景不同,本文将这些热门实例规格的性能和适用场景全部展示出来,以供大家做对比和选择参考,从而选择出适合自己需求的云服务器实例规格。
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
存储 资源调度 监控
工作负载类型
【10月更文挑战第18天】
|
并行计算 大数据 数据处理
亿级数据处理,Pandas的高效策略
在大数据时代,数据量的爆炸性增长对处理技术提出更高要求。本文介绍如何利用Python的Pandas库及其配套工具高效处理亿级数据集,包括:采用Dask进行并行计算,分块读取以减少内存占用,利用数据库进行复杂查询,使用内存映射优化Pandas性能,以及借助PySpark实现分布式数据处理。通过这些方法,亿级数据处理变得简单高效,助力我们更好地挖掘数据价值。
571 1
|
定位技术
ArcGIS:如何对Shapefile文件进行符号系统修改、标注、合并、分割、拓扑编辑等?
ArcGIS:如何对Shapefile文件进行符号系统修改、标注、合并、分割、拓扑编辑等?
1973 0
|
存储 网络性能优化 芯片
芯片引脚字母代表的意义
芯片引脚字母代表的意义---常用
7720 0
|
机器学习/深度学习 人工智能 算法
基于Python进行人脸验证人脸识别系统 毕业设计附完整代码 可直接运行
基于Python进行人脸验证人脸识别系统 毕业设计附完整代码 可直接运行
814 0
基于Python进行人脸验证人脸识别系统 毕业设计附完整代码 可直接运行
|
存储 关系型数据库 MySQL
初学者如何快速理解Polar DB IMCI?
本文的撰写思路是在研读《PolarDB IMCI助力聚水潭数据中台极致体验,实现百亿级订单实时分析》的过程中产生的想法,作为一个对数据库基础概念与技术原理一窍不通的新人小白,该如何去学习了解数据库PolarDB的核心功能之一——IMCI列存引擎呢?从一个客户案例入手是最快能够理解一个客户定位、客户需求、产品功能、使用场景乃至底层原理的方式。阿里是从电商起家的,相信网购大家都有体感,类似于雅诗兰黛、
初学者如何快速理解Polar DB IMCI?