当前位置: 首页 > news >正文

40个改变你编程技能的小技巧!

40个改变编程技能的小技巧

1、将大块代码分解成小函数

2、今日事今日毕,如果没毕,就留到明天。

如果下班之前还没有解决的问题,那么你需要做的,就是关闭电脑,把它留到明天。
中途不要再想着问题了!

3、YAGNI原则

「You aren’t gonna need it!」
你自以为有用的功能,实际上是用不到的。除了要求的核心功能,其他功能一概不要部署。
这一原则的核心思想是,尽可能快、尽可能简单的将软件运行起来。

4、不必全知全能,但基础一定要扎实

比如学习一些基础知识,SOLID原则,如何写干净的代码等等。

5、KISS原则

「Keep it simple,stupid.」or「Keep it stupid simple.」,一种程序设计原则。
大多数系统往往「最简单」,运行效率最高,但实际操作起来并不简单。

6、别想太多

7、被问题/Bug卡住时,walk away!

不过还是要记得回来。

当你走在去上班、去厕所、去散步的时候,也许就能想到解决方法。
尤其是在与客户、同事生气时,甚至关乎你工作去留的时候,效率会更高。

8、学会写测试代码TDD

TDD是一个软件开发过程,它依赖于重复一个很短的开发周期:写一个测试,运行所有的测试,看看新的测试是否失败,写一些代码,运行测试,重构代码,重复。

9、先分解问题再开始写代码

不要不知道怎么做就开始写代码。

10、代码不要死记硬背

要理解逻辑。

11、学好用好Stack Overflow

如果你复制粘贴一个Stack Overflow解决方案,请一定要确保已经理解了它。

12、不要「光学不练」

如果你想学点什么,就去练习,光学是不够的。

13、与小伙伴互相审查代码

研究别人的代码,让别人时常研究你的代码。
互帮互助,共同进步。

14、Don’t Reinvent The Wheel

「不要重新发明轮子。」
充分利用已有的经验和成果,避免不必要的投入和浪费。

15、你的代码是最好的文档

16、懂得如何搜索

对于这一点,你需要有经验以及读很多书,才知道要找什么东西。

17、写代码时要之后维护考虑

你的代码将来需要你自己或者别人来维护。
所以,写代码的时候要考虑到读者,而不是想成为最聪明的人,让它读起来就像在读一个故事。

18、复制粘贴

用谷歌、百度解决错误的最好方式就是「复制粘贴」。

19、不要放弃

到最后,不管用什么方式,问题肯定会解决。

20、休息、休息再休息

解决问题的最好方法是有一个安稳的心态。

21、学习软件设计模式

设计模式是软件设计中常见问题的解决方案。每一种模式就像一个蓝图,你可以自定义来解决代码中常见的设计问题。(不要重复发明轮子。)

22、使用集成工具

尽可能实现自动化。

23、Do code katas.

「Code kata」是编程中的一种练习,可以帮助程序员通过练习和重复来提高他们的技能。

24、依赖注入是一个要求

编程到一个接口,而不是implementation。
所谓依赖注入,就是组件之间的依赖关系由容器在应用系统运行期来决定,也就是由容器动态地将某种依赖关系的目标对象实例注入到应用系统中的各个关联的组件之中。

25、重构-测试-重构

重构是一种对现有代码进行重组的技术,在不改变其外部行为的前提下,改变和改进其内部结构。

26、及时寻求帮助

不要浪费时间。

27、Practice makes perfect.

业精于勤。

28、不必太在意评论

虽然有时评论可以帮到你,但不要太过在意。他们可能已经过时了。

29、了解你的开发环境

了解你的开发环境,并invest一个足够强大的环境,如,IntelliJ。

30、复用组件

31、考虑相关限制

在开发网络应用时,要考虑到移动优先以及相关的功率和带宽限制。

32、不要过早优化或重构

更重要的是尽快拥有一个最低限度可行的产品。

33、不要投机取巧

千万不要为了节省几分钟的时间而选择效率低下的捷径方式。
「Every time you code, give your best!」

34、遵循规定的标准

35、用户不是技术人员

当你开发你的UI时,需要考虑到这一点。

36、坚持使用Github或bitbucket

可以进行小规模、频繁的git提交。

37、记录所有关键部分

记录系统日志比调试代码更好。

38、风格保持一致

如果你使用一种风格,请总是使用相同的风格。
如果你和更多的人一起工作,对所有的团队都使用相同的风格。

39、Don’t stop learning

但比起学习新语言或框架,更要注重学习软件开发的基础知识。

40、patience and love

最后,对你正在做的事情保有足够的耐心和热爱。

 

相关文章:

40个改变你编程技能的小技巧!

40个改变编程技能的小技巧 1、将大块代码分解成小函数 2、今日事今日毕,如果没毕,就留到明天。 如果下班之前还没有解决的问题,那么你需要做的,就是关闭电脑,把它留到明天。 中途不要再想着问题了! 3、…...

iTOP3588开发板直连电脑配置方法(无线上网)配置主机IP

首先使用网线连接好主机和开发板,在没有上电的情况下,可以看到以太网显示网络电缆 被拔出,如下图所示: 当开发板上电以后,开发板网卡与笔记本电脑的网卡会连接,如下图所示: 然后右键点击以太网…...

压电陶瓷换能器导纳圆图公式推导及匹配

压电陶瓷换能器的等效电路图如下图所示,分为左右两个部分左边的电容和电阻并联构成了电路的静态支路,被称为静态电容,可以由电表很方便的测量得到,这部分的参数是由换能器的电学参数决定的。右边的串联构成了动态支路,…...

设计模式C++实现11:观察者模式

参考大话设计模式; 详细内容参见大话设计模式一书第十四章,该书使用C#实现,本实验通过C语言实现。 观察者模式又叫做发布-订阅(Publish/Subscribe)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察…...

l1和l2接口如何进行编写?一定要掌握这几个元素

在这个大数据时代,很多地方都需要用到l1和l2接口,l1和l2接口在应用程序与数据库之间起着桥梁的作用,是实现数据的整合与共享的重要帮手。 l1和l2接口适用于各行各业,应用场景的不断拓展,l1和l2接口的发展也兴起&#…...

GAMES101作业7及课程总结(重点实现多线程加速,微表面模型材质)

目录闲言碎语最终全部效果展示(均为10241024512ssp)课程总结与理解(Path Tracing)框架梳理任务一:迁移相关代码任务二:实现path tracing任务三:多线程加速(包括其他加速的小trick&am…...

面试题(二十四)数据结构与算法

9.1哈希 请谈一谈,hashCode() 和equals() 方法的重要性体现在什么地方? 考察点:JAVA哈希表 参考回答: Java中的HashMap使用hashCode()和equals()方法来确定键值对的索引,当根据键获取值的时候也会用到这两个方法。…...

【HAL库】STM32CubeMX开发----STM32F407----Uart串口接收空闲中断

一、Uart串口接收空闲中断----详解 首先介绍串口通信的数据传输方式,这样后面的Uart串口空闲中断能更好的理解。 Uart串口通信----数据传输方式 串口通信的数据由发送设备通过自身的TXD接口传输到接收设备得RXD接口。 一个字符一个字符地传输,每个字符…...

Qt_文件操作

本文包含以下内容: 文件操作 基本介绍:ini文件:csv文件:代码功能文件读写:1.1 读取文件1.1.1按行读取1.1.2整体读取1.2 写入文件2. 文件信息读取3. 文件夹的创建4. 获取文件夹下所有的文件5. 获取文件夹及子文件夹下所有的文件用树的方式在界面显示文件夹目录基本介绍: …...

int和Integer有什么区别?

第7讲 | int和Integer有什么区别? Java 虽然号称是面向对象的语言,但是原始数据类型仍然是重要的组成元素,所以在面试中,经常考察原始数据类型和包装类等 Java 语言特性。 今天我要问你的问题是,int 和 Integer 有什么…...

Axure 9 收录不同效果的制作过程

效果类别 一、默认选中实现单选效果 1、默认选中 点击组件,右键选择selected字样; 2、实现单选效果 点击所有组件,右键选择selected group,填好命名,并设置选中时的组件样式;选择其中一个组件&#xf…...

[Datawhale][CS224W]图神经网络(一)

目录一、导读1.1 当前图神经网络的难点1.2 图神经网络应用场景及对应的相关模型:1.3 图神经网络的应用方向及应用场景二、图机器学习、图神经网络编程工具参考文献一、导读 ​ 传统深度学习技术,如循环神经网络和卷积神经网络已经在图像等欧式数据和信号…...

【Android实现16位灰度图数据转RGB数据并以bitmap格式显示】

Android实现16位灰度图数据转RGB数据并以bitmap显示(单通道Gray数据转三通道RGB数据并显示) 需求发现问题解决方案需求 问题需求:项目上需要实现将深度相机传感器给出的数据实时显示出来的功能。经过了解得知,传感器给出的数据为16位灰度图数据,即16位数据表示一个像素的…...

uni-app②

文章目录二、微信小程序简介(一)文档相关开发者工具使用小程序代码构成小程序基本操作三、uniapp 开发规范uniapp 开发环境开发工具下载 HBuilderX工程搭建项目运行浏览器运行四、组件基础组件基础组件列表组件公共属性集合扩展组件自定义组件UNI-ICON五…...

FFmpeg视频处理

目录 1. Ubuntu(wsl)安装 ffmpeg 2. ffmpeg查看指令 3. ffmpeg查看媒体文件信息 4. ffmpeg基础操作指令 5. ffmpeg视频抽帧 5.1 基于时间抽取帧 5.2 两种抽帧方式 5.3 视频流抽帧 5.4 视频批量抽帧 6. ffmpeg更改视频播放速度 7. ffmpeg视频格…...

FreeRTOS任务通知 | FreeRTOS十二

目录 说明: 一、任务通知 1.1、什么是任务通知 1.2、任务通知优势与劣势 1.3、任务通知值的更新方式 1.4、任务通知值状态 1.5、任务通知状态 1.6、任务通知方式类型 二、任务通知相关API函数 2.1、常用的发送通知API函数 2.2、带通知值的发送通知函数 …...

CentOS搭建博客typecho

Ubuntu搭建博客typecho_Dyansts的博客-CSDN博客 见过这样的文章展示页面吗? 详细视频安装教程: 9分钟快速搭建typecho博客,让你不再烦恼_哔哩哔哩_bilibili 现在就把他搭建出来 展示页面:Hello World 其他的插件:…...

湖南中创教育PMP如何实施风险应对,避免产生投诉

一、评估风险 评估风险影响的直接或间接价值 面临的潜在威胁,威胁发生的可能性有多大? 威胁一旦发生,损失是多大? 评估承受风险的能力 采取怎样的措施才能将损失降到最低,甚至为零 二、规划风险 对识别出来的风险进行分组或分类 确定…...

Urho3D子系统

通过使用函数RegisterSubsystem(),任何对象都可以作为子系统注册到上下文中。然后,通过调用GetSubsystem(),同一上下文中的任何其他对象都可以访问它们。每个对象类型只能有一个实例作为子系统存在。 发动机初始化后,以下子系统将…...

无线网络术语总结

学习802.11协议,其中有一些英文缩略词,这里做一下总结与记录。 学习资料:知乎徐方鑫 802.11相关文章 802.11协议精读3:CSMA/CD与CSMA/CA - 知乎 (zhihu.com) 无线网络术语缩写全称中文含义APAccessPoint无线访问节点用于无线网络…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...

6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙

Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...

数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 原创笔记&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;《数据结构第4章 数组和广义表》…...

跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践

在电商行业蓬勃发展的当下&#xff0c;多平台运营已成为众多商家的必然选择。然而&#xff0c;不同电商平台在商品数据接口方面存在差异&#xff0c;导致商家在跨平台运营时面临诸多挑战&#xff0c;如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...

Python爬虫实战:研究Restkit库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的有价值数据。如何高效地采集这些数据并将其应用于实际业务中,成为了许多企业和开发者关注的焦点。网络爬虫技术作为一种自动化的数据采集工具,可以帮助我们从网页中提取所需的信息。而 RESTful API …...