编码规则是程序编码要遵循的规则。注意代码的正确性、稳定性和可读性。而对于这些条条框框,一些不拘小节的程序员往往漠不关心,往往会导致一些意想不到的问题和情况,让大家苦恼不已。现在,小新整理了一份“命令”清单:作为现代开发者必须做和不应该做的清单。查看下面的5个,并讨论为什么您和您的团队应该采用它们。1.先找出问题,再找出解决方案。每个人都有自己喜欢用的东西:Redis、MySQL等。没关系,有偏好是再正常不过的事情了。但是当这些偏好成为要求时,麻烦就来了;每个问题都可以通过这个镜头来看待,并避免出现偏差。不要被愚弄,这不仅仅是个人的罪过,组织也应该对此感到内疚。许多公司要求使用某些技术、库或工具,但往往没有考虑或“实地”投资,迫使开发人员和运营工程师实际使用或实施这些技术。这是我长期以来对企业架构和对实际编写代码的凡人的神一般的力量不满意的部分。结构性群体往往决定公司将使用某种技术或产品(Kubernetes、OpenShift、AWS等),而没有充分了解组织内部的问题以及这些技术旨在解决什么问题。我在CapitalOne工作时亲眼目睹了这一点,当时我们的架构团队决定使用Kubernetes,但对于那些必须实际开发和实施系统和工具或将在其上运行的应用程序的人来说,这并不重要真正的意义。通常,架构(或其堂兄,企业安全)是阻止他们获得所需内容的原因。如果他们——架构和安全——首先了解他们需要解决的问题,然后决定使用哪个工具,事情可能会大不相同,而且可能会更顺利。资料来源:Unsplash2。问问题听上去简单、容易,还有些幼稚,但实际上很难。如果您遇到不明白的地方,请提出问题。想知道这是为什么吗?问问题。想知道项目的发展方向吗?问一个问题。仅仅因为你问了一个问题并不意味着你会得到你想要的答案,或者你根本不会得到任何答案。但如果不问这个问题,就永远找不到答案。加入新团队或开始新工作最好的事情之一就是提出所有问题。拔出FNG卡就像是“摆脱看起来很愚蠢”的卡。以类似这样的方式开始你的问题:“嗨,我对这一切都不熟悉,所以这是一个愚蠢的问题......”这是一个很好的方式来找出你想知道的东西,同时挑战现状。您会惊讶于有多少组织“出于某种原因”做事。通常是因为前阵子有人这样设置,但没有人去修改。通过提出问题、挑战假设和挖掘信息,我们让我们的团队、团体、个人和生活变得更美好。通过提出这样的问题,我已经能够从基础架构中获取整个层。谁知道您将进行哪些修改。3.为工作使用好的工具(除非你使用Java)我不想这么说,但我真的看不出在当今的行业中使用Java的理由。Java确实有一些差异需要应对,我不否认,但这些差异并不真正适用于当今的工程环境。以下是使用Java的一些优点:它可以在任何地方运行。自动内存管理(及其垃圾收集器)。JVM堆栈的广泛社区和框架/库/插件。让我们现实一点:您看到有多少软件商店将Java用于在多种体系结构、操作系统等上运行的代码库?至少不是大多数。如今,Java在内存管理领域并不孤单。Go和Rust都有某种垃圾回收机制,Python使用引用计数,许多其他语言也有这种机制。到目前为止,Java并不是唯一拥有庞大而活跃的社区的语言。Rust和Python拥有非常活跃和乐于助人的社区,而Go拥有不断壮大的社区。然而,与Java的其他权衡是不值得的,至少在我看来是这样。因为Java依赖于JVM,所以每个Java应用程序都会产生自动调整大小的成本。这在谈论具有千兆字节可用空间(不到几百MB空间)的服务器时可能不值一提,但在高度容器化的世界中,几百MB是天文数字。(注意Python也有这个缺点。)使用Go、Rust(和其他)编译的、静态链接的语言,可以有非常小和精简的容器,通常是一个4MB的二进制文件。这对于网络吞吐量很重要的大型组织尤为重要,下载新的400MB或5MB容器非常容易。此外,由于JVM和Java是JIT编译的,因此运行Java代码会影响性能。对于低延迟、高吞吐量的应用程序,或者服务器装箱很重要的地方,将字节码转换为系统调用的性能损失是不值得的。所有这些就是为什么使用正确的工具来完成手头的工作如此重要的原因。您不想使用BASIC将人送上月球,也不想使用Java进行高性能计算——然后找到与您需要解决的问题相匹配的解决方案。图片来源:Unsplash4。不要使用Monorepos如果您不熟悉Monorepo概念(羡慕你),请允许我解释一下:Monorepo不是一个应用程序的多个源代码存储库,而是将所有内容放在一个存储库中。这有利于多个项目,但也有代价:必须使用Subversion,而不是Git。尽管有很多优点,但Git并不像Subversion那样支持稀疏检查。稀疏检出检出较大树的单个目录,而不是像Git那样检出整个树。这意味着多个人或团队可以在树的不同部分上工作而不会重叠。您不能使用Git执行此操作,因此在使用Git作为源代码管理时,您应该为离散的应用程序使用单独的存储库。5、不要方圆凿子像很多美好的事物一样——做爱、团队合作、精密螺纹机螺丝,当它们状态良好时,一切都很容易。我们的生活充满了反馈,无论是明确的还是不明确的。打字时手指在手指间敲击按键的方式,按下想象中的平面按钮时手机轻微的“咔嗒”声,每当我决定吃冰淇淋时,我的乳糖不耐症胃100%反抗;这些都是反馈的形式。他们会告诉我们什么时候一切顺利、正常,或者非常糟糕,什么时候一切都一样。我们以前都去过那里,在一个项目上工作,胃里的感觉不断告诉我们我们应该改变数据库以更好地支持数据模型。如果你只使用关系数据库和ORM,你可以编写大量的数据库内数据,而无需编写大量脆弱的数据转换代码。或者,在找到新团队或新工作后,由于某种原因,您与同事不再合得来。不是你不喜欢他们,也不是他们不喜欢你,只是某些性格的人在一起工作得更好。没必要强求。找到更好的解决方案并继续前进。与经理讨论更换团队的问题。找到一个ORM并开始工作。停止你正在做的事情,做一些让事情变得更容易的事情。将方钉/圆孔问题留给NASA书呆子。来源:Unsplash相信,如果你能掌握这5条代码规则,你的编程之旅会更顺畅、更轻松、更愉快。
