据传是以为20年开发的old程序员的20条原则,看到第七条开始想要分享的

本文主要是介绍据传是以为20年开发的old程序员的20条原则,看到第七条开始想要分享的,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如题,简言。 在这里我就只贴出原则相关信息:

1.不要纠结于开发工具——不管是库、编程语言还是平台。尽可能使用原生的构件。不要歪曲技术,也不要歪曲了问题本身。为要解决的问题选择合适的工具,否则你要为你所选择的工具重新安排你的工作。

2.你写的代码不是给机器看的,而是给你的同事和未来的你看的(除非你写的是一次性代码或汇编代码)。写代码的时候要考虑一下初级开发者,他们会把你的代码作为参考。

3.优秀的软件是协作开发的结果。高效沟通,进行开放式的协作。信任他人,并让他人也信任你。尊重他人胜过尊重代码。以身作则,把你的追随者变成领导者。

4.分而治之。为分离的关注点开发单独的低耦合模块。进行单独的模块测试和集成测试。尽可能按照实际情况测试,同时也要测试到各种边界情况。

5.不要把自己与代码捆绑在一起,要想办法让其他人也能修改你的代码或者添加新的功能,这样你才能更容易脱身去参与其他项目,或者去其他公司。不要捆绑自己,否则你很难成长。

6.安全性是分层的,每一层需要进行单独的评估,同时又与整体相关。风险是一个业务决策,与脆弱性和概率有直接的关系。每一个产品或组织都有不同的风险偏好(为了获得更大的收益,他们愿意承担风险)。通常这三个关注点之间存在相互冲突:用户体验、安全性和性能。

7.要意识到每一行代码都有其生命周期,它们最终都会死掉。有时候,一些代码会在发布之前就死掉,所以要学会放手。代码可以分为三种:一种是核心代码,就像汽车的引擎,没有了它,产品就毫无意义;一种是必要的代码,就像是汽车的备胎,平时用得少,但一旦需要,它决定了系统的成败;一种是增值的代码,就像汽车的杯托,如果有那是再好不过,但如果没有也不会影响产品。

8.不要把你的个人标识融入到代码里,人和代码应该是分离的。不要把其他人对代码的评价与你自身联系到一起,在评价他人的代码时也要十分谨慎。

9.技术债务就像快餐一样,偶尔欠下一点技术债务是可接受的,但如果你习惯了这样,它会毁掉你的产品(而且是以让你措手不及的方式)。

10.在寻找解决方案时,请按照这样的优先级进行决策:安全性 > 可用性(可访问性和用户体验)> 可维护性 > 简单性(开发者体验)> 简洁性(代码量)> 性能。但不能盲目照搬,而是要根据产品的特点进行取舍。你积累的经验越多,就越是能够在这些因素之间做出权衡。例如,在设计游戏引擎时,性能享有最高的优先级,但在开发银行应用程序时,安全性则最为重要。

11.拷贝粘贴是滋生 bug 的温床。对你所拷贝或导入的东西加以审查,bug 一般会藏身在复杂性中。依赖项复杂没有关系,但不能让它存在于代码中。

12.不要只顾着写正常的代码,处理异常的代码也要好好写。让人们明白为什么会发生异常、如何检测到的以及怎样解决。对所有的系统输入(包括用户输入)进行验证:尽早失败,并尽可能从错误中恢复。我们要假设用户手里握着一把枪:你努力让用户输入一些其他的东西,而不是让他们的子弹射在你的脑门上。

13.不要使用依赖项,除非使用它们的成本比你自己写代码的成本低很多。因为使用依赖项要导入、维护、处理 bug,在必要的时候还要进行重构,这些都是成本。

14.远离“炒作驱动开发”,但你要去了解它们,做一些尝试。

15.走出舒适区,每天都要学习。把学到的东西分享出来。如果你以大师自居,就不是在学习。接触更多的编程语言、技术、文化,保持一颗好奇心。

16.好代码不需要注释,而优秀的代码提供了良好的注释,可以让任何一个原先没有参与代码演进、试错和需求过程的人更容易阅读、修改它。

17.尽量避免使用重载、继承和隐式的智能特性。使用纯函数,它们更容易测试和诊断,否则的话就使用类。实现不同功能的函数要使用不同的名字。

18.在彻底了解问题之前不要急着写代码。花在倾听和了解问题上的时间通常比花在写代码上的时间要多。在写代码之前要先了解问题域。问题就像迷宫一样,你要循序渐进,反复进行“编码 - 测试 - 改进”,直到把问题解决为止。

19.不要尝试去解决不存在的问题。不要进行投机性编程。只有在确定代码确实需要具备扩展性之后才让代码具备可扩展性。通常情况下,当代码被扩展之后,你会发现问题会变得与原先认为的不一样了。

20.大家一起开发软件会更加有趣。建立可持续发展的社区。倾听,激发灵感,学习,分享。

这篇关于据传是以为20年开发的old程序员的20条原则,看到第七条开始想要分享的的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/629489

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

基于Python开发批量提取Excel图片的小工具

《基于Python开发批量提取Excel图片的小工具》这篇文章主要为大家详细介绍了如何使用Python中的openpyxl库开发一个小工具,可以实现批量提取Excel图片,有需要的小伙伴可以参考一下... 目前有一个需求,就是批量读取当前目录下所有文件夹里的Excel文件,去获取出Excel文件中的图片,并

Python解析器安装指南分享(Mac/Windows/Linux)

《Python解析器安装指南分享(Mac/Windows/Linux)》:本文主要介绍Python解析器安装指南(Mac/Windows/Linux),具有很好的参考价值,希望对大家有所帮助,如有... 目NMNkN录1js. 安装包下载1.1 python 下载官网2.核心安装方式3. MACOS 系统安

基于Python开发PDF转PNG的可视化工具

《基于Python开发PDF转PNG的可视化工具》在数字文档处理领域,PDF到图像格式的转换是常见需求,本文介绍如何利用Python的PyMuPDF库和Tkinter框架开发一个带图形界面的PDF转P... 目录一、引言二、功能特性三、技术架构1. 技术栈组成2. 系统架构javascript设计3.效果图

基于Python开发PDF转Doc格式小程序

《基于Python开发PDF转Doc格式小程序》这篇文章主要为大家详细介绍了如何基于Python开发PDF转Doc格式小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用python实现PDF转Doc格式小程序以下是一个使用Python实现PDF转DOC格式的GUI程序,采用T

Java嵌套for循环优化方案分享

《Java嵌套for循环优化方案分享》介绍了Java中嵌套for循环的优化方法,包括减少循环次数、合并循环、使用更高效的数据结构、并行处理、预处理和缓存、算法优化、尽量减少对象创建以及本地变量优化,通... 目录Java 嵌套 for 循环优化方案1. 减少循环次数2. 合并循环3. 使用更高效的数据结构4

使用Python开发一个图像标注与OCR识别工具

《使用Python开发一个图像标注与OCR识别工具》:本文主要介绍一个使用Python开发的工具,允许用户在图像上进行矩形标注,使用OCR对标注区域进行文本识别,并将结果保存为Excel文件,感兴... 目录项目简介1. 图像加载与显示2. 矩形标注3. OCR识别4. 标注的保存与加载5. 裁剪与重置图像