一个程序员的总结——开发注意事项

一年到头了,作为本命年的我,今年发生了太多的事情,但是不幸的是,都是好事儿,有点太过得意洋洋了,不过,不管一年顺抑或不顺,都是需要总结的,毕竟,总结,才能让人成长,首先,想注意的事情就是开发注意事项。

特别想说一件事情,公司每个功能上线之前都要测试,在测试环境测试,并且也会在正式环境测试(非公开版),把上线的问题降到最低,发生过这么几件事情,有好几次,我开发的时候没有看到问题,测试测试的时候也没有问题,但是在正式环境测试的时候,我们的头儿一眼就看到问题,很神奇的一件事情,感觉他好像就长了一双挑bug的眼,的确,我们的头儿是一个有十几年工作经验的人,不得不佩服他的眼力劲儿,但是,的确眼力劲儿是常年积累下来的,也许也是一次次的出的问题才会意识到这个地方需要格外注意,但是,既然是特别需要注意的地方,那么在他们心里,肯定有一个总结,就是每次上线前要注意什么,只是岁月积累变成了一种潜意识,那么,如果是对于我们这群“涉世未深”的菜鸟,该怎么注意呢?只能是学习经验并总结,把它们岁月沉淀的潜意识,总结出来,强制变成自己的意识。

好了,废话少说,书归正传:

第一:查询的时候注意上下界,这是个经常犯的错误,但是屡犯不爽,经常出现这种在哪里跌倒就还在那里继续跌倒的情况,这是第一条,已经拒绝在犯。

第二:字段为空情况,很多时候我们以为这个字段不可能为空,或者正常数据不会为空,但是要知道,所以的bug都是处在非正常的数据中,把系统搞出问题的数据也肯定不是正常数据。

第三:插入数据库字段为空情况,一般情况下数据库字段是不能为空的,既然数据库这样设计,那么插入是字段就不能为空,因为这个问题,已经让我在线上出国问题,感觉很惨是不是,所以,每个对象都要记得设置默认字段。否则,这很有可能因为你这里的改动,影响到其他功能。

第四:字体样式问题,很多时候,开发的人比较注意功能的完整性反而很容易忽视的就是样式问题,所以反而更容易在这个上面栽跟头,虽然一般情况下会有前端来把关,但是我们也会经常遇到一些需求对前端要求比较低,不需要前端介入,所以这个时候,就需要注意一些样式问题了,尤其是字体样式更容易被忽略。

第五:多打日志,这个习惯好像到目前还没有很好的适应,但是这也是我下一阶段要十分注意的地方,无论是对异常日志的处理,还是console的日志输出,每次开发都急于完成,日志就编程一个可有可无的东西,而每次都是出了问题才想起来日志的重要性,但是这个时候在写日志就已经晚了,因为无法把出的问题记录下来。这是一个加星的注意事项。

第六:写代码的风格,平时写代码没有加空格的习惯,每次头儿给review代码的时候都会因为这个问题提醒我一下,或者他在看我代码的时候就会顺手把看的部分加上空格,当然,我们不会因为少加空格就出bug,但是会因为不好的代码而影响发现bug。

这是一般情况下,不论什么项目都要注意的问题,当然还有一种问题,发生在特定的场合,这种问题,跟编程习惯、思维习惯就有很大的关系了,当然,还跟编程素质有很大的关系。

首先,说一件事情,写代码复制粘贴是一种很常见的事情,但是我们究竟应该怎么复制粘贴呢?以前,总是以功能能够运行为主,其实,除了能够运行,还要注意代码中有没有多余的代码,这些代码能不能够影响性能。我是一个比较懒的人,但是也因为这样的懒,犯了不少错误,举个例子,又一次我只需要查询一个金额,但是查询的语句跟之前查询一个对象的完全一样,只是这次我只取里面
的金额,于是我想都没想,直接拷过来代码用,然后判断一下查处的对象是不是为空,之后直接从对象里去金额,这个问题测试的时候是没有问题的,但是上线之后出问题了,问题的原因是金额为null,因为我只判断了对象不能为null,忘记判断对象里的金额,之后头儿看了下我的代码,说了句“从你代码里看出你思路不太清楚啊”,当时听了很难受,首先是因为上线之后出的问题,一般这样的问题会对公司有影响,还有一个原因:这个问题是我犯懒了,如果我当时改动一下之前的代码,只获取金额,以后的问题就没有这么多了,当我把代码拷过来改动时,就意味着,我很有可能因为少改一些地方而报错,或者是因为依照代码的思路走下去,去修补之前的代码符合现在的需求,而不是从现在的需求出发,去构造一种真正的符合现状的代码。所以,粘贴复制没有问题,但是绝对不能通过修修补补来应付现在的需求。

其次,眼界,眼界这个东西很难说清楚,但是总是隐隐感觉这是一个可以培养的东西,在做这个功能的时候,你的目光能看到多远,举个例子,产品有这样一个需求,一个数据,要么是一天,要么是若干个月,这就要求一个字段里面要么存一天,要么存几个月,当时我只是反复跟产品确认:天数只会出现一天情况,其他的都是以月为单位的吗?十分确定之后,字段设置的是0代表一天,其他的比如1代表一个月,2代表两个月,后来跟头儿说这件事儿,他的解决方案是这样的:1~100表示天,100以上,比如101,表示1个月,102表示两个月,这样即使以后出现15天的情况,也很好扩展。的确,我在做的时候虽然感觉这样的需求有点怪异(最后这个需求统一改成以天为单位,后话不说),但是我做的只是反复确认需求不会变动,但是,万一呢,虽然我们的需求一直跟着产品经理的要求做,但是没有人保证这个事是一定的,所以,我们何不往前做一步呢,这步并不难,难的是想不到。很多时候我都太着急,太过急于求成,忘记了,最省事儿的方法,是省将来的事儿,而不是立刻完成当下的事儿,做事儿之前先动的是脑,而不是手。

还有,完成功能的前提下,多关注一下代码的效率,包括运行的效率和别人阅读的效率,边上有一个大牛,总爱听他说到“这个功能的设计的特别优雅”,不知道该怎么定义优雅,至少我从没有觉得我写的代码优雅,甚至连看都不想看,包括有时候事儿少的时候也会说看看自己的代码,哪里需要优化,但是,哎,渐渐的做多了,发现,不是因为不想重构,不想改进,而是自己跟写代码时的自己是出于一个level的,解决这个的办法不是看自己的代码,而是看别人的代码,当然看别人的代码不容易,找一个自己比较熟的功能,并且是一个比较厉害的人写的代码去看(功能熟容易看懂),你会发现你们写的差距,然后只有这个时候,才能激发你去优化你的代码的潜力,你也才会自惭形秽的去偷偷修改代码(因为是在不好意思让别人发现这块代码是你写的%>_<%,只能偷偷修改)。

最后还想说,让自己进步最快的办法是虚心,程序员有一个通病,就是高傲,不愿意承认自己有问题,当然这不是只有程序员才有的问题,各行各业的都有,只是因为程序员的工作性质,别人总要提出各种各样的bug,所以不得不高傲,但是我认为进步,还是需要虚心,虚心接受别人的意见,时刻反省一下自己,才会去从不同角度考虑问题,比你厉害的人不必说,有太多的发光点需要你去学习,但是其他人,包括产品包括测试,他们的意见与想法,都是需要思考的,只有把不同意见听进去的人,才会去思考去判断,才会成长。

这篇总结从年前写到年后,就先到这儿吧,再继续下去就变成裹脚布了,未完待续、、、、、。。。。

时间: 2024-08-05 15:25:16

一个程序员的总结——开发注意事项的相关文章

作为一个程序员怎么通过android开发赚钱

上面是一个程序员通过Android开发每天的收入,信则有! 自己学安卓差不多,有一年了.我本来是从事javaweb开发的,可能学习安卓上手会快点.其实安卓没有那难 .首先开发安卓程序,要有一个,开发环境 ,其实也很简单(直接下载一个ADT ,包含,eclipse 和 sdk ,解压就可以用).鉴于现在,中国上google官网上不去 ,我这边直接把文件下载保存在我的网盘,大家如果需要的话,可以直接下载,下载地址:http://pan.baidu.com/s/1pJFhdpx (里面包括,eclip

从一个程序员笑话看软件开发管理(转载)

从一个程序员笑话看软件开发管理 原文出处:猛禽的编程艺术 原文链接:http://blog.csdn.net/raptor/article/details/727299 有一个笑话是这样的: 1. 程序员写出自认为没有Bug的代码. 2. 软件测试,发现了20个Bug. 3. 程序员修改了10个Bug,并告诉测试组另外10个不是Bug. 4. 测试组发现其中5个改动根本无法工作,同时又发现了15个新Bug. 5. 重复3次步骤3和步骤4. 6. 鉴于市场方面的压力,为了配合当初制定的过分乐观的发

如果你恨一个程序员,忽悠他去做iOS开发

如果你恨一个程序员,忽悠他去做iOS开发.不管他背景是cobel还是 java,送他一本iOS开发的书.这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易学到皮毛.这叫舍不得孩子套不着狼,谁叫你恨他呢. 然后你就会发现他没事会琢磨一下在虚拟机里运行一下mac OSX.Mac高大上啊,一用就上瘾.慢慢的,你发现他不再满足虚拟机了.程序员嘛,一般都对性能敏感的.他开始琢磨黑苹果了.这是发病的第一个阶段.这个阶段他会乐此不疲,殊不知也耗散着精力. 第一个阶段玩了一段时间后,他开始受不了了.

程序员在编程开发中的10个实用技巧

程序员在编程开发中的10个实用技巧,下面是我自己在工作中学到的一些简单的技巧和策略,希望能对各位有用.1.     橡皮鸭调试法不知道各位有没有这样的经历,当你正在给别人描述问题的时候,突然灵机一动想到了解决方案?这种情况的产生是有科学依据的.高谈阔论能让我们的大脑重新有条理地组织问题.在这种情况下,你的聊天对象就是“橡皮鸭”.团队中的每个人都应该积极主动乐意地成为彼此的“橡皮鸭”.有时候,如果你幸运的话,你的“橡皮鸭”搞不好还能给出有效的建议呢.2.     快速信息反馈一旦写好代码就要尽快得

说实话当一个程序员不容易

我曾经说过,程序员不是一般的人,是具有某种超能里的人.但问题是,程序员往往意识不到自己的这种特异功能,在他们的眼里,会认为自己很普通,跟常人一样,所以,程序员能做到的事情,其他人--比如他们的客户/软件用户--也应该很容易做到.但事实上,由于大部分人--绝大部分人(包括软件开发公司的客户/购买软件的用户)--都是电脑小白(对电脑知识/计算机知识/软件知识知之甚少的人).一个对于程序员来说很显而易见的软件操作,换成让用户来操作,就会出现各种各样奇怪的事情.这让程序员非常痛苦. 记得有一次,一个客户

C#程序员学习Android开发系列之ListView

上篇博客解决了Android客户端通过WebService与服务器端程序进行交互的问题,这篇博客重点关注两个问题,一个是Android应用程序如何与本机文件型数据库SQLite进行交互,另一问题则是如何在ListView中按照我们想要的界面效果进行展示.限于篇幅这篇重点讲ListView,下篇博客重点阐述SQLite. ListView是一个常用的数据显示控件,假设我们要做一个简单的界面,如图所示. 这张图是我直接从Android平板电脑(Android 4.2.2)上面截图下来的,就是一个普通

一个程序员如何快速赚到一百万?(转)

一个程序员如何快速赚到一百万,说的详细点儿就是: 一个固定工作者怎么跳出固有的模式,靠其他途径(投资.理财.生意.创意.外包等)赚得相对殷实的钞票? 80% 人都会问这种赚钱问题,但这种问题却太难回答,因为太难有个可标准化的模式去效仿或借鉴. 这个时代,赚钱不难,赚 100 万也不难,难的是要具备且能勤奋的执行的能够持续创造财富的思想方法:观察事物 - 分析分解事物 - 得出解决方案,且把每一个步骤一步一步"写"下来并踏踏实实实施,这个方法最笨,但是她是最踏实的,有了这个,钱是迟早的事

CSDN日报20170318——《一个程序员的五年工作总结》

[程序人生]一个程序员的五年工作总结 作者:Programmer_Zhou 三月的重庆到处弥漫着浓浓的春味,在这个春暖花开的季节里,人们在闲暇的时间都忙着踏青和春游."一年之计在于春",春天是赏花旅游的季节,春天更是为未来作打算.定计划的时候.在2017年的春天,我做出了人生中的一个重要决定:离开工作近五年的ZTE(中兴通讯),去开启新的人生征程.最近我在罗辑思维的得到APP上订阅了薛兆丰老师的"北大经济学课"专栏,我认为他说的一句话特别有道理,这句话的大意是:&q

如何区分一个程序员是保守派还是自由派?

最近,我在阅读 Steve Yegg 的文集<程序员的呐喊>. 这是一本非常有趣的书,里面甚至包含了一个小测试(原文),区分一个程序员到底是保守派还是自由派. 下面一共有十个问题,每个问题都有 A 和 B 两个选项,请选择你的答案. 问题一:Bug 还没修复,软件能不能上线? (A)软件发布前,应该编写完整测试,充分调试,尽量修复所有bug. (B)不管多努力,bug 总是无法避免的,如果性质不是很严重,可以先上线,根据反馈再调试和修补. 问题二:容易出错的特性,是否应该用在程序中? (A)很