优秀的开发人员市场前景是十分广阔的,但想找到一份理想的工作,仅有代码知识是不够的。优秀的工程师应该是一个终身学习者、问题的创造性解决者,着迷于整个软件世界。要成为一名优秀的开发者,应该具备哪些品质并做出哪些努力?本文给出了一些简单的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!的更多相关文章

  1. 【翻译】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 ...

  2. 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 ...

  3. 转:45 Useful JavaScript Tips, Tricks and Best Practices

    原文来自于:http://flippinawesome.org/2013/12/23/45-useful-javascript-tips-tricks-and-best-practices/ 1 – ...

  4. 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 ...

  5. 45 Useful JavaScript Tips, Tricks and Best Practices

    <45 Useful JavaScript Tips, Tricks and Best Practices> http://flippinawesome.org/2013/12/23/45 ...

  6. Productivity tips, tricks and hacks for academics (2015 edition)

    Productivity tips, tricks and hacks for academics (2015 edition) Contents Jump to: My philosophy: Op ...

  7. 前端开发者进阶之ECMAScript新特性--Object.create

    前端开发者进阶之ECMAScript新特性[一]--Object.create   Object.create(prototype, descriptors) :创建一个具有指定原型且可选择性地包含指 ...

  8. Dagger2进阶必备技能

    之前写过一篇文章介绍Dagger2的初步知识, 本篇文章主要介绍Dagger2的进阶知识点. 主要包含的内有有 @Binds与@Provides的使用 Provider与Lazy的使用 依赖与包含 D ...

  9. 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 ...

  10. Android 应用开发者必看的 9 个 Tips

    去年,Android应用数量已经超过iOS成为全球最大的生态系统,不过在这多大百万的应用中,有些应用的下载量很大,赚的盆满钵满:另外一些应用就石沉大海.无人问津了. 拥有多年程序开发经验,最近在开发A ...

随机推荐

  1. v-model双向绑定原理

    1 <div id="app"> 2 <div>{{msg}}</div> 3 <!-- 写法1 --> 4 <input t ...

  2. 01.Typora基本使用

    1.标题 方法一: 在文字前面加上"#",将其变成标题. "#"的数量决定字体的大小."#"数量越多字体越小. 如下,其中一级标题是字体最大 ...

  3. 高性能 Jsonpath 框架,Snack3 3.2.50 发布

    Snack3,一个高性能的 JsonPath 框架 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计.其下一切数据都以ONode表示,ONode也 ...

  4. Python免杀过360

    本文章仅供参考学习 作者:mantou 博客地址:https://www.cnblogs.com/mantou0/ 分离免杀 这个我就不多说了,效果确实不错,网上关于分离免杀的也有很多文章 不分离过3 ...

  5. [seaborn] seaborn学习笔记12-绘图实例(4) Drawing example(4)

    文章目录 12 绘图实例(4) Drawing example(4) 1. Scatterplot with varying point sizes and hues(relplot) 2. Scat ...

  6. .net core操作MongoDB

    前言 现实中认识的一个搞java(百万富婆)的大佬,已经转行做抖音主播了,搞技术的只能赶在年前再水一篇博客,不足之处欢迎拍砖,以免误人子弟,呔,真是太难受了 环境准备 .net core 3.1 Mo ...

  7. Jq /Js 拖动选择文件

    必须先引入 Jquery 依赖 1.文件结构 2. HTML <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  8. App几个可能造成内存泄漏的情况:

    App几个可能造成内存泄漏的情况: 1.block块中直接用self调用,self将会被block copy到内部增加一次饮用计数,形成循环引用 在block里调用self会不会造成循环引用和这个bl ...

  9. 洛谷P1048 典型01背包问题

    写在前面的话 蒟蒻在学习诸多图论算法之前,实际上没学过dp! 强说是学过也是只学了01背包,今天就来温习一下-- DP是啥? 动态规划(Dynamic Programming,DP)是运筹学的一个分支 ...

  10. GIT安装步骤记录以及Git 常用命令,忽略文件,推送本地代码到仓库示例以及报错解决

    下载 下载地址 git-scm.com 或 gitforwindows.org 安装(凡是下面没有给出图片的,都按默认选项就行) 选择安装组件 调整你的 path 环境变量 第一种是仅从 Git Ba ...