Mở rộng cài đặt và hậu quả
Ý tưởng có một hệ thống mở rộng là rất tốt, nhưng như chúng tôi biết, các nhà phát triển biết, nó không đơn giản. Nhiều điều có thể (và, không may, làm) đi sai.
Tổng quan
Tôi sẽ bắt đầu với một danh sách các vấn đề có khả năng gây ra bằng cách cài đặt tiện ích mở rộng. Sau đó, tôi sẽ đưa ra quan điểm chính của mình và nêu ra kết luận mà cá nhân tôi đưa ra từ tất cả những điều đó, và cuối cùng tôi sẽ đề xuất một giải pháp. (Điều này có thể sẽ kéo dài, xin lỗi trước. Tôi sẽ cố gắng viết ít nhất có thể và vẫn đề cập đến chủ đề này.)
Vì vậy, để bắt đầu, đây là danh sách các vấn đề phổ biến được tìm thấy do cài đặt tiện ích mở rộng.
Bảo vệ
Không có đánh giá mã nào được thực hiện trước khi tiện ích mở rộng được chấp nhận trên Magento Connect. Kết quả là, nhiều phần mở rộng chứa lỗ hổng. Có nhiều lý do, chẳng hạn như các nhà phát triển thiếu kinh nghiệm hoặc lười biếng, sử dụng mã bên thứ ba dễ bị tổn thương và một số tiện ích mở rộng thậm chí có chứa mã độc hại. Thực thi mã từ xa, SQL tiêm và thời gian chết là một thực tế. Hậu quả là mất dữ liệu khách hàng, mất thông tin thanh toán, mất doanh thu, mất thời gian và mất niềm tin.
Hiệu suất
Một tiện ích mở rộng có thể hoạt động tốt trên một trang web hoặc trên một cá thể nhà phát triển, nhưng với một danh mục hoặc cơ sở khách hàng khác, nó có thể gây ra các vấn đề nghiêm trọng về hiệu suất. Có thể có nhiều lý do cụ thể từ việc tải các thực thể không hiệu quả, các phép nối SQL không được tối ưu hóa, số lượng yêu cầu ajax cao, số lượng tùy chọn hoặc thuộc tính cao và nhiều hơn nữa. Như mọi cuộc gọi thương gia cho chúng tôi biết các nhà phát triển, vấn đề hiệu suất. Điều này chi phí một doanh thu thương gia.
Xung đột
Thậm chí chỉ cần hai phần mở rộng, ngay cả khi được phát triển bằng cách sử dụng thực tiễn tốt nhất, có thể xung đột. Điều này chủ yếu là do cách khung Magento hợp nhất XML cấu hình. Trong trường hợp tốt nhất, các xung đột này được hiển thị thông qua dấu vết ngăn xếp hoặc màn hình trống, trong trường hợp xấu nhất, trang web ngăn chặn hành vi lạ và khó gỡ lỗi. Một thương gia sẽ không thể khắc phục các sự cố và làm cho các tiện ích mở rộng xung đột cùng tồn tại mà không cần sự trợ giúp của nhà phát triển. Điều này tốn thời gian và tiền bạc.
Nâng cấp
Không nâng cấp là không có tùy chọn, nếu chỉ vì lý do bảo mật. Các phần mở rộng cần được duy trì, làm cơ sở mã riêng lẻ và là một phần của khung Magento. Nếu một tiện ích mở rộng đang được sử dụng và nhà phát triển ban đầu xảy ra không tiếp tục duy trì tiện ích mở rộng, một số nhà phát triển khác phải tiếp quản. Không có nhà phát triển thường khiến cho một thương gia không thể nâng cấp, điều này dẫn đến các trang web bị chậm hơn sau đó, các vấn đề bảo mật bị khai thác và do đó mất doanh thu.
Khả năng mở rộng
Việc thêm các tính năng mới vào một trang web hiện tại ngày càng phức tạp và do đó tốn kém, bởi vì mỗi phần mở rộng trong hệ thống sẽ thêm nợ kỹ thuật. Các khoản nợ tổng thể lớn hơn nhiều sau đó mỗi phần mở rộng riêng lẻ vì độ phức tạp kết hợp cũng lớn hơn sau đó mỗi phần riêng lẻ. Không thể dễ dàng thử nghiệm các tính năng và thay đổi mới khiến một thương gia bị mất rất nhiều doanh thu.
Gỡ cài đặt
Những điều sau đây gây ra sự cố trong Magento khi gỡ cài đặt tiện ích mở rộng:
- Các bản ghi cơ sở dữ liệu đề cập đến một lớp trong phần mở rộng đã gỡ cài đặt (ví dụ: bộ chỉ mục hoặc mô hình phụ trợ thuộc tính). Ngay cả các phần mở rộng sau các thực tiễn tốt nhất cũng có xu hướng này.
- Gỡ cài đặt các phần mở rộng ghi đè mã lõi khiến Magento thiếu tệp gốc. Điều này tất nhiên chỉ xảy ra nếu một tiện ích mở rộng không tuân theo các thực tiễn tốt nhất, nhưng thực tế là nhiều tiện ích mở rộng là xấu.
Trang web bị phá vỡ tất nhiên chi phí tiền.
Kết nối Magento
Đưa ra danh sách các vấn đề ở trên, làm thế nào bất cứ ai có thể mong đợi một người không phải là nhà phát triển cài đặt tiện ích mở rộng và đánh giá nếu nó hoạt động trên một trang web nhất định?
Không có cài đặt sạch được đảm bảo, vì vậy thường cài đặt bị hỏng thậm chí không thể sửa chữa. Tùy chọn duy nhất là tạo một bản sao lưu hoàn chỉnh trước đó, và sau đó thực hiện khôi phục thủ công nếu có sự cố. Một người phi kỹ thuật có thể làm điều đó? Theo kinh nghiệm của tôi, không.
Hãy cho rằng mọi thứ có vẻ ổn. Liệu các thương gia biết tất cả mọi thứ là được chứ?
Còn an ninh thì sao? Còn vấn đề hiệu suất thì sao? Còn vấn đề nâng cấp thì sao?
Không có cách nào một người không phát triển có thể đánh giá những điều này.
Thông điệp mà Magento Connect truyền đạt là rất dễ dàng mở rộng cửa hàng Magento của bạn bằng cách cài đặt Magento mà không cần nhà phát triển. Nó có thể hữu ích trong một mục đích bán hàng để nói với ai đó là trường hợp đó, nhưng nó đơn giản là không đúng.
Những gì tôi trải nghiệm chủ yếu là trong giao tiếp, nhu cầu cho một nhà phát triển chỉ đơn giản là ngụ ý và không được truyền đạt. Hậu quả là nhiều chủ cửa hàng phá vỡ cửa hàng của họ bằng cách cài đặt các tiện ích mở rộng. Điều đó tốn tiền, thời gian, thần kinh, và Magento và danh tiếng của nhà phát triển.
Tôi thích các lớp học của mình có giao diện rõ ràng và tôi tin rằng sẽ tốt nếu yêu cầu của nhà phát triển cho Magento cũng được truyền đạt rõ ràng.
Kết luận
Điều này không tốt cho hệ sinh thái, ngay cả khi sửa chữa các trang web bị hỏng cung cấp thu nhập cho một số nhà phát triển Magento. Cùng một số tiền có thể được sử dụng để tạo ra giá trị thực sự cho khách hàng của thương nhân.
Trên Twitter có người nói rằng thương nhân là những người trưởng thành, họ có thể tự quyết định xem họ có cài đặt tiện ích mở rộng hay không. Tôi không đồng ý. Nếu một thương gia không phải là nhà phát triển cùng một lúc, anh ta không thể tự quyết định.
Magento Connect không nên dễ dàng cho những người không có kỹ thuật tự bắn vào chân mình.
Cá nhân tôi phát ốm và mệt mỏi khi thấy các bản cài đặt Magento bị hỏng do các phần mở rộng. Tôi rất thích tạo ra những thứ chỉ cần dọn dẹp một mớ hỗn độn.
Tôi đang suy nghĩ về việc xóa các tiện ích mở rộng của mình khỏi Magento Connect vì tôi không muốn hỗ trợ ý tưởng còn thiếu sót này nữa.
Giải pháp
Theo tôi giải pháp là dễ dàng và rẻ tiền. Đây không phải là về việc tạo ra một Thị trường mở rộng mới , thương mại hoặc miễn phí. Đây không phải là một vấn đề kỹ thuật, nó là tất cả về giao tiếp.
Nếu Magento Connect sẽ tuyên bố đó là tài nguyên dành cho nhà phát triển và các tiện ích mở rộng cần được xem xét trước khi cài đặt và chỉ nhà phát triển mới nên cài đặt tiện ích mở rộng thì đây không phải là vấn đề. Các thương gia vẫn cài đặt tiện ích mở rộng để biết các rủi ro.
Vì vậy, đây là ba bước đơn giản giúp Magento trở nên thân thiện hơn với người bán:
- Xóa tùy chọn cài đặt tiện ích mở rộng qua giao diện Quản trị viên Magento (ví dụ: trình tải xuống).
- Nói rõ ràng và rõ ràng trên Magento Connect rằng công việc của nhà phát triển là tải xuống, xem xét và cài đặt bất kỳ tiện ích mở rộng nào.
- Giáo dục các nhà phát triển thực hiện đánh giá đầy đủ về bất kỳ tiện ích mở rộng nào sẽ được cài đặt trên một trang web.
Lời kết thúc
Tôi thích chia sẻ tiện ích mở rộng. Tôi yêu nguồn mở. Tôi nghĩ Cộng đồng nhà phát triển Magento thật tuyệt vời !!
Xem lại các phần mở rộng là một cách tuyệt vời để tìm hiểu. Magento Connect không tệ, chỉ là thông điệp mà nó chiếu cho những người không có kỹ thuật.
Mỗi trang web Magento là một ứng dụng. Nó là duy nhất và cần được coi là một nỗ lực phát triển độc đáo.
Cần có sự đồng thuận chung trong hệ sinh thái rằng các tiện ích mở rộng có thể hữu ích, nhưng cài đặt chúng thường xuyên hơn sau đó sẽ không yêu cầu mã phải được viết hoặc sửa đổi, và do đó cần có nhà phát triển.
EDIT : Tôi đã đăng một số thông tin cơ bản ít kỹ thuật trên blog của tôi .