技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 算法 --> 给你的代码《约法四章》:基本功能、错误处理、智能纠错、日志收集

给你的代码《约法四章》:基本功能、错误处理、智能纠错、日志收集

浏览:3007次  出处信息

    作为21世纪的码农,如果只是想混混工资的话,这篇文章可能不太适合你,但如果想在技术上有所提升,本文也许能帮你照亮前进的道路。程序员不能只是天天埋头写代码,还得关心代码的质量,其实写代码很容易,稍微用心点学都能写,但是要产出好的代码却不是那么容易事,所谓好的代码不是说你完成了某某功能就牛B,在完成了基本功能的同时还有很细节要注意,在各种关于代码质量的书中都的提及到了这样的概念:代码格式、命名规则、功能注释等,虽然这些东西看上去并不能主宰软件的“生与死”,但是谁又能保证一个软件从出生到结束都由一个人维护呢?关于代码规范这个话题我不打算列入本文的内容,原因有二,其一是很多书中都的提及到,我就不必重申;其二是很多程序员其实也很注重这个问题,只是注释多少的问题。那么就标题中的四点来给我们的代码约法四章,让我们这些码农的代码更健壮。

    首先是基本功能,这个我不多说大家也应该懂了,程序员就是要完成各种产品提出的需求,如果基本功能都完不成,我们后面一切都是空谈。就好比是建房子,连地基都还没有开始搞,就在想我要买什么家具能让房间更漂亮。鸟虽然能飞,但它也是先学会走才学飞的。所以这一点大多数的程序员都能做到,我也就此罢休,也许这一段是多余的,呵呵。

    其次是错误处理,错误处理这个东西如果从程序员的角度去看好像不觉得他有多神秘,只要稍加注意,些事就能避免,但试问有多少人真的注意了?这里举个大家经常看到的例子,字符串拷贝函数strcpy:

    [c]

    char *strcpy(char *dst, const char *src)

    {

     char *addr = dst;

    assert((dst != NULL) && (src != NULL));

    while((*dst++ = *src++) != ‘\0′);

    return addr;

    }

     [/c]

    就是这么如此简单的代码, 有多少人会加上断言进行NULL判断?据说这段代码考到了无数牛人,因为在考这段代码的时候不是在考你会不会字符串拷贝,而是在考你是否考虑了错误处理。很多代码都是因为没有错误处理或者处理不当导致程序崩溃,想想其实挺不划算的,花了大把时间把主要功能都实现了,结果因为没有考虑这些看似不起眼的错误导致程序不能稳定运行,对于客户来说你这就是没有完成工作,而对于同行来说,你这就不是合格的码农。其实大家在编写代码时候多考虑一点,程序就更健壮一点。记得在网上有很多文章有这么一说:不要相信任何用户的输入,想想还是非常有道理。

    然后是智能纠错,对于大多数web开发人员来说,列表翻页是相当常见的功能,但就是这么一个看似简单而又常见的功能,却隐藏了该文很重视的一个智能纠错的问题。假设page参数为列表的页码,如果page小于等于1,你的代码是否能正确的读取第一页的数据?如果page大于最大页数,你的代码是否还在查询数据库列表?当你看到这里,你不防试试打开你的代码,看你是否真的把这些都做完善了?其实这里只是引用了一个简单的实例来说明智能纠错的重要性,在程序中还有很多地方需要类似的纠错,如果你发现了,请完善他。

    最后是日志收集,其实能做到上面两点,我挺羡慕你的,因为到目前,我也算不上合格的码农,代码经常出BUG,虽然说BUG对于程序员来说很常见,但是一有BUG心里总归不爽,不爽又能怎么着?还得找问题继续改之。如果能很快定位问题的根源,那么你是幸运的,能很快解决他。但是如果某一天,你的客户告诉你程序中断了,而你也不知道程序错在哪里,那么你就杯具了,慢慢找吧。真的需要要一步一步来找吗?太浪费时间了,不防在你在程序中添加日志收集,在你觉得可能出现错误地方都做上日志标记,在以后程序崩溃后,至少能通过日志定位程序中断时大概的运行位置,你又一次成了幸运儿。

    本文就这么结束了,希望对各位有所帮助。最近也是看到自己的代码各种BUG,也有了很多感触,希望能写出本文能加深自己对程序建壮性、稳定性的重视。

建议继续学习:

  1. vim的一个js代码整理的插件jsbeautify.vim    (阅读:4530)
  2. 写代码这件事    (阅读:3668)
  3. 多些时间能少写些代码    (阅读:3227)
  4. 数据即代码,我和小伙伴们都惊呆了!    (阅读:3220)
  5. 如何写出无法维护的代码    (阅读:2832)
  6. 十种更好的表达“你的代码写的很烂”的方法    (阅读:2696)
  7. 如何为PHP贡献代码    (阅读:2594)
  8. 你的代码是我的地狱    (阅读:2060)
  9. HTML代码到底该不该压缩    (阅读:1343)
  10. 在公众号中优雅地呈现代码    (阅读:1325)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1