原访谈作者:Sebastian Bergmann
第一代赞助开发小组已经参与PHP的核心开发1个月了,我们认为你可能想知道他们是谁,他们有什么兴趣爱好。 我有机会与 Derick Rethans、George Peter Banyard、Ilija Tovilo、Jakub Zelenka、Máté Kocsis 和 Arnaud Le Blanc 坐下来接受采访。
Sebastian: 让我们从一轮介绍开始。 你是谁?
George: 我在伦敦帝国理工学院学习纯数学,预计十月毕业。 我有一半德国血统,一半英国血统,但在法国南部长大。 空闲时间我主要看动漫或玩益智游戏和Richii麻将。
Derick:我最初来自荷兰,但目前在英国生活和享受伦敦。 当我不坐在电脑面前时,我很可能会在乡村或现场散步,用我可信赖的相机将这些风景记录到屏幕上。
Ilija:我来自瑞士伯尔尼。 我在这里长大,但在克罗地亚也有根和亲戚。 当我不工作时,我喜欢与家人和朋友共度时光,晒太阳,听音乐。 我也喜欢解谜和下棋。
Jakub: 我来自布拉格。 10 多年前,我搬到了英国。 我是一名承包商,大部分空闲时间都和家人在一起。 我经常遛我的两条狗。
Máté: 我是一名 31 岁的软件开发人员,居住在匈牙利。 目前,我在 LastPass 工作,负责保证我们的 PHP 后端保持现代化并将其接入云端。 在空闲时间,我喜欢骑自行车、散步、旅行。 但我最大的爱好还是编程。
Arnaud: 我住在法国,在一家 SaaS 公司工作,用 PHP 做着很棒的事情。 当我不在那里工作或不使用 PHP 时,我倾向于在坐在电脑前或骑自行车。
Sebastian: 是什么促使您从事开源工作?
George: 这可能是一个奇怪的答案,但我会说因为我太懒了。 这样说吧,我不太愿意为了某个特性去学习和接触一个全新的工具和生态系统,如果我喜欢其他项目或语言中的特性,我会努力将其作为一个功能添加到我已经熟悉的东西中。
Ilija: 几乎所有的商业软件都是基于开源的。 我认为如果没有开源,大多数科技公司都不会像今天这样存在。 为开源做贡献是我回馈开源给我的职业机会的一种方式。
Arnaud: 对我来说,开源是灵活性和自由的代名词。 我的动力可能始于 20 年前,当时计算机对我来说还很神奇,我安装了一个 Linux 发行版。 在某个时候,我发现我可以下载所有的神奇的东西并且、破解它、修复它、改进它。 这太不可思议了。 现在我主要使用的都是开源软件,所以在开源项目工作同时也是一种回馈,并且还能改进我正在使用的软件。
Jakub: 从事开源工作让我有机会以有用的方式学习新事物,并让我能够回馈我使用的项目。
Derick: 最初是因为这是一个非常好的方法来学习新事物。 我早期对 PHP 的大部分贡献都是我自己需要的。 从那以后,我一直活跃在这一块,增强我需要的部分,但这也导致我不得不考虑更多人的需求,维护一些更受欢迎的项目,比如 Xdebug。
Máté: 我的第一个“主要”开源贡献是 Composer 中的一个小功能。 然后我创建了一些库,这些库也获得了一些关注。 即使考虑到我的项目实现的规模有限,我为改善 PHP 生态系统所做的贡献对我来说也是一次奇妙的经历,并且至少有一些人发现我的工作很有用。 相比之下,能够一天天对PHP本身进行改进,可能会让数百万开发者的生活变得更好,这才让人真正感到满足。
Sebastian: 您对 PHP 的第一个贡献是什么?
Máté: 我从 15 岁就开始使用 PHP,而且我长期关注PHP的内部邮件列表沟通。 自从找到邮件列表后,我一直梦想着能够为 PHP 做出贡献,即使只是一点点改变。 快进到 2019 年,当时 Nikita 启动了一个所谓的“ stubs 倡议计划”(PHP核心的改进,提倡给参数和返回值声明类型)。 这是我开始职业生涯的完美项目。 通过提交数百份 PR,我可以从 Nikita 和 Christoph 等人那里学到很多东西,他们不知疲倦地审查了我的代码,并在我遇到困难时提供了帮助。
Derick: 早在 2000 年,我首先尝试为 MySQL 添加“子查询”支持。 MySQL 的查询语言不支持它,我想出了一种用 C 重写查询的天真的方法,即执行两个查询。 我的第一个实际贡献是 SWF 在 getimagesize()
函数,然后将 libmcrypt 2.4 支持添加到 mcrypt 扩展中,我最终也重写了它。
Arnaud: 我首先探索了 PHP 代码库,因为我需要在 PHP 项目中使用第三方的库。 我不得不写一个小扩展。 我记得有一篇博文是关于 zvals,它对我开始有很大帮助。 后来我在 PECL 上为 inotify 上传了另一个扩展。 在那之后,我不记得确切的时间表了。 我想修复一个错误,所以我在错误跟踪器上发送了一个补丁。 我还在 wiki 上找到了一个 TODO 并决定去做。 这是在 PHP 5.x 时代。
George: 我首先为 PHP 文档的法语翻译做出了贡献,然后才开始编写英文文档,然后使用 php-src 来修正我在维护文档时发现的一些非常奇怪的行为。
Ilija: 那时我专业地使用 PHP 已经 6 年了,并且贡献过几次我的想法。 然而,我能想到的大多数功能似乎都令人生畏,尤其是因为我没有任何 C 经验。然后我看到了 Nikita 的这条 推文 ,关于如何 throw
可以更改为允许在表达式中使用。 在新冠疫情开始那段时间很无聊,我正在寻找分散注意力的东西。 这看起来很简单,所以我试了一下。 实际的更改是单行的,但 OpCache 存在问题,需要 Nikita 和其他人的帮助才能解决。 尽管如此,这足以吸引我并激励我继续推进 RFC。
Jakub: 我曾经是一名 PHP 开发人员,遇到了一个名为 fann 的 PHP 扩展。 由于它并没有真正起作用,我重构了整个扩展。 这教会了我一些关于 PHP 内部的知识。 一段时间后,我想正确学习bison和re2c等工具。 当时,由于许可问题,需要一个新的 PHP 的 JSON 解析器。 于是我写了一个新的 JSON 解析器,成为了 PHP 的核心贡献者。
PHP武器库小编注:
fan,PHP的神经网络扩展。
bison,一个通用的解析器生成器,开发编程语言相关的工具。
re2c,将正则表达式转为C/C++的代码
Sebastian: 您打算在 PHP 基金会赞助的这段时间里从事哪些工作?
Máté: 首先,我想完成我已经开始的项目:只读类(需要成功的 RFC 投票),将资源转换为对象,向stubs(PHP核心概念)添加常量,以及为使我们的文档更完整和更容易做其他基础工作维持。 然后我的计划是改善内置扩展的开发人员体验,并继续努力使 PHP 成为一种更加一致和合理的语言。
George: 为了清晰起见,我计划主要研究类型系统以及重构扩展代码。 例如,我想继续努力将资源转换为不透明对象。
Ilija: 我有一些事情想尝试解决:抽象数据类型、属性访问器、类型别名等等。 我最大的目标是深入了解代码库( 提高巴士因子 ),帮助维护,并帮助其他人。
PHP武器库小编注:
巴士因子,项目管理概念,越高越好。简单来说,一个项目总有一些“不可替代的人”,一旦这些人出现意外,则项目可能面临瘫痪,(比如一个创业公司只有一个开发人员),像这样的人越多,整个项目就更“安全”。
Jakub: 我计划主要致力于我已经参与的领域的维护和改进。 具体来说,我想将大约 50% 的时间用于 FastCGI 流程管理器 (FPM),20% 用于 OpenSSL 扩展,10% 用于 JSON 扩展,10% 用于 GnuPG 扩展,最后 10% 用于流以及可能的其他核心部分。
Derick: 首先,我想清理所有日期/时间错误和报告,花时间充分理解和协助新的 RFC,更专业的安全的@提醒人员,完成所有服务器管理任务,并提出一些新功能,例如与笨重的 intl 扩展相比,它可能是一个 UString(Unicode 字符串)类,其所有操作都具有更好的接口。
Arnaud: 我想帮助改进语言及其实现。 我希望在 PHP 中看到的一个特性是自动捕获闭包,所以我现在正在着手实现它。 我还想让一些编程问题更容易调试。 例如,某些不受控制的递归情况可能会在堆栈溢出时导致分段错误,这没有给出任何有用的信息。 另一个是内存耗尽错误不显示回溯(trace)。 我想修复这些类型的问题,以及一般的错误。 我对优化器和 JIT 也有一些兴趣,所以我一直在修复这方面的错误。 最后,我希望在 PHP 中看到泛型,所以我可能想在某个时候做这方面的工作。
Sebastian: 感谢您花时间回答我的问题。 我期待着看到您的工作成果让 PHP 对每个人都更好。
采访原文: https://thephp.foundation/blog/2022/05/06/interview-with-core-developers/
本文由PHP武器库参考原文翻译,有任何问题,欢迎指出。
原文标题:PHP核心开发者的采访
原文地址:https://phpreturn.com/index/a62981f799047e.html
原文平台:PHP武器库
版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。