How To Develop An Extension In BSS – Part 2: Architecture & Code Standards

by admin

The development process is crucial for the new module to go from ideation to an end product. 

As a world-class Magento solution builder, BSS always focuses on recruiting and training talents to make sure the process goes as smoothly as possible.

CHECK NOW: BSS’s Certifications Showcase – a strong proof of our extensions’ quality!

Today, we will dig deep into the Magento extension development process to help you understand how we develop a module with high code quality that meets Magento standards.

Extension Coding

Our primary focus when creating a new product is effectiveness. The process must take as little time and fewer bugs as possible.

Thus, our new module development follows closely to Adobe’s best practices in extension coding, including:

  1. Programming Best Practices
  2. Working with the Architecture
  3. Security, Performance, and Data Handling
  4. Observers Best Practices

Programming Best Practices

We follow the programming best practices to reduce bugs and improve the quality and maintainability of our extensions.

The best practices include:

  • Follow a set of coding standards
  • Write and utilize reusable code
  • Design code to be replaceable
  • Avoid creating helper classes
  • Be consistent with case and naming conventions
  • Composition over inheritance
  • Avoid using around method plugins
  • Test your code

Working with the Architecture

The architecture helps us understand fundamental programming designs/concepts.

The best practices include:

  • Avoid modification of the Magento Core
  • Learn the architecture
  • Check extension configurations
  • Know and leverage the Magento 2 framework
  • Use dependency injection
  • Follow Model-View-Control (MVC) pattern
  • Use the PHP_CodeSniffer tool

Security, Performance, and Data Handling

We ensure that our extension handles data carefully to prevent sensitive information from being exposed.

The best practices include:

  • Avoid using low-level functionality
  • Use wrappers instead of superglobal variables
  • Use the correct MySQL data types
  • Use InnoDB storage engine
  • Avoid raw SQL queries
  • Use Primary Key
  • Use well-defined indexes
  • Avoid using global events
  • Use Magento data collections
  • Validate input and properly encode or escape output
  • Always encrypt sensitive data or configurations
  • Avoid unnecessary logic execution
  • Use the proper area

Observers Best Practices

Observers can modify the behavior of a Magento extension to ensure there is no issue or instability that can break the module.

The best practices include:

  • Make the observer efficient
  • Do not include business logic
  • Declare observer in the appropriate scope
  • Avoid cyclical event loops
  • Do not rely on invocation order

Important components of the extension development process

In the extension development process, there are some important components as follows: 

  • The testing strategy: We figure out the testing strategy, including security and performance checks., to prevent bugs at the last stages of the development.
  • Testing logic: We have one testing logic for all extensions to make sure that the new module meets our in-house standards.
  • Cross-team code review: The cross-team code review allows all team members to review each other’s code to ensure code quality and increase employee competencies.
  • Complies with the latest Magento standards: We use PHP_CodeSniffer to make sure our code fully complies with the latest Magento standards.
  • Reduce to a minimum any code typos: We run the code through PHPStan to reduce code typos to a minimum.

Code Standards

For better code quality, we use a code validation tool. The tool we use is the PHPStorm plugin, which is created by the community to optimize routine coding operations and improve the Adobe Commerce development experience.

PHPStorm plugin is implemented in BSS’s Magento extension development system to support developers in ensuring code quality according to set standards:

Wrapping Up

This is the second part of our series How To Develop An Extension In BSS

In the next part, we will discuss our testing approaches, including how we check our extensions are ready for release and our testing techniques.

See you next time!

LEARN MORE about BSS’s Magento extension development process:

PART 1: New Product Development Process

PART 3: Testing (Coming Soon!)

PART 4: Maintain/Update (Coming Soon!)

 

Next Reading Suggestions

© 2019 BSS Commerce owned by THANH CONG INTER ., JSC. All Rights Reserved.
Business registration certificate no. 0106064469 issued by Hanoi Department of Planning and Investment on 19 December 2019.
Legal Representative: Mr. Nguyen Quang Trung.