开发者进阶必备的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 ...
随机推荐
- Codeforces Round #838 (Div. 2) D. GCD Queries
题意 有个长度为n的排列p,[0,1,2,...n-1],你可以进行至多2*n次询问,每次询问两个i,j,返回gcd(pi,pj),让你在规定时间内猜出0在哪两个位置之一 思路 这是一道交互题,询问的 ...
- vue 组件之间传值(父传子,子传父)
1.父传子 基本就用一个方式,props Father.vue(用v-bind(简写 : ) 将父组件传的值绑定到子组件上) <template> <div> 我是爸爸:{{ ...
- 外包公司中的"炼狱",极度摧残,避免踩坑。
引言 前些天羊了,一直没有更新.今天给大家聊聊两家外包公司,遇到的小伙伴避免踩坑. 咱不说那些虚的,什么尽量不要去外包公司,尽可能找甲方,这些谁都知道,肯定是因为一些原因(比如学历.项目经验.技术有待 ...
- Windows下使用vscode连接Linux服务器进行C++代码运行与调试
参考链接: vscode + SSH 配置 https://blog.csdn.net/irober/article/details/112724986 launch.json + tasks.jso ...
- gRPC入门与实操(.NET篇)
为什么选择 gRPC 历史 长久以来,我们在前后端交互时使用WebApi + JSON方式,后端服务之间调用同样如此(或者更久远之前的WCF + XML方式).WebApi + JSON 是优选的,很 ...
- 路由分发、名称空间、虚拟环境、视图层三板斧、JsonResponse对象、request对象获取文件、视图层FBV与CBV的源码剖析、模版层简介
今日内容详细 路由分发 django的每一个应用都可以有自己独立的路由层(urls.py)静态文件(static文件夹)模板层(templates文件夹) 基于这个特性多人开发项目就可以完全解 ...
- Jest如何有序地执行测试
项目场景: node环境下编写js库,处于规范性考虑,需要做单元测试,我选择了Jest 问题描述 我的js库需要访问数据库,因此操作都是异步的,而且各个测试单元有严格的先后执行顺序(比如,建表 > ...
- JS按空格和换行或者其他字符进行切割形成数组
据我所测试,目前最好用的代码是: 方案一 let arr = value.split(/[,,\s\n]/).filter(_ => _) 方案二 let arr = value.replace ...
- ffmpeg拉取rtsp视频流
公司项目需要提供实时显示网络摄像头实时视频. void RTSPFFmpeg::rtsp_open(const char *url) { AVFormatContext* format_ctx = a ...
- CSS 3 所有的选择器整理(2023.2)
你知道的和你不知道的所有选择器.不包含尚未广泛实现的,也不包含已弃用的. 基本的选择器规则(Selector) 类型(Type)选择器 直接用标签匹配特定的元素 span { ... } p { .. ...