怎么才能写出好的代码

news2024/12/23 15:52:41

前言

这是一篇如何写好代码的水文,因为最近输出了不少干货,但是大家点赞太少,我越来越没有激情了,那就放放水啦。所以如果大家觉得我的分享对你有用,动动发财小手,赞起来吧!虽然是一篇水文,但是我依然建议你能听我唠叨唠叨,说不定还是会有共呜的。

关于好代码

能跑不就报错是好代码?

能跑不报错的的代码只能算是基本合格,如果总分是100分,这只能算是60分。小伙伴,如果你是这样想的:能跑不就行了,那还真不挑不出什么毛病,毕竟你也是及格了,完成了业务方的需求。但我并建议你这么做,编程之路太长了,不能刚开始就给自己画一个圈,固步自封了。

性能至上的代码是好代码?

能在自己写的程序上追求至少性能的人,是值得欣赏的,至少是一个有追求的人,但是一味追求性能也不能算是好代码。我去隔壁村串个门,给我造一架宇宙飞船干嘛,一个自行车就够了,所以极致的性能未必就是好代码,除非业务方有这样的需求。那么性能不重要吗?性能当然重要,代码最终是要给机器执行的,但是首先是给人看的,所以如果让我在高效的性能和良好的阅读性之间做选择的话,我会先选良好的阅读性,其次才是高效的性能。

各种技巧的堆砌是好代码吗?

熟练掌握了很多优秀的编码技巧的人,比如lambda表达式,肯定也是对技术有追求的人,这很好。但是有没有想过,一个项目通常是有多个人协作完成,如果其他人,对一些新颖的技巧并没有掌握熟练,他在阅读你的这些技巧的时候,必然要花费更多的时间,你的本意实际是想用新颖的技巧来提高效率,实际上只是提高了自己的效率,可能拉低了团队的整体效率。技巧这种东西,归根结底是锦上添花的东西,会用说明能力比较强,不会用也并不说明能力就差,因此,我不认为技巧是好代码的标准之一,我始终坚持“大家好才是真的好”。如果你能把一个优秀的技巧分享给更多的人,让更多的人都掌握了,你的强就已经超越技巧本身了。

什么是好的代码?

是不是要疯了,那到底什么才算是好代码?我不是学术派,我不认为存在有固定好代码的标准,适合自己的就是最好的,鞋合不合脚,只有自己知道。就比如我所就职的公司,是一家外包性质的公司,服务好好客户是我们的第一准则,能够满足最短的时间交付、最好质量的标准就是好标准。没有什么比客户满意,及时签字验收,更重要的事了。在平时的实际开发中,也会制定一些编码规范,这些规范的出发点也是围绕业务方展开的,客户就是上帝,这和一些有固定产品线的公司有所不同。

当然,外包性质并妨碍对优秀技术标准的追求,我们鼓励创新,鼓励进步,但一定是在服务好客户的前提下。其实不管是什么场景,好的东西应该是能给人带来实在好处的,才是真的好。如果一个优秀的技术标准,不能给客户带去效益,也不能提高生产力,那就让它待在纸上吧。能抓老鼠的猫才是好猫,但波斯猫只适合心跳舞。

怎么写出好的代码

最近研究了几部网文小说,突发灵感,如果用网文小说的套路去写代码,那一定是能写出来好代码。读过网文小说的小伙伴一般都知道网文小说有几个特点:

  • 主人公的名字起好听一点,如欧阳烟、西门吹雪、司马长风、萧晨;

  • 段落小一些,传统小说一段动不动都半页、一整页,网文小说里大段落基本没有,对话、一两句就是一段;

  • 情节紧凑,爽点很多,满足了绝大多数人的幻想;

那么写代码的时候,是不是也可以学习一下这个套路:首先,把类名、属性名、方法名、变量名起得优雅一点,别动不动就a1、a2,还有m、n的,谁知道这啥意思,基本让人能见名知义吧,太长的名字用一下缩写,别不动一个类名几十个字符;还有那些英文、拼音混着来的起名的,见着这种的简直锤死你的心都有;

其次,就是方法的长度,别动不动写一个方法就800、900行,能不能学习一个网文小说中的段落部局,根据业务稍微封装一下,把每个方法控制在100行,最多150行以内,起码后续阅读的时候舒服一点;

再者,就是多搞点注释,特别是逻辑比较复杂的地方,代码逻辑要清晰,注释也要表达清楚;

今天就水到这吧。嗨,小伙伴,共鸣了没?

没共鸣也没关系,这是好事。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/144631.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

谷粒学苑项目-第一章数据库设计与项目结构-1.1

一、数据库设计 1、数据库 guli2、数据表 CREATE TABLE edu_teacher (id char(19) NOT NULL COMMENT 讲师ID,name varchar(20) NOT NULL COMMENT 讲师姓名,intro varchar(500) NOT NULL DEFAULT COMMENT 讲师简介,career varchar(500) DEFAULT NULL COMMENT 讲师资历,一句话说…

Java--经典九道练习题

文章内容 一、用户登录 二、遍历字符串 三、统计字符个数 四、拼接字符串 五、字符串反转 六、金额转换(较难) 七、手机号屏蔽 八、身份证号码信息查看 九、游戏骂人敏感词替换 一、用户登录 一直正确的用户名和密码,请用程序实现模…

获取当前进程的启动程序

本文迁移自本人网易博客,写于2012年3月23日,获取当前进程的启动程序 - lysygyy的日志 - 网易博客 (163.com)1.获取当前进程的启动程序CString sFile;GetModuleFileName(NULL, sFile.GetBuffer(), 255);2.获取文件类型3.Autocad文档交互时,使用…

Camera | 1.Camera基础知识

一口君最近在玩瑞芯微的板子,之前写了几篇基于瑞芯微的文章,大家可以学习一下。 《瑞芯微rk356x板子快速上手》 《Linux驱动|rtc-hym8563移植笔记》 《Linux驱动 | Linux内核 RTC时间架构》 《瑞芯微 | 摄像头ov13850移植笔记》 《rk3568 | 瑞芯微平…

图的生成树与生成森林

文章目录连通图与连通分量强连通图与强连通分量图的连通性判断生成树深度优先生成树邻接表邻接矩阵广度优先生成树邻接表邻接矩阵生成森林获取边弧的权值源代码连通图与连通分量 在无向图中, 若从顶点v到顶点w有路径存在, 则称v和w是连通的. 若图G中任意两个顶点都是连通的, 则…

动态规划--矩阵链相乘问题

明确原始问题A[1:n]:计算矩阵链 所需的最小乘法次数。 (1)是否满足最优子结构,问题的解是否包含子问题的优化解? 若计算A[1:n]的优化顺序在k处断开矩阵链,即A[1:n]A[1:k]A[k1:n],则在A[1:n]的优化顺序中&a…

ReFactor GNN:从消息传递角度重新审视FMs

分享嘉宾 | 陈艺虹 文稿整理 | William Knowledge Graph Completion(KGC) 知识图谱一般会有多个节点,包括性别、国家等各种各样的节点(也可理解为实体),节点之间会有不同的关系,可以通过其他的一些节点预测出当前节点的其他信息。恢复这些信…

2023/1/6 Vue学习笔记-1

尝试 Vue.js 最简单的方法是使用 Hello World 例子。你可以在浏览器新标签页中打开它&#xff0c;跟着例子学习一些基础用法。或者你也可以创建一个 .html 文件&#xff0c;然后通过如下方式引入 Vue&#xff1a; <!-- 开发环境版本&#xff0c;包含了有帮助的命令行警告 -…

设计模式——建造者模式

文章目录模式理解基本概念使用示例建造者模式延展模式理解 建造者模式&#xff08;Builder Pattern&#xff09;&#xff1a;建造者模式是一种对象创建型模式。将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。这句话理解起来太抽象了&…

B. Dima and a Bad XOR(构造 + 异或性质)

Problem - 1151B - Codeforces 来自Kremland的学生Dima有一个大小为nm的非负整数矩阵a。 他希望从矩阵的每一行中选择一个整数&#xff0c;以便所选整数的按位互斥或严格大于0。帮助他! 形式上&#xff0c;他想选择一个整数序列c1,c2&#xff0c;…&#xff0c;cn(1≤cj≤m)&am…

Integer包装类详解(java)

文章目录&#x1f4d6;前言&#xff1a;&#x1f380;包装类概念&#xff1a;&#x1f380;包装类分类&#xff1a;&#x1f380;包装类integer介绍&#xff1a;&#x1f387;自动装箱和自动拆箱问题【⚠注意面试常考点】&#x1f387;Integer常用方法&#xff1a;&#x1f4d6…

2023真无线蓝牙耳机推荐:高性价比真无线蓝牙耳机各价位蓝牙耳机推荐!

2023年了&#xff0c;蓝牙耳机赛道依然很卷&#xff01;性价比是反映物品可买程度的一种量化的计量方式。现如今&#xff0c;蓝牙耳机市场上主打高性价比的不在少数&#xff0c;而高性价比的东西往往更能精准抓住用户“痛点”&#xff0c;从而受到了不少用户的欢迎。 既然高性…

面试20分钟就完事了,问的实在是太......

干了两年外包&#xff0c;本来想出来正儿八经找个互联网公司上班&#xff0c;没想到算法死在另一家厂子。 自从加入这家外包公司&#xff0c;每天都在加班&#xff0c;钱倒是给的不少&#xff0c;所以也就忍了。没想到11月一纸通知&#xff0c;所有人不许加班&#xff0c;薪资…

Spring Boot整合Junit

系列文章目录 Spring Boot[概述、功能、快速入门]_心态还需努力呀的博客-CSDN博客 Spring Boot读取配置文件内容的三种方式_心态还需努力呀的博客-CSDN博客 该系列文章持续更新中~ 目录 系列文章目录 前言 一、搭建SpringBoot工程 二、引入starter-test起步依赖 三、编…

2022年全国研究生数学建模竞赛华为杯F题COVID-19疫情期间生活物资的科学管理问题求解全过程文档及程序

2022年全国研究生数学建模竞赛华为杯 F题 COVID-19疫情期间生活物资的科学管理问题 原题再现&#xff1a; 一、背景介绍   进入2022年以来全国范围内陆续出现了多次较大规模疫情爆发事件[1-2]。在大规模疫情爆发期间由于我国采用封闭式管理方式来实现疫情的快速清零&#x…

Vue组件之间的通信(组件之间的数据传递)

一、Vue组件之间的关系 父子关系&#xff1a;A组件和B组件、B组件和C组件、B组件和D组件​ 兄弟关系&#xff1a;C组件和D组件​ 隔代关系&#xff1a;A组件和C组件、A组件和D组件 二、父组件向子组件传递数据 通过props方式向子组件传递数据&#xff08;在子组件中添加props属…

为什么选型低代码平台时,需要注重私有化部署能力?

编者按&#xff1a;低代码平台&#xff0c;目前分为私有化部署和公有化部署&#xff0c;企业为什么倾向于选择私有化部署的低代码平台&#xff1f;本文从私有化部署的概念出发&#xff0c;分析了私有化部署的优势&#xff0c;并进一步介绍了支持私有化部署的老牌低代码平台。关…

工控安全-使用Metasploit攻击Modbus设备

文章目录实验内容环境介绍实验开始开启Modbus从站主机和从站服务利用Metasploit工具扫描Modbus从站中的ID访问从站2的寄存器数据修改从站4线圈值可选择的action实验内容 利用Metasploit工具针对Modbus协议进行攻击&#xff0c;读取Modbus从站寄存器数值以及修改Modbus从站寄存…

应届生学习Java八个月,offer年薪28W,这一年我经历了什么?

自我介绍 首页和大家介绍一下我&#xff0c;我叫 阿杆&#xff08;笔名及游戏名&#x1f923;&#xff09;&#xff0c;19级本科在读&#xff0c;双非院校&#xff0c;主修软件工程&#xff0c;学习方向是后端开发&#xff0c;主要语言Java、Python&#xff0c;今年秋招拿到了…

三、Gtk4-Widgets(1)

1 GtkLavel&#xff0c;GtkButton and GtkBox 1.1 GtkLabel 在前一节中&#xff0c;我们创建了一个窗口并将其显示在屏幕上。现在我们进入下一个主题&#xff0c;在这个窗口中添加部件。最简单的部件是GtkLabel。它是一个包含文本的部件。 1 #include <gtk/gtk.h>2 3 s…