高效开发最佳实践全面指南

news2024/11/17 22:36:42

学会表达

  1. 在写复杂表达式时,可使用一个变量将表达式用变量的方式表示
  2. 函数、变量命名要语义化

学会复盘

  1. 花一些时间清理自己的代码
  2. 尽量以函数式进行编程

拥抱变化

  1. 在开发功能时,要考虑变化的情况。该死的产品经理
  2. 在封装时要考虑能否封装成一个 js 模块,后续只需要调用响应的 API 即可

学会修复 bug

  1. 遇到 bug 考虑为了会出现此缺陷,一定要关注上下文
  2. 学会正确使用 git commit 规范,严格要求自己(对于这一点,我是吃亏了,像是下面这种,遇到问题,完全找不到头绪。于是强迫写了一个简化版 commit 工具,说多了都是泪)

不要怕错

  1. 遇到自己不懂的逻辑,但又不敢改之前的代码,这是不行的。
  2. 大胆的修改,或者自己又更好的实现方式或者重构的方法可以及时修改

每个方法只关心一个上下文

  1. 一个函数只做一件事,将一个功能按照不同模块划分开

消灭注释

  1. 添加注释的前提要保证函数命名变量要语义化
  2. 任何需要添加注释的地方,99% 是因为这段代码不合理

学会命名

  1. 如果在编写一个函数时无法对其进行命名,那么这个函数的设计是不合理的。
  2. 对函数要进行准确的命名,这样更加有利用代码的可读性

学会提炼函数

  1. 提炼函数可以让我们将意图与实现分开
  2. 以意图命名函数,但是如果发现自己不能合理命名,此时不应该提炼这个函数,应该要考虑更多

学会返回

  1. 大部分函数可以使用 result 作为返回值,在函数开头定义,在函数结尾 return, 这样在下次看这段代码时就知道返回的是什么了。

考虑时机

  1. 在拿到需求时,很容易去实现功能,但是不会去调研,修改 bug 也是如此
  2. 在实现功能时要考虑清楚这个"动作"要在什么时候去触发,返回等等。

保持可拓展性

  1. 在拿到新需求时不要想着昨晚就 ok, 因为你无法保证在后面的某一分钟产品让你添加一个新的功能
  2. 要多使用 map 结构来保持功能的可拓展性,让程序走不同的代码逻辑

巧用模块

巧用方法

  1. 要学习的是方法,比如《重构》《代码整洁之道》
  2. 只要你的方法好,后面产出的代码才会好

择善其从

  1. 如果觉得你在做重复的工作时,一定是你的方法不对,而不是这个工作不对
  2. 任何一个人物都有可学习的地方, 我们需要做的是脑力活动,不存在像搬砖那样的情况
  3. 学习别人实现的源码,看别人的相同效果是如何实现的,择善而从自己去实现一个新的方案

学会参考

产品思维

  1. 产品思维是好的,能理解产品需求,能与产品进行有效沟通这是优势
  2. 学会跳出程序员的纬度,用户多学科交叉的能力。要了解产品提这个需求的目的
  3. 在不了解需求的情况下要多于产品进行交流,可以带着方案去找产品讨论

适当做减法

学会做需求

  1. 接到新一个新需求,调研,考虑这些方法是否可行,否则做到一半要换方案,就只能自己加班
  2. 在明确了自己的方案并有一个想法的时候,多去尝试,尝试使用它,如果发现不太合适,也没关系,只要在里面学到了东西,那时间就没有白费。
  3. 做在需求时不能局限于这个需求,要有可拓展性, 眼光要放长远

学会问问题

  1. 学会简而言之的把问题描述清楚
  2. 在问问题时,可以带着自己的方案去询问

多用快捷键

  1. 平时要养成"快"的习惯

一段时间干好一件事

动手的前提:过一遍接口的文档

快速定位问题:

  1. 看上下文 -> 看 issue -> 看文档 -> 看文章 -> 看源码

衡量代码好坏有两个非常重要的标准就是:运行时间和占用空间

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

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

相关文章

【斯坦福CS144】Lab5

一、实验目的 在现有的NetworkInterface基础上实现一个IP路由器。 二、实验内容 在本实验中,你将在现有的NetworkInterface基础上实现一个IP路由器,从而结束本课程。路由器有几个网络接口,可以在其中任何一个接口上接收互联网数据报。路由…

Expectation-Maximization Algorithm(EM算法)

EM算法(Expectation-Maximization Algorithm,期望最大化算法)是一种迭代优化算法,主要用于在含有隐变量(未观测变量)或不完全数据的概率模型中,估计参数的最大似然估计(Maximum Like…

【Kubernetes】常见面试题汇总(五十七)

目录 125. K8S 创建服务 status 为 ErrlmagePull? 126.不能进入指定容器内部? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题目 …

【时时三省】(C语言基础)指针笔试题7

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 笔试题7 a是一个数组 a每个元素的类型是char* 它是一个指针数组 它有三个字符串 初始化了三个字符串 这个时候会产生三个字符串的首地址 第二行代码 a数组名 相当于数组名 第一个首元素…

k8s的pod管理及优化

资源管理介绍 资源管理方式 命令式对象管理:直接用命令去操作kubernetes资源 命令式对象配置:通过命令配置和配置文件去操作kubernets资源 声明式对象配置:通过apply命令和配置文件去操作kubernets资源 命令式对象管理: 资源类…

Linux驱动---ADC驱动

文章目录 一、电路图二、将ADC标准驱动选配到内核三、修改设备树文件四、实验现象 一、电路图 由电路图可知,两个电路测量分别通过ANA0和ANA1两个ADC通道完成 查看芯片手册可知,ANA0可作为ADC1的通道0和通道1,或者ADC2的通道0和通道1. ANA1…

如何在 ONLYOFFICE 文档中,将插件添加到右侧面板

通过自定义工具,可以提高您的工作效率。最新更新后,ONLYOFFICE 插件提供了更大的灵活性。在上一篇文章中,我们演示了如何将插件显示为选项卡。您也可以将插件面板放置在编辑器的左侧或右侧。在这篇文章中,我们将深入探讨此功能&am…

选型工单管理系统,从原理到应用全面解读

工单管理系统提升客户支持效率,优化内部协作,强化数据分析。选型需明确需求,比较系统功能和特性,评估试用后选择最适合的系统。ZohoDesk凭其多渠道支持、智能分配、自动化工具、协作工具和数据分析能力,成为企业优选。…

C语言 | Leetcode C语言题解之第449题序列化和反序列化二叉搜索树

题目: 题解: #define MAX_NODE_SIZE 10000void postOrder(struct TreeNode *root, int *arr, int *pos) {if (root NULL) {return;}postOrder(root->left, arr, pos);postOrder(root->right, arr, pos);arr[(*pos)] root->val; }struct Tree…

界面控件DevExpress中文教程 - 如何拓展具有AI功能的文本编辑器(一)

本文重点介绍了DevExpress在近年来最热门领域——人工智能(AI)和自然语言处理(NLP)的改进! NLP是人工智能的一个分支,它允许计算机与人类语言进行交互,这包括以有意义/有用的方式理解、解释、生成和回应文本(和语音)的能力。基于NLP的功能允…

ESP32-C3实现GPIO输入-判断高低电平

在 ESP32-C3 上实现 GPIO 输入并判断电平状态相对简单。以下是如何在 Arduino IDE 中配置 GPIO 作为输入,并在循环中检查电平状态的步骤: 1. 定义 GPIO 管脚 首先,定义你将要使用的 GPIO 管脚号。 #define GPIO_INPUT_PIN 2 // 定义一个 GP…

DAMA数据管理知识体系(第13章 数据质量)

课本内容 13.1 引言 语境图 图13-1 语境关系图:数据质量业务驱动因素 1)提高组织数据价值和数据利用的机会。2)降低低质量数据导致的风险和成本。3)提高组织效率和生产力。4)保护和提高组织的声誉。 提机会、降成本、增…

django(三):创建第一个django的app和url的两种获取参数的方式

一.创建第一个django的app 1.1 在终端根目录下执行命令 ## 创建一个app python manage.py startapp <app名称>例&#xff1a;python manage.py startapp book1.2创建成功后生成文件如下 二.url两种获取参数的方式 book/views.py from django.shortcuts import …

HTB:Markup[WriteUP]

目录 连接至HTB服务器并启动靶机 1.What version of Apache is running on the targets port 80? 2.What username:password combination logs in successfully? 使用Yakit并使用TOP1000字典对密码进行爆破 3.What is the word at the top of the page that accepts use…

二叉搜索树(BST)简单讲解

概念&#xff1a; 二叉搜索树是一棵二叉树或者空树&#xff0c;又名二叉排序树&#xff0c;英文简写为 BST &#xff08;Binary Search Tree&#xff09; 性质&#xff1a; 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值若它的右子树不为空&#xf…

使用C++写一个自己定义的图像格式,写入磁盘

看到OpenCV的Image类实例一副图像&#xff0c;觉得挺好玩&#xff0c;因此想自己定义一个自己的图像类&#xff0c;让后完成写盘&#xff0c;并且读取出来。没有办法&#xff0c;再利用一下OpenCV的imshow显示一下&#xff0c;看看和自己的预期是否一样。 首先要先定义一个图像…

养猫家庭有什么宠物空气净化器推荐吗?哪款吸毛效果最好?

不知道你们家的猫最近有没有大量掉毛&#xff1f;还是今早穿短袖感觉到有点冷&#xff0c;我才意识到秋天到了&#xff0c;新一轮的换毛季又来了。不仅和猫咪玩耍的时候可以“采摘”不少毛毛&#xff0c;而且家里的衣服上、地板上也被毛发入侵&#xff0c;感觉用不了多久&#…

Python基础之List列表用法

1、创建列表 names ["张三","李四","王五","Mary"] 2、列表分片 names[1]&#xff1a;获取数组的第2个元素。 names[1:3]&#xff1a;获取数组的第2、第3个元素。包含左侧&#xff0c;不包含右侧。 names[:3]等同于names[0:3]&…

DAY3 JAVA基本语法

了解注释 注释是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便理解程序的。 注释不影响程序的运行,编译后的class文件夹没有内容 字面量 在Java中,字面量(literal)是用来表示源代码中常量值的符号。 这些字面量可以直接出现在Java源代码中,并且它们代…

搜狗翻译体验,2024四大翻译工具解析!

为了满足广大用户的需求&#xff0c;市面上涌现出了众多优秀的翻译工具&#xff0c;福昕在线翻译、福昕翻译客户端、海鲸AI翻译、搜狗翻译等。今天&#xff0c;我们就来对比一下这些翻译工具&#xff0c;看看它们各自的特点和优势。 福昕在线翻译&#xff1a;专业精准&#xf…