简简单单几条原则:

  1. 模块的用户永远也不应该被模块的行为所迷惑
  2. 模块要尽可能小,但又不能太小
  3. 代码应该被重用,而不是被拷贝
  4. 模块之间的依赖性应该尽可能降到最小
  5. 错误应该尽早被检测出来,最好是在编译时刻

重点讲两个。

模块的用户永远也不应该被模块的行为所迷惑

最简单的方式是写下多且准确的注释,不过我相信大部分很难做到“准确”。我习惯引用涛神的话,将该条规则表述为要求“代码能够自解释”。

看起来简单做起来难。对于Java程序猿,有几种必要的方式可以帮助你尽可能的做到这一点:

  • 除了对外公布的API和部分重要模块,要求自己不加任何注释
  • 使用清晰明确的命名,包括变量、函数、类
  • 被确定命名的类、函数、变量,其功能应单一、确定
  • 使用的时候再声明/创建,并尽可能进行显示的初始化
  • 严格明确对外保证的边界,将精力放在保证公开接口,而不是私有实现
  • 恰当的使用异常和日志,不要用日志代替所有异常,但或许很多ERROR级别的日志都可以用异常来代替
  • 虽然与原则2相悖,但如果合并模块不会使系统变的难以理解,为了简化系统结构我们建议合并部分模块
  • 除非对外发布后不可更改(比如java.util.Set接口),否则,在能保持良好系统结构的前提下,不要面向未来开发(这一点可能很难接受,不过想想什么时候才应该应用设计模式呢?什么时候时候才应该优化性能呢?有需要的时候。如果现在不需要,就不要面向未来开发。)

上述方式并不是充分的,我可能会在以后的开发中继续补充重要的方式,也可能不会。因为你需要掌握的是如何思考,而不是记住这些死知识

上述原则部分参考自Google Java Style Guide,建议二者结合阅读。

错误应该尽早被检测出来,最好是在编译时刻

刷题的时候要时刻牢记:

如果可能,尽早的处理边界条件

对于工程开发,可以改编如下:

如果可能,尽早的发现并处理错误

这里的错误包括异常、逻辑错误等。分为两个方面,发现、处理:

  • 发现:要求我们尽早的发现错误,最好是编译期;如果在运行期,就要在处理正常逻辑之前,尽早的检测出错误。特别的,在开发期间,编写完备的测试用例,尽早发现逻辑错误。
  • 处理:发现错误还不够,我们要处理错误。如果是编译或开发期间发生的错误,修改代码即可;如果是运行期发生的错误,记录日志、提前退出、抛出异常都是值得考虑的选择,选择当前保证和当前场景下最合适的。

该原则要和原则1结合起来(任何原则都要和原则1结合),所以记得让你发现、处理错误的代码也是自解释的。


本文链接:程序猿应该记住的几条基本规则
作者:猴子007
出处:monkeysayhi.github.io
本文基于 知识共享署名-相同方式共享 4.0 国际许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名及链接。

程序猿应该记住的几条基本规则相关推荐

  1. 程序员要记住的几条建议

    1.想清楚,再动手写代码 刚入行的新手,为了展示自己的能力,拿到需求迫不及待地就开始上手写代码,大忌! 在我看来真正写代码的时间只有20%,如果不想清楚,其他的80%时间在改bug. 2.不交流,就会 ...

  2. unity3d游戏开发猜想——当程序猿老去

    程序猿将代码注入生命去打造互联网的浪潮之巅.当有一天他们老了.会走向那里,会做些什么? 非常多年以后,在我60岁的那天早晨,天刚蒙蒙亮我就起床了,先去公园晨练,然后回来做早餐(50岁的时候我学会了做饭 ...

  3. 从此走上一条iOS程序猿不归路。。。

    新的城市,新的生活!前不久刚刚结束了苦逼的面试找工作之旅,期间也小有收货,如今正处年底工作闲暇之余,将前一阵子陆陆续续的总结整理了一下,本人菜鸟程序猿一只,水平有限,本文总结的知识不算深入,比较浅显, ...

  4. 关于程序猿 59 条搞笑但却真实无比的语录

    在大多数人印象中,程序猿都是给人刻板的印象!其实是他们不懂程序猿的世界而已,下面就看看工程师们最爱的59个经典笑话! 1. 一个好的工程师是那种过单行道马路都要左顾右盼的人.(Doug Linder) ...

  5. 防止程序猿和前端狗打架的几条约定

    一个项目或者产品的出生,往往包含需求.开发.测试再到生产,不是前端一个人在战斗,而是一个团队,少则3-4人,多则十几人,那么问题来了,开发人员需要遵守哪些约定,才能不让程序猿和前端狗不打起来呢?    ...

  6. 十二星座程序猿怪咖个性_你中了几条?

    原文链接 摩羯座 摩羯希望被重用,他们不喜欢自己一天没有事情干,他们希望自己忙起来,他们给别人说"没时间.忙着呢"的时候会非常的爽! 他们喜欢把控全局,因此他们肯定是个合格的架构师 ...

  7. 资深程序猿冒死揭开软件潜规则:无法维护的代码

    原始博文公布于: Roedy Green's Mindproducts (http://mindprod.com/unmain.html ).  翻译链接: 点击打开链接 2014年11月25日 03 ...

  8. Android开发之程序猿必需要懂得Android的重要设计理念2(5.20更新版)

    上篇文章介绍了Android开发的设计理念的一部分,并没有得到博友们的多大认可,仅仅看到了一位博友在以下留言期待下一篇文章的发表,为了这小小的唯一支持.我决定继续把后面的8个要点介绍一下,自己也潜心反 ...

  9. 做程序猿的老婆应该注意的一些事情

    转自:http://www.jianshu.com/p/492903fb7005 十一年前我和程序猿第一次见面,还是大一军训期间.我甚至不确定程序猿是否记得那是第一次见面.当时不小心装伪文艺参加了吉他 ...

最新文章

  1. 单片机原理,单片机能做什么?
  2. 如此通俗的分布式锁讲解,如果还搞不定那就...
  3. 【SDL】 如何在RedHat6.5中搭建SDL开发环境
  4. Question: Database Of Tumor Suppressors And/Or Oncogenes
  5. 一段JAVA签名算法的PHP改写
  6. android 多线程类,Android 多线程处理之多线程用法大集合
  7. 2021财经直播系统 H5网页直播 大区直播间源码
  8. 系统架构设计师-软件开发模型(螺旋模型)
  9. 适配器模式(Adapter模式)
  10. Win10易升下载链接
  11. 全网音乐Music Download v2.1.2
  12. KDD 2022论文合集(持续更新中)
  13. 嵌入式开发:优化嵌入式软件的7个技巧
  14. magicbookpro做php开发,荣耀MagicBook Pro锐龙版,一款为大学生量身打造的笔记本
  15. 【最优化导论】一维搜索方法
  16. saver 保存读取
  17. 广告屏蔽案件的中美相关司法实践初探
  18. 血药谷浓度能否区分经TNF拮抗剂诱导获得缓解和低活动度的RA患者
  19. Win 10 企业版发大招 招招吸引SMB用户
  20. 红光光浴缓解“缠腰龙”给你健康#大健康#红光光浴#红光#种光光学

热门文章

  1. 网关屏蔽mac地址,linux下修改mac地址方法
  2. RabbitMQ的死信队列的应用
  3. 十个优衣库仓库理货员,只有一个能留下,机器已经上岗了
  4. 理财经理们都想用AI,但客户们不想用 | 福布斯报告
  5. 个人练习-jq 鼠标移上移出查看图片(放大)提示
  6. 浅谈Android数据库DBFlow
  7. go 1.5 国内下载地址
  8. Groovy操纵集合秘籍
  9. IOS上路_04-简单示例-图片浏览器
  10. 考驾照科目一考试很顺利