Artisan 文件:Eric Barnes
发表于 作者: Eric L. Barnes
这是 Artisan 文件系列的特别版。在过去的几周里,有几个人要求我接受采访,这以前我甚至没有考虑过。对于这次采访,Taylor Otwell自愿提出问问题,如果你有什么问题没有被问到,请在评论区留言。
你能告诉我们关于你自己的事情吗?
我 36 岁,住在北卡罗来纳州夏洛特郊外。和一个很棒的妻子结婚,有两个女儿(5 岁和 4 岁)。
我是在 1999 年到 2001 年之间开始进入开发世界的,我对确切的时间记忆模糊。这一切都是从我在一家摩托车经销店工作开始的,我们需要一个网络形象。我们最初将这项任务外包,结果得到一个完全使用 Frontpage 及其扩展构建的庞大网站。
我承担了更新网站的任务,在某个时刻,我破坏了 Frontpage 扩展。我 *相信* 我最终修复了它们,但这引发了一种模式,直到我终于忍无可忍,决定这个网站需要一个数据库。
由于我对这些完全没有概念,我在各种论坛上问了一些非常愚蠢的问题,直到我得到建议,说 PHP 和 MySQl 最简单易学,并且可以满足我的目标。
我记得当时我感到非常不知所措。在开始构建应用程序之前,你需要学习很多东西,简直令人发狂。对于一个简单的 CRUD 应用程序来管理库存,我不得不掌握 MySQL、PHP、Apache、HTML、FTP 和某种图像编辑应用程序的基础知识。因为我想尽快完成它,我发现 Dreamweaver 可以为你构建 PHP,甚至可以轻松地与数据库集成。
我使用 Dreamweaver 构建了第一个应用程序,它实际上运行了!部署第一个版本并在网络上看到它上线时,我感到非常兴奋,也正是从那时起,我决定将开发作为我的职业。
从那时起,我继续摸索着前进,直到今天,我仍然时常感到自己一无所获。我们的行业一直在不断变化,这让人很谦卑。即使是我们敬佩的人也不可能无所不知,而且永远不会。
使用 Dreamweaver 让我远离了代码,但在某个时刻,我不得不深入源代码。我迷路了。为了解决这个问题,我买了一本由 Kevin Yank 编写的 PHP 入门书籍。我不认为这本书还在出版,但它非常基础,而且写得很清楚,帮助我理解了 PHP。
我觉得,如果我现在开始学习,初始的学习时间会大大减少。我也认为,许多开发人员忘记了当初一切是多么困难。
是什么激励你开始每周发布 Laravel 新闻通讯?
我决定在今年 5 月开始发布 Laravel 新闻通讯。我的灵感来自于这样一个事实:我在网站上分享了太多文章,以至于我觉得普通人没有时间跟上这些文章。因此,通过创建每周摘要,订阅者可以快速浏览列表,并随时了解有关 Laravel 的所有有趣信息。
我对新闻通讯的另一个目标是,我不希望它仅仅是一个链接列表。毫无疑问,这对我会更容易,但我认为这对订阅者来说没有太大价值。因此,为了使其成为一种独特的体验,我尝试每周写一篇个人轶事,并分享我在 Laravel 社区之外发现的一些有趣的事情。
我从未想过,保持这个新闻通讯运行需要花费多少时间。因为它是一周一次,我不能只坐下来写几期。前几期花了我大约 7 个小时以上,主要是因为写作很难,而且我想让它完美无瑕。
现在我可以在大约 2 个小时内写完一期。我仍然有很多周都会遇到作家障碍,但我正在努力在这方面做得更好。
如果你还没有加入,请务必加入。这会让我非常开心!
我尽量保持简洁,但你从我的 /applications 文件夹里是看不出这一点的。我有一个怪癖,就是必须拥有每一个新发布的闪亮应用程序。这份列表是我目前的“必备”应用程序,但它可能会随时发生变化。 你最喜欢的 Mac 和 iOS 应用程序有哪些?
Mac 应用程序
- Ulysses III
- PhpStorm
- Sublime Text
- Sequel Pro
- Navicat for Postgres
- Tweetbot
- Omnifocus
- 1Password
- Spotify
- Droplr
- HipChat、Telegram、Mac 信息
- Day One 日记 - 用来记录回忆
- Houdini - 自动隐藏未使用的应用程序
- Sketch - 比 PhotoShop 更容易使用
- Flux 应用程序 - 这样我的眼睛就不会流血了
- Spectacle - 将我的窗口居中
iOS 应用程序
- Youversion 圣经
- 1Password
- Camera+
- Tweetbot
- Fantastical
- Daedalus
- Omnifocus
- Day One 日记
- Sleep Cycle
- Telegram
开发工作流程
我典型的日常工作流程是从 PhpStorm、终端和 Chrome Canary 开始进行开发。我使用 Safari 作为我的默认浏览器。然后,如果我需要进入数据库或其他任何内容,我就会启动所需的应用程序。
我还想指出,我使用的是 Mac 的默认终端。我有 iTerm2,但我远不是一个高级用户,两者都满足我的需求。我确实使用 ohmyzsh,没有它我无法生存。
获取新闻
在一天中,我会使用 Tweetbot 检查 Twitter,并将有趣的链接保存到 Pocket 中。这些链接通常在晚上被回顾,如果它与 Laravel 相关且有趣,我就会从它创建一个新的帖子发布到这个网站上。
我通过使用多个主题列表,从 RSS 和 Twitter 上的突发新闻中获取其他新闻。
写作工作流程
对于写作,我已经 完全切换到 Mac 上的 Ulysess III,以及它在 iOS 上的配套应用程序 Daedalus Touch。我大部分写作都是在 Mac 应用程序中完成的,当我对文本感到满意时,我会导出 Markdown 并将其粘贴到一个新的帖子中。iOS 应用程序非常方便,当我午餐时遛狗,并且突然有了一些好主意时,我可以打开它,直接添加到“想法”页面中。
我会偶尔回顾一下这个列表,如果我想继续下去,就会将其移动到一个 Omnifocus 任务中。
iOS
我的手机不是真正用来打电话的。当然,它可以打电话,但我每月通话时间不到一个小时。当我外出或遛狗时,我会用它来拍照、社交、阅读和玩游戏。事实上,这是我唯一拥有的相机,我喜欢它只是将我真正需要的一切都放在口袋里的简单性。
我确实拥有一台 iPad,但我只用它来阅读、看电影和偶尔写作。在我理想的世界里,iPad 会为 Web 开发提供更强大的功能,而我将更多地使用它。
你认为哪些因素造就了一名成功的程序员?请说出三点。
这个问题对我来说很难。在我过去的工作经历中,我一直都是唯一的开发人员。直到我开始与你、Chris 和 Ian 合作,我才认识了其他人。
以下三点我认为很重要
- 激情
- 团队成员
- 回馈
对你所做的工作充满热情。这与任何其他工作没有什么不同,如果你有热情,并且享受你的工作,它会表现出来。如果你每天早上都讨厌起床,做程序员的工作,那就找另一条职业道路吧。人生苦短,不要做你不喜欢的事情。
成为团队中的一份子也非常重要。你可以是“摇滚明星”或“专家”,但如果你以自我为中心,我不想和你一起工作。如果你犯了错误,承认错误。如果同事犯了错误,而你发现了,帮助他们。
回馈是帮助你不仅作为程序员,而且作为一个人成长的最后领域。这可以是任何事情,从帮助他人、为你喜欢的项目做出贡献、发布开源软件或记录你的经验。当你变得有经验时,你会成为别人的灵感来源,而作为初学者,你会从他人那里获得指导。
如果你要从头开始构建一个全新的 Web 应用程序,你会使用哪些工具/库?
我认为这取决于应用程序的范围。我最近一直在思考一个新的应用程序,我会使用以下工具:
- Laravel 用于后端
- Gulp
- Bourbon 和 Neat 用于 CSS。
- Angular 用于前端。
然后对于库,我几乎在所有项目中都使用的一些我最喜欢的库是:
让我惊讶的是,Laravel 本身包含了典型应用程序所需的大多数功能。从下载到部署是它的口号,这确实是事实。很少需要使用核心之外的东西,只有当你遇到独特需求时才会使用。
我知道我在上面提到了 Angular,但我也想使用 pjax 或 turbolinks 为 PHP 构建一个应用程序。我最近看到一些知名人士支持这种方式,我认为这将是构建应用程序的一种有趣的方式。
你听过的最喜欢的会议演讲是什么,为什么?
这很难说。我一直从我在会议上遇到的其他人那里获得更多东西,而不是实际的演讲。
技术演讲本身就很困难,因为演讲者永远不知道听众的知识水平。如果这是一个编码演讲,那么很容易通过谈论超出他们理解范围的内容而让一些人感到被排除在外,而如果太简单,就会让更高级的听众感到无聊。
在我理想的世界里,所有演讲都会在活动结束后变成史诗般的博客文章。许多会议确实提供视频,但我更愿意以自己的速度阅读,而不是观看。
说到这里,我会将 Greg Baugues 在 Laracon 上的演讲评为我见过的最好的演讲。内容对我自己来说并不直接适用,但这是一个非常完美的演讲。他确实有优势,因为这是他之前多次进行过的演讲,但你可以通过观看它学到很多东西。
演讲有一个很棒的故事,他控制了舞台,让观众专注于他说的每一句话。这很有力量。
我对演讲者和想要参加演讲巡回赛的人的建议是,讲故事,激励别人,不要把幻灯片当作拐杖。看看 Greg 的演讲,学习他传达内容的方式。
我知道根据我的有限演讲经验,这些都很难做到。尤其是讲关于枯燥乏味的代码主题的故事:)
你最喜欢的 Laravel 功能是什么?
我喜欢的部分可能不被认为是功能,而是项目愿景。我喜欢 Laravel 既强大又易于使用的方式。语法和 API 也是一项非常重要的功能。我认为开发人员往往会忘记首先为最终用户设计,这会对用户体验产生很大的影响。
现在说说一个真正的功能……
我只想公开声明,“我非常喜欢 FACADES”。尽管有人会讨厌,但我并不在乎。:) 我也真的很喜欢 Eloquent 和 Blade。我想这真的很难说。
总结
我要感谢 Taylor 接受这次采访,还要感谢你阅读。如果你有未被解答的问题,请在下面留言。可以将此视为第一个 Laravel News AMA。