확장 설치 및 결과
확장 가능한 시스템을 사용한다는 아이디어는 훌륭하지만 개발자가 알고 있듯이 그렇게 간단하지는 않습니다. 많은 것들이 불행하게도 잘못 될 수 있습니다.
개요
확장 기능을 설치하여 발생할 수있는 문제 목록부터 시작하겠습니다. 그런 다음, 주요 요점을 정하고 개인적으로 얻은 결론을 진술하고 마지막으로 해결책을 제안합니다. (이것은 아마도 오래 걸리게 될 것입니다. 사과드립니다. 가능한 한 적게 쓰고 주제를 다룰 것입니다.)
시작하려면 확장 설치로 인해 발생하는 일반적인 문제 목록이 여기에 있습니다.
보안
Magento Connect에서 확장 프로그램이 승인되기 전에는 코드 검토가 수행되지 않습니다. 결과적으로 많은 확장에 취약점이 포함되어 있습니다. 경험이 부족하거나 게으른 개발자, 취약한 타사 코드 사용, 일부 확장 프로그램에는 악의적으로 유해한 코드가 포함 된 등 여러 가지 이유가 있습니다. 원격 코드 실행, SQL 주입 및 다운 타임은 현실입니다. 그 결과 고객 데이터, 지불 자격 증명, 수익 손실, 시간 손실 및 신뢰 손실이 발생합니다.
공연
확장은 한 사이트 나 개발자 인스턴스에서 제대로 작동 할 수 있지만 다른 카탈로그 나 고객 기반에서는 심각한 성능 문제가 발생할 수 있습니다. 엔티티의 비효율적 인로드, 최적화되지 않은 SQL 조인, 많은 수의 아약스 요청, 많은 수의 속성 옵션 또는 속성 등 다양한 구체적인 이유가있을 수 있습니다. 모든 판매자의 문의에 따라 개발자에게 성능이 중요합니다. 가맹점 수입이 발생합니다.
갈등
모범 사례를 사용하여 개발 한 경우에도 두 개의 확장 만 충돌 할 수 있습니다. 이것은 대부분 Magento 프레임 워크가 구성 XML을 병합하는 방식 때문입니다. 가장 좋은 경우 이러한 충돌은 스택 추적 또는 빈 화면을 통해 볼 수 있으며, 최악의 경우 사이트가 이상하고 디버그하기 어려운 동작을 방해합니다. 판매자는 개발자의 도움 없이는 문제를 해결하고 충돌하는 확장 기능을 공존시킬 수 없습니다. 시간과 돈이 든다.
업그레이드 가능성
보안상의 이유로 업그레이드하지 않는 것은 옵션이 아닙니다. 확장은 개별 코드 기반 및 Magento 프레임 워크의 일부로 유지 관리해야합니다. 확장 기능을 사용 중이고 원래 개발자가 확장 기능을 계속 유지하지 못하면 다른 개발자가 대신해야합니다. 개발자가없는 경우 판매자가 업그레이드 할 수없는 경우가 종종 있으며, 그 결과 사이트 속도가 느려져 보안 문제가 악용되어 수익이 손실됩니다.
확장 성
기존 사이트에 새로운 기능을 추가하면 시스템의 각 확장에 기술적 부채가 추가되므로 더 복잡하고 비용이 많이 듭니다. 결합 된 복잡성 또한 각각의 확장보다 크기 때문에 전체 부채는 각 개별 확장보다 훨씬 큽니다. 새로운 기능과 변경 사항을 쉽게 실험 할 수 없으면 판매자에게 많은 수익 손실이 발생합니다.
제거
확장 프로그램을 제거 할 때 다음 사항으로 인해 Magento가 손상됩니다.
- 제거 된 확장의 클래스 (예 : 인덱서 또는 속성 백엔드 모델)를 참조하는 데이터베이스 레코드 모범 사례를 따르는 확장조차도이 경향이 있습니다.
- 코어 코드를 덮어 쓰는 확장 프로그램을 제거하면 Magento에 원본 파일이 없습니다. 이것은 확장 프로그램이 모범 사례를 따르지 않는 경우에만 발생하지만 많은 확장 프로그램이 잘못되었다는 사실입니다.
물론 사이트 파손은 비용이 든다.
마 젠토 커넥트
위의 문제 목록을 감안할 때 어떻게 지구상에서 개발자가 아닌 개발자가 확장 프로그램을 설치하고 해당 사이트에서 작동하는지 평가할 수 있습니까?
완전히 제거가 보장되지 않으므로 손상된 설치를 복구 할 수없는 경우가 종종 있습니다. 유일한 옵션은 미리 전체 백업을 만든 다음 문제가 발생하면 수동 롤백을 수행하는 것입니다. 비전문가도 그렇게 할 수 있습니까? 내 경험으로는 그렇지 않습니다.
모든 것이 괜찮아 보인다고 가정 해 봅시다. 상인은 모든 것이 괜찮다 는 것을 알고 있습니까?
보안은 어떻습니까? 성능 문제는 어떻습니까? 업그레이드 문제는 어떻습니까? 비 개발자가 이러한 것들을 평가할 수있는 방법
은 없습니다 .
Magento Connect가 통신하는 메시지는 개발자없이 Magento를 설치하여 Magento 저장소를 쉽게 확장 할 수 있다는 것입니다. 영업 피치에서 누군가에게 사실을 알리는 것이 편리 할 수도 있지만, 사실이 아닙니다.
내가 주로 경험하는 것은 의사 소통에서 개발자의 필요성이 단순히 암시되고 의사 소통되지 않는다는 것입니다. 결과적으로 많은 상점 소유자는 확장을 설치하여 상점을 중단합니다. 비용, 시간, 신경, 마 젠토 및 개발자 평판이 필요합니다.
클래스에 명시 적 인터페이스가있는 것이 좋으며 Magento의 개발자 요구 사항도 명시 적으로 전달하면 좋을 것이라고 생각합니다.
결론
깨진 사이트를 수정하면 일부 마 젠토 개발자에게 수입을 제공하더라도 생태계에 전혀 좋지 않습니다. 가맹점 고객에게 실제 가치를 창출하는 데 동일한 돈을 사용할 수 있습니다.
트위터에서 누군가 가맹점은 확장 프로그램을 설치할지 여부를 스스로 결정할 수있는 성인이라고 말했다. 동의하지 않습니다. 판매자가 동시에 개발자가 아닌 경우 스스로 결정할 수 없습니다.
Magento Connect는 기술이 아닌 사람들이 쉽게 발을 쏠 수 있도록해서는 안됩니다.
개인적으로 나는 확장으로 인해 Magento 설치가 망가지는 것을보고 피곤합니다. 난 그냥 혼란을 정리하는 것들을 만드는 것을 선호합니다
결함이있는 아이디어를 더 이상 지원하지 않기 때문에 Magento Connect에서 확장 프로그램을 제거하려고합니다.
해결책
제 생각에는 솔루션이 쉽고 저렴합니다. 그것은 상업적 또는 무료로 또 다른 새로운 확장 마켓 플레이스를 만드는 것이 아닙니다 . 이것은 기술적 인 문제가 아니라 커뮤니케이션에 관한 것입니다.
Magento Connect가 개발자 리소스라고 명시하고 설치하기 전에 확장을 검토해야하며 개발자 만 확장을 설치해야한다면 이는 문제가되지 않습니다. 여전히 확장 프로그램을 설치하는 판매자는 위험을 알고 있습니다.
Magento를보다 상인에게 친숙하게 만드는 간단한 3 단계는 다음과 같습니다.
- Magento Admin 인터페이스 (예 : 다운로더)를 통해 확장 기능을 설치하는 옵션을 제거하십시오.
- Magento Connect에 확장명을 다운로드, 검토 및 설치하는 것이 개발자의 일임을 명확하고 눈에 잘 띄게 진술하십시오.
- 개발자가 사이트에 설치 될 확장 프로그램을 완전히 검토 하도록 교육 하십시오.
마무리 단어
나는 확장을 공유하는 것을 좋아합니다. 저는 오픈 소스를 좋아합니다. 마 젠토 개발자 커뮤니티가 대단하다고 생각합니다 !!
확장 프로그램을 검토하면 배울 수있는 좋은 방법입니다. Magento Connect는 나쁘지 않고 기술이 아닌 사람들에게 전달되는 메시지입니다.
각 마 젠토 사이트는 응용 프로그램입니다. 고유하고 고유 한 개발 노력으로 취급해야합니다.
확장 기능이 유용 할 수 있다는 것은 생태계에서 일반적인 합의가되어야하지만 확장을 더 자주 설치하면 코드를 작성하거나 수정하지 않아도되므로 개발자가 필요합니다.
편집 : 나는 내 블로그 에 덜 기술적 배경 정보를 게시했습니다 .