工匠档案:Bob Bloom

发布于 作者:

本周我很高兴采访 Bob Bloom。Bob 是 LaSalleMart 的开发者,播客,并且最近开始使用 Laravel 作为他的首选框架。

您能告诉我们您的情况吗?

第三代多伦多人,自豪的加拿大人,51 岁,已婚近 20 年,与我令人难以置信的妻子。三个学龄孩子。这算不算推文风格的介绍?

在多伦多大学,我是为数不多的商学院学生之一,除了入门课程外,我还选修了额外的计算机科学课程。我的计算机科学助教告诉我,不要再浪费时间在商业上,转到计算机科学。我拒绝了,并获得了会计和经济学的双重专业学位。因此,回顾过去,我的背景更加全面。

由于我不是计算机科学专业的,而且我从未做过纯粹的开发工作,所以我从未把自己视为“真正的”程序员。我会写脚本、黑客和反向工程。我一直都在努力把自己认定为“真正的”程序员,但去年我终于“跨越了”,把自己视为“真正的”程序员。

在 Y2K 时代,我的 IT 咨询职业发展得如火如荼,作为业务分析师和项目经理。我去过的地方,我都是最懂技术的业务分析师,将用户与技术人员联系起来。2000 年,我开始向项目管理方面发展,似乎即将获得 PMI 认证。

2000 年夏天,我们的第一个孩子出生了。我安排从我的 BA 职位中请假几周。当我回来时,我得到了大幅加薪,并直接负责 PM。嗯,在 Aaron 出生的几个小时内,我接到一个电话,说我不应该回到我的当前合同。我当时并不知道,那是我的咨询生涯的结束。

最终,我最终以独立顾问的身份开始创业,仅仅因为这是我唯一可行的职业选择。我已经有一家公司通过它来进行咨询。我已经建立了会计和税务方面的东西。因此,咨询是一个很小的行政步骤;但,这是迈向独立咨询的一大步。

当时,Joomla 看起来对我来说是未来发展方向。我学习了 Apache、MySQL 和 PHP,同时学习了 Joomla 1.0。我学习 Apache 的想法是学习 php.ini 中的所有指令。MySQL 在那个时候发布了 5.0 版本,所以我研究了新的触发器、视图等。我很幸运,我能进行“自主学习”;否则,就别指望成为一名独立的技术咨询师兼开发者。

我阅读了关于独立咨询的如何做 (电子) 书,但是没有像真实经验一样的教育机构。我通过 Craigslist 找到了第一批客户,他们拒绝付给我钱,这些人是一条丰富的本地 - 然后是远程 - 客户资源。大多数人并不隐晦。有些人很聪明。

在这段时间里,我似乎 gravitate to Joomla 的一个领域:Virtuemart 电子商务扩展。Virtuemart 是 Joomla 的流行 FOSS 电子商务插件,由于拥有技术和商业背景,我能够理解它。这个插件本身就是从独立的电子商务程序中分叉出来的,并适应了 Joomla。我能够解开意大利面条代码并修复了很多问题。由于非常流行,Virtuemart 论坛上充斥着人们发布的问题。我回复了帖子,人们最终联系我帮助他们解决问题。这些人愿意付费,因为他们遇到了麻烦,他们希望我在出现更多问题时回复他们的邮件。其中一些人仍然是我的客户 - 我认为他们是我的客户家庭。

一个有吸引力的 Joomla 电子商务插件发布了 Joomla 1.5。我维护了该插件的分发版,其中包括加拿大 HST/GST/PST 处理。当开发速度变慢时,我分叉了它。两次!对于 Joomla 1.5;而且,我分叉了他们早期(更像是过早的)Joomla 2.5 版本。

我将这些分叉称为 LaSalleMart 1;以及 LaSalleMart 2。在进行第二次分叉之前,我承诺学习开发工具,因为我遇到了瓶颈。我从头开始安装了 Ubuntu,购买了 PHPStorm,并学习了很多新东西,包括 Git 和 Phing。软件免费的程度仍然让我感到惊讶,但学习它是一项重大投资。

事实证明,原始扩展从未发布到 Joomla 2.5。因此,我的分叉,LaSalleMart 2,代表了原始版本在 Joomla 2.5 的生产版本。那是一个相当大的努力。我在这里承认,我很幸运,原始扩展维护了一个半活跃的 GitHub 存储库,因此我能够从存储库中获取代码,这被证明是必不可少的。但除此之外,我只是非常坚持。只有少数几个网站使用 LM2。当它发布时,Joomla 3 出现了。

LaSalleMart 2 中有如此多的 Joomla 1.5 代码,转换为 Joomla 3 可能比从头开始更痛苦。Joomla 的杰出 Akeeba Framework 已经发展得非常成熟,以至于它被包含在 Joomla 3.x 中(那是另一个故事)。所以我决定,在 LM2 赚到第一美元之前,我会放弃那项巨大的开发工作,转而从头开始为 Joomla 3 构建一个新的 LaSalleMart,并使用 FoF。我成功地完成了 LM3,它出色地表达了 Joomla/FoF 电子商务可以做到什么。这是一个非常艰苦的努力,包括一个巨大的幕后构建和更新机制。从提交到网站更新只需 30 分钟。而不是几周或几个月。Joomla 世界中的持续交付!

我的博客和播客详细介绍了促使我离开 Joomla 的原因。基本上:Joomla 3.x 版本策略已经改变,有可能看到新的 Joomla 版本过早地使 LaSalleMart 3 过时。

在投入了如此巨大的开发努力之后,在 LaSalleMart 3 即将开始盈利的时候就放弃它,这是一个不可思议的决定。我非常生气,很难控制我的博客帖子和播客不陷入狂躁的怒火。此外,我放弃了多年来建立的利基市场,这项投资也打了水漂。

但是,我经历了两次 Joomla 版本更改,这两次更改都需要大量的更新投资。开发体验很棒,但我的业务遭受了沉重打击。我得出结论,LM3 无法盈利的风险非常大,以至于明智的选择是放弃 Joomla。得出结论是一回事,采取行动是另一回事。好吧,2014 年 4 月,我放弃了 Joomla。2014 年 5 月,我决定学习 Laravel。

您能告诉我们您从 Joomla 切换到 Laravel 的情况吗?

Joomla 是一个封闭的环境,因此编程 Joomla 插件非常具体,只针对 Joomla - 但不代表更广泛的 PHP 世界。Joomla 有自己的方法来进行用户管理、访问控制、更新等。当我开始学习 Laravel 框架时,我认为它是一个类似定义的环境。哦,不!Laravel 框架只是构建 web 应用程序的更广泛世界中的一个元素。

对我来说,Laravel 击中了所有正确的音符。

Laravel 吸引我的地方在于它看起来像是进入 Web 应用开发领域的一道很棒的开胃菜。现代化,潮流,并且互联网上有海量的资料。2013 年 11 月的 php[architect] 杂志刊登了关于 Laravel 的文章(“Laravel - 一个现代的 PHP 框架”,第 28 页及以后),这再次印证了我对 Laravel 的所有了解。我的印象是 Laravel 4 是经过多年的成长阵痛后诞生的产物,一个找到了稳定立足点的版本。Laracasts 是一种全新且独特的强大加速学习工具。对我而言,Laravel 击中了所有正确音符。

我之前没有使用过其他 PHP 框架,所以我的学习曲线非常陡峭(现在也是)。我一头扎进了 Laravel,也一头扎进了更广阔的 Web 应用开发领域。我发现它非常令人困惑,缺乏理解所有事物的背景信息。在对服务器、构建工具、开发环境、软件技术以及 Laravel 本身进行了调查后,我意识到自己需要退一步。首先,我要精通 Laravel 以及学习/使用 Laravel 的关键工具和技术。然后,我会进一步拓展自己的技能。

学习的唯一方法是构建一个应用程序。我从头开始构建了自己的博客应用程序。我放弃了 Joomla,最终构建了自己的 CMS - 听起来有点可笑。我称我的博客应用程序为 LaSalleCMS。它在 GitHub 上,但任何理智的人都不会使用它。我在一次秋季的 Laravel 多伦多聚会上展示了它(感谢 #LaravelTO 提供这个机会)。在这次演示后,我开始了对它的深度重构,将它打包成一个个大的模块。当这个重构完成时,它可能会对其他人有兴趣。

我在深入 LaSalleMart 4 开发时暂停了这个重构。我最初的 LM4 重点是构建一个内部 API。一旦我掌握了这个内部 API,我就会将这些技术引入 LaSalleCMS。所以 LaSalleCMS 的另一个重构正在进行中。

从 5 月到 10 月,我花了将近半年时间才完成了 LaSalleCMS 的第一个版本。它现在为除我的媒体网站以外的所有网站提供支持,所以它是实打实的。

在 2015 年,我正在构建我的软件三胞胎:LaSalleCMS,它正在进行重构;LaSalleCast,我的电子广播平台(最后构建);以及 LaSalleMart,我正在开发的项目。LM4 将复制 LM3,并有一些调整。

虽然我认为我的软件是三个独立的应用程序,但实际上它们是许多独立软件包的集成。啊,创建 Laravel 软件包!从去年 5 月的那一天起,我盯着屏幕,想知道为什么 Laravel 的“您已到达”消息没有出现(答案:权限不足)。

令人惊讶的是,我没有因为从 Joomla 转向 Laravel 而失眠。现在,我比我人生中任何时候都更强大,而且还没有达到顶峰。我的技能已经突飞猛进,并且仍在不断提升。我的应用程序比我以前所做的一切都更加强大。LaSalleMart 4 将超越我的 LaSalleMart 3 成绩。

从 Joomla 转向 Laravel 有时会让人筋疲力尽。在我使用 Joomla LaSalleMarts 长时间获得的投资回报率很低之后,这是一个巨大的投资。我很高兴我转向了 Laravel。

你通常构建什么?客户工作、产品等…

通常情况下,我是一个技术型电商人员。

我继续支持我现有的 Joomla 客户网站。最近,我帮助了一些 WordPress-WooCommerce 网站。

我从头开始搭建网站。安装扩展/插件。安装模板/主题。设置用户、菜单等。修改源配置文件和视图。调整模板/主题。在 PhpMyAdmin 上花时间。作为全方位服务,我会输入产品数据,设置结账流程,审查设置,导入文章(从 Word 中 - 糟糕!)。

然后,还有软件要构建。

你学习 Laravel 最难的部分是什么?

学习 Laravel 最难的部分是:(i)学习的范围;以及(ii)改变我的开发方式。

由于没有使用过其他框架,我必须学习一般的 Web 应用程序开发,而不仅仅是 Laravel 框架。需要吸收的东西很多。

我自己的开发风格已经改变。SOLID 原则、测试、命令总线和事件等等。

对我而言,Laravel 本身最难的部分是命名空间与 Composer 的结合。尤其是软件包。其他人会遇到 RESTful 路由和控制器、部署、环境方面的麻烦。出于某种原因,Laravel 软件包的 PSR-0/4 命名空间与 Composer 自动加载是我主要的 #PITA(Pain In The A**)。

你对想要转向 Laravel 的其他人有什么建议?

阅读 Symfony 文档,因为 Laravel 是基于 Symfony 的。

遍历源代码。

直接深入了解容器和依赖注入 - 关键概念!

期待在下次 Laravel 多伦多 聚会上见到多伦多地区的读者。

Eric L. Barnes photo

Eric 是 Laravel News 的创建者,自 2012 年起一直在关注 Laravel。

归档于
Cube

Laravel 新闻稿

加入 40,000 多名其他开发者,不错过任何新的技巧、教程等等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动完成和对本地和生产环境的即时反馈进行调试。

Tinkerwell
No Compromises logo

无妥协

Joel 和 Aaron,来自无妥协播客的两位经验丰富的开发人员,现在可以为您的 Laravel 项目提供服务。 ⬧ 固定价格 7500 美元/月。 ⬧ 无需冗长的销售流程。 ⬧ 无需合同。 ⬧ 100% 满意退款保证。

无妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,以确保您的 Web 应用程序取得成功。

Kirschbaum
Shift logo

Shift

运行旧版本的 Laravel?即时、自动的 Laravel 升级和代码现代化,让您的应用程序保持新鲜。

Shift
Bacancy logo

Bacancy

仅需每月 2500 美元,即可使用拥有 4-6 年经验的经验丰富的 Laravel 开发人员为您的项目注入活力。获得 160 小时的专业技能和 15 天的无风险试用。立即安排通话!

Bacancy
Lucky Media logo

Lucky Media

现在就来体验幸运 - Laravel 开发的理想选择,拥有十多年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar: Laravel 电子商务

Laravel 的电子商务。一个开源软件包,将现代无头电子商务功能的强大功能带入 Laravel。

Lunar: Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 职位板

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit:Laravel SaaS 启动工具包

SaaSykit 是一个 Laravel SaaS 启动工具包,它包含运行现代 SaaS 所需的所有功能。支付、精美的结账流程、管理面板、用户仪表板、身份验证、即用型组件、统计信息、博客、文档等等。

SaaSykit:Laravel SaaS 启动工具包
Rector logo

Rector

您无缝升级 Laravel、降低成本并加快创新的合作伙伴,助力企业取得成功

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成增强您的 PHP 应用程序,使开发人员能够轻松高效地构建应用程序。支持事务、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。了解 MongoDB 的灵活、现代数据库如何改变您的 Laravel 应用程序。

MongoDB

最新资讯

查看全部 →
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的无依赖性输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

在 Laravel 应用程序中添加 Swagger UI

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel Prompts 构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 软件包为 Laravel 应用程序添加评论

阅读文章