Explaining the Best Practices of Magento API Design. Performed by Igor Miniailo at Khmelnytskyi Magento Meetup.
Developing and running web applications has become much more than just writing code. Business and engineers are now required to solve a new set of challenges which range from microservices architectures to set up software delivery pipelines, while releasing constantly new features. In this context, automation is key. With Container-based architectures and Kubernetes we are on the verge of a copernican revolution in the way we handle operations and design our applications. The so called Cloud-Native stack open doors to unprecedented resilience, scalability and efficiency but the price to pay is complexity: Containers are a fundamental shift which require to re-think how components of your applications and infrastructure are developed and deployed. In this talk we discussed the Domain specific concepts that power Kubernetes and how they apply to Magento. We immersed ourselves deeply on the architectural choices and challenges of running a production ready Magento deployment on Kubernetes and we will see hands-on how to fully automate the deployment lifecycle, web applications scaling (reducing scaling time from minutes to seconds), failures handling and self-healing. The speech has been held with Simone Fantini -System Administrator & Magento Specialist – neen
Magento PWA Studio not just for Magento: it’s for making all kinds of Progressive Web Apps. And it’s not just for PWAs: it’s for helping developers to get work done. Though we conceived PWA Studio as the way to create PWAs that belong in the extensible Magento ecosystem, we are building it to be useful for any frontend developer, inside or outside the world of Magento. Our standard app architecture uses beloved modern frontend ingredients. You may already know them; if not, you can learn them from a large online community. As Magento joins the busy world of modern Web frontend, you can join us there too. Come see the many ways you can use PWA Studio tools and the many ways you can contribute to them.
This document discusses Magento's approach to backward compatibility (BC). It explains that Magento uses semantic versioning to minimize breaking changes. Magento aims to balance keeping the codebase BC while still fixing flaws. The document outlines what constitutes public APIs and SPIs and how modules should depend on these. It provides examples of permitted and prohibited code changes to maintain BC. It acknowledges that BC fixes can look ugly but emphasizes the importance of continuous refactoring to improve code quality over time.
This document discusses Magento's policy and approach to backward compatibility. It provides an overview of Magento's versioning strategy and semantic versioning. It outlines the rules for dependency management and prohibited code changes to maintain backward compatibility. The key points are that Magento aims to balance backward compatibility fixes with code quality improvements, and that backward compatibility is prioritized over implementation effort. Backward compatible changes should be implemented following best practices to maintain clean code.
The document discusses Magento 2.3's new declarative schema feature for managing database schemas. Declarative schema provides an alternative to setup scripts that avoids issues like missed SQL operations and makes rollbacks and testing easier. It works by declaring schema elements like tables, columns, indexes in an XML file. Modules can then be installed and uninstalled while maintaining the expected schema state. The document covers how to declare different database elements and use features like dry-run testing and safe mode operations. It also discusses converting existing modules from setup scripts to the new declarative schema.
This document summarizes Magento's Extension Quality Program (EQP) process and findings. It reports that 50% of submitted extensions fail to compile in production mode, and of those that do compile, only 25% pass manual quality assurance testing. The top 5 issues found are extensions not compiling in production mode, compiling but not working properly in production mode, incompatibility with claimed Magento versions, poor error handling, and lack of adherence to coding standards. The document outlines planned improvements to the EQP including increased automation of testing and integration with Magento Marketplace.
Power Tomorrow: Understanding Magento 2.2 Credit: Magento Live India 2017 Website: http://magentolive.com/in/
This presentation was delivered as part of the Rapise webinar series and highlights the latest features in Inflectra's scriptless test automation platform - Rapise v6.6. The presentation covers: - Rapise 6.6 new features: CI/CD integration, Git integration, and Framework building. - Rapise 6.6 system enhancements: Reporting, Rapise Launcher, API Testing; new Actions to already supported Objects. To learn more about Rapise, visit https://www.inflectra.com/Rapise/
For ISVs who are currently providing solutions to individual subscribers or system integration (SI) partners via unmanaged packages, org-dependent unlocked packages can provide a better & faster implementation experience as well as improve stability.
Name: Bob Nemec Title: Seaside based custom ERP system youtube: https://youtu.be/ehZtXx-rjx4 Type: Talk Abstract: TRAX is a custom, in-house Seaside ERP system written for, and used by, HTS, an industrial HVAC sales company. We use VisualWorks to build, manage and test the code, and GemStone to deploy it. Running since September 2015, the application continues to be developed and adapted to the changing needs of the business. This talk will highlight some of the design choices and technical decisions we’ve made, and the agile development process we use. Bio: Bob Nemec is the Software Architect of TRAX. Bob has worked with Smalltalk since 1990, and used it exclusively to build commercial systems since 1994.
PHP releases are supported for 2 years with active support and 1 additional year of security support. PHP 8.1 is expected this autumn. Migrating Magento 2 to be compatible with PHP 8 will require updating dependencies, testing the codebase, and ensuring extensions are compatible. The Magento community has started a PHP 8 Compatibility Project to address these challenges through a dedicated code branch, documentation, and involvement from core contributors and partners.
Inflectra is proud to bring you a highly anticipated Spira v.6.3 and a webinar to go with it. Presented by Technical Director Adam Sandman, this webinar goes over the major enhancements available in SpiraTest, SpiraTeam and SpiraPlan version 6.3.
Testing in Magento 2 by examples of Multi-Source Inventory Project (MSI) - Unit Testing and how to do them right. - Tautological Test Driven Development - Integration Testing - Example of Reservation mechanism in MSI and Integration test coverage for it - Web API testing (REST, SOAP)
Functional Programming for Service Layer architecture. Examples of API evolution on Magento 2 codebase
- Magento MSI Service Layer - Public and Private code - API vs SPI (Service Provider Interface) - Backward Compatibility requirements and prohibited code changes - Refactoring - Functional programming and functors - Single-method immutable objects - Examples of Good Interfaces - Why Execute but not __invoke - Magento Repositories
Magento 2 BC policies and refactoring being done taking into account Backward Compatibility requirements
The best practices around your upgrade from Magento 1 to Magento 2. See example and other factors that will impact your upgrade.
Performance of Magento 2 has been a hot topic for a while, with many controversial opinions and figures around the community. This talk is intended to guide a developer from configuring the website for maximum performance to measuring the results of such tuning using the Magento Performance Toolkit, profiling the problematic areas and measuring once again, all using the same approaches as the core engineering team.
This document discusses automated testing approaches for Magento 2, including unit testing, integration testing, and functional testing. It provides examples of unit tests using mocks and isolation. It also covers testing the Magento REST API using tools like Swagger. The document emphasizes qualities of good tests like readability, stability, and speed. It provides resources on testing techniques like fixtures, annotations, and predefined IDs to improve test isolation, readability, and speed.
- Unit Testing - Tautological Unit testing - Integration testing - Web API - Functional testing - Static testing (LiveCoding) - Examples of test coverage in Magento Multi-Source Inventory
Presentation made on Meet Magento Croatia 2017 - Why Backward Compatibility matters - Public vs Private code - Semantic Versioning and Dependency Rules - APIs vs SPIs (Extension Points) concept - Prohibited Code changes - How to make Refactoring complying with Backward Compatibility policy (SuppressWarning Coupling Between Objects)
This document discusses best practices for Magento API design. It covers semantic versioning, distinguishing between public and private code, prohibited backwards-incompatible code changes, refactoring objects to reduce dependencies, and repository patterns. Maintaining backwards compatibility is important, but continuous refactoring is also needed to prevent code quality issues. Upcoming Magento events in Ukraine are also listed.
Problem: The application grows in size. Becomes harder to understand Merchants customization grows in complexity This pushes Magento for longer release cycles Harder for merchants to experiment and react to market needs quickly Solution: Service Isolation
First Steps to Building Secure Magento Extensions Credit: Magento Live India 2017 Website: http://magentolive.com/in/
Agenda: Magento 1. Big ball of Mud SOLID and Single Responsibility Performance vs Scalability Coupling vs Cohesion Bounded contexts and their Boundaries CAP Theorem ACID vs BASE Modularity as a first step towards micro-services Headless Magento Service Isolation (Code and DB split) Conway's law Microservice architecture
Since publishing Magento 2.0.0 on November 2015, we’ve extended the codebase with sixteen 2.x patch releases and 1 minor release. We understand that the Magento 2.x upgrade process is challenging and can raise compatibility issues for extension developers. To simplify this upgrade process, the Magento 2 development team has prepared a Backward Compatibility policy, which is specifically focused on minimizing compatibility issues with Magento 2 extensions. In this presentation, we has discussed Magento’s 2.x Backward Compatibility policy. We has identified the code that you can rely on during extension development, as well as the parts of Magento 2.x codebase where we might introduce breaking changes in upcoming patch or minor releases. We also has shared our best practices for how to optimally configure dependencies on Magento 2.x packages to improve the compatibility of your extensions.
This document provides an overview of the Magento e-commerce platform, including its architecture, module development process, and use of caching technologies like Redis. It discusses how Magento uses a modified MVC framework and describes setting up modules, creating admin routes, and improving analytics. Magento is an open-source platform suitable for large retailers due to its built-in features and flexibility. Modules extend its functionality and analytics can be improved through plugins to study user behavior and identify areas for improvement. Caching with Redis provides faster performance for data-intensive e-commerce sites compared to alternative technologies like Memcached.
Magento 2.2 is getting ready for official release, let's take a look at some of the improvements and new features included in this platform update. Learn more at: www.customerparadigm.com/magento-2-2-release-notes-colorado-magento-meetup
Gerrit is great, however it is also quite an important part of a bigger DevOps process. In this talk I will describe how multiple tools can be unified under a TeamForge or better DLM umbrella and what are the immediate benefits of it.
This document discusses different types of Magento patches including schema patches, data patches, version patches, and revertable patches. It explains where these patches are defined, the interfaces they implement, and how they are applied and reverted. It also introduces new CLI commands for generating patches and discusses uninstalling modules.
Magento Multi-Source Inventory (MSI) architecture overview. - Description of Reservation mechanism - How MSI will improve Magento checkout performance - Business Value of MSI Minimal Viable Product
The Full Page Cache in Magento 2 uses Varnish and is an essential element to empower a performant and scalable solution. But how effective is this cache on your site? It is not always that easy to understand or see, I will discuss approaches to obtain relevant data, and methods to process this into meaningful and actionable information.
Discovering ways to handle development environments that would make Magento development more productive and efficient. Khmelnytskyi Magento Meetup
This document summarizes the results of benchmark tests performed on a Magento 2 site to evaluate performance in different environments. It shows loading times for various site operations like homepage load, category pages, product pages, search and account pages. Tests were run with standard and increased product/customer counts, different caching configurations, database engines and PHP versions. Loading times generally increased as product/customer volumes grew but were improved by adding Redis caching, database replication and upgrading to PHP 7.
Atwix has transitioned to being a distributed company over the past year. It grew from 15 employees working in one physical office and one person remotely, to over 20 employees working across two physical offices and three people remotely. The company now spans four time zones. A distributed company is defined as a group of individuals who work across time, space, and organizational boundaries connected through communication technology. Some of the key aspects of building a distributed company that were discussed include prioritizing communication, tracking performance metrics, addressing challenges of different time zones and locations, and emphasizing the benefits like increased productivity and employee satisfaction.
The document discusses pricing in Magento 2. It covers the different types of prices that can be implemented including regular price, sale price, taxes, discounts. It also describes how pricing is organized through entities and templates to make it flexible and customizable. Code examples are provided to demonstrate how pricing is calculated and displayed for products.
Александр Смага, Юрий Муратов - Meet Magento Ukraine - Технический обзор OroCRM
The document discusses Varnish Cache and its usage for caching content and improving performance in Magento. It describes how Varnish works as a frontend caching proxy and how it can be used to cache pages and parts of pages in Magento. It also discusses how to make cache dynamic and flush pages based on products or categories using the EcomDev_Varnish module.
This document discusses data consistency challenges that development teams face when working on complex enterprise projects using Magento. It outlines three main problems: how to store and share data changes between developers, how to migrate data changes between application instances, and how to bind code revisions to application data. The document evaluates different approaches like shared databases and migration scripts, and recommends best practices for using migrations like creating a global package and writing custom import/export APIs to manage complex application data. The overall goal is to establish a development center that can reliably build and deploy applications with consistent data.
Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получился Magento Autoscale
Сергей Кибиткин - Meet Magento Ukraine - Что вы никогда не сделаете в Magento
This document provides an overview of Magento 2 including its goals, release approach, modernized technical stack, improved performance and scalability, streamlined customizations, easier installation and upgrades, and high code quality and testing standards. The key goals of Magento 2 are to use a modern technical stack, improve performance and scalability, streamline customizations, simplify external integrations, and make installation and upgrades easier.
Александр Каранда - Meet Magento Ukraine - Реальность нереальных вещей
Антон Капля - Meet Magento Ukraine - Кодогенератор в Magento
This document discusses migrating an online store from another platform to Magento. It provides reasons for migrating such as limited functionality and small communities in other platforms. Popular migrations to Magento include OpenCart, osCommerce and VirtueMart. The document outlines important steps for a successful migration including analyzing the source store, testing the data migration, updating Magento, and final data migration. It emphasizes the importance of planning the migration and testing all aspects of the new store.
Артем Кузнецов - Meet Magento Ukraine - инструменты для отдела поддержки, опыт aheadWorks
Александр Стельмах - Meet Magento Ukraine - Прибыльная e-mail рассылка за 5 шагов
Владимир Галика - Meet Magento Ukraine - Чудесный Новый Мир – почему продвижение в интернете не такое как раньше?
Александр Колб - Meet Magento Ukraine - психология потребления онлайн
The document discusses key trends in digital commerce and ecommerce, including the rise of mobile shopping and multi-channel experiences. It notes that Magento provides a flexible front-end and industrial back-end to help merchants attract, convert, deliver and retain customers across channels. Statistics are presented on Magento's merchant base and open source leadership. The roadmap for Magento 2 is outlined, with the goal of modernizing technologies to improve performance and scalability.
This document discusses how open source e-commerce platforms like Magento can change the e-commerce industry. It notes that Magento has a large global community and ecosystem and that open source values like sharing knowledge can foster exchange of goods, money, and ideas. The document promotes Magento as a foundation for an independent community that connects people from around the world and enables good business opportunities.