【译】 13简单的优秀编码规则(从我15年的经验)

嗨,我的工作作为一个程序员超过15年,并使用许多不同的语言,范例,框架和其他狗屎。我想和大家分享我写好代码的规则。

优化VS可读性 去他妈的优化

始终编??写易于阅读且对开发人员可理解的代码。因为在硬可读代码上花费的时间和资源将远远高于从优化中获得的。 如果你需要进行优化,那么使它像DI的独立模块,具有100%的测试覆盖率,并且不会被触及至少一年。

架构第一

我看到很多人说“我们需要快速做事,我们没有时间做架构”。其中约99%的人因为这样的想法而遇到了大问题。 编写代码而不考虑其架构是没有用的,就像没有实现它们的计划一样,梦想你的愿望。 在编写代码的第一行之前,新视觉你应该明白它将要做什么,它将如何使用,模块,服务如何相互工作,它将有什么结构,如何进行测试和调试,以及如何更新。

测试覆盖率

测试是好事,但他们并不总是负担得起,对项目有意义。

当你需要测试:

  • 当你编写模块时,微服务将不会被触及至少一个月。
  • 当你编写开源代码。
  • 当你编写涉及金融渠道的核心代码或代码。
  • 当您有代码更新的同时更新测试的资源。

当你不需要测试时:

  • 当你是一个创业。
  • 当你有小团队和代码更改是快速。
  • 当你编写的脚本,可以简单地通过他们的输出手动测试。

记住,带有严格测试的代码可能比没有测试的代码更有害

保持简单,极度简单

不要编写复杂的代码。更多更简单,那么更少的错误它可能有和更少的时间来调试它们。代码应该做的只是它需要没有非常多的抽象和其他OOP shit(尤其是涉及java开发人员)+ 20%的东西可能需要在将来以简单的方式更新它。

注释

出现注释说明你的代码不够好。好的代码应该是可以理解的,没有一行注释。但是如何为新开发人员节省时间? - 编写简单的内联文档描述什么和如何方法工作。这将节省很多时间来理解,甚至更多 - 它将给人们更多的机会来提出更好的实施这种方法。并且它将是全球代码文档的良好开端。

硬耦合VS较小耦合

始终尝试使用微服务架构。单片软件可以比微服务软件运行得更快,但只能在一个服务器的上下文中运行。 微服务使您可以不仅在许多服务器上,而且有时甚至在一台机器上6080新视觉影院(我的意思是过程分发)高效地分发您的软件。

代码审查

代码审查可以是好的,也以是坏的。 您可以组织代码审查,只有当您有开发人员了解95%的代码,谁可以监控所有更新,而不浪费很多时间。在其他情况下,这将是只是耗时,每个人都会讨厌这个。

在这部分有很多问题,所以更深入地描述这一点。

许多人认为代码审查是一个很好的方式教新手,或者工作在不同部分的代码的队友。但是代码审查的主要目标是保持代码质量,而不是教学。让我们想象你的团队制作代码用于控制核反应堆或太空火箭发动机的冷却系统。你在非常硬的逻辑中犯了巨大的错误,然后你给这个代码审查新的家伙。你怎么认为会发生意外的风险? - 我的练习率超过70%。

良好的团队是每个人都有自己的角色,负责确切的工作。新视觉影院如果有人想要理解另一段代码,那么他去一个负责任去问他。你不可能知道一切,更好的优秀的理解小块代码而不是理解所有。

重构没啥用

在我的职业生涯中,我听到很多次“不要担心,我们以后会重构它”。在未来,这会导致大的技术债务或从头开始删除所有的代码和写作。

所以,不要得到一个债务,除非你有钱从头开发你的软件几次。

当你累了或在一个坏的心情不要写代码。

当开发人员厌倦时,他们正在制造2到5倍或者更多的bug。所以工作更多是非常糟糕的做法。这就是为什么越来越多的国家思考6小时工作日,其中一些已经有了。精神工作不同于使用你的二头肌。

不要一次写全部 - 使开发迭代

在编写代码分析和预测之前,您的客户/客户真正需要什么,然后选择您可以在短期内以高质量开发的MVF(最有价值的功能)。使用这样的迭代来部署质量更新,而不是腰部时间和资源对不合理的愿望和牺牲与质量。

自动化VS手动

自动化是长期的100%成功。所以如果你有资源自动化的东西,现在应该做。你可能认为“只需要5分钟,为什么我应该自动化?但让我计算这个。例如,它是5个开发人员的日常任务。 5分钟 5天 21天* 12个月= 6 300分钟= 105小时= 13.125天?5250 $。 如果你有40 000名员工,这将需要多少费用?

出去浪,学习新爱好

差异化工作可以增加心智能力,并提供新想法。所以,暂停现在的工作,出去呼吸一下新鲜空气,与朋友交谈,弹吉他等。 ps: 莫春者,春服既成,冠者五六人,童子六七人,浴乎沂,风乎舞雩,咏而归。------《论语.先进》。

在空闲时间学习新事物

时间: 2024-10-13 21:48:43

【译】 13简单的优秀编码规则(从我15年的经验)的相关文章

EAS BOS 根据编码规则获取编码

1 public static String getNumberByCodingRule(Context ctx, IObjectValue info, String orgUnitId) 2 throws Exception 3 { 4 ICodingRuleManager iCodingRuleManager = null; 5 if(ctx == null) 6 iCodingRuleManager = CodingRuleManagerFactory.getRemoteInstance(

WEB前端 [编码] 规则浅析

前言 说到前端安全问题,首先想到的无疑是XSS(Cross Site Scripting,即跨站脚本),其主要发生在目标网站中目标用户的浏览器层面上,当用户浏览器渲染整个HTML文档的过程中出现了不被预期的脚本指令并执行时,XSS就会发生.XSS有三类: 反射型XSS:发出请求时,XSS代码出现在URL中,作为输入提交到服务端,服务端解析后响应,在响应内容中出现这段XSS代码,最后浏览器解析执行,此过程就像一次反射: 存储型XSS:它与反射型XSS的差别仅在于--提交的XSS代码会存储在服务端,

身份证号码编码规则

18 位身份证号码编码规则:根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码.可以用字母表示如为 ABCDEFYYYYMMDDXXXR.其含义如下: 1. 地址码(ABCDEF):表示编码对象常住户口所在县(市.旗.区)的行政区划代码,按 GB/T2260 的规定执行. 2. 出生日期码(YYYYMMDD)

[转]ASCII UNICODE与UTF-8编码规则及区别

字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识. 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出 256种状态,这被称为一个字节(byte).也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从 0000000到11111111. 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一

UTF-8编码规则(转)

UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所以可以看出unicode是给出一个字符的范围,定义了这个字是码值是多少,至于具体的实现方式可以有多种多样来实现. UTF-8是一种变长字节编码方式.对于某一个字符的UTF-8编码,如果只有一个字节则其最高二进制位为0:如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的位

通用的业务编码规则设计实现

一.背景 每一个企业应用中不可避免的都会涉及到业务编码规则的问题,比如订单管理系统中的订单编号,比如商品管理系统中的商品编码,比如项目管理系统中的项目编码等等,这一系列的编码都需要管理起来,那么它们的应该如何编码的,具体的编码规则我们很多时候都是直接写在程序当中 常用的的编码有: 1.数据库自增长ID或最大值加1 2.GUID 3.时间戳 4.常量+自增长 5.常量+时间戳+自增长 6.根据单据属性编码 比如商品编码:第X是代码商品颜色,第Y位是代码商品产地 7.自定义函数处理返回 8.其它 添

通用的业务编码规则设计实现[转:http://www.cnblogs.com/xqin/p/3708367.html]

一.背景 每一个企业应用中不可避免的都会涉及到业务编码规则的问题,比如订单管理系统中的订单编号,比如商品管理系统中的商品编码,比如项目管理系统中的项目编码等等,这一系列的编码都需要管理起来,那么它们的应该如何编码的,具体的编码规则我们很多时候都是直接写在程序当中 常用的的编码有: 1.数据库自增长ID或最大值加1 2.GUID 3.时间戳 4.常量+自增长 5.常量+时间戳+自增长 6.根据单据属性编码 比如商品编码:第X是代码商品颜色,第Y位是代码商品产地 7.自定义函数处理返回 8.其它 添

转:从开源项目学习 C 语言基本的编码规则

从开源项目学习 C 语言基本的编码规则 每个项目都有自己的风格指南:一组有关怎样为那个项目编码约定.一些经理选择基本的编码规则,另一些经理则更偏好非常高级的规则,对许多项目而言则没有特定的编码规则,项目中的每个开发者使用他自己的风格. 所有代码都保持一致风格的大型库,更容易让人理解. 有许多资源是关于能让人采取的更好的编码规则的,我们可以通过以下方式学到好的编码规则: 阅读书或杂志 浏览网站 与同事交流 参加培训 另一个更有趣的方法是通过研究一个成熟的知名开源项目来得知其开发者是怎样编写代码的.

浅谈Python中的编码规则

注:本人用Python3.4作为学习版本,以下学习心得只适用于Python3.4. 之前拜读了金角大王Alex关于编码的解答,收获颇多.特此致谢,以下仅谈一谈作为一个初学者,对编码的理解. 我所了解的编码,大致分为两类:第一类是支持中文的编码集:第二类是支持英文的编码集.至于别国的编码集,暂且不做讨论. 常见编码:ASCII:Unicode:UTF-8:big5,:GB2312:GBK:GB18030 接下来,我对以上编码进行分类: 只支持英文和特殊字符的编码:ASCII ASCII是基于拉丁字