培训首页  >  办公应用软件新闻  >  程序员老司机总结的编程经验

程序员老司机总结的编程经验

[2017-07-25 09:23:25] 浏览量:62 来源:

北大青鸟瀚唐校区

  程序员老司机总结的编程经验!-- 北大青鸟淮安瀚唐校区

  炎炎夏日,各位小宝贝们

  是不是已经热到怀疑人生

  除了空调间哪都不想去

  今天小编就特意摸着自己的良心

  为你们准备开一趟

  的老司机专属车

  没时间解释了!快上车!!!!

  从小事做起,然后再扩展

  无论是创建一个新的系统,还是在现有的系统中

  添加新的功能,我总是从一个简单到几乎没有

  任何所需功能的版本开始,然后再一步一步地

  解决问题,直到满意为止。我从来没有妄想过

  能够一步登天。相反,我一边开发一边学习,

  同时新掌握的信息还可以用于解决方案中。

  我很喜欢 John Gall 的这句话:

  “复杂系统总是源于简单系统的演化。”

  尽早地添加日志和错误处理

  在开发新系统时,我做的头件事就是

  添加日志和错误处理,因为这两者从一开始

  就非常有用。对系统来说它比一大把代码更有用,

  你需要一些了解程序状态的方法。

  如果系统不能照常工作,那么你就需要知道

  程序中发生了什么——这是日志的作用。

  错误处理也是如此——错误和异常越早处理越好。

  每一行新代码必须至少执行一次

  在你真正完成一个功能之前,你必须对它进行测试。

  不然,你怎么知道它是不是按照你的想法在执行呢?

  通常情况下,好的方法是通过自动测试,

  但并非总是如此。不过,不管怎么说,

  每一行新代码必须至少执行一次。

  一般,我们想触发某种条件很难。

  但幸运的是,我们可以处理。例如,

  数据的错误处理可以通过临时拼写错一个列名

  来触发。或者,一个if语句可以暂时颠倒过来

  (从 if error 变成 if not error),这样来触发那些

  平时很难触发的条件,这样只是为了确定

  代码是否正常运行和它会出现什么结果。

  有时,我发现有一些行代码永远都不会被运行。

  当我们做代码检查是它看起来没有什么问题,

  但就是不工作。你要避免这样的尴尬状况,

  如果你想你的每一行新代码都会被执行。

  在整体测试之前先进行模块测试

  先进行部分模块测试可以节省时间。

  通常说来,我们在整合不同的模块时也会

  出现问题,例如模块之间的接口不匹配。

  但是如果我们能够信任各个组件的话,

  那么跟踪集成问题就会变得简单得多。

  所有事情所花费的时间总是比你预期的要长

  特别是在编程中,即使一切进展顺利,

  我们也很难对功能所需的时间做出正确的预算。

  并且,开发软件时碰到各种意想不到的问题是

  非常常见的。一个简单的合并操作会导致一系列

  小bug,一次框架升级意味着一些函数

  必须改变或者一些API不按照你想象的那样工作。

  阅读和运行代码

  幸运的是,对于理解代码,我们有两种互补的方法。

  你可以阅读代码,也可以运行代码。

  运行代码的确是个非常棒的好方法。

  所以,请确保充分利用这两种方法。

  Bug 总是难免的

  我不喜欢那些宣称软件开发可以“一蹴而就”的

  高谈阔论。不论你再怎么努力,bug总是难免的。

  能够做成可以故障排除、

  修复bug和部署修复的系统。

  解决故障报告

  每个开发人员都应该花时间去处理来自客户的

  故障报告,并修复bug。这能让你更好地理解

  客户的意图,明白如何使用系统,知道排除故障的

  难易程度,了解系统的设计情况。这也是为自己的

  开发成果负责的好方法。不要错过这些好处。

  修复已知错误,

  然后再看看有没有其他不对的地方

  有时候,可能同时存在着几个不同的问题。

  它们之间的互相作用,可能会让你毫无头绪,

  束手无策。不要纠结于搞清楚发生了什么,

  先去解决所有已知的问题,

  然后再看看还有什么不对的地方。

  面对面的交流有效

  当我们需要讨论如何解决问题时,

  那么面对面的交流比视频、打和

  电子邮件都要好。我经常在与同事

  讨论完后发现一个令人兴奋的更好的方案。

  问问题

  阅读和运行代码往往非常有助于指出代码的

  目的和它的工作原理。但是如果你有机会咨询

  那些更为了解的人(例如原来的程序员),

  那么千万不要错过。继续问他们具体的问题、

  后续的问题,这几分钟内给你的信息

  可能是你需要花费好几天才能获得的。

  动手去做

  如果你不知道某种编程语言功能的工作原理,

  那么不妨写一个小程序来理解它是如何工作的。

  这同样适用于测试你正在开发的系统。

  如果我将参数设置为-1,会发生什么?

  当我在重启系统时,如果服务当掉,

  会发生什么?以此来研究它的工作原理。

  经常做这些会帮你发现bug,

  在此同时也会加深你的系统工作的了解。

  带着问题睡觉

  如果你正在解决一个很难的问题,

  那么不妨带着问题睡觉。有科学研究表明,

  这样做虽然你表明上并没有在主动思考,

  但你的潜意思却这么做了。其结果就是,

  第二天再去研究问题,解决方案已经呼之欲出了。

  改变/跳槽

  不要害怕角色变化。和不同的人共事,

  开发不同的产品,感受不同的公司文化是

  非常有意思的。在我看来,太多的人只是

  被动地呆在同样的地方年复一年的工作,

  只有在被迫的情况下才去改变。

  活到老学到老

  软件行业的一大魅力就是我们随时有机会

  可以学到新的东西。你可以尝试不同的编程语言

  和工具,阅读软件开发的书籍。

  相信我,量变才能达到质的飞跃,这些小小的学习

  积累,终有会大大地提高你的知识和能力。



文中图片素材来源网络,如有侵权请联系删除
  • 办公应用软件
  • 电脑硬件维护
  • 电脑基础操作
  • 网管
  • 职业技能提升
  • 学技术找工作
  • 兴趣爱好
  • 周末班
  • 全日制白班
  • 随到随学

网上报名

热门信息

温馨提示