摆脱程序员困境,多思考
2013-12-22 14:06
148 查看
主体内容:
本篇将讲解开发过程中碰到的困难与问题。
作为一个已经毕业一年的北漂程序员,过程中的艰辛与痛苦与自己的拼搏相比,又能算什么呢
详细内容:
本人2012年7月份毕业,7月中旬来到广联达软件有限公司总部(北京)进行开发,来到了一个比较核心的部门—计量事业部。工作的内容是用Delphi语言开发公司的元老级产品,也是一个n(n>5)年以上的产品了。大家可以想象,对于一个如此的产品,历史长河中也有n多人来人往,留下的都是背影与各种代码片段。
其实在大学生活中,从大二就已经开始web开发了,过程中也开发了一些web管理系统,包括html、php、js等也有些熟悉了。不过在做这些系统过程中,只学得了知识,没有往更高层次去想。感觉做这些管理系统,对于每一个IT人来说就是很容易的,于是乎 我做出了一个大胆的决定,做桌面应用开发,也就有了上文中所提到的Delphi语言的桌面产品开发。(现在想来,如果当时去研究一些框架该多好啊)
2012年8月开始做一些简单功能的开发,对于一个没有桌面开发经验的人来说,的确是相当痛苦,因为手里写的是桌面应用,脑子里的却是web应用,对web应用的开发的确很熟悉,但对桌面软件特别是一些消息机制等了解很少,只能靠一些大学里的基础知识支撑着。
以上纯属于个人感情部分,以下才是真正的痛苦:
1.面向对象开发之困
开发过程中,无论主管还是我们一直想用面向对象的思想进行开发,可我们只用到了冰山一角(个人感觉)。其实有时候想抽离出一些逻辑用类的方式实现,但困难时大大的,因为业务逻辑前后藕断丝连。大家最常用的抽取公共代码部分的方式就是在一个公共的单元中将相似的代码提取成一个函数,然后调用的地方满天飞。单一职责的概念很少用。
2.注释缺少
面对这一坨几百万行的人来人往的代码,心中是无比的痛苦,看了一个函数,需要仔细去分析里面的逻辑。
3.健壮性很值得思考
现在开始慢慢使用面向对象了,使用过程中很多健壮性的问题没有考虑,最明显的一个问题就是强制类型转换。我觉得对于一个软件来说,如果出错了,那么软件会暴露出此错误,但不至于整个软件挂掉才对,可我们的软件就是这样挂掉了。
4.开发过程的复制粘贴
开发过程就是一个分析业务然后复制粘贴的一个过程,一半的时间花在分析业务上。每天不断的Coding,不断的Ctrl+C,Ctrl+V,让人感觉很反感,想弄一个机器人帮我写代码,想想也不现实。
5. 偶尔也有挑战的任务
挑战的任务,偶尔也是有的,不过都是敏捷迭代过程中碰到了一些问题,一般情况下是作为遗留任务了,老大在迭代间歇期就会问,为何不处理?往往回答说技术上有难题、或者时间不够。有时候也想去改进一下代码,但是任务那么紧,哪来的时间啊,项目主管也没给啊。
面对以上的问题,个人觉得还是得提高基础知识,不但应用面向对象的思想,重构的方法进行开发。于是乎就出现了本篇文章以及学习列表的内容。开发过程中要多思考,多利用平生所学,为团队造福。
思考、思考、思考……
本篇将讲解开发过程中碰到的困难与问题。
作为一个已经毕业一年的北漂程序员,过程中的艰辛与痛苦与自己的拼搏相比,又能算什么呢
详细内容:
本人2012年7月份毕业,7月中旬来到广联达软件有限公司总部(北京)进行开发,来到了一个比较核心的部门—计量事业部。工作的内容是用Delphi语言开发公司的元老级产品,也是一个n(n>5)年以上的产品了。大家可以想象,对于一个如此的产品,历史长河中也有n多人来人往,留下的都是背影与各种代码片段。
其实在大学生活中,从大二就已经开始web开发了,过程中也开发了一些web管理系统,包括html、php、js等也有些熟悉了。不过在做这些系统过程中,只学得了知识,没有往更高层次去想。感觉做这些管理系统,对于每一个IT人来说就是很容易的,于是乎 我做出了一个大胆的决定,做桌面应用开发,也就有了上文中所提到的Delphi语言的桌面产品开发。(现在想来,如果当时去研究一些框架该多好啊)
2012年8月开始做一些简单功能的开发,对于一个没有桌面开发经验的人来说,的确是相当痛苦,因为手里写的是桌面应用,脑子里的却是web应用,对web应用的开发的确很熟悉,但对桌面软件特别是一些消息机制等了解很少,只能靠一些大学里的基础知识支撑着。
以上纯属于个人感情部分,以下才是真正的痛苦:
1.面向对象开发之困
开发过程中,无论主管还是我们一直想用面向对象的思想进行开发,可我们只用到了冰山一角(个人感觉)。其实有时候想抽离出一些逻辑用类的方式实现,但困难时大大的,因为业务逻辑前后藕断丝连。大家最常用的抽取公共代码部分的方式就是在一个公共的单元中将相似的代码提取成一个函数,然后调用的地方满天飞。单一职责的概念很少用。
2.注释缺少
面对这一坨几百万行的人来人往的代码,心中是无比的痛苦,看了一个函数,需要仔细去分析里面的逻辑。
3.健壮性很值得思考
现在开始慢慢使用面向对象了,使用过程中很多健壮性的问题没有考虑,最明显的一个问题就是强制类型转换。我觉得对于一个软件来说,如果出错了,那么软件会暴露出此错误,但不至于整个软件挂掉才对,可我们的软件就是这样挂掉了。
4.开发过程的复制粘贴
开发过程就是一个分析业务然后复制粘贴的一个过程,一半的时间花在分析业务上。每天不断的Coding,不断的Ctrl+C,Ctrl+V,让人感觉很反感,想弄一个机器人帮我写代码,想想也不现实。
5. 偶尔也有挑战的任务
挑战的任务,偶尔也是有的,不过都是敏捷迭代过程中碰到了一些问题,一般情况下是作为遗留任务了,老大在迭代间歇期就会问,为何不处理?往往回答说技术上有难题、或者时间不够。有时候也想去改进一下代码,但是任务那么紧,哪来的时间啊,项目主管也没给啊。
面对以上的问题,个人觉得还是得提高基础知识,不但应用面向对象的思想,重构的方法进行开发。于是乎就出现了本篇文章以及学习列表的内容。开发过程中要多思考,多利用平生所学,为团队造福。
思考、思考、思考……
相关文章推荐
- 是时候思考一下到底要不要干程序员了
- 一个程序员的哲学思考(关于编程、关于人生)
- 关于程序员成长的一点思考
- 路要怎么走?关于程序员成长的一点思考
- 路要怎么走?关于程序员成长的一点思考
- 像程序员一样思考
- 一个30岁程序员的对于中年危机的思考和应对
- 像程序员一样思考读书笔记 1
- 程序员如何摆脱平庸?
- 一个30岁程序员的对于中年危机的思考和应对
- Read程序员的困境有感
- 对搬砖程序员的思考
- 程序员转型:走上CIO岗位的思考
- 一个程序员的哲学思考(关于编程、关于人生)
- 程序员的思考
- 程序员的学习方法【思考】
- 我的程序员之路(九)------参加郑州微软MVP宣讲会后的一些思考
- 思考前端和后台程序员的关系
- 信念、思考、行动-谈谈程序员返回家乡的创业问题
- [软件人生]思考:软件的目的是什么,程序员实际在做什么