【工作思考】如何提升自己的编程能力?

文章目录

  • 前言
  • 一、代码评审
    • 为什么要进行代码评审?
  • 二、持续学习能力
  • 三、良好的编程习惯
    • 代码注释
    • 避免深度嵌套
    • 拒绝长函数
    • 重视自测
    • 文档编写
    • 重构你的代码
    • 学会思考
  • 四、多接触开源项目
  • 五、总结

前言

在工作中,我们大部分的时间都是在阅读代码,阅读别人的代码也是我们工作中的一部分,真正花在写代码上的时间其实并不多。

我们应该都有这样的体会,那就是刚入职一家新公司,需要维护公司的一些项目代码,这个时候相信有的小伙伴们就很痛苦了,因为每个人写代码的风格和编码水平都是不一样的,好的代码更容易理解和易读。

工作中,能很快熟悉别人的代码,可以提升我们工作的效率,那么怎样才能提高代码质量以及可读性呢?

一、代码评审

为什么要进行代码评审?

  1. 提高质量
  2. 及早发现潜在缺陷与 BUG,降低事故成本。
  3. 促进团队内部知识共享,提高团队整体水平
  4. 评审过程对于评审人员来说,也是一种思路重构的过程。帮助更多的人理解系统。

我觉得代码评审还是非常有必要的,自己的代码被别人评审的时候,我们要保持一颗虚心的态度,认真倾听他人对自己代码的一些建议,虚心请教,这样我们会更容易突破自己的瓶颈,编码的质量会更上一个台阶。

每天抽出一个小时,团队里每个人都对其他人的代码进行评审也是非常好的,不仅可以找到各自身上写代码的缺陷和毛病,还可以学习别人写代码的优点。毕竟评审过程对于评审人员来说,也是一种思路重构的过程

二、持续学习能力

终身学习对程序员也非常重要,这个行业新技术日新月异,曾经C++还风靡全球,今天就换Java横扫千军,Python、node.js、Go这些新兴的语言也层出不穷。这意味着程序员要不断学习新东西,很难一招鲜吃遍天。

面对如此多的技术,我认为最重要的还是要牢固计算机体系基础知识,这个是编程的内功心法,如果不扎实一定很难走远。计算机体系基础知识包括算法和数据结构、操作系统、计算机网络、编译原理、计算机组成原理、数据库等等。

三、良好的编程习惯

其实在工作中,看别人的代码大概就知道他的编码水平。养成良好的编程习惯,对你无论是工作还是技术发展本身都有极大的帮助,这能提高你代码的可读性,可扩展性和整体质量,也能提高你同事的工作效率。

代码注释

代码在任何地方都没有注释。没有函数的功能注释,没有类的使用概述,没有对算法的解释等等。
即使是写的最好的代码也不如注释更容易被理解。在写注释的时候,要记住你的目的是为解释代码块为什么存在,而不是解释代码块在做什么。注释能帮助你更好的理解自己和他人的代码,减少工作量,所以不要忽视他们。

避免深度嵌套

深度嵌套的代码并不总是很糟糕,但可能会产生问题,因为它很难理解,如果你发现自己正在编写一个双重,三重甚至四重for循环,那么代码将可能试图在超出自身的范围外查找数据。那么你应该提供一种方法,使之可以通过包含该数据的对象或模块函数调用来请求数据。

拒绝长函数

顾名思义,长函数是指函数太长了。虽然没有一个特定的数字表示多少行代码对于一个函数来说“太长”,但当你看到这个函数时,你就会知道它是不是太长。一个长函数意味着包含了太多的功能实现。一般情况下长函数应该被分解成许多子函数,其中每个子函数被设计为处理单个任务或问题。理想情况下,原始的长函数将变成一个子函数调用列表,从而使代码更清晰,更易于阅读。

重视自测

交付代码之前反复自测,这样能节省团队时间,也能减少线上bug。

文档编写

Java程序员不仅要掌握一定的技术能力,还需要具有一定的文档编写能力。良好的文档能力能帮助我们更好地进行开发。一般来说,软件项目的发展需要经过需求调研,概要设计,详细设计等一系列的步骤,这些都是编码前的准备工作,特别是大项目会把大部分时间都花在文档整理上。

重构你的代码

  • 重构能改善软件设计。
  • 重构使软件更易理解。
  • 重构有助于找到Bug。
  • 重构有助于提高编程速度。

在写代码的过程中不断重构,优化,你的代码质量就会逐步提高。

学会思考

工作中,总是有很多新的需求,遇到新的需求,不要急于上手写代码。
编码之前需要思考以下几点:

  • 明确需求,我要做什么?
  • 分析思路,我要怎么做?
  • 确定步骤,每一个思路部分用到哪些语句、方法和对象。
  • 代码实现。

四、多接触开源项目

GitHub是全球最大的开源社区,里面充斥着形形色色的大佬,如果你身边没有高级工程师来带你提升,那这个社区绝对是最佳的选择,阅读别人的代码,学习代码风格。

  • 其实,作为一名程序员,我们都希望能写出高质量的代码,我自己也在朝这个方向努力。

  • 既然选择了做IT,就要明白,程序员从来不适合语言上的巨人,行动上的小人。

  • 只有真正地付出实践,从问题中复盘经验,才能使自己的编程水平不断提高。

五、总结

提高代码能力需要不断的学习、实践和反思。作为程序员,应该保持对技术的持续关注,不断学习新的编程语言、框架和工具,并积累项目经验,不断提升自己的编程技能和工程实践。同时,也需要注重代码质量和可维护性,学会与团队合作、项目管理、沟通等软技能,不断提升自己的全面素质。通过不断反思和改进,总结项目经验,接受他人的反馈和批评,学习他人的经验,不断完善自己的编程方式和实践,从而不断提高自己的代码能力。

在提高代码能力的过程中,也需要保持耐心和毅力。编程是一个持续学习和不断进步的过程,不可能一蹴而就。因此,要保持积极的学习态度和持续的努力,不断克服遇到的困难和挑战,不断提升自己的代码能力。

总的来说,提高代码能力需要多方面的努力。从技术学习、实践项目、拓宽领域、提升软技能、反思改进等多个层面入手,不断追求卓越,并持之以恒地不断提升自己的代码能力。只有不断自我挑战,不断改进和提高,才能在竞争激烈的编程领域中脱颖而出,成为一名优秀的工程师。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

无人机影像处理流程

无人机由于其方便快捷,精度高等特点已经广泛应用于农田尺度的作物生长监测。尤其是近年来大疆推出了两个多光谱无人机,价格也相较便宜。但目前无人机的使用实际上需要进一步处理才能获取得到农田的基本信息,主要包括影像的校正和图像拼接&…

[oeasy]python0139_尝试捕获异常_ try_except_traceback

尝试捕获异常 回忆上次内容 变量相加 整型数字变量可以相加字符串变量也可以拼接 但是 字符串 和 整型数字整型数字 和 字符串不能相加 怎么办? 转格式int(“1”)str(2) 可是 如果输入的苹果数量是 字符串"abc" int(“abc”)会发生什么?&…

OpenText Exceed TurboX (ETX) 安全功能介绍

OpenText Exceed TurboX (ETX) 安全功能介绍 将所有重要的知识产权(IP )相关数据保存在受良好保护的中央数据中心是保护 IP 的最佳做法。安全的远程访问是保护知识产权的关键。 所有数据流量均采用最新标准加密技术进行加密ETX 整合多种身份验证系统ET…

Python爬虫之MongoDB

目录 一、Mongo概述 二、安装&下载 1.下载: 2.安装 三、基本命令 插⼊数据 查询数据 修改数据 删除数据 索引 四、Python与MongoDB交互 1.安装pymongo 2.使⽤ 一、Mongo概述 MongoDB是什么? MongoDB是⾮关系型数据库(No sql) 为啥需要…

吃透Redis面试八股文

Redis连环40问,绝对够全! Redis是什么? Redis(Remote Dictionary Server)是一个使用 C 语言编写的,高性能非关系型的键值对数据库。与传统数据库不同的是,Redis 的数据是存在内存中的&#xf…

原来这就是所谓的 JSR!

相信大家在学习 Java 的过程中,或多或少都见过 JSR 这个词。本篇文章就科普下什么是 JSR。 什么是 JSR ? JSR(Java Specification Requests),是指 Java 规范请求(或者活规范提案)。这个请求&a…

API 自动化测试难点总结与分享

笔者是 API 管理工具的项目参与者之一,在日常工作中会经常遇到 API 自动化测试难点,我决定总结分享给大家: API 自动化测试的难点包括: 接口的参数组合较多,需要覆盖各种可能的情况。 接口的状态和数据关联较多&#…

typescript全局安装卸载以及npm相关问题

全局安装 npm install -g typescript 全局安装之后,如果想要卸载要使用 npm uninstall -g typescript 全局安装之后可以在终端使用 tsc xxx 编译ts文件 本地安装,也就是在项目目录下安装 npm install typescript 本地卸载 npm uninstall type…

2022年中国广义数据智能市场规模为442亿元

数据智能是当前市场上的热点应用。但业界对于数据智能的发展状况,缺乏深入探讨与研究。为了系统梳理中国数据智能行业市场全景,厘清行业发展脉络,为从业者提供有价值的借鉴,海比研究院联合中国软件网、中国软件行业协会应用软件产…

camunda如何处理流程待办任务

在 Camunda 中处理流程任务需要使用 Camunda 提供的 API 或者用户界面进行操作。以下是两种常用的处理流程任务的方式: 1、通过 Camunda 任务列表处理任务:在 Camunda 任务列表中,可以看到当前需要处理的任务,点击任务链接&#…

【谷歌扩展程序入门】简单制作一个查看网页结构的扩展程序

简言 在想看网页结构的时候一般会F12查看元素内容。 太麻烦了 还不简单方便。 扩展程序 扩展建立在诸如 HTML、JavaScript 和 CSS 之类的 Web 技术之上。它们在单独的沙盒执行环境中运行并与 Chrome 浏览器交互。 扩展允许您通过使用 API 修改浏览器行为和访问 Web 内容来“扩…

婚恋交友app开发中需要注意的安全问题

前言 随着移动设备的普及,婚恋交友app已经成为了人们生活中重要的一部分。但是,这些应用的开发者需要确保应用的安全性,以保护用户的隐私和数据免受攻击。本文将介绍在婚恋交友app开发中需要注意的安全问题。 在当今数字化时代,…

程序员面试完之后,人麻了...

去面试吧 面不被录用的试 面hr为了完成任务的试 面一轮二轮没有下文试 面需要通勤2小时的试 面随时加班的试 ...... 今年的“金三银四”被网友们称为“铜三铁四”,招聘软件上的岗位都能背下来了,简历却依然石沉大海。 好不容易等来个回复&#xff…

Linux常用命令——iptables命令

在线Linux命令查询工具 iptables Linux上常用的防火墙软件 补充说明 iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。 补充说明 - 语法选项基本参数 - 命令选项输入顺序工作机制…

借由Net5.5G,看到运营商的新沧海

我们都记得这样一句诗:“东临碣石,以观沧海”。 想要看到沧海的壮阔波澜,就先要抵达碣石山这样可以看到大海的地方。在数字化的发展过程中,往往一个技术或产业趋势就是一座碣石山,借由它可以看到描绘着未来机遇的新沧海…

如何使用JMeter和Ant生成高效测试报告?

Jmeter接口自动化测试项目实战视频教程地址:https://www.bilibili.com/video/BV1e44y1X78S/? 目录:导读 引言 一、安装ant 二、ant关联jmeter工具 三、执行 结语 引言 你曾经在进行软件测试时遇到过测试结果难以分析,甚至花费大量时间…

【技巧】如何在微信与企业微信端实现自动化ChatGPT智能机器人服务?(WorkTool)

场景描述 对于使用企业微信办公协作的公司/团体/组织等,在工作的时候,经常需要通过群机器人的方式,回答群内成员的问题。 基于此,一些企业想要将ChatGPT的智能对话能力与企业微信群机器人的回复能力结合,在企业微信群…

【LeetCode: 354. 俄罗斯套娃信封问题 | 暴力递归=>记忆化搜索=>动态规划+二分】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

ClickHouse快速入门

目录 1 ClickHouse介绍1.1 ClickHouse 的特点1.1.1 列式存储1.1.2 DBMS 的功能1.1.3 多样化引擎1.1.4 高吞吐写入能力1.1.5 数据分区与线程级并行1.1.6 性能对比 2 数据类型2.1 整型2.2 浮点型2.3 布尔型2.4 Decimal 型2.5 字符串2.6 枚举类型2.7 时间类型2.8 数组 3 表引擎3.1…

【Linux】6、在 Linux 操作系统中安装软件

目录 一、yum 命令二、安装 wget 一、yum 命令 类似 Linux 中的应用商店 📃① yum 是 RPM 软件包管理器 ✏️ Red-Hat Package Manager 📃② yum 用于自动化安装、配置 Linux 软件(可自动解决依赖问题) 📃③ 语法&a…