【译】对话Patrick Arminio:专攻GraphQL基础设施和开发者体验

131 阅读5分钟

本周我们欢迎Patrick Arminio(@patrick91)成为我们本周的PyDev!Patrick从事Strawberry GraphQL的工作,这是一个基于数据类的Python GraphQL库。你可以在他的网站上了解到Patrick。

Patrick Arminio

让我们花一些时间来更好地了解Patrick!

你能告诉我们一些关于你的情况吗(爱好、教育等)。

你好,我叫Patrick Arminio,我是一个生活在英国的瑞士/意大利Python开发人员。我目前在Pollen工作,这是一个体验市场。我在平台团队工作,主要负责GraphQL基础设施和开发者体验。

我已经开始上大学了,同时在一家网络公司做兼职,我决定把精力放在工作上,因为我喜欢工作,而不是大学。

我喜欢旅行、参加会议和组织会议,我目前是Python Italia的主席,我们组织了PyCon Italy,我希望一些读者熟悉这个会议(如果没有,请务必加入我们的下一届会议!希望很快就能看到)。

我也是一个跑步者,我将在今年10月尝试参加马拉松比赛。

你为什么开始使用Python?

呃,那是很久以前的事了,当时我还在上高中,我正在为我父母做一个网站,并决定加入一个意大利IRC服务器上的HTML专用频道。在这里我遇到了我的朋友Germano,他建议我尝试Python。我最初使用它只是为了好玩,并尝试用它建立一些图形用户界面。我很快就转向使用Django,因为我对制作网站非常感兴趣,之后我就一直在使用Django和Python。Germano也是建议我参加2007年意大利PyCon大会的人(如果我没记错的话),这个小小的建议(还有那些很棒的组织者和工作人员)改变了我的生活,我开始参与这个社区,并结识了很多了不起的朋友。

你还知道哪些编程语言,你最喜欢哪个?

我对TypeScript(和JavaScript)相当了解,因为我仍然不时地做前端工作,我相当喜欢它,特别是因为总有一些新东西需要学习和实验。我知道这是一把双刃剑,但即使对这种不断波动的框架和工具感到疲惫,我也觉得它很有启发。🙂

我也在慢慢学习Rust,因为我需要写一个需要快速的CLI工具。到目前为止,我很喜欢它,我觉得它可能是对我的工具集的一个很好的补充,特别是对于构建工具和CLI。我仍然会用Python来完成大部分工作,尤其是网络方面。

你现在在做什么项目?

我主要在做Strawberry,一个使用现代Python构建GraphQL APIs的库。我在这方面有几个目标。

1.我想围绕它建立一个社区
2.我想改善GraphQL的Python生态系统
3.我想做一个真正用户友好的库,并且有真正有用的功能。

我认为我们实现了前两点,我们现在在Strawberry周围有一个很好的社区,有很多很棒的人在我们的discord服务器上进行了很多有用的讨论。此外,该库还被一些公司用于生产,所以我们肯定提供了一些价值。我很高兴不再是唯一的核心开发者,因为我希望这个库能成为一个社区项目,而不是我的项目。

对于最后一点,仍有工作要做,但我们正在实现。我打算很快在这个库上花更多时间。

哪些Python库是你最喜欢的(核心或第三方)?

我真的很喜欢dataclasses(以及扩展的attrs),它的语法非常好,而且它们提供了很多有用的功能,而不需要写大量的代码。我们从dataclasses复制了Strawberry的语法。🙂

我也非常喜欢rich,它是一个非常好的库,可以构建漂亮的CLI。我认为CLI(和一般的UI)应该看起来尽可能的漂亮。Rich在这方面有帮助。

我喜欢类型,所以另一个最喜欢的库是类型模块,即使Python正在发展,通过将一些功能带入主语法(例如用于联合的管道运算符),使这些模块越来越不实用。

当然还有django,但django不仅仅是一个库,它是一个具有强大价值观的了不起的社区,我希望有更多这样的社区。

你能解释一下GraphQL与REST的好处吗?

这是个有趣的问题!对我来说,好处主要是在开发经验方面,特别是在前端使用GraphQL时,因为有很多库可以使经验更容易。对于Python来说,我们正试图用Strawberry来改善开发体验。🙂

除了拥有漂亮的库之外,体验也更好,因为GraphQL默认内置了类型和文档(所以它并不是真正的后置)。这使得API易于使用和发现,同时也让你对回来的数据有了保证。

采用GraphQL的一个强有力的理由是它解决了过度和不足的问题,这是真的,但它也是一把双刃剑,因为你可能在没有考虑太多问题的情况下开始请求大量的数据。

你在研究GraphQL时学到了什么经验?

我想作为GraphQL库的作者,我学到了很多关于对其他开发者有同情心的知识。我们的目标是创建一个功能丰富和用户友好的库,所以我们试图同时接近不熟悉GraphQL的人和有很多GraphQL经验的人。

我想说的是,有时要取得平衡是很困难的,特别是当你一直戴着专家的帽子时,很容易就会认为每个人都熟悉GraphQL的所有概念。

我还了解到,让其他开发者高兴,我也会高兴。构建工具和库,为其他开发者节省时间,这是很好的。

你还有什么想说的吗?

谢谢你阅读这篇访谈!如果你对GraphQL感兴趣,请随时加入Strawberry Discord服务器或直接联系我。🙂

谢谢你接受采访,Patrick!

The postPyDev of the week:Patrick Arminio首次出现在Mouse Vs Python上。