普通码农一枚,分享一下自己最常使用的几个效率生产工具

目前还没看到神级程序员的回答,问题先码一下,坐等神级程序员。

下面本人抛砖引玉的回答:

1、

关于架构设计和系统设计

:会推荐几个自己常用的画图工具,这类工具可以帮助理清楚思路;

2、

推荐8个实用的环境工具

:工欲善其事必先利其器;

3、

推荐7个优秀的开源项目

:内功修炼得好,写代码效率自然提高。

一、架构设计&系统设计

写代码前做好系统分析设计,会使得进入编码阶段后代码思路比较清晰、避免返工、以及良好的实现团队结对编程。

画图工具-UML类图、架构图、流程图、时序图等等。

推荐工具:Visual paradigm、OmniGraffle、ProcessOn、ppt、PlantUml。

俗话说,一图胜千言,图即是代码的指导思路

如下是示例功能流程图和数据流程图:

《千字文细谈》2021神级程序员都在用什么工具?-09-02_flink

《千字文细谈》2021神级程序员都在用什么工具?-09-02_java_02


如下是Flink的时间戳分配器类图:

《千字文细谈》2021神级程序员都在用什么工具?-09-02_git_03

Flink架构图:

《千字文细谈》2021神级程序员都在用什么工具?-09-02_git_04

另外,关于系统设计再推荐一本备受好评的神书:《数据密集型应用系统设计(DDIA:Design Data Intensive Application)》。

《千字文细谈》2021神级程序员都在用什么工具?-09-02_数据_05

这本书在各大网站的评价非常高。

Amazon:

《千字文细谈》2021神级程序员都在用什么工具?-09-02_数据_06

《千字文细谈》2021神级程序员都在用什么工具?-09-02_flink_07

Googlereads:

《千字文细谈》2021神级程序员都在用什么工具?-09-02_flink_08

那么它到底是一本什么样的书呢?

现今,尤其是在互联网领域,大多数应用都属于数据密集型应用。本书从底层数据结构到顶层架构设计,将数据系统设计中的精髓娓娓道来。理论结合实践,给出了很多实际场景中遇到的问题以及应对方案,能让人少走很多弯路。

涵盖了分布式系统设计的方方面面,复杂的事情深入浅出,浅显易懂。另外书后给出了很多参考论文资料。

《千字文细谈》2021神级程序员都在用什么工具?-09-02_java_09

二、环境工具

1、Git

版本控制工具,不仅是代码,文档之类的也需要常做版本以及备份,防止重要资料丢失。

2、多显示器

我一般平台用3个显示器:一个用来显示线上系统的运行状态的监控、一个用来看文档、一个用来敲代码。还有就是机械键盘。

3、信息搜索

《千字文细谈》2021神级程序员都在用什么工具?-09-02_flink_10

4、Alfred

超级好用的查询和搜索工具:

《千字文细谈》2021神级程序员都在用什么工具?-09-02_git_11

5、VIM

VIM用熟练后,完全可以脱离鼠标,并且效率提高几倍。

6、笔记工具

推荐onenote,随时随地记录自己的想法和总结。

《千字文细谈》2021神级程序员都在用什么工具?-09-02_git_12

7、postman

非常好用的http请求调试工具。

8、文档编辑

推荐MacDown:一款优秀的mac平台的markdown编辑,客户端贼好用。

三、内功修炼

多看优秀开源项目的代码,尽量参与进去,不论是maillist、QQ/钉钉群组等等,可以尝试从编写文档、写测试用例开始入手,逐步切入核心功能。

参与优秀的开源项目可以和业界优秀的程序员大神一起结对编程,开阔思路,掌握优秀的代码编写风格、设计模式和技巧。

在此推荐几个业界有名的优秀的开源项目:

1、Redis:​​Redis​

Redis的性能极高且拥有丰富的数据类型,同时,Redis所有操作都是原子性的,也支持对几个操作合并后原子性的执行。另外,Redis有丰富的扩展特性,它支持publish/subscribe, 通知,key 过期等等特性。 Redis更为优秀的地方在于,它的代码风格极其精简,整个源码只有23000行,很有利于阅读和赏析。

2、RocketMQ:​​Apache RocketMQ​

阿里巴巴开源的消息中间件,久经双11大促流量洪峰考验。

《千字文细谈》2021神级程序员都在用什么工具?-09-02_git_13

3、Flink:​​Stateful Computations over Data Streams​

Apache Flink是由​​Apache软件基金会​​​开发的​​开源​​​流处理​​框架​​​,其核心是用​​Java​​​和​​Scala​​​编写的分布式流数据流引擎。Flink以​​数据并行​​​和​​管道​​​方式执行任意流数据程序,Flink的流水线运行时系统可以执行​​批处理​​​和流处理程序。此外,Flink的运行时本身也支持​​迭代算法​​的执行。

Flink提供高吞吐量、低延迟的流数据引擎以及对事件-时间处理和状态管理的支持。Flink应用程序在发生机器故障时具有容错能力,并且支持exactly-once语义。程序可以用Java、Scala、​​Python​​​和​​SQL​​等语言编写,并自动编译和到在集群或云环境中运行的数据流程序。

《千字文细谈》2021神级程序员都在用什么工具?-09-02_git_14

4、Google guava:Google提供的java库函数,guava cache和guava限流的实现很有参考价值。

5、sharding-jdbc:数据库分库分表、读写分离的一个中间件。

6、RxJava:java平台的Reactive 扩展。

7、Spring:这就不解释了。

最后再推荐几个优秀的前沿信息来源


  • infoq
  • 《美团技术博客》
  • 公众号-阿里技术
  • 公众号-高可用技术
  • 业界有名的会议:archsummit 架构师大会、flink forward

文末再贴几个我的其他回答,可能会有你需要的:

整理的Java从入门到进阶的书籍阅读顺序,已经2400+赞和收藏,是知乎的热门内容:

​关于JAVA的书籍最佳阅读顺序,大家有什么建议?586 赞同 · 43 评论回答​

《千字文细谈》2021神级程序员都在用什么工具?-09-02_java_15

总结的本人在校期间C++的学习路径,感兴趣的可以看看:

​想学习C++,应该怎么开始入手?64 赞同 · 11 评论回答​

给计算机专业大一新生的一些肺腑建议

​有哪些给计算机科学与技术专业大一新生的建议?769 赞同 · 87 评论回答​


答者:如下图

《千字文细谈》2021神级程序员都在用什么工具?-09-02_git_16

开发工具

SourceTree

如果你习惯使用命令行操作 Git,请忽略。

SourceTree 是非常好用的 Git 图形界面工具,它是由Atlassian开发的免费Git图形界面工具,可以操作任何 Git 库。

官网地址:​https://www.sourcetreeapp.com/​

《千字文细谈》2021神级程序员都在用什么工具?-09-02_flink_17

Charles

最好用的抓包工具。 Charles 是一个支持多平台的 HTTP 代理器、HTTP 监控、反向代理器。它能够让开发者查看本地机器与互联网之间的所有 HTTP 以及 SSL/HTTPS 传输数据。

官网地址:​https://www.charlesproxy.com/​

《千字文细谈》2021神级程序员都在用什么工具?-09-02_官网_18

iTerm2

对于需要长期与终端打交道的工程师来说,拥有一款称手的终端管理器是很有必要的,对于 MacOS 用户来说,仍然毋庸置疑,iTerm2 就是你要的利器,如果你觉得不是,那是你的问题,不是 iTerm2 的问题。

官网地址:​https://iterm2.com/​

只上一张效果图,大家感受一下吧

《千字文细谈》2021神级程序员都在用什么工具?-09-02_git_19

Apifox

最好用的接口管理神器,没有之一,秒杀市面上所有同类产品。

Apifox 是 API 文档、调试、Mock、测试一体化协作平台,定位 ​​Postman + Swagger + Mock + JMeter​​。

通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好 API 文档,API 调试、API 数据 Mock、API 自动化测试就可以直接使用,无需再次定义;API 文档和 API 开发调试使用同一个工具,API 调试完成后即可保证和 API 文档定义完全一致。高效、及时、准确!

更多介绍看这里:​《是时候扔掉 Postman 了,Apifox 真香!》​

官网地址:​https://www.apifox.cn/​

《千字文细谈》2021神级程序员都在用什么工具?-09-02_flink_20

FeHelper

FeHelper是 Web 开发者助手,目前包括 JSON自动/手动格式化、JSON内容比对、代码美化与压缩、信息编解码转换、二维码生成与解码、图片Base64编解码转换、Markdown、 网页油猴、网页取色器、脑图(Xmind)等贴心工具,甚至在目前新版本的FeHelper中,还集成了FH开发者工具, 如果你也想自己搞一个工具集成到FeHelper中,那这一定能满足到你。

官网地址:​https://www.baidufe.com/fehelper/index/index.html​

《千字文细谈》2021神级程序员都在用什么工具?-09-02_flink_21

Navicat

最好用的数据库管理工具,没有之一。我们 Apifox 团队都用这个工具管理数据库。 Navicat 是一个可多重连接的数据库管理工具,它可以连接到 MySQL、Oracle、PostgreSQL、SQLite、SQL Server 和/或 MariaDB 数据库,让数据库管理更加方便。

《千字文细谈》2021神级程序员都在用什么工具?-09-02_数据_22

CodeLF

变量命名神器。CodeLF 通过搜索在线开源平台Github, Bitbucket, Google Code, Codeplex, Sourceforge, Fedora Projec的项目源码,帮开发者从中找出已有的匹配关键字的变量名。

官网地址:​https://unbug.github.io/codelf​

《千字文细谈》2021神级程序员都在用什么工具?-09-02_git_23

​http://Coding.net​

腾讯全资子公司,项目管理工具,提供一站式开发协作工具,帮助研发团队快速落地敏捷开发与 DevOps 开发方式,实现研发效能升级。 我们团队(Apifox)一直用 Coding 来管理项目,做 CI/CD 持续集成等。顺便说下我们的软件升级包都是放在 Coding 制品库的,免 CDN 费,薅腾讯羊毛,不用白不用。

官网地址:​https://coding.net/​

《千字文细谈》2021神级程序员都在用什么工具?-09-02_git_24

日常工具

Typora

Typora 是一款支持实时预览的 Markdown 文本编辑器。看到Typora的第一眼,我就爱上了它。它没有专业软件那么复杂而难以上手的功能,却也没有为了简洁而妥协到难以使用,它的每一寸肌肤都恰到好处,与它相处的每一刻都十分愉悦。

Apifox 的帮助文档就是用 Typora 写的。

官网地址:​https://www.typora.io​

《千字文细谈》2021神级程序员都在用什么工具?-09-02_数据_25

MdNice

我现在正在用 MdNice 写当前这篇文章。

Markdown Nice(简称 MdNice )是一款样式丰富的Markdown 编辑器,同时支持微信公众号、知乎和稀土掘金等平台的文章排版(能用富文本编辑器写文章的平台基本都支持)。 MdNice支持多达20种样式,支持多达20种样式,总有一款适合你!

官网地址:​https://editor.mdnice.com/​

《千字文细谈》2021神级程序员都在用什么工具?-09-02_官网_26

Parallel Desktop

Mac系统最强虚拟机!有的软件没有 Windows 版本,或多或少需要一个虚拟机安装其他系统。

官网地址:​https://www.parallels.cn/​

《千字文细谈》2021神级程序员都在用什么工具?-09-02_git_27

Alfred

这个我觉得根本无需介绍,神器,使用 macOS 的同学应该都知道。一句话来说就是,Alfred 是 macOS 上神级的效率应用,能够在实际操作中大幅提升工作效率。

官网地址:​https://www.alfredapp.com/​

《千字文细谈》2021神级程序员都在用什么工具?-09-02_flink_28

uTools

uTools 是一个极简、插件化的现代桌面软件,通过自由选配丰富的插件,打造得心应手的工具集合。

官网地址:​https://u.tools/​

《千字文细谈》2021神级程序员都在用什么工具?-09-02_flink_29

SwitchHosts

SwitchHosts是一个管理、快速切换Hosts小工具,开源软件,一键切换Hosts配置,非常实用,高效。开发Web过程成,部署有多套环境,网址域名都相同,部署在不同的服务器上,有开发环境、测试环境、预发布环境、生产环境。经常要切换 Hosts 来访问,测试以及验证 bug,如果纯手工修改这会花掉不少时间。

官网地址:​https://github.com/oldj/SwitchHosts​