不同岗位的程序员也有千差万别,前端、算法、架构设计、测试......不同的岗位日常使用的工具截然不同。这些天我总结了一下我在开发中常用的软件/网站/插件/命令行工具,很多精品,分享给大家。

下面主要从4个方面介绍,

PC端软件

1. vscode

第一名当然归属于神器vscode,这些年的开发中,IDE是接触最多的工具,无论前端JS,做服务开发时用Java,还是做算法时用Python,都离不开IDE,以往,是每种编程语言选择在这种语言表现最优的IDE,例如,codeblocks、eclipse、Pycharm、webstorm等等,但是有了vscode,这些我统统卸载了。

远程开发、丰富的主题、简易的配置、轻量化等等,若干优点让我爱不释手,详情可以查看我的另一篇文章,

Jackpop:我最终还是选择了VS code!zhuanlan.zhihu.com

程序员必备软件和工具(程序员日常必备的工具)(1)

2. sublime

sublime是我接触较早,使用时间也较长的一款工具,最初是用来开发Python,后来写代码转向了vs code,sublime也就纯粹的成为了一款编辑工具。

支持编码格式丰富、运行流畅、界面美观等等,虽然,相对于UE、notepad++说不出它绝对的优势在哪,我还是依然习惯于使用这款工具。

3. Postman

不同模块之间调用有很多种方式,数据库、函数接口、restful。其中restful应该是使用最为频繁的,不同语言,在这个过程中就涉及到测试Web API & HTTP,Postman就变的异常重要。

它支持GET, HEAD, POST, PUT等任何方式的请求,多种格式的header、body体,比起另外写一个测试脚本或者curl实在节省很多时间。

程序员必备软件和工具(程序员日常必备的工具)(2)

4. xshell

开发过程中,服务器是无法绕开的,这时候终端模拟工具就显得异常重要,之前用过Putty、mobaxterm等,但是最后还是选择了xshell。

支持丰富的主题,轻松管理远程主机,强大的快捷功能,灵活的定制化,流畅的使用体验等等,让我越使用,越喜欢这款工具。

5. git

这里需要多说一句废话,要区分git和GitHub,GitHub是一个开源项目托管平台,git一款版本控制工具。

在团队开发过程中,版本控制是必不可少的,提交、检视、MR等等,一系列的版本控制流程,让代码规范和交付更叫可靠,这里就离不开git。另外,git也支持很多常用Linux命令,所以,git对于我来说使用频率也是非常高的一款工具。

6. visio

作为一名开发人员,在一个项目从需求评审,到算法梳理,到正式开发,都需要详细的梳理具体的架构及流程,这样的确能够极大的提高开发效率,避免开发过程中不必要的弯路。

虽然目前流程图工具有很多,亿图图示、processon等等,但是,和visio相差还是有十万八千里。能够直观、轻松的组织流程结构图。

7. xmind

xmind在我的使用过程中被严格定义为思维导图,在一定意义上,Visio和xmind有一些交集,但是,Visio更适合做架构图,xmind在思维导图方面更加方便。

8. typora

文档,在开发过程中当然是必不可少的,而markdown在开发中更加是举足轻重。Markdown编辑工具数不胜数,在线的、PC端的,比比皆是,但是我还是选择typora。界面简洁,支持实时预览,支持多种公式类型,支持TOC等标签。

9. CopyTranslator

作为学生、科研人员或者算法工程师等职位难免会接触英文文章,读英语文章又哪些痛点呢?英语水平差,这个当然排第一,如果英语水平好了,就不要再找什么翻译软件了。1.来回切换屏幕、复制、粘贴比较麻烦。2. 人工翻译不仅贵而且效果不好。3. 翻译软件有限制,比如我们用谷歌或百度翻译的时候,复制一段文章,拷贝到翻译框里,到换行符的位置会中断,这样就会让翻译的混乱不堪,还需要一个一个的把换行符删掉。CopyTranslator让翻译过程中变得快捷方便,而且,这款软件还支持点按复制、专注模式,能同时解决上述3个痛点。

程序员必备软件和工具(程序员日常必备的工具)(3)

10. DesktopCal

DesktopCal是一款功能强大的桌面日历,包含待办事项、农历、24节气、日程安排等功能,而且能够直接平铺在桌面,我觉得能够养成一个每天制定计划、完成计划的习惯会对工作、学习效率大大的提升,而这款工作能够提供强有力的帮助。

程序员必备软件和工具(程序员日常必备的工具)(4)

11. listary

listary在一定程度上和everything有一些重叠,都可以用于文件搜索,但是有了listary之后我就很少使用everything,因为非常方便,当然,它也有不足之处,比如不能像everything那样使用正则表达式匹配,但是这丝毫不妨害它对我的吸引,调出非常方便,双击ctrl即可,而,最吸引我的地方是快速定位功能,无论是在文件夹内部,还是在控制面板、或者是在桌面,只要敲击一下要找的东西名称中的一个字母即可,此外,listary还可以作为快速启动软件使用,能够结合不同软件进行定制化,使用简短的字符匹配某一款软件,快速打开使用。

程序员必备软件和工具(程序员日常必备的工具)(5)

12. Mathpix Snip

作为算法相关的工作人员,在书写文档过程中,markdown和LaTeX格式的数学公式也是必不可少。逐步的去输入一个复杂、冗长的公式显然不是一个理想的方式,MAthpix Snip能够准确快速的识别图片中的数学公式,并且转成LaTeX格式,真正能够提升效率的一款工具。

程序员必备软件和工具(程序员日常必备的工具)(6)

复制到Markdown里面进行一下验证对比。

程序员必备软件和工具(程序员日常必备的工具)(7)

网页工具

1. explainshell

作为IT/互联网相关的工作人员,哪怕不是开发者,也有可能会和Linux打交道,我们可以用Linux进行开发、运维等,因此,Linux就成为了一项非常重要的个人技能。

使用Linux过程中主要打交道的对象就是繁多的Linux命令和选项(options)就成了令人头疼的事情,举一个最为简单的例子,

> ls -al

这个Linux命令包含两个部分,command和options,ls是查看命令,-a和-l分别代表:显示所有文件(包括以.开头的隐藏文件)、以列表形式显示。

这些常用的我们都知道,但是有很多使用频率较少的怎么办?我们可以借助explainshell。

它是一款利用Python开发的Linux命令行工具,通过解析帮助文档,逐个匹配一行Linux命令中不同字符的含义,让你对Linux命令能够一目了然,是一款非常棒的Linux学习工具。

程序员必备软件和工具(程序员日常必备的工具)(8)

2. jsoneditoronline

json格式是开发中非常常见的,包括http请求,数据持久化等等。json阅读和格式化就是一项非常必要的工作,之前使用过一段时间json.cn,但是自从同事给我推荐jsoneditoronline这款在线工具之后就再也没有用过其他的。

程序员必备软件和工具(程序员日常必备的工具)(9)

这是一款来自谷歌的在线工具,支持差异化对比、格式检查等等非常丰富而强大的json编辑和格式化功能。

3. Nicetool

超过400个简单易用的工具收录其中,使用领域涵盖生活常用、办公辅助,教育学习,视频媒体,网络工具,程序开发,工具无需注册下载,即用即走。

程序员必备软件和工具(程序员日常必备的工具)(10)

4. Tool

这是一款被称为程序员的百宝箱的工具,在线运行代码,时间戳,格式转换,代码着色,APP icon制作,应有尽有,当然,这款工具中我使用较多的就是时间戳转换。

程序员必备软件和工具(程序员日常必备的工具)(11)

5. 在线文件转换

200+种文件格式,视频、音频、图片、文档、表格、电子书等等,再也不用为文件格式转换下载各种工具和软件了。

程序员必备软件和工具(程序员日常必备的工具)(12)

6. alternativeto

就像它的名字那样,"可供选择的、替代的",没错,这就是一个替代品网站,如果觉得哪个软件不好用,或者嫌安装麻烦,或者购买太贵,到这个网站搜一下,就可以提供很多可供选择的替代产品。

程序员必备软件和工具(程序员日常必备的工具)(13)

浏览器插件

1. OneTab

同事说“自从你给我推荐了这款插件,我再也离不开它了。”

浏览器标签页是一样令人头疼的东西,至少对于我来说是这样的,每当打开一些网页之后会发现标签页密密麻麻,非常混乱,关闭后又担心会用到,不关闭实在影响浏览器的使用,而且过多的打开网页会带来很多内存占用。很久以来,一直没有找到好的解决方法,直到遇到OneTab这款插件,能够一键关闭、恢复所有标签页,而且能够节省高达95%的内容占用

程序员必备软件和工具(程序员日常必备的工具)(14)

只需单击一下,就可以把所有标签页转化成一个列表,如果再次需要某个网页的时候,可以单个或者全部恢复标签页,

程序员必备软件和工具(程序员日常必备的工具)(15)

2. SwitchyOmega

我觉得校园网也是让很多大学生头疼的一个问题,外网无法访问校园网资源,校园网访问外网速度缓慢。怎么样才能在这两种网络之间自如切换?手动设置IE代理?那样效率太低了,不仅步骤繁琐,而且不能自动切换。SwitchyOmega就可以轻松解决代理切换问题,让你在不同的网络环境下自如切换代理,选择最快的代理方法打开你要的网页。

程序员必备软件和工具(程序员日常必备的工具)(16)

3. Grammar and Spell Checker

从名字就可以知道这款工具的功能--语法和拼写检查工具。它能够在网站上任何位置对你输入的段落进行拼写和语法检查,它的强大之处主要有如下2点:支持超过25种语言;适用于几乎所有的网站。

程序员必备软件和工具(程序员日常必备的工具)(17)

4. Click&Clean

浏览器是我们使用最多的一款工具之一,甚至没有其中的之一。

每天我们花费大量的时间在浏览器上面,访问各种网址,也留下了很多访问的足迹,这就涉及一个问题,除了缓存垃圾之外就是隐私和安全信息。不知不觉中我们把自己的信息展露无疑。

我认为有着Click&Clean这款超强的隐私保护工具就再也不用担心这个问题了。

程序员必备软件和工具(程序员日常必备的工具)(18)

清除浏览历史记录, 清除下载历史记录

5. Tampermonkey

可以毫不谦虚的说,Tampermonkey是目前最为流行的用户脚本管理器,它适用于 Chrome, Microsoft Edge, Safari, Opera Next, 和 Firefox。用户脚本是一个什么东西?简而言之,不同脚本可以实现不同的功能,Tampermonkey可以对这些功能进行管理,让你的浏览器如虎添翼,Tampermonkey有很多可选的脚本,但是如果让推荐的话,我认为以下5款是必不可少的:

详情可以查看文章,

实用工具 | 也许,这是最强大的一款浏览器插件mp.weixin.qq.com

程序员必备软件和工具(程序员日常必备的工具)(19)

命令行工具

1. oh-my-zsh

“Your terminal never feltthisgood before.”

提到命令行工具,首推的自然是这款大杀器,bash的替代工具。bash算得上一款中规中矩的shell工具,没有什么缺陷,但是也谈不上优秀,在很多方面考虑的还不够周到,例如,自动补全、语法、高亮显示、提示符等。

提到oh-my-zsh,那就厉害了,102kStar、250+插件、125+主题、1450+贡献者......从这一系列的数字中就可以体现出这款shell工具的生态有多么完善,也足以体现它有多么强大。

详细内容,可以查看文章,

Jackpop:抛弃bash,拥抱zsh!zhuanlan.zhihu.com

程序员必备软件和工具(程序员日常必备的工具)(20)

2. tldr

用Linux的过程中难免会和各种参数打交道,距离比如ps -aux、tar -jxvf、find -name,每个"-"后面的就是各种命令参数,大家比较熟悉的查看命令解释的方法有"command ?" "man command",就是命令后面加?或者man加命令。以man为例,解释很详细,但是带来的问题就是冗余,有很多信息是我们不想看到的,所以tldr就凸显出它的优点,简洁、实用。

程序员必备软件和工具(程序员日常必备的工具)(21)

3. tig

Tig是一个基于ncurses的git文本模式接口。它的功能主要是作为一个Git存储库浏览器,但也可以帮助在块级别上分段提交更改,并充当各种Git命令输出的分页器。

4. autojump

为什么第一名给了autojump?因为实在太实用了,我们在Linux下开发时会频繁的切换工作目录,要一步一步的cd,pwd实在太麻烦了,autojump通过卫华命令行中使用最多的目录并给定相应权重的数据块来进行工作,不需要完全输入目录名,甚至输错目录名都没问题。

使用方法:

跳转到包含foo的路径只需下面这个命令即可,autojump会通过维护的数据库进行跳转,

j foo

5. script

很多时候,为了安全,需要对工作内容进行备份和保存。而script就是一个隐藏的记录器,它可以记录终端会话的所有内容,形成文件,对总是忘记工作内容的同学真是福音。

使用方法:

在终端输入script,

$ script

会显示:

Script started, file is typescript

接着可以开始自己的操作,想退出输入exit即可,当前目录下会生成一个名为trypescript的文件,里面记录了刚才的操作。

6. tree

刚接触非桌面Linux的同学大多数会感觉Linux没有Windows或Mac那么直观,的确,我们面对的就是一行行命令,文件夹、应用图标什么的都没有,自然不直观。但是可以借助一些工具来增强目录的直观性,这里推荐的就是tree,可以以类似于图像的树状图排列目录和文件。

# tree                   #以树状图列出当前目录结构  
.                        #当前目录结构  
|-- README  
|-- examples.desktop  
|-- file  
|-- file.new  
|-- index.htm  
|-- test  
| |-- README  
| |-- file  
| |-- testfile  
| |-- testfile1

7. httpie

不同组件之间相互访问可以通过很多方式,其中restful是比较常用的一种。这里就涉及http请求,我们需要测试数据能够正确的上传和下载。在处理http请求过程中使用较多的工具就是curl。

curl有很多明显的弊端:对用户不够友好,命令冗长;可视化效果差,没有高亮。httpie就是curl的一个非常好的替代者,它的使用更加简洁明了,而且能够高亮显示请求结果。

程序员必备软件和工具(程序员日常必备的工具)(22)

8. glances

glances就如同它的汉语意思那样,“一眼”、“一瞥”,能够通过一个简单的命令对系统信息一目了然,了如指掌。

glances利用Python编写的一个跨平台的监视工具,旨在通过curses或基于Web的界面提供大量监视信息。

程序员必备软件和工具(程序员日常必备的工具)(23)

你不仅可以通过终端命令行使用该工具,还可以web界面、API接口等对服务器进行远程监控,可以将统计信息导出到文件或数据库。