开发者进阶必备的9个Tips & Tricks!
优秀的开发人员市场前景是十分广阔的,但想找到一份理想的工作,仅有代码知识是不够的。优秀的工程师应该是一个终身学习者、问题的创造性解决者,着迷于整个软件世界。要成为一名优秀的开发者,应该具备哪些品质并做出哪些努力?本文给出了一些简单的tips,除了优秀的行为习惯之外,还有一些代码工具使用的小技巧。
方式篇:像资深开发者一样思考和工作
1、专注于优雅且可复用的代码
对于软件开发者最重要的小技巧之一是提升代码可复用性的优先级,并且让代码易于测试和阅读。此外,让每个功能都专注于一个目的也很重要。
当开始 coding 时,常常会出现这样的现象:开发人员埋头写下一行又一行代码,最终软件功能愈加丰富,但忽略了代码的简洁性和可读性。开发初期也许问题不大,但当代码数量越来越庞大之后这会产生层出不穷的问题。例如,以这种方式生成的代码往往更难破译和测试,同时很难被重复使用。而那些执行多种目的的代码往往缺乏重点。
因此,最佳实践是将有意义的、简洁的名称分配给每个功能,这可以让你轻松了解每个功能的目的。
在相当一部分情况下,开发人员阅读代码的时间远超过写代码的时间。因此,在你写代码的时候可以保证你离开一会儿之后回到座位上依旧能轻松理解你之前写的代码和它们的目的。
2、了解代码对整体业务的重要
能写代码的人千千万,但是能将自己置身于整体业务版图中思考的则并不多见。作为开发人员需要考虑为什么企业对构建一款应用程序感兴趣,并且了解企业所面向的客户的商业运作方式。
如果开发人员熟悉客户的商业语言,那么就能够更好地将其通过技术的方式实现出来。成功的开发者还知道如何借助商业语言来介绍他们所创造的技术的价值,进而吸引公司其他部门的关注和欣赏。
3、少说,多听
软件开发的过程中专注十分重要。当与其他开发人员一起开会时,应该努力听取建议以进行优化,并且在必要的时候才发言。
认真倾听是最高效的学习方式,与此同时需要你具备谦虚的品质,并且践行“知之为知之,不知为不知,是知也”的原则。而不要成为过度使用“互联网黑话”来掩盖对某个具体问题缺乏了解的人。
4、理解基本原理
学习一门编程语言与学习如何进行编程并不一样。能够识别问题并且采用优雅的解决方案是一个优秀开发者的核心能力。本质上,算法是一个逻辑问题,并且无论解决方案有多复杂,开发者都应该能够将其以图像的形式向初学者解释。
开发者固然会花费很多时间来掌握框架、编程语言和其他工具,但任何问题都应该能够抽象出来,并获取一个有共性的解决方案。
理解基本原理能让开发人员更容易识别共性问题,例如,了解 JavaScript 和 PHP 都是使用一级函数的面向对象的语言,在学习了其中一种语言之后,就会更容易理解另外一种。
5、做好代码质量保障
大部分团队会整合手动测试和自动测试来确保新特性在满足需求的同时拥有较高的质量,并且不会导致现有功能受损。如果比较幸运的话,团队里会有一个专门负责测试的同事,TA 可以确保你所构建的代码是符合需求的且能够在多个环境和场景下正常运行。
即便如此,开发者仍最好在代码进入审查阶段之前对其进行严格的测试,这不仅帮助你更好地完成高质量的工作,同时还能训练你思考测试方案和不常见案例的能力。如果你是独自工作,QA步骤则更为重要,如果你没有在进入生产环境之前发现错误,那么更不会有其他人发现。
测试是安全护栏,也是指南针。
对于初级开发人员来说写测试尤为重要,特别是当你正在一个团队里工作或为一个由多个开发者维护的大型项目/系统做贡献时。测试能够很好地推动你的实施,更重要的是它们可以保护你的工作。优质测试会让你立刻明白你破坏哪些东西。
在工作过程中,试着每隔一段时间就运行你的测试方案,以确保你所构建的一切都没有产生副作用。经过测试,你将会有信心做出代码库所需的更改和改进。
如果你在当前的工作中还没有写测试,那么花费一些时间学习用你所用的语言写单元测试是值得的。
工具篇:VS Code Tricks
1、快速查找定义
在编程时,你也许会遇到无法理解的诸多变量或方法。VS Code 提供了一种简单的方式来查看定义——单击右键,在菜单栏中选择“Go to Definition”即可。
对于 Mac 用户来说,按下command并单击变量名,即可直接查看定义。如果你只是想扫一眼定义的话,按 command键,将鼠标悬停在变量或方法的名称上即可。

2、同时编辑多行代码
要在文档的不同部分编辑多行文字,你可以使用多光标编辑。这个功能允许你在不同的位置放置多个光标,这样就可以批量添加、修改或删除文本。
你可以按住 Alt 键(Win 系统)或 Option 键(Mac 系统)的同时,点击文档中任意位置实现。每一次点击都会产生一个新的光标。

3、集成 Git
VS Code 带有 Git 集成,允许你查看更改、commit、拉取和推送你的代码到远程 Git 仓库。
此前,使用这一特性需要单独下载工具。因此,在 VS Code 内部内置了这一集成很好地优化了开发工作流程并节省了许多时间。
在活动栏中点击 Source Control 按钮并选择文件以查看差异。

点击文件,你将会看到以下变化:

4、注释代码块
无论你是因为尝试追踪一个 bug,还是体验新的代码更改,注释代码块是一个常见行为,这里有一个快捷键可以帮助你节省时间。
Mac: Shift+Opt+A
Windows: Shift+Alt+A

添加行注释可以使用下方快捷键:
Mac: cmd+K+C / cmd+K+U
Windows: Ctrl+K+C / Ctrl+K+U

你也可以使用行注释来注释一个代码块,如果你选择代码块的所有行,并使用上述行注释的键序。这将通过给每一行添加行注释来注释/取消注释所选的代码块。
开发者进阶必备的9个Tips & Tricks!的更多相关文章
- 【翻译】C# Tips & Tricks: Weak References - When and How to Use Them
原文:C# Tips & Tricks: Weak References - When and How to Use Them Sometimes you have an object whi ...
- 45 Useful JavaScript Tips, Tricks and Best Practices(有用的JavaScript技巧,技巧和最佳实践)
As you know, JavaScript is the number one programming language in the world, the language of the web ...
- 转:45 Useful JavaScript Tips, Tricks and Best Practices
原文来自于:http://flippinawesome.org/2013/12/23/45-useful-javascript-tips-tricks-and-best-practices/ 1 – ...
- Must Know Tips/Tricks in Deep Neural Networks
Must Know Tips/Tricks in Deep Neural Networks (by Xiu-Shen Wei) Deep Neural Networks, especially C ...
- 45 Useful JavaScript Tips, Tricks and Best Practices
<45 Useful JavaScript Tips, Tricks and Best Practices> http://flippinawesome.org/2013/12/23/45 ...
- Productivity tips, tricks and hacks for academics (2015 edition)
Productivity tips, tricks and hacks for academics (2015 edition) Contents Jump to: My philosophy: Op ...
- 前端开发者进阶之ECMAScript新特性--Object.create
前端开发者进阶之ECMAScript新特性[一]--Object.create Object.create(prototype, descriptors) :创建一个具有指定原型且可选择性地包含指 ...
- Dagger2进阶必备技能
之前写过一篇文章介绍Dagger2的初步知识, 本篇文章主要介绍Dagger2的进阶知识点. 主要包含的内有有 @Binds与@Provides的使用 Provider与Lazy的使用 依赖与包含 D ...
- Must Know Tips/Tricks in Deep Neural Networks (by Xiu-Shen Wei)
http://lamda.nju.edu.cn/weixs/project/CNNTricks/CNNTricks.html Deep Neural Networks, especially Conv ...
- Android 应用开发者必看的 9 个 Tips
去年,Android应用数量已经超过iOS成为全球最大的生态系统,不过在这多大百万的应用中,有些应用的下载量很大,赚的盆满钵满:另外一些应用就石沉大海.无人问津了. 拥有多年程序开发经验,最近在开发A ...
随机推荐
- Web应用怎样获取Access Token?
1.在联盟创建服务器应用 参考文档:开发准备 2.获取用户级Access Token 2.1 获取code 参考文档:接入华为帐号获取凭证 2.1.1 先按照跳转链接进行配置url https://o ...
- WCF 服务容器化的一些问题
背景 目前项目当中存有 .NET Framework 和 .NET Core 两种类型的项目,但是都需要进行容器化将其分别部署在 Windows 集群和 Linux 集群当中.在 WCF 进行容器化的 ...
- [OpenCV实战]12 使用深度学习和OpenCV进行手部关键点检测
目录 1 背景 2 实现 3 结果和代码 4 参考 手部关键点检测是在手指上找到关节以及在给定图像中找到指尖的过程.它类似于在脸部(面部关键点检测)或身体(人体姿势估计)上找到关键点.但是手部检测不同 ...
- [OpenCV实战]37 图像质量评价BRISQUE
摄影是全世界数百万人最喜爱的爱好.毕竟,这有多难啊!用美国著名摄影师阿巴斯•黛安娜的话来说: 拍照就像深夜踮着脚尖走进厨房,偷奥利奥饼干. 拍照很容易,但是拍一张高质量的照片却很难.它需要良好的组成和 ...
- [OpenCV实战]38 基于OpenCV的相机标定
文章目录 1 什么是相机标定? 2 图像形成几何学 2.1 设定 2.1.1 世界坐标系 2.1.2 相机坐标系 2.1.3 图像坐标系 2.2 图像形成方法总结 3 基于OpenCV的相机标定原理 ...
- [Leetcode]寻找峰值
题目 思路 如果常规解法不考虑时间复杂度,直接遍历即可得到峰值,时间复杂度为O(n),题目要求O(logn),因此我们需要使用二分法. 首先考虑题目要求:nums[-1]=nums[n]=-∞,因此在 ...
- SQL中常用函数操作
--在SQL SERVER中批量替换字符串的方法 update [Table] set [Field] = REPLACE([Field],'被替换的原内容','要替换的内容') update HBb ...
- 【项目实战】从零到一搭建Spring Boot整合Mybatis-plus
前言 2023年想搭建一套属于自己的框架,做一个属于自己想法的项目.这些年工作中一直用公司已有的框架,以前有跟着学习视频搭建过,但自己真正动手搭建时发现问题还是很多,比如没有引入Mybatis-plu ...
- ASP.NET Core RESTful学习理解
一.了解什么是REST REST是"REpresentational State Transfer"的缩写 ,表述性状态传递: REST是一种软件架构风格,用于构造简单.可靠.高性 ...
- DML_添加数据-DML_删除数据
DML_添加数据 添加数据 语法 : insert into 表名(列名1,列名2,...列名n) values (值1,值2,... 值n); 注意: 1.列名和值要一一对应. 2.如果表名后,不定 ...