收藏!这些提高程序员生产力的工具你用过吗?

随着文件、数据集和配置的增长,搜寻数据变得越来越困难。然而,有许多工具可以帮助我们在处理大型 JSON 和 YAML 文件、复杂的正则表达式、SQL 数据库关系、复杂的开发环境等场景时提高工作效率。

JSON

JSON 是一种对计算机友好但对开发人员不利的格式。即使是相对较小的 JSON 对象也很难读取和遍历,但有一个工具可以提供帮助!

7754a39c8ce395daaf8285f69ecba9e1.png

JSON Visio 是一个从 JSON 对象生成图表的工具。这些图表比文本格式更容易导航,并且更方便,该工具还允许您搜索节点。此外,生成的图表也可以作为图像下载。

您可以在jsonvisio网站使用 Web 版本,也可以将其作为 Docker 容器在本地运行。

正则表达式

正则表达式 (RegEx) 因极难阅读而闻名。本文推荐 2 种工具来帮助理解复杂的 RegEx:

第一个是 https://regex101.com/

c44410d6b903cd459971a2ee10716c2b.png

它可以帮助您构建和测试正则表达式,以及将它们分解并识别其各个部分。

第二个是 https://regex-vis.com

aded08094dea8943c7c62a306cb777bf.png

它从 RegEx 生成一个图表,这对于理解表达式的实际作用非常有帮助。

YAML

YAML 是一种可读的语言,但它通常不是可读的。众所周知,具有多级缩进的长 YAML 文档可能很难导航和排除故障。

为了避免花费不合理的时间来寻找错误的缩进,我建议您使用模式验证并让您的 IDE 完成所有工作。您可以使用来自 https://schemastore.org/json 的验证模式或自定义模式(例如 Kubernetes 的这些模式)来验证您的文件。这些将适用于 JetBrains 产品(例如 Pycharm、IntelliJ)以及 VSCode。

如果您更喜欢使用 vim 作为编辑器,我建议您使用可以帮助您发现错误的自定义格式。我的首选配置如下所示:

# Add this line to "~/.vimrc"
autocmd FileType yaml setlocal ai et cuc sw=2 ts=2

生成的格式将如下所示:

4016da2a858a626fed1ab38ed781ca04.png

除了上述工具之外,使用 YAML linter 也是一个好主意,它将验证和清理您的文档。

最后,如果您正在使用 OpenAPI/Swagger YAML 规范,那么您可以使用 https://editor.swagger.io/ 来查看/验证/编辑您的架构。

SQL

有很多用于处理关系数据库的软件,但是其中大多数都专注于连接到数据库实例和运行 SQL 查询。这些功能非常方便,但对使用有数百个表的数据库进行导航可能非常困难。一个可以解决这个问题的工具是 Jailer:

d93e8e9e90a27280a3b73617d9c68126.png

Jailer 是一种工具,它可以通过跟随外键在数据库中导航。

Git

Git - 一个我们每天都在使用的具有绝对糟糕用户体验的软件 - 也可以使用一些工具来导航历史记录(日志)、暂存/提交文件、查看差异或重新定位分支。

对于上述所有问题,我选择的工具是 IntelliJ/PyCharm git 集成——在我看来,真的没有比这更好的工具来处理与 git 相关的东西了。

如果您不是 IntelliJ/PyCharm 用户,或者您更喜欢留在终端中,那么以下命令可以让您更轻松一些:

git log --graph --abbrev-commit --decorate --all \
    --format=format:"%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(dim white) \
    - %an%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n %C(white)%s%C(reset)"

上面的命令将打印一个直观可读的提交历史图表,看起来像:

eee9d9abe0077cb0e63b68a8746ea071.png

如果您还希望改进 diffing 功能,可以使用 git diff...--word-diff--color-words

a18396c50a8f857f7b4416b7c6707543.png

从上面的 2 个示例中可以看出,通过足够的技巧,您也许可以使命令行git体验在某种程度上可以忍受。

如果您想完全避免使用简单的 git CLI,可以尝试使用 forgit - 一个用于交互式使用 git 的 TUI:

fe43a6a529fe10cdc0e746b28a7440d8.png

上面的屏幕截图显示了交互式且漂亮的 git 日志。该工具支持几乎所有的 git 子命令,最重要的是rebase、cherry-pick、diff 和 commit。有关功能的完整列表和更多屏幕截图,请参阅项目的存储库。

除了使用 git 或您的 IDE 功能之外,您还可以获取其他有助于复杂文件差异化的工具。一个非常强大的工具是 Difftastic。支持多种语言的 Difftastic 语言感知差异工具。

如果您想要一个专门用于区分 JSON、XML、HTML、YAML 等结构化语言的工具,那么 Graphtage 是一个不错的选择。在语义上来说,即使您更改Graphtage元素的顺序,也能正确发现差异。

最后,如果您更喜欢可视化工具,那么您可能会发现 Meld 很有用,因为它提供了与 JetBrains 产品类似的体验。

Docker

在 DevOps 方面,使用 Docker 时,用 docker-compose命令启动一堆容器并最终导致难以解决的混乱情况并不少见。

Lazydocker 是同时处理多个 Docker 容器的绝佳工具。如果您不相信我,请查看项目存储库中的 “elevator pitch”

5281333978367abdab5a0c3afd1ce8fc.png

如果您更喜欢基于浏览器的工具,您可能想尝试 Portainer,它提供了用于导航/检查 Docker 容器、卷、图像等的仪表板。

f6095c1ce0e408b93bba44b8a9253be9.png

Kubernetes

考虑到每个 API 资源都可以使用可视化工具,涉及到 Kubernetes 需要涵盖很多内容。然而,有几个值得注意的领域(确实是痛点),通常需要可视化工具来有效地设置/管理。

第一个是 NetworkPolicy,可以使用 https://editor.cilium.io/ 进行可视化和配置。即使您更喜欢手工制定策略,我仍然建议您使用此工具直观地验证它们。

996a34c0a87dd2514ceb2a21feafb514.png

另一个类似的工具是 NetworkPolicyViewer,它只专注于策略的可视化,并且具有更简单、更易读的图表。

我建议使用此网络策略配方集合来测试这 2 个工具,看看它们如何对您的工作流程有所帮助。

配置 Kubernetes 的另一个痛点是 RBAC,更具体地说是Roles、RoleBindings 及其集群范围的替代方案。有几个工具可以帮助解决这些问题:

Krane 是一种工具,可以生成显示所有角色和主题之间关系的图表。Krane 还具有更多功能,包括 RBAC 风险评估、报告和警报,以及使用 CypherQL 查询/询问 RBAC 规则。

Krane 的一个更简单的替代方案是 rbac-tool,它可以作为 kubectl 插件安装。它还可以分析、审计、询问 RBAC 规则,但最重要的是,可以将它们可视化:

fa5e70b7aba363b65d8404e3bf71993e.png

最后,如果您更关心轻松配置 RBAC 而不是查看漂亮的图表,那么 Permissionmanager权限管理器是适合您的工具。

除了用于网络策略或 RBAC 之类的专用工具之外,您还可以使用通用仪表板,例如:

  • Lens - Kubernetes IDE,它为管理集群带来了一些理性,特别是与 Lens Resource Map 结合使用时,它将 Kubernetes 资源及其关系显示为实时力导向图。

d9753518118f05b4d8de9c5631cc72e2.png

f16ca301086173a80a0b2ae4d3e78616.png

  • 像往常一样,还有基于 CLI 的工具,它提供了比 kubectl 更多的功能。它被称为 k9s,它确实让 Kubernetes 中的导航、观察和管理部署应用程序变得更加容易:

35e981677b020674e251ad0356070190.png

小结

本文重点介绍开发人员/DevOps 工具,但还有 2 个工具值得一提。首先是 Mermaid.js,用于创建漂亮的图表(作为代码),现在与 GitHub markdown 集成。另一个是 MathJax - 用于可视化数学表达式,最近也受到 GitHub markdown 的支持。

649447afe3a6fe43c6e4d78c3155e19f.png

猜你喜欢

转载自blog.csdn.net/BF02jgtRS00XKtCx/article/details/125512433