工具: 更好的编写程序
程序代码都是一串文本,理论上使用记事本完全就能实现程序编写。但是会非常痛苦,于是就出现了各种工具来辅助我们编程。
IDE
IDE(Integrated development environment)即集成开发环境,他通常构建在文本编辑器上,添加了各种辅助编程工具来实现程序开发。
最初狭义上的 IDE 是类似 VS Studio、eclipse、Idea 等平台的。后来由于 VSCode 的横空出世引入了 LSP 协议,让更多的经典编辑器例如 Vim、Emacs 等作为 IDE 成为了可能。
有些 IDE 是和编程语言绑定的,或者说更倾向于某一个编程语言,而有些是独立于编程语言通过插件形式来进行扩展。常见的独立平台包括:
- Vim: 历史的经典,面向控制台的编辑器
- VSCode: 目前最为流行的跨平台编辑器,提供了庞大的开源插件市场
- JetBrains: 最为流行的商业 IDE,每种语言都提供了对应的平台扩展
- Jupyter: 最初是面向 Python 数据分析人员的平台,但是可以通过扩展内核来使用其他语言
包管理工具
他和 Linux 的包管理工具类似。目前主流的编程语言都提供了自己官方支持的包管理工具。
他其中还有一个比较特殊的环境管理工具,他可以单独罗列,也可以算作是包管理工具的特性。
通常依赖管理也是通过包管理工具实现的
构建工具
就是将代码打包成一个可以部署或直接安装的软件包。
对于编译型语言可能还需要编译器
格式化和静态代码分析
格式化就是 formatter,能够让代码更加整洁和易读。静态代码分析工具就是 Lint,用于标记编程错误、风格错误、可疑编码等工具。
Lint 术语来源于检查 C 语言的一个 Unix 程序,他的运行命令成为 linter
对于动态类型语言例如 Python 和 JS 还存在类型检查工具(typing)。
代码调试和单元测试
要想编写健壮的代码,都需要细心的进行调试,并且对每个分支(覆盖率)编写单元测试。
其中代码调试通常都是语言自身提供的标准命令行程序,IDE 也提供了更好的 GUI 打断点、运行等功能。而单元测试通常是第三方提供的,目前也越来越流行。
文档工具
目前主流的文档工具都是基于 Markdown、rst 等标记语言的。还有就是依托与 Markdwon、rst 的静态网页生成工具,推荐的包括:
版本控制工具
所谓的版本控制就是对项目源码进行管理,目前最主流的就是git