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

    当前视图: 我要做的是将 Total 类似的 英文 改为 中文 1.  在组件里引入  ElConfigProvider 组件 和中文包 // ElConfigProvider 组件 import { ...

  2. TypeScript 之 控制流分析(Control Flow Analysis)

    控制流分析(Control Flow Analysis) 描述: CFA 几乎总是采用联合,基于代码逻辑去减少联合里面的类型数量. 大多数时候,CFA 在自然的JavaScript布尔逻辑中工作,但是 ...

  3. 基于.NetCore开发博客项目 StarBlog - (22) 开发博客文章相关接口

    前言 本文介绍博客文章相关接口的开发,作为接口开发介绍的第一篇,会写得比较详细,以抛砖引玉,后面的其他接口就粗略带过了,着重于WebApi开发的周边设施. 涉及到的接口:文章CRUD.置顶文章.推荐文 ...

  4. 有备无患!DBS高性价比方案助力富途证券备份上云

    "某中心受病毒攻击,导致服务中断,线上业务被迫暂停" "某公司员工误操作删库,核心业务数据部分丢失,无法完全找回" "由于服务器断线,某医院信息系统瘫 ...

  5. 将git仓库从submodule转换为subtree

    三个脚本 Alexander Mikhailian cat .gitmodules |while read i do if [[ $i == \[submodule* ]]; then mpath=$ ...

  6. Python实验报告(第2章)

    实验2:Python语言基础 一.实验目的和要求 1.了解Python的编写规范要求: 2.了解Python的基本数据类型: 3.学会使用Python的五种运算符: 4.掌握Python的基本输入和输 ...

  7. 使用APICloud AVM多端组件快速实现app中的搜索功能

    很多 APP 中都有搜索功能的需求,本文介绍怎么使用 avm 多端组件快速实现搜索功能. 在 APICloud 模块库搜索 animate-UISearchBar,添加到项目.多端组件需要下载源码,引 ...

  8. [OpenCV实战]26 基于OpenCV实现选择性搜索算法

    目录 1 背景 1.1 目标检测与目标识别 1.2 滑动窗口算法 1.3 候选区域选择算法 2 选择性搜索算法 2.1 什么是选择性搜索? 2.2 选择性搜索相似性度量 2.3 结果 3 代码 4 参 ...

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

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

  10. Google Cloud Platform | 使用 Terraform 的分层防火墙策略自动化

    [本文由Cloud Ace整理发布,更多内容请访问Cloud Ace 官网] 防火墙规则是 Google Cloud 中网络安全的重要组成部分.Google Cloud 中的防火墙大致可分为两种类型: ...