工匠档案:Barry vd. Heuvel
最后更新于 作者: Eric L. Barnes
本周我很高兴向您介绍 Barry vd. Heuvel。Barry 是 Fruitcake Studio 的合伙人,并创建了两个最受欢迎的 Laravel 软件包:laravel-ide-helper 和 Laravel Debugbar。
您能告诉我们一些关于您自己的事情吗?您是如何进入 Web 开发领域的?
当我 15 岁左右的时候,我的两位同学开始制作网站(在 Dreamweaver、Flash 等软件中)。我一直对计算机很感兴趣,所以制作网站看起来非常令人兴奋。他们告诉我,如果我学会创建动态网站,比如网上商店,我可以加入他们。
之前从未编程过,我从当地图书馆租借了一本面向初学者的 PHP + MySQL 书籍,在假期里阅读了它并付诸实践。我惊讶于用 PHP 开发网站是多么容易,并创建了我的超级简单的“网上商店”演示来展示给我的朋友们。
显然它足够好,因为我们继续在中学期间的三年合作,为熟人创建简单的网站,甚至赢得了几个 Web 开发比赛。尽管我们在大学期间走上了不同的道路,但我们仍然将制作网站作为兼职工作,并在 2007 年向商会注册了 Fruitcake Studio。
在获得大学学位后,我们决定继续制作网站。所以现在,12 年后,我们三个人都在做我们一直以来喜欢的事情:Web 开发。
您是如何第一次发现 Laravel 的?
我认为是在 2012 年 7 月左右,当时 Laravel 3 越来越流行,我阅读了 NetTuts 上关于 Laravel 的一些教程,它看起来很棒。我对 MVC 框架并没有太多经验,但是阅读了 Laravel 文档和一些教程后,它看起来非常简单优雅。我特别喜欢 Eloquent ORM,它让所有那些枯燥的任务变得更加简单。
在发现 Laravel 后,我们开始了一些项目,并立即喜欢上了它。然后 Laravel 4 在恰当的时间发布了,我们再也没有回头(除了我们不得不勉强处理遗留网站的那些时间)。我们现在培训我们(新)开发人员使用 Laravel,他们似乎都喜欢它。
我在开始的每个项目中至少使用了一个您的软件包。是什么促使您决定创建这些软件包的?
这很简单:因为我缺少了一些东西;要么我想要的功能不存在,要么我不喜欢现有的软件包。我一直积极地关注 Laravel 4 beta 版,在早期并没有很多 L4 软件包可用。
我非常喜欢 Laravel 4。但是有一件事我真的很想念:IDE 的自动完成。考虑到我还没有掌握 Laravel 的所有方面,这非常令人讨厌。现有的解决方案总是不完整或过时(手动更新),所以我认为我同样可以使用 Laravel 本身生成所需的文件,并创建了 laravel-ide-helper。
Laravel 3 有一个探查器(Anbu,最初由 Dayle Rees 创建),并且一些针对 L4 的分支在它的基础上构建,但它并非真正意义上的模块化/可扩展软件包。我最初为一些分支做出了贡献,但后来我发现了 PHP Debug Bar,它已经包含了一些面向 Symfony 的收集器,所以只需扩展它就能很容易地创建 Laravel Debugbar。
通常情况下,我首先尝试使用现有的软件包,并提交一些补丁,直到我满意为止。如果那样行不通(项目被放弃,对某些内容意见不一致,或者仅仅是进度太慢),我通常会决定创建自己的软件包。很高兴的是,IDE Helper 和 Debugbar 现在都是 Laravel 社区中最常用的软件包之一:)
您是 Fruitcake Studio 的合伙人兼首席开发人员,那么在承担所有这些责任的情况下,您是如何抽出时间为开源做出贡献的?
成为合伙人的好处是我可以决定我想把时间花在哪里:)。另一方面,时间是有限的。我确实相信你必须不断地成长为一名开发者,否则你很快就会落后。我们以使用最新技术而自豪,所以对我来说,将时间花在从开源中学习是完全合理的。
此外,我们的网站/应用程序是基于许多开源工具构建的,所以为这些项目做出贡献将有利于我们的产品。创建开源软件包还会迫使您真正考虑实现它的最佳方式,记录它,并使它具有足够的灵活性,以便在未来的项目中使用。
很难在为客户工作、为开源做出贡献以及开发尚未实现的项目的未来构建块之间找到平衡。幸运的是,Fruitcake Studio 的其他合伙人支持我,并为我支付了参加 Laracon EU 的年度门票。这是非常合理的,因为我们的一些领导和申请人是在 Laravel 论坛上看到了我的帖子或我的 Github 个人资料后才了解我们的。
我通常会尝试将工作限制在“办公时间”,并在周末/晚上为开源做出贡献,但当然我也有妻子和爱好。所以基本上,每当我有一点空闲时间,我都会疯狂地查看我的电子邮件,以回复问题。
您能分享一下您典型的一天是什么样子的吗?
我通常在 7.30 左右起床,并在 8.30 左右到达办公室。到那时,我已经看到了大部分 Twitter 和其他社交媒体上的信息。如果我发现了一些有趣的博客,我会先阅读它。我们与我的同事进行了一个简短的会议,讨论了当天的任务,之后我们开始工作。
白天,我会偶尔抽出时间快速回复一些论坛上的问题,或者在 Twitter 上关注一些有趣的链接。当然,大部分时间都花在了为现有客户工作、制作新项目的报价或与(潜在/现有)客户开会上面。
下班后,我的妻子通常还没回家,所以我会要么去买菜做饭,要么就看电视放松一下,直到她回家。晚餐后,我通常会陪我的妻子,和朋友喝一杯,做一些编程,阅读有关 Web 开发的信息,或者做一些体育运动。
周末主要用来补觉,和朋友和家人出去喝酒/聚会,以及在周日踢足球。
您能告诉我们关于您本地环境的信息吗?您每天使用哪些应用程序?
我还在使用 Windows,这似乎与其他人不同,但我对此还算满意。我在桌面上没有做任何特殊的事情,只是编程,我想我在 Windows 上使用 PhpStorm 与在 Mac 上使用它没有太大区别。
我们在办公室有一个本地开发服务器(CentosOS + Apache/PHP5.4/MySQL),与我们的生产服务器类似。该服务器运行了构建网站所需的大部分工具(git、gulp、bower、composer 等)。在我的本地电脑上,我只运行 PhpStorm 进行编程(喜欢它的自动补全)、Putty 用于与服务器交互、Filezilla 用于传输其他文件以及 Paint.NET 用于偶尔的图像编辑(我尽量避免使用 Photoshop,那是我们的设计师更擅长的领域)。
为了与同事沟通,我们使用 Skype 和 Redbooth 进行任务管理。除此之外,Chrome、Notepad++ 和 Github 应用程序也是必不可少的。
你在电脑之外还有其他爱好吗?
我喜欢很多运动,但我一生都在踢足球,并且仍然非常享受它。我每周都会训练和参加比赛。自从我两个兄弟去年加入球队以来,我们甚至赢得了冠军。那是在最低级的业余联赛,但我们主要是为了娱乐而踢足球。
最近,我和妻子以及一位同事开始学习高尔夫球,这是一项强度较低、更休闲的运动,也是一个建立人脉的机会。
我也喜欢和朋友出去玩,去当地的酒吧,或者和妻子去看电影。
如果你能成为超级英雄,你想要什么超能力?
冻结或减缓时间会很不错,我总是有很多想做的事情,想尝试的工具,想改进的项目,想做的运动等等。我只是似乎找不到时间去做所有的事情。特别是在 Web 开发中,每天都会出现一项新的令人兴奋的技术。当然,这很棒,但有时我确实会有这样的想法,我错过了很多乐趣,而不得不赚钱 ;).