本周我很高兴向你介绍 Barry vd. Heuvel。Barry 是 Fruitcake Studio 的合伙人,并创建了两个最受欢迎的 Laravel 软件包 laravel-ide-helper 和 Laravel Debugbar。
你能告诉我们一些关于你的事吗?你是怎么开始进行 web 开发的?
当我大约 15 岁的时候,我的两个同学开始制作网站(使用 Dreamweaver、Flash 等)。我一直对电脑感兴趣,所以制作网站看起来非常令人兴奋。他们告诉我,如果我学会创建动态网站,比如网店,就可以加入他们。
之前从未编程过,我在当地图书馆租了一本 PHP + MySQL 初学者书籍,在假期期间阅读,并付诸实践。我对使用 PHP 开发网站的简便程度感到惊讶,并创建了超级简单的“网店”演示来展示给我的朋友们。
显然它足够好,因为我们在中学期间一直和我们三个人一起工作,为熟人创建简单的网站,甚至赢得了一些网页开发比赛。即使我们在大学期间走上了不同的道路,我们也一直兼职制作网站,并在 2007 年向商会注册了 Fruitcake Studio。
在获得大学学位后,我们决定继续制作网站。所以现在,大约 12 年后,我们三个人正在做我们一直喜欢做的事情:网页开发。
你是怎么第一次找到 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 上还是 Mac 上使用 PhpStorm 并不重要。
我们在办公室有一台本地开发服务器(CentosOS + Apache/PHP5.4/MySQL),与我们的生产服务器类似。该服务器运行我构建网站所需的大多数东西(git、gulp、bower、composer 等)。在我的本地 PC 上,我只是运行 PhpStorm 进行编程(喜欢我的自动补全功能)、Putty 用于与我的服务器交互、Filezilla 用于传输其他文件以及 Paint.NET 用于偶尔的图像编辑(我尽量避免使用 Photoshop,因为我们的设计师在这方面做得更好)。
为了与同事沟通,我们使用 Skype 和 Redbooth 进行任务管理。除此之外,Chrome、Notepad++ 和 Github 应用程序也是必不可少的。
你有什么除了电脑以外的爱好吗?
我喜欢很多运动,但我从小就踢足球,仍然非常享受它。我每周都会训练和参加比赛。自从我两个兄弟去年加入球队后,我们甚至获得了冠军。那是在最低级别的业余联赛,但我们主要为了乐趣而踢足球。
最近,我和妻子以及一位同事开始学习高尔夫,作为一项不太激烈、更休闲的运动,也是一种建立人脉的机会。
我还喜欢和朋友出去玩,去当地酒吧或只是和妻子去看电影。
如果你能成为超级英雄,你想要什么超能力?
冻结或减缓时间会很不错,我总是有想做的事情,想尝试的工具,想改进的项目,想做的运动等等。我只是找不到时间做完所有事情。特别是对于 web 开发来说,每天似乎都会出现新的令人兴奋的技术。当然,这很棒,但我有时确实觉得我错过了很多乐趣,不得不赚钱;)。
