认识一位扩展开发者:Samuel Marshall JCH Optimize
Patrick Jackson 与 Samuel Marshall 进行了交谈,他是JCH Optimize(一个可以显著提高您的Joomla网站性能的优化组件)的创造者,讨论了他如何开始使用Joomla以及JCH Optimize的未来发展方向。
下个月是Joomla 4正式发布18个月。2021年,杂志推出了一系列“为Joomla 4准备扩展”,与Joomla扩展开发者讨论他们更新扩展以适应Joomla 4的进展。11月,Hans van der Meer 跟进了几位扩展开发者,了解进展情况。
2023年,我重新启动了这个系列,但由于Joomla 4现在已经非常成熟,我将更多地讨论程序员的旅程,成为Joomla扩展开发者。
认识Samuel Marshall
Samuel Marshall在过去十年中一直在开发JCH Optimize,作为一个用于Joomla的优化扩展,后来也用于WordPress。JCH代表的是JavaScript、CSS和HTML,该组件确实如其所说——优化了您网站输出。我已经使用JCH Optimize好几年了,并且一直在网站上实施它,以显著提高其Lighthouse和整体性能。您可以在Joomla澳大利亚用户组的YouTube频道上找到一些展示该组取得的一些结果的演示。
那么,你的编程起源故事是什么呢?
我没有从软件开发者开始。我实际上获得了电子和计算机工程学位。在牙买加,我毕业后花了几年的时间在电力分配网络工作,但不喜欢。我喜欢计算和电子,但在大学时,我选择了“电力分配”作为更具市场前景的专业技能。我错了。
我决定自己创业...试图在牙买加创建一个Netflix版本。我购买了一个源脚本,试图用它来设置。它需要一些定制,所以我向提供脚本的开发者请求进行更改,他们说几天后会提供更新。在那几天里,我想自己试试,尝试对其进行定制。
所以我想出了一个解决方案,然后等待他们的解决方案出台。当他们的解决方案到来时,我发现我更喜欢我的解决方案,所以我决定实施我的方案。然后这种情况又发生了几次,我在完成网站的过程中意识到,我编写的代码比他们的更好。不幸的是,这个业务最终彻底失败,但我意识到我真的很喜欢编程。
这是一个相当大的转变——那么,Joomla是如何进入视野的,以及优化解决方案的概念是如何产生的呢?
在我离开电力公司的工作之前,我就沉迷于编程了——白天我在杆上工作,然后一直编程到凌晨4点。我那时开发的一个网站下载时间很长,这让我在向客户展示时感到尴尬,因此我开始研究如何使网站下载更快。
这只是JCH——javascript、css和html的方面——在那个阶段我还没有发现Joomla。我不太记得我是怎么得知Joomla的,但我知道当我找到它的时候,我决定想要将我的JCH脚本集成到Joomla中,所以我开始研究如何制作自己的组件。我找到了当时可用的这个插件。
我不记得它的名字了。我给开发者提供了一些关于如何让它变得更好的建议和意见。他回应了,但最终他不再回应——我想是因为我做得太多了,所以我最终决定,你知道什么?我要再次自学。
当时是Joomla 1.5,所以我制作了自己的插件,命名为JCH Optimize,并在扩展店上架。就是这样。
所以现在我看到你基于多伦多……那比牙买加冷一点?
是的,有点不同。我和我的妻子和两个儿子在这里已经五年了。现在我已经有九年时间在经营JCH Optimize了。当我离开电力工作时,我在想我还能做什么?我不喜欢再次为别人工作的想法。我回顾了一下JCH Optimize,并意识到,你知道,它开始受到关注,得到了很多好评。它有下载量,我决定,嘿,你知道什么?也许我应该尝试让它货币化。所以我开发了一个带有额外功能的Pro版本,还有免费的。好,既然已经上架,我就为它建立了一个网站,上架了,它就起飞了,而且做得很好!
快进到今天,JCH已经从原始插件发展到现在的版本,这是一个适用于Joomla 4的组件。你的公司还在做其他事情吗?
基本上就是这些。我从JCH Optimize开始,然后我开始考虑我还能用哪些扩展来补充它。一些其他开发者有很多扩展。我试图想出一些其他的东西来看看,但我只能做那些我能认同和喜欢的事情,我决定JCH Optimize就是那个。
是的,然后我决定,你知道什么,与其做很多扩展,为什么不只做这个扩展在不同平台上呢?所以我从WordPress开始,我还有一个适用于Magento和Drupal的版本。是的。但这两个都处于未开发状态,因为幕后有很多事情在发生。我只是没有我想以这种方式发展业务的那么多时间。
我主要支持的平台是Joomla。我还扩展到了WordPress。但我始终没有在WordPress市场上站稳脚跟。当我开始使用WordPress时,已经有其他类似的插件,比如W3 Total Cache、WP Rocket和WP Super Cache,它们已经很受欢迎了。
我的大部分订阅者都是Joomla用户——90%——但我无法告诉你这对应着多少个网站使用它。
在将扩展程序准备就绪以适应Joomla 4的过程中,你是否发现有很多事情要做才能使其准备就绪?
正如你记忆中那样,JCH Optimize最初只是几个版本的插件。
然后它开始变得有些复杂,有些人要求将其改为组件。我认为这是个好主意。他们还要求一些其他功能,比如我现在称之为模式切换器。有些人想要一种简单的方式来关闭和开启它,这使得作为组件更合理。
所以,在做出这个改变的同时,我决定同时使其与Joomla 4兼容。在那个时候,我将它放入组件,我开始了使用Akeeba FoF(框架上的框架),这在一定程度上简化了过渡,因为使用它时,它自动与Joomla 3和Joomla 4兼容。
有一个核心代码框架,它位于一个抽象层之后。但在那之前,我仍然需要与Joomla沟通。所以当我们刚开始的时候,抽象层会通过FoF进行沟通,然后FoF会与Joomla沟通。Akeeba在不久后停止了FoF,几乎在我完成之后立即停止。
我想找到一个好的解决方案,所以现在我不使用FoF,而是实际上使用Joomla框架本身,不仅仅是CMS。是的。但我使用Joomla框架,因为我需要一种与Joomla 3和Joomla 4都兼容的东西。我不想为每个版本编写不同的插件。所以,我并不是那么深入到CMS中,但我使用的是可以在WordPress中大部分使用的代码。
随着时间的推移,我将很快停止对Joomla 3的支持。一旦Joomla结束对版本三的支持,我也将停止支持它。到那时,我将直接使用CMS API进行编码。
你是在主要考虑性能工具如Google Lighthouse来设计JCH Optimize的最新改进,还是随着时间的推移逐步构建组件?
随着时间的推移,GTMetrix和Google Pagespeed一直在推动性能测量。当我开始时,GTMetrix可能是最受欢迎的一个。但你知道,因为Google与搜索有关,SEO性能是我们工作的很大一部分,人们倾向于更想使用页面速度。然后,当Lighthouse推出时,它完全不同了,因为我们发现当网站在GTMetrix上表现良好时,当开始使用Lighthouse时,你实际上并没有做出任何不同——它只是突出了一些不同的问题,因为Lighthouse查看了一些其他事情。
所以,你看看机会,然后说,好吧,你能做什么来自动化这个,或者你需要做什么来应对他们突出显示的特定机会。你只是继续添加功能来解决不同的问题。
最后,你对使用JCH Optimize的人有什么建议?
是的——首先,当你进行优化时,你只需要一个工具。重复操作不会带来更好的结果。所以如果你正在优化JavaScript、CSS和HTML,就只为这些使用一个工具。
如果你打算使用JCH Optimize,请禁用模板中的所有JS、CSS和HTML优化。如果你使用Cloudflare,甚至禁用其压缩和缓存功能。
我建议使用我们的页面缓存插件,并且只使用一个页面缓存插件,因为如果你使用多个,它们可能会相互冲突。如果你使用的是JCH Optimize页面缓存插件,不要使用Joomla核心的插件,否则你可能会开始遇到冲突。
还有什么在计划中?
我将在即将推出的版本中对图像优化进行更多开发。
目前,如果你上传webp图像,它们无法被组件进一步优化或重置,所以这项功能即将推出。
我们还在考虑一个调整大小工具。这将允许你在文件夹名称中指定尺寸。组件将根据文件夹名称或图像名称自动创建调整大小后的图像版本。因此,你可能会有1200x1200、600x600和300x300作为文件夹名称,组件然后将根据需要创建3种不同尺寸的图像版本。
我期待着这些功能很快就能看到。感谢你花时间,Samuel。
你可以在Joomla扩展目录上找到JCH Optimize。
在Joomla社区杂志上发表的一些文章代表了作者在特定主题上的个人观点或经验,可能并不符合Joomla项目官方立场。
通过接受,您将访问由https://magazine.joomla.net.cn/之外的第三方提供的服务
评论 1
JCH Optimize是Joomla优化的瑞士军刀。它包含在我的所有网站上。
感谢塞缪尔,感谢帕特里克。