使用或不使用Magento连接…这是问题


53

Twitter上开始出现新的“意见分歧”。
出于非技术人员不应安装扩展的原因,一些高价值的开发人员开始从Magento Connect中删除其扩展。
其他开发人员不同意这个原因。
我之所以这样问,是因为我认为双方在某种程度上都是有效的。
由于140个字符远远少于解释原因所需的字符,因此为什么不将其集中在此处。
这样,技术人员和非技术人员都可以阅读它们。
我知道答案将主要基于观点,但是我保证一旦表达了一些意见,就结束这个问题。
或者,如果主持人认为这更适合于meta,则可以将其移至meta。


1
对于投票决定关闭此程序的人...请稍等一下。我在问题中指出,如有需要,我将自己关闭。
马吕斯

3
称它为“战争”有点极端,你不觉得吗?无论如何,我只想给@philwinkle一些下一个MageTalk情节之一的饲料... :)
Vinai 2014年

@Vinai。你可能是对的。为了辩护,我在引号之间加上了“战争”一词。但是,我将重提这个问题。人们可能会误解。
马吕斯

3
哦...发布了意见但没有重复答案的每个人都对我表示反对,因为所有意见都同样有效(或无效)。我会接受最接近我的观点的,因为按照我的标准,我的观点永远是最好的:)。
马吕斯

可能的问题是“现在使用magento连接,还是将其与magekarma.com法官.nr
apps.com之

Answers:


18

我认为删除MC上的扩展有点太极端了。Connect不仅适用于商人,还适用于开发人员(我喜欢升级功能)。但是我同意没有正确技能的人不应该安装扩展程序,因为它们很少与使用的主题兼容,存在太多潜在的冲突,而且经常会在商人和(免费)扩展程序提供者之间造成完全不必要的恶血。或在商人和站点开发者之间。

人,建商店就像在做音乐-最适合专业人士。


1
我喜欢这个比喻。
musicliftsme 2014年

3
这与我对此问题的看法非常接近。从MC中删除扩展名就像禁止Kinder巧克力蛋一样,因为曾经有一个胖孩子cho脚。等一下。
马里斯(Marius)

1
接受此答案不是因为这样做是正确的方法,而是因为它与我对此问题的看法很接近。
马吕斯

2
我在想,也许我们应该为开发人员启动一个社区驱动的扩展存储库/渠道?
Pronto

@Pronto像magekarma一样,或者您有什么想法?
维奈2014年

44

扩展程序安装及其后果

拥有可扩展系统的想法很棒,但是正如我们开发人员所知道的那样,它并不是那么简单。许多事情可能会(而且很不幸地)发生错误。

总览

我将从列出安装扩展可能引起的问题开始。然后,我将阐明我的要点,并陈述我个人从所有结论中得出的结论,最后我将提出解决方案。(这可能会很长,提前道歉。我将尽力写得尽可能少,但仍然涵盖该主题。)

因此,从这里开始,这里是由于扩展安装而发现的常见问题的列表。

安全

在Magento Connect上接受扩展之前,无需进行代码审查。结果,许多扩展包含漏洞。原因很多,例如开发人员的经验不足或懒惰,使用易受攻击的第三方代码,以及某些扩展甚至包含恶意有害代码。远程执行代码,SQL注入和停机是现实。结果是丢失客户数据,丢失付款凭证,丢失收入,丢失时间和失去信任。

性能

扩展可以在一个站点或开发人员实例上正常工作,但是具有不同的目录或客户群,则可能导致严重的性能问题。可能有许多具体原因,包括实体加载效率低,未优化的SQL联接,大量的Ajax请求,大量的属性选项或属性,等等。就像每个商家致电告诉开发人员一样,性能至关重要。这花费了商人收入。

矛盾冲突

即使只有两个扩展,即使使用最佳实践进行开发,也会发生冲突。这主要是由于Magento框架合并配置XML的方式。在最佳情况下,可通过堆栈跟踪或黑屏看到这些冲突,在最坏的情况下,该站点会阻止奇怪且难以调试的行为。如果没有开发人员的帮助,商人将无法解决问题并使冲突的扩展并存。这花费时间和金钱。

可升级性

仅出于安全原因,不升级是没有选择的。需要维护扩展,将其作为单独的代码库或作为Magento框架的一部分。如果正在使用扩展程序,而原始开发人员恰巧没有继续维护该扩展程序,则必须由其他开发人员接管。没有开发人员通常使商人无法升级,这反过来导致网站比他们必须的慢,利用了安全问题,从而损失了收入。

可扩展性

向现有站点添加新功能变得越来越复杂,因此也很昂贵,因为系统中的每个扩展都会增加技术负担。总债务比每个扩展都要大得多,因为合并的复杂性也比每个扩展都要大。无法轻松尝试新功能和更改会导致商家损失大量收入。

解除安装

卸载扩展程序时,以下情况会导致Magento损坏:

  • 引用卸载的扩展中的类的数据库记录(例如,索引器或属性后端模型)。即使遵循最佳实践的扩展也很容易做到这一点。
  • 卸载覆盖核心代码的扩展程序会使Magento缺少原始文件。当然,只有在扩展没有遵循最佳实践的情况下,才会发生这种情况,但这是许多扩展都不好的事实。

站点损坏当然要花钱。

Magento Connect

根据上述问题列表,究竟谁能期望非开发人员安装扩展程序并评估该扩展程序在给定站点上是否有效?

不能保证干净卸载,因此,损坏的安装甚至无法修复。唯一的选择是事先进行完整备份,然后在出现问题时进行手动回滚。非技术人员可以这样做吗?以我的经验,不会。

让我们假设一切看起来都不错。难道商家知道一切好吗?
那么安全性呢?那么性能问题呢?升级问题呢?
没有办法非开发人员可以评估这些东西。

Magento Connect传达的信息是,无需开发人员即可安装Magento,很容易扩展您的Magento商店。在销售推销中告诉情况确实很方便,但事实并非如此。

我主要经历的是,在交流中,仅隐含了对开发人员的需求,而没有交流。结果,许多商店所有者通过安装扩展程序来破坏其商店。这会花费金钱,时间,神经,Magento和开发人员的声誉。

我希望我的类具有显式接口,并且我认为如果也明确传达Magento的开发人员要求,那将是很好的。

结论

即使修复损坏的站点可以为某些Magento开发人员带来收益,这也完全不利于生态系统。同一笔钱可用于为商户客户创造实际价值。

在推特上有人说商人是成年人,他们可以自行决定是否安装扩展程序。我不同意。如果商人不是同一时间的开发商,那么他将无法自行决定。

Magento Connect不应该使非技术人员不容易用脚砸自己的脚。

就个人而言,我厌倦了由于扩展而看不到Magento装置。我更喜欢创建只会清理一团糟的东西。

我正在考虑从Magento Connect中删除扩展程序,因为我不想再支持这个有缺陷的想法了。

我认为该解决方案既简单又便宜。这与创建另一个新的Extension Marketplace(商业或免费)无关。这不是技术问题,而是与沟通有关的。

如果Magento Connect声明它是开发人员资源,并且应该在安装之前检查扩展,并且只有开发人员应该安装扩展,那么这将不是问题。仍然安装扩展程序的商家这样做会知道存在的风险。

因此,这是三个简单的步骤,这些步骤将使Magento更加适合商人:

  1. 删除通过Magento Admin界面安装扩展的选项(例如,下载程序)。
  2. 在Magento Connect上清晰可见地声明,下载,查看和安装任何扩展程序都是开发人员的工作。
  3. 教育开发人员对要安装在站点上的任何扩展程序进行全面审查

整理词

我喜欢共享扩展。我喜欢开源。我认为Magento开发人员社区很棒!
查看扩展是学习的好方法。Magento Connect还不错,只是它向非技术人员传达的信息。

每个Magento网站都是一个应用程序。它是独特的,需要被视为独特的开发工作。

应该是生态系统中的一个普遍共识,即扩展是有用的,但是如果不经常安装扩展,则不需要编写或修改代码,因此需要开发人员。

编辑:我在博客上发布了一些技术性较差的信息。


我跳到您的解决方案部分。我同意你的结论。但是,由于种种原因,也有大量的商人几乎没有或没有立即的技术资源,而且他们很可能不知道Magento的扩展如何相互作用。那么,非技术性商人该怎么办?我一直认为这是没有很好的解决方案的一个问题..
musicliftsme

这个。Magento具有其所有优点和缺点:对于特定需求安装扩展似乎太容易了,而又不了解风险。
AnnaVölkl2014年

5
我读过两次答案。我必须说您有一些合理的观点,但是从MC中删除扩展名不是很极端吗?我作为开发人员使用MC。部署网站时,我(几乎)总是禁用MC模块,对于那些坚持使用MC模块的客户,我让他们书面确认自己承担风险。我从来没有直接在现场安装模块。首先在我的开发机上,检查代码,对其进行测试,并在必要时进行改进,然后通过版本控制系统进行部署。教育比限制好吗?
马吕斯

@laketuna蛋糕是骗人的。没有解决方案,它是Magento平台固有的,可以为开发人员提供强大的功能。
维奈2014年

1
我在这里同意很多观点,但是我并没有真正看到从连接中删除扩展就是答案。Connect推动了生态系统的发展-如果可以轻松获得大量扩展,则潜在的商店所有者更有可能使用Magento,而不是在扩展安装之前就设置了障碍。最终,人们会发展自己的商店,如果他们做得不好,他们会付出代价并会从中学到东西。我的答案是确保使用最佳实践开发连接扩展,这将使您对系统充满信心。
乔纳森·侯赛

13

我们有许多客户端通过Connect安装扩展程序,因此,我知道成千上万的站点成功使用了我们的扩展程序。Connect需要改进,每个人都意识到这一点。但是,作为技术解决方案提供商,我们应该使我们的产品变得更加容易,而我在WebShopApps上的最终目标是在不涉及开发人员的情况下达到商人可以安装,卸载和使用扩展的程度,我希望下一个版本的Connect以某种方式支持该目标。

我们需要一个App Store。因为这样,开发人员可以成为开发人员,专注于我们在那里的优势,而不必在初次启动时建立自己的网站,支持,营销等。这将鼓励创新,并确保为商家提供一个了解最新,最好以及两者之间的中心位置。

显然,有很多需要开发人员帮助的extn,实际上是extn提供程序的帮助,如果我们能以一种更简单的方式说明这将是一件好事(例如,安装/设置/目标市场的困难等)。但是也有许多即插即用扩展,我们不应该窒息这些。

我不确定这也许是乌托邦,但是我们不应该一直追求更好吗?我个人真正地相信能使商人。他们想做到这一点,有时(并非总是)希望得到更多控制,并且如果您每次想尝试做错IMO的事情时都必须付钱给开发人员,这应该是Magento中小企业增长战略的核心。

我可以继续,但不会。我不认为这是一场战争;)


WSA一直为开发人员提供出色的商人/开发人员支持。对于所有模块开发人员,在发布Magento CE扩展时都请牢记这一点将是很好的。如果您支持EE,隐藏您的内容可能适用。但是我认为CE不会有任何未来。
Fiasco Labs

10

阅读别人的意见后,我决定写自己的意见。
我不会接受这个答案,因为我答应了。:)
由于最新政策,我只在Magento Connect(MC)上发布了扩展名。
我是一名开发人员,我只知道如何开发。
我根本没有艺术技能,我对Photoshop唯一了解的就是它的存在,您可以对其进行“填充”。
我认为,MC已成为面向商人的。提交扩展名时,我必须上传一张精美的图片作为扩展名徽标。我不知道如何创建一个,也没有人愿意免费提供它们。
因此,我只能在github上发布扩展程序。非技术人员不要上github。
我同意MC的工作方式存在问题,并且现在提出来,但它代表着受尊重的权威和有效的扩展来源。
我知道有很多糟糕的扩展,但是可以肯定的是,创建它们的人不会仅仅因为非技术人员安装它们就将其取消。
我看到像Vinai或Tim这样受信任的开发人员正在扩展这些扩展。这不是生态系统的解决方案。这使情况变得更糟。但是,确实有一个针对个人的解决方案,它厌倦了从甚至没有阅读“如何”文件或至少没有读扩展名的人那里收到关于扩展名的投诉。

我认为教育胜于限制。
专门进行限制教育。:)。部署网站时,开发人员应禁用Magento Connect。这很简单。只需创建app/etc/modules/Z_z.xml具有此内容的文件即可。

<?xml version="1.0"?>
<config>
    <modules>
        <Mage_Connect>
            <active>false</active>
        </Mage_Connect>
    </modules>
</config>

然后只需downloader从magento实例中删除文件夹即可。
教客户使用扩展名并不意味着只安装它。它需要技术人员的审查。
这是我的2美分。


马吕斯好主意。我也有同样的问题。我用油漆制作徽标,因为我不知道如何使用photoshop。但是,很高兴听到您也遇到了同样的问题:D
Rajeev K Tomy 2014年

1
@programmer_rkt。看到某人有问题永远都不是一件好事。
马里乌斯

我只是在开玩笑:-)
拉杰夫·托米2014年

有趣的主意...我会考虑使用的。安装后默认禁用模块非常整洁。这可能会有所帮助。
维奈2014年

1
对于以后阅读此书的任何人,我还发现需要一个模块/etc/config.xml文件才能使Z_z.xml工作。(也许只是Magento的新版本中的
Maby

7

我认为这完全取决于开发人员-将扩展从连接尝试中删除,以迫使人们更好地管理其代码库,因为他们无法从admin安装,但与此同时,这意味着他们实际上不太可能在其中找到扩展第一名。最终,无论是使用connect还是FTP来安装扩展,还是使用更好的存储库->部署设置,而连接上缺少扩展,人们将完全按照自己的意愿来开发自己的商店。我基本上认为,您只是想通过将他们从连接中移开来射击自己。


我是一位商人/开发人员,他负责手动安装,审核并进行必要的重写以解决冲突。如果您决定不通过在Magento Connect网站上投放广告(而不是时髦的下载器)来隐藏产品,那么我将如何找到您的产品?这是少搬起石头砸自己的脚,而更像爬行到16"舰炮的口径射击练习开始,如果你不是广告在哪里可以找到你之前的事。
惨败实验室

@FiascoLabs是的,这是一个问题。但是我可以,因为我的扩展名不是商业用途。如果遵循您描述为商人的步骤,则意味着您是该规则的罕见例外。
维奈2014年

7

我们忘记了Magento首次问世时“ Connect”的出色表现。它表明Magento是开发人员平台,而不是没人使用的开源项目之一。尽管“连接”对于确保Magento的采用是有用的,但是时间已经过去了,我认为人们期望如今扩展对“幸福走运”的要求会降低一些。

我个人(作为“开发人员”)更喜欢检查扩展的代码,并在版本控制中进行检入。“连接”应该更像是-您下载tarball或git克隆。

我与@karen一起为零售最终用户提供支持,而不是从他们那里“隐藏”开发人员的东西。除了其他方面,透明度还使开发人员保持诚实-“开发此模块将需要一周的时间,而要测试又需要一周的时间...”这可能是正确的,但现实检查是在类似模块可用时在“连接”上,则很难在某件事上证明xxx小时的合理性。

使用@karen团队编写的模块,我希望这些由“最终用户”安装在“连接”上的其他模块编写和测试的模块,而不是需要安装“开发人员”的任何随机开发人员代码(除非由Vinai编写) 。


我们(社区)为此创建了magento作曲家项目。因此,您可以使用VCS
daim2k5 2014年

6

过去,我们(ebizmarts)从MagentoConnect删除了扩展,多年来,我们只保留了我们愿意支持的扩展,并在财务上可行。通过接受这些基本规则,我们可以控制支持,使商人/开发人员感到高兴。

目前的MagentoConnect仅适用于列表,发现以及最终的开发人员评级(此处灰色区域,Karen在MMNYC明确表示)。我们需要一个更好的市场,经过精心策划,验证并具有强大的质量政策,即使有了这些市场,我们仍然会面临此处所述的问题,这是我们的天性,因为任何原因,坏事会不断发生,而且由于商人的过错而没有必要,我们都知道,糟糕的开发商要比“文盲”的商人差100倍。

我相信自由意志和自由市场。开发人员可以自由使用或不使用MagentoConnect,商人(只要他们知道后果),就不应搞乱开发人员的专有任务(如安装扩展程序)。从MagentoConnect删除扩展将使市场迅速更换它(是的,Magento这么大),新选项可能会或可能不会比以前更好,也不会给商人造成麻烦。

对于这个问题,没有简单或独特的解决方案,但是我同意改善沟通并施加一些限制,使商家更难安装扩展程序会有所帮助(在安装之前先检查一下任务的简单清单,例如备份) ,开发人员代码审查,在DEV网站上进行测试等)。

我认为从MagentoConnect删除扩展不会使这个世界更适合商人,但是我们开发人员应该只保留我们渴望支持和改进的扩展,因此,我们必须带头交流良好做法,这对我们社区而言。


5

我认为非技术利益相关者不应安装扩展程序。

Magento Connect不是App Store,并且审批过程并不像我认为的有关质量那样一致。

Magento Connect可能是一个很好的参考依据,但是大多数情况下,扩展不能满足要求的100%。也许一个好主意是通过ACL控制Magento Connect,这样我们就不会极端地从官方平台市场中删除扩展。

以我个人的经验,我有几个付费扩展和一个免费插件,在Connect和GitHub中都是免费的,这是GitHub在功能方面的更多进步。GitHub仓库在Magento Connect的描述中。它并没有停止用户下载扩展并同时查看代码,也没有停止使用新功能进行派生和拉取请求。


5

这实际上取决于开发人员想要为扩展程序提供傻瓜证明而要付出多少工作,他们愿意花多少时间获得支持,以及是否需要为扩展程序付费。因此,如果您认为您的扩展程序不应由非技术人员安装,请根据需要断开其连接,但是我不能同意这样一种笼统的观念,即所有扩展程序对普通用户的技术技能要求都很高。


4

Magento Connect(MC)混淆了一些商人/业余开发人员,认为MC充当了Magento的一种应用程序商店。

例如,他们可以在MC上找到并安装扩展,声称可以在其Magento站点上添加一些功能,但是MC /扩展通常对潜在的扩展/模块冲突,安全风险,速度问题,以后的开发人员成本和损失几乎没有说什么安装扩展程序可能为其Magento商店带来的收入的百分比。

无知的商人将WHATEVER扩展安装到他们的实时站点,以添加一些功能。最终,在某个升级周期或新业务需求下,必须召集一些未来的开发人员来解决由此产生的混乱代码,潜在的安全风险和复杂的扩展。然后,开发人员必须通知商人,他/她在MC上安装的所有扩展程序都相互冲突,从而使网站无法抓取,从而可能暴露客户数据,破坏了网站的用户体验,同时导致销售中断。

也许针对商人的警告是,他们认为应该增加MC的扩展名,并且应该加上更多的免责声明。

如果有一个积极,可见的扩展审核/讨论过程,Magento社区可以从MC中真正受益更多。经过同行评审/测试或更高评分/评审的扩展应该首先被提升和显示。正如我们在SE上所展示的那样,一个更杰出的荣誉/徽章系统也将提供帮助。

拥有MC会对社区有所帮助,但需要进行一定的改进。希望在著名的扩展开发人员永久离开MC之前进行完善。


3
我希望magekarma.com作为Magento扩展的同行评审网站能够取得成功。
维奈2014年

仅在MC可以同时获得评论/徽章的情况下,这才有希望,否则magekarma似乎太过外围。
2014年

4

始终认为Magento Community Edition本身是免费的,没有任何正式的保修,并且我认为(作为商人),这是Magento成为全球最全面(免费)商店软件的最重要原因之一,尤其是因为Magento Connect中大量易于访问的扩展。

Magento专业的开发人员可能对其商店软件(并非无可匹敌!)有孤立的看法,但是作为一个Startup商家,您在开始项目之前就将每个商店软件与另一个软件进行了权衡,Magento的最大危险就是变得不受欢迎,如果限制访问Magento Connect最重要的扩展源,那肯定会发生。

在这种情况下,永远不要完全区分专业开发商和(“精通技术”的)商人。您不必总是学习“ 10年”计算机科学来运营自己的网上商店(当然,确实需要很多知识才能评估整个系统),但是例如,我要准备两本精采的书籍在我自己的商店里。在那些(由开发人员撰写的)书籍中,许多扩展都描述了它们的优点,缺点和系统风险,那么为什么禁止我使用那些(众所周知的)扩展呢?

每次您要安装完全了解的扩展程序时都雇用一个开发人员也是完全不现实的,这仅仅是因为您无权访问它们。商人必须经济地工作!这是您自己的商店,这是您自己的责任,并非不可能将自己想要做的事情告知自己。

因此,让我们保持Magento CE的不变:世界上最强大的电子商务平台,所有人免费。这就是Magento受欢迎的地方。


1
同样是要责怪开发人员的商人,因为他不了解或不阅读该手册(如果存在)。因此,在提出扩展或发表评论的过程中限制某些权利或提高质量是很正常的。
SylvainRayé2014年

4

一段时间以来,我们很少会仅仅因为客户可以登录Magento Connect来安装扩展程序,因为客户端可以登录到该扩展程序,看到扩展程序已过时并尝试进行更新,从而可能会抹去其网站上的任何修改或破坏部分内容。

我们仅使用Magento Connect来安装扩展,我们知道,如果客户端碰巧遇到了这种扩展,则无需外部干预就可以安全地升级99%。

无论如何,我看到使用Magento Connect的唯一好处是可以快速查看是否有扩展的可用扩展。除此之外,通过手动将文件拖放到Magento安装中,通过Magento Connect安装没有任何好处。

即使客户具有技术意识,我也不希望给他们那么大的灵活性来破坏他们的网站,特别是如果他们方便地忘记建议自己可能会导致问题的任何事情。这至少为我们节省了调试时间,并且节省了他们的时间,纠正时间的额外费用,从长远来看我肯定会避免的费用。

对于它的价值,我认为这是一个很好的讨论要点,这是我经常想起其他人每天在Magento中所做的事情所引起的。


4

我认为,无论从开发人员还是从客户角度来看,从Magento Connect中删除扩展都不是理想的解决方案。

作为开发人员,每当我的客户想要在他的网站上实现新功能时,我要做的第一件事就是检查Magento Connect上是否有任何扩展(免费或商业)可用,这些扩展可以满足我的客户的要求。对于我来说,它就像一个Google,我们可以在其中搜索查询,无论对与错,它都会向我提示结果。选择一个完全由我决定。

接下来,我有机会评估最佳解决方案,即:我需要使用FREE,与COMMERCIAL一起使用或自行实现。在大多数情况下,我会向客户推荐所有三个带有时间范围的选项,并分别报价。从连接中删除扩展名将抢占此选项,或者使其变得更困难,因为我将不得不在网上搜索扩展名。

与其从连接中删除扩展名,不如尝试使我们的客户端受教育。我要做的是,每当我的客户选择免费扩​​展时,我都会要求额外的时间来检查代码,从而确保代码干净。此外,我向客户解释了使用他人代码的弊端,大多数时候,客户都理解它,并且没有时间给我时间优化代码或重新编码。

而且,每当我使网站上线时,我都会从下载程序中删除写许可,因此即使偶然或出于好奇,如果我的客户端尝试安装扩展程序,他也将无法这样做。因此,它可以使客户和我免于看不见的风险。当我的客户来找我时,我只是向他解释这样做的原因,并且在大多数情况下,他对此表示感谢。

从客户的角度来看,您获得的免费物品越多,对其的吸引力就越大。一个简单的示例是WORDPRESS。有了如此庞大的社区和许多免费插件,wordpress像任何东西一样蓬勃发展。我想以同样的方式,如果我们想保持Magento社区的成长和繁荣,我会说与其去掉连接的扩展名,不如说我们尝试着教育客户。

但是,如果我们倾向于从Magento Connect中删除扩展名,那么magento的世界将被抛弃。没有社区论坛,没有语言包,没有扩展名,这似乎就像一颗星落下。


我认为我从来没有直接在MagentoConnect网站上搜索扩展程序,因为Google做得好得多。
user487772 2014年

我的意思不是说我直接在Magento Connect上搜索扩展名... i是参考Google给出的结果说的。一些正确的说法是错误的。不好...要由我们决定使用和忽略。.::)
Dexter
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.