James Cowie Software Engineer Session
|
|
- Dennis Baldwin
- 6 years ago
- Views:
Transcription
1
2 James Cowie Software Engineer Session
3 Getting ready for Magento 2 How to prepare for a new e- commerce system
4 Whats changed since Magento 1?
5 PHP has changed
6 PHP since Magento 1 Composer Namespaces - PHP Traits - PHP Generators - PHP Better Interface support PHP Type Hinting - PHP
7 The world of engineering has changed
8 Software Engineering Server Architecture Cloud Docker VPS Software Architecture within PHP TDD PHPSpec BDD Behat DDD
9 Installing Magento
10 How did we install Magento 1 Large scale bundled installations per versions.
11 Along came composer
12 Installing Magento 2 with composer composer create-project --stability=beta --no-install magento/project-community-edition M2Test
13 { } Whats this created "name": "magento/project-community-edition", "type": "project", "require": { "magento/product-community-edition": " beta12" }, "require-dev": { }
14 But wait there is more composer offers
15 More Composer Packagist + packages.magento.com Package versioning Dependency Management
16 Show me the use case! composer require "league/period"
17 1 /** 2 League\Period\Period; 3 */ 4 protected $_dateperiod; 5 6 /** 7 \League\Period\Period; $dateperiod 8 */ 9 public function construct(\league\period\period $dateperiod) 10 { 11 $this->_dateperiod = $dateperiod; 12 }
18 Composer 101 Versioning In Composer
19 Composer 101 Exact version: 1.4.2, v "magento/product-community-edition": 1.0.1
20 Composer 101 Ranges: >=1.0, <2.0, "magento/product-community-edition": >=1.0, <2
21 Composer 101 Wildcard: 1.0.*, 1.* "magento/product-community-edition": 1.* "magento/product-community-edition": 1.0.*
22 Composer 101 Next Significant Release: ~1.2 is equivalent to >=1.2,<2.0. "magento/product-community-edition": ~1.2
23 A note on semver
24 Decoupling modules
25 Better Module Architecture
26 We can and should apply best software practice to Magento
27 Benefits of decoupling modules? Clean Code Reusable packages Testable Easier to read Easier to maintain
28 Yea but in Magento 1 we could not fully do this..
29 Decoupling in Magento 1 No Dependency Injection container. Mage god class Hard to test Hard to decouple logic
30 Dependency Injection in Magento 2
31
32 public function construct( \Magento\Framework\App\Action\Context $context, \Magento\Catalog\Model\Design $catalogdesign, \Magento\Catalog\Model\Session $catalogsession, \Magento\Framework\Registry $coreregistry, \Magento\Store\Model\StoreManagerInterface $storemanager, \Magento\CatalogUrlRewrite\Model\CategoryUrlPathGenerator $categoryurlpathgenerator PageFactory $resultpagefactory, \Magento\Framework\Controller\Result\ForwardFactory $resultforwardfactory, Resolver $layerresolver, CategoryRepositoryInterface $categoryrepository \Magento\Framework\App\Action\Context $context, \Magento\Catalog\Model\Design $catalogdesign, \Magento\Catalog\Model\Session $catalogsession, \Magento\Framework\Registry $coreregistry, \Magento\Store\Model\StoreManagerInterface $storemanager, \Magento\CatalogUrlRewrite\Model\CategoryUrlPathGenerator
33 public function construct( \Magento\Framework\App\Action\Context $context, \Magento\Catalog\Model\Design $catalogdesign, \Magento\Catalog\Model\Session $catalogsession, \Magento\Framework\Registry $coreregistry, \Magento\Store\Model\StoreManagerInterface $storemanager, \Magento\CatalogUrlRewrite\Model\CategoryUrlPathGenerator $categoryurlpathgenerator, PageFactory Code $resultpagefactory, Smell \Magento\Framework\Controller\Result\ForwardFactory $resultforwardfactory, Resolver $layerresolver, CategoryRepositoryInterface $categoryrepository \Magento\Framework\App\Action\Context $context, \Magento\Catalog\Model\Design $catalogdesign, \Magento\Catalog\Model\Session $catalogsession, \Magento\Framework\Registry $coreregistry, \Magento\Store\Model\StoreManagerInterface $storemanager, \Magento\CatalogUrlRewrite\Model\CategoryUrlPathGenerator
34 Information on DI Dependency Injection replaces Mage:: god class Dependency Injection can be overused. Dependency Injection enables composition.
35 How we manage dependencies without Injection 1 <?php 2 class Sample 3 { 4 protected $logger; 5 6 public function dosomething() 7 { 8 $this->logger = new \Logger(); 9 $logger->dosomething(); 10 } 11 }
36 How we manage dependencies without Injection 1 <?php 2 class Sample 3 { 4 protected $logger; 5 6 public function dosomething() 7 { 8 $this->logger = new \Logger(); 9 $logger->dosomething(); 10 } 11 }
37 Basic Dependency Injection 1 <?php 2 class SampleDi { 3 protected $logger; 4 public function construct(\logger $logger) { 5 $this->logger = $logger; 6 } 7 8 public function dosomething() { 9 $this->logger->dosomething(); 10 } 11 }
38 Basic Dependency Injection 1 <?php 2 class SampleDi { 3 protected $logger; 4 public function construct(\logger $logger) { 5 $this->logger = $logger; 6 } 7 8 public function dosomething() { 9 $this->logger->dosomething(); 10 } 11 }
39 Basic Dependency Injection 1 <?php 2 class SampleDi { 3 protected $logger; 4 public function construct(\logger $logger) { 5 $this->logger = $logger; 6 } 7 8 public function dosomething() { 9 $this->logger->dosomething(); 10 } 11 }
40 What are the benefits of DI? Creating a new instance of logger is removed from the class. Concrete implementation of Logger can be swapped out via container configuration When running tests we can Mock the dependency
41 How does this look within Magento 2
42 /** \Magento\Framework\View\Element\Context $context */ public function construct( \Magento\Framework\View\Element\Context $context ) { parent:: construct($context, $data); }
43 DI Continued Its not only Objects that can be injected.
44 <type name="magento\cms\model\wysiwyg\images\storage"> <arguments> <argument name="extensions" xsi:type="array"> <item name="allowed" xsi:type="array"> <item name="jpg" xsi:type="number">1</item> <item name="jpeg" xsi:type="number">1</item> <item name="png" xsi:type="number">1</item> <item name="gif" xsi:type="number">1</item> </item> </argument> </arguments>
45 <type name="magento\cms\model\wysiwyg\images\storage"> <arguments> <argument name="extensions" xsi:type="array"> <item name="allowed" xsi:type="array"> <item name="jpg" xsi:type="number">1</item> <item name="jpeg" xsi:type="number">1</item> <item name="png" xsi:type="number">1</item> <item name="gif" xsi:type="number">1</item> </item> </argument> </arguments>
46 <type name="magento\cms\model\wysiwyg\images\storage"> <arguments> <argument name="extensions" xsi:type="array"> <item name="allowed" xsi:type="array"> <item name="jpg" xsi:type="number">1</item> <item name="jpeg" xsi:type="number">1</item> <item name="png" xsi:type="number">1</item> <item name="gif" xsi:type="number">1</item> </item> </argument> </arguments>
47 <type name="magento\cms\model\wysiwyg\images\storage"> <arguments> <argument name="extensions" xsi:type="array"> <item name="allowed" xsi:type="array"> <item name="jpg" xsi:type="number">1</item> <item name="jpeg" xsi:type="number">1</item> <item name="png" xsi:type="number">1</item> <item name="gif" xsi:type="number">1</item> </item> </argument> </arguments>
48 protected $_extensions; public function construct( array $extensions = [] ) { $this->_extensions = $extensions; }
49 $allowed = $this->_extensions["{$type}_allowed"];
50 Inversion of Control Separating instantiation of objects from the object Easier to test Aids with Separation of concerns
51 How can we test this?
52
53
54 function it_should_create_a_new_cached_image($filesystem) { $filesystem->beadoubleof( \Magento\Framework\Filesystem $filesystem); } $this->createcachedfile($filesystem) ->shouldreturntrue();
55 Closing thoughts
56 Composer can help create reusable packages Dependency Injection is a must, Yet be careful on how many dependencies are injected Testing has become easier Decoupling of modules is now easier Magento 2 service contracts / Design by contract ( Interfaces )
57 Thank-you and any questions?
The de constructed. Magento module
The de constructed Magento module James Cowie Technical Team Lead Inviqa t/@jcowie gh/jamescowie 2016 Magento Master mover deconstruct... verb de con struct \ˌdē-kən-ˈstrəkt\ To take apart or examine in
More informationPaul Boisvert. Director Product Management, Magento
Magento 2 Overview Paul Boisvert Director Product Management, Magento Platform Goals Release Approach 2014 2015 2016 2017 2.0 Dev Beta 2.0 Merchant Beta 2.x Ongoing Releases 2.0 Dev RC 2.0 Merchant GA
More informationDependency Injection Container Documentation
Dependency Injection Container Documentation Release v1.0.0 Filipe Silva Dec 08, 2017 Contents 1 Getting started 3 1.1 Introduction...............................................
More informationExpert Guidance on Migrating from Magento 1 to Magento 2
Expert Guidance on Migrating from Magento 1 to Magento 2 Gordon Knoppe Business Solutions Architect, ECG James Cowie Technical Architect, ECG Expert Consulting Group ECG Charter: To provide expert insight,
More informationMagento 2 Certified Professional Developer. Exam Study Guide
Magento 2 Certified Professional Developer Exam Study Guide U Contents Contents Introduction... 1 Topics and Objectives... 3 1 Magento Architecture and Customization Techniques... 3 1.1 Describe Magento
More informationMagento Technical Guidelines
Magento Technical Guidelines Eugene Shakhsuvarov, Software Engineer @ Magento 2018 Magento, Inc. Page 1 Magento 2 Technical Guidelines Document which describes the desired technical state of Magento 2
More informationOUT OF STOCK NOTIFICATION FOR MAGENTO 2
1 User Guide Out of Stock Notification for Magento 2 OUT OF STOCK NOTIFICATION FOR MAGENTO 2 USER GUIDE BSS COMMERCE 1 2 User Guide Out of Stock Notification for Magento 2 Contents 1. Out of Stock Notification
More informationPorting A Complex Extension To Magento 2
Porting A Complex Extension To Magento 2 Fabian Schmengler Magento Developer at integer_net The Extension IntegerNet_Solr Improved Search And Layered Navigation More relevant search results Fuzzy search
More informationAdvanced Object Oriented PHP
CNM STEMulus Center Web Development with PHP November 11, 2015 1/17 Outline 1 2 Diamond Problem Composing vs Inheriting Case Study: Strategy Design Pattern 2/17 Definition is when a class is based on another
More informationMagento 2 Code Customizations
Magento 2 Code Customizations Anton Kril Architect, Magento 2 Agenda Service Contracts Presentation Layer Extension Points Service Contracts Extensions Compatibility Challenges How to make sure that two
More informationIntroducing Dependency Injection. Rob Allen November 2013
Introducing Dependency Injection Rob Allen November 2013 I make websites 19ft.com Dependency Injection enables loose coupling and loose coupling makes code more maintainable Mark Seemann We re actually
More informationGetting started with Dependency Injection. Rob Allen May 2015
Getting started with Dependency Injection Rob Allen May 2015 Dependency Injection enables loose coupling and loose coupling makes code more maintainable Mark Seemann We're actually talking about loose
More informationGearmanBundle. Release
GearmanBundle Release Nov 28, 2017 Contents 1 User Documentation 3 1.1 Installing/Configuring.......................................... 3 1.2 Configuration...............................................
More informationZend Framework 2 Patterns
Zend Framework 2 Patterns Matthew Weier O'Phinney Project Lead, Zend Framework Roadmap for today Namespaces and Autoloading Exceptions Configuration Plugin systems Dispatching Inversion of Control Format
More informationUnit 1 3 Dependency Injection & Inversion of Control
Unit 1 3 Dependency Injection & Inversion of Control This is a free chapter from our CBOX202: WireBox Dependency Injection course (www.coldbox.org/courses/cbox202) and is freely donated to the ColdFusion
More informationFive Tips To Make Good Object- Oriented Code Better By Brandon Savage
Five Tips To Make Good Object- Oriented Code Better By Brandon Savage Getting Started Welcome To The World Premiere! Who Am I? Who Am I? Resident of Washington, DC Freelancer and jobhunting PHP developer
More informationphpspec Documentation
phpspec Documentation Release 3.x Konstantin Kudryashov (everzet), Marcello Duarte (_md) Nov 17, 2017 Contents 1 Introduction 3 2 Installation 5 3 Getting Started 7 4 Prophet Objects 11 5 Let and Let
More informationIntroduction to Testing and Maintainable code
Introduction to Testing and Maintainable code Reasons not to write unit tests 1. I don't know how to write tests. 2. Writing tests is too hard. 3. I don't have enough time to write tests. 4. Testing is
More informationSOLID Principles. Equuleus Technologies. Optional Subheading October 19, 2016
SOLID Principles Optional Subheading October 19, 2016 Why SOLID Principles? The traits of well designed software are as follows Maintainability - The ease with which a software system or component can
More informationIngegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1
Ingegneria del Software Corso di Laurea in Informatica per il Management Design Patterns part 1 Davide Rossi Dipartimento di Informatica Università di Bologna Pattern Each pattern describes a problem which
More informationBuild Testable Client and Service Applications
Build Testable Client and Service Applications Brian Noyes IDesign Inc (www.idesign.net) brian.noyes@idesign.net About Brian Chief Architect IDesign Inc. (www.idesign.net) Microsoft Regional Director MVP
More informationReferralSystemDemoBundle Documentation
ReferralSystemDemoBundle Documentation Release 0.1 Vyacheslav Enis June 14, 2014 Contents 1 Installation 3 1.1 Prerequisites............................................... 3 1.2 Installation................................................
More informationLaravel: From Apprentice To Artisan
Laravel: From Apprentice To Artisan Advanced Architecture With Laravel 4 Taylor Otwell This book is for sale at http://leanpub.com/laravel This version was published on 2013-09-04 This is a Leanpub book.
More informationIntroducing Dependency Injection. Rob Allen September 2013
Introducing Dependency Injection Rob Allen September 2013 Dependency Injection enables loose coupling and loose coupling makes code more maintainable Mark Seemann We re actually talking about loose coupling
More informationDeveloper Experience
Developer Experience Max Yekaterynenko Director of Community Engineering @maksek_ua Discover Install Design Develop Integrate Deploy Engage Maintain Monetize Discover Install Design Develop Integrate Deploy
More informationA Sweet Test Suite. DrupalCon NA A Sweet Test Suite
A Sweet Test Suite A Sweet Test Suite Dan Gurin Twitter @dgurin dangur @ D.O, GitHub, LinkedIn... Organizer @ Drupal Camp Asheville Engineer @CivicActions Test Driven Development Test Driven Development
More informationAgile Architecture. The Why, the What and the How
Agile Architecture The Why, the What and the How Copyright Net Objectives, Inc. All Rights Reserved 2 Product Portfolio Management Product Management Lean for Executives SAFe for Executives Scaled Agile
More informationObject-Oriented Design
Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration
More informationDealing with Legacy Code. Sebastian Bergmann October 28 th 2014
Dealing with Legacy Code Sebastian Bergmann October 28 th 2014 Sebastian Bergmann Driven by his passion to help developers build better software. sharing experience Legacy Code "Legacy code is code that
More informationMagento Marketplace's New Extension Quality Program
Magento Marketplace's New Extension Quality Program Erika Talbott Product Manager - Marketplace J Ravi Menon Architect - Marketplace Tom Erskine Lead Engineer - MFTF Overview Erika Talbott Marketplace
More informationImplementing MVVM in Real World ArcGIS Server Silverlight Applications. Brandon Copeland LJA Engineering, Inc.
Implementing MVVM in Real World ArcGIS Server Silverlight Applications Brandon Copeland LJA Engineering, Inc. 1 Agenda / Focused Topics Application Demo Model-View-ViewModel (MVVM) What is MVVM? Why is
More informationMagento Commerce Cloud. Implementing a Project Effectively
Magento Commerce Cloud Implementing a Project Effectively Nadiia Syvokonenko Software Engineer Magento Commerce Billy Gilbert Software Engineer Magento Commerce Magento Commerce Cloud Magento Commerce
More informationDesign Patterns #3. Reid Holmes. Material and some slide content from: - GoF Design Patterns Book - Head First Design Patterns
Material and some slide content from: - GoF Design Patterns Book - Head First Design Patterns Design Patterns #3 Reid Holmes Lecture 16 - Thursday November 15 2011. GoF design patterns $ %!!!! $ "! # &
More informationDependency Injection with ObjectPoolManager
Dependency Injection with ObjectPoolManager Recently I got my hands over some of the IOC tools available for.net and really liked the concept of dependency injection from starting stage of application
More informationUnit Testing In Python
Lab 13 Unit Testing In Python Lab Objective: One of the hardest parts of computer programming is ensuring that a program does what you expect it to do. For instance, a program may fail to meet specifications,
More informationWant Better Software? TEST it! (and thenwrite it) Tame defects before they appear You Rise/Bugs Fall
Want Better Software? TEST it! (and thenwrite it) Tame defects before they appear You Rise/Bugs Fall Introduction TDD had its origins as an integral part of Extreme Programming TDD, BDD, DDD and the coming
More informationWorking with the Seagull Framework. By Demian Turner, Seagull Systems
Working with the Seagull Framework By Demian Turner, Seagull Systems seagullproject.org Who is Demian Turner? Developing websites since 1996, using PHP since 1999 Committer on several open source projects:
More informationThe UIComponent Ally or Enemy?
The UIComponent Ally or Enemy? Joaquín Ruiz @jokiruizlite - Disclaimer This presentation contains my own views and thoughts of Magento 2 UI Components. Index Index 1. Introduction and the controversy 2.
More informationSingle Responsibility Principle
Single Responsibility Principle Class should have only one responsibility which means class should be highly cohesive and implement strongly related logic. Class implementing feature 1 AND feature 2 AND
More informationLessons Learned. Johnny Bigert, Ph.D., Skype/Microsoft October 26, 2011
Lessons Learned Johnny Bigert, Ph.D., Skype/Microsoft johnny.bigert@skype.net October 26, 2011 Why do we do the things we do? Software Development Object-orientation, design principles, timeboxing, teams,
More informationChris Donnan & Solomon Duskis
The Peer Frameworks Series -.Net and Java Spring Framework Developer Session Chris Donnan & Solomon Duskis All Rights Reserved 0 Overview 600-630 Light Snack 630 700 Introduction to Inversion of Control,
More informationBlast Project. Release
Blast Project Release Nov 03, 2017 Reference Guide 1 Installation 1 2 Getting started with Blast CoreBundle 3 3 Configuration 5 4 Architecture 7 5 The Contribution Guide 9 6 Other Bundles 11 i ii CHAPTER
More informationCSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich
CSCD01 Engineering Large Software Systems Design Patterns Joe Bettridge Winter 2018 With thanks to Anya Tafliovich Design Patterns Design patterns take the problems consistently found in software, and
More informationEasy Conversion Tracking with Magento Commerce
Easy Conversion Tracking with Magento Commerce Page 2 David Deppner President, Psyberware Page 3 Agenda A Practical "How To" Guide Better Reporting with Magento 2's Google Tag Manager Implementation Google
More informationCUSTOM OPTION TEMPLATE FOR MAGENTO 2
1 User Guide Custom Option Template for Magento 2 CUSTOM OPTION TEMPLATE FOR MAGENTO 2 USER GUIDE BSS COMMERCE 1 2 User Guide Custom Option Template for Magento 2 1. Custom Option Template for Magento
More informationDependency Injection and Spring. INF5750/ Lecture 2 (Part II)
Dependency Injection and Spring INF5750/9750 - Lecture 2 (Part II) Problem area Large software contains huge number of classes that work together How to wire classes together? With a kind of loose coupling,
More informationmagento_1:product-parts-finder
magento_1:product-parts-finder https://amasty.com/docs/doku.php?id=magento_1:product-parts-finder For more details see the Product Parts Finder extension page. Product Parts Finder Setting up Finder step
More informationObject-Oriented Design
Object-Oriented Design Lecturer: Raman Ramsin Lecture 20: GoF Design Patterns Creational 1 Software Patterns Software Patterns support reuse of software architecture and design. Patterns capture the static
More informationIndex. Note: Boldface numbers indicate code and illustrations; an italic t indicates a table.
Index Note: Boldface numbers indicate code and illustrations; an italic t indicates a table. A absolute positioning, in HTML, 184 187, 184 187 abstract classes, 6, 6 Accept header, 260 265, 261 265 access
More informationImproving the Magento 2 Developer Experience
Improving the Magento 2 Developer Experience Alan Kent Magento Chief Architect Consistent Magento 2 Feedback I have been working on some larger Magento 2.1 EE solutions for a few months now and I really
More informationORDER DETAILS ON SUCCESS PAGE FOR MAGENTO 2 USER GUIDE
1 User Guide Order Details on Success Page for Magento 2 ORDER DETAILS ON SUCCESS PAGE FOR MAGENTO 2 USER GUIDE BSS COMMERCE 1 2 User Guide Order Details on Success Page for Magento 2 1. Order Details
More informationDependency Inversion, Dependency Injection and Inversion of Control. Dependency Inversion Principle by Robert Martin of Agile Fame
Dependency Inversion, Dependency Injection and Inversion of Control Dependency Inversion Principle by Robert Martin of Agile Fame Dependency Inversion Principle History Postulated by Robert C. Martin Described
More informationMcCa!"s Triangle of Quality
McCa!"s Triangle of Quality Maintainability Portability Flexibility Reusability Testability Interoperability PRODUCT REVISION PRODUCT TRANSITION PRODUCT OPERATION Correctness Usability Reliability Efficiency
More informationJust Mock It! Leveraging Mock Objects
Just Mock It! Leveraging Mock Objects 1 Who am I? Luis Majano - Computer Engineer Born in San Salvador, El Salvador --> President of Ortus Solutions Manager of the IECFUG (www.iecfug.com) Creator of ColdBox,
More informationPRE-CON WORKSHOP 5. Add intelligence to your solutions with AI, bots, and more. Brian Randell FROBISHER 5
MONDAY 14 th MAY WORKSHOP 1 WORKSHOP 2 WORKSHOP 3 WORKSHOP 4 WORKSHOP 5 WORKSHOP 6 WORKSHOP 7 WORKSHOP 8 WORKSHOP 9 Accelerated C# fundamentals Cloudbased with Microsoft Azure best practices Microservices
More informationCreational. Structural
Fitness for Future of Design Patterns & Architectural Styles Design patterns are difficult to teach, so we conducted a class collaboration where we all researched and reported on a variety of design patterns
More informationUnderstand and improve your Magento 2 store caching and performance
Understand and improve your Magento 2 store caching and performance Renato Cason Head of Development END. Overview Introduction Application Cache Block caching Cache clean by tag Custom cache types Profiling
More informationBldr.io Documentation
Bldr.io Documentation Release 0.0.2 Aaron Scherer February 10, 2017 Contents 1 Content 5 1.1 Installation................................................ 5 1.2 Usage...................................................
More informationAdvanced React JS + Redux Development
Advanced React JS + Redux Development Course code: IJ - 27 Course domain: Software Engineering Number of modules: 1 Duration of the course: 40 astr. hours / 54 study 1 hours Sofia, 2016 Copyright 2003-2016
More informationRiccardo Tempesta. MageSpecialist
Riccardo Tempesta CTO @ MageSpecialist Magento Community Maintainer Magento Community Contributor Magento 1 Certified Developer Magento 2 Professional Developer Beyond Software Development: Challenges
More informationDesign for Testability. Dave Liddament (Director and developer at Lamp Bristol Limited)
Design for Testability Dave Liddament (Director and developer at Lamp Bristol Limited) Why Test? - Know our code works - Prevent against regression when developing new code - Stable platform for refactoring
More informationBerkeley Scheme s OOP
Page < 1 > Berkeley Scheme s OOP Introduction to Mutation If we want to directly change the value of a variable, we need a new special form, set! (pronounced set BANG! ). (set! )
More informationBehat BDD, FUNCTIONAL TESTS & SELENIUM (IN DRUPAL!)
Behat BDD, FUNCTIONAL TESTS & SELENIUM (IN DRUPAL!) s Hallo! > Lead of the Symfony documentation team > KnpLabs US - Symfony consulting, training & kumbaya > Writer for KnpUniversity.com: PHP & Symfony
More informationPhake - PHP Mocking Framework Documentation
Phake - PHP Mocking Framework Documentation Release 1.0.3 Mike Lively Sep 06, 2017 Contents 1 Introduction to Phake 1 2 Getting Started 5 2.1 Composer Install.............................................
More informationDependency Injection and the art of services and containers. With <3 from KnpUniversity
Dependency Injection and the art of services and containers With
More informationFLOW3 Robert Lemke Karsten Dambekalns
FLOW3 Robert Lemke Karsten Dambekalns FLOW3 Robert Lemke Karsten Dambekalns Copyright 2007, 2008, 2009 Robert Lemke, Karsten Dambekalns Abstract FLOW3 is a modern application framework for enterprise-grade
More informationBy Philip Japikse MVP, MCSD.Net, MCDBA, CSM Principal Consultant Pinnacle Solutions Group
By Philip Japikse Phil.Japikse@pinnsg.com MVP, MCSD.Net, MCDBA, CSM Principal Consultant Pinnacle Solutions Group Phone:513-619-6323 Fax:513-791-5202 1 Principal Consultant, Pinnacle Solutions Group, Inc.
More information11/12/12. Objectives DESIGN PATTERNS. Design Pattern. Defined Design Patterns. Applying Design Patterns. Motivating Example
Objectives Design Patterns Open up Eclipse DESIGN PATTERNS Nov 12, 2012 Sprenkle - CSCI209 1 Nov 12, 2012 Sprenkle - CSCI209 2 Design Pattern General reusable solution to a commonly occurring problem in
More informationTecniche di Progettazione: Design Patterns
Tecniche di Progettazione: Design Patterns GoF: Builder, Chain Of Responsibility, Flyweight 1 Design patterns, Laura Semini, Università di Pisa, Dipartimento di Informatica. Builder 2 Design patterns,
More informationDI Why? Getting a Grip on Dependency Injection. Jeremy Clark
DI Why? Getting a Grip on Dependency Injection Jeremy Clark www.jeremybytes.com @jeremybytes What Is Dependency Injection? Dependency Injection is a software design pattern that allows a choice of component
More informationDEPLOYMENT MADE EASY!
DEPLOYMENT MADE EASY! Presented by Hunde Keba & Ashish Pagar 1 DSFederal Inc. We provide solutions to Federal Agencies Our technology solutions connect customers to the people they serve 2 Necessity is
More informationMIGRATING FROM MAGENTO 1 TO MAGENTO 2
MIGRATING FROM MAGENTO 1 TO MAGENTO 2 FULL SERVICE ECOMMERCE AGENCY Best practice ecommerce websites since 1997. We design, build, host, support & update websites. Background Magento advised in late 2015
More informationSitecore E-Commerce Developer's Cookbook
Sitecore E-Commerce Fundamental Edition 1.1 Sitecore E-Commerce Developer's Cookbook Rev: 2011-05-13 Sitecore E-Commerce Fundamental Edition 1.1 Sitecore E-Commerce Developer's Cookbook Configuration and
More informationJAVA GUI PROGRAMMING REVISION TOUR III
1. In java, methods reside in. (a) Function (b) Library (c) Classes (d) Object JAVA GUI PROGRAMMING REVISION TOUR III 2. The number and type of arguments of a method are known as. (a) Parameter list (b)
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 01: Procedural Programming MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Procedural Programming 2 Introduction Procedural Programming: General Overview Procedural Programming:
More informationThe Quick Tour Version: master
The Quick Tour Version: master What could be better to make up your own mind than to try out Symfony yourself? Aside from a little time, it will cost you nothing. Step by step you will explore the Symfony
More informationRefactoring Legacy Code
By: Adam Culp Twitter: @adamculp https://joind.in/11658 1 2 About me PHP 5.3 Certified Consultant at Zend Technologies Zend Certification Advisory Board Organizer SoFloPHP (South Florida) Organized SunshinePHP
More informationCUSTOMER APPROVAL FOR MAGENTO 2
1 User Guide Customer Approval for Magento 2 CUSTOMER APPROVAL FOR MAGENTO 2 USER GUIDE BSS COMMERCE 1 2 User Guide Customer Approval for Magento 2 Contents 1. Customer Approval for Magento 2 Overview...
More informationMAGENTO ADD MULTIPLE PRODUCTS TO CART
1 User Guide Add Multiple Products to Cart MAGENTO ADD MULTIPLE PRODUCTS TO CART USER GUIDE 1 2 User Guide Add Multiple Products to Cart Table of Contents I. Magento Add Multiple Products to Cart Extension
More informationRefactoring Tested Code: Has Mocking. RefTest. Managing Refactoring in a Test. Driven World. Gone Wrong? Ben Stopford Royal Bank of Scotland
RefTest Refactoring Tested Code: Has Mocking Driven World Gone Wrong? Managing Refactoring in a Test Ben Stopford Royal Bank of Scotland I've always been a old fashioned classic TDDer and thus far I don't
More informationTecniche di Progettazione: Design Patterns
Tecniche di Progettazione: Design Patterns GoF: Chain Of Responsibility 1 Chain Of Responsibility Intent Avoid coupling the sender of a request to its receiver by giving more than one object a chance to
More informationApache Storm: Hands-on Session A.A. 2016/17
Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Apache Storm: Hands-on Session A.A. 2016/17 Matteo Nardelli Laurea Magistrale in Ingegneria Informatica
More informationDoes Your Code Measure Up?
Does Your Code Measure Up? By: Adam Culp Twitter: @adamculp https://joind.in/13300 2 About me PHP 5.3 Certified Consultant at Zend Technologies Organizer SoFloPHP (South Florida) Organized SunshinePHP
More informationJUNIT 5 EXTENSIONS 1. 1
JUNIT EXTENSIONS 1. 1 MARC PHILIPP Software Engineer @ LogMeIn in Karlsruhe, Germany JUnit Maintainer since 2012 Twitter: @marcphilipp Web: marcphilipp.de 1. 2 JUNIT IS RELEASED! Release date: September
More informationSeven Deadly Sins of Agile Testing
Seven Deadly Sins of Agile Testing 2 About me Brad Swanson Time to market Traditional Development Analyze Implement Test Agile Development Deliverable Deliverable 3 Risk Risk traditional agile Time 4 Schedule
More informationRunning Splunk Enterprise within Docker
Running Splunk Enterprise within Docker Michael Clayfield Partner Consultant 03/09/2017 1.1 Forward-Looking Statements During the course of this presentation, we may make forward-looking statements regarding
More informationAlternatively, use : after else and use a final endif. Blocks of statements are grouped by { } Sys.Prog & Scripting - HW Univ 2
Systems Programming & Scripting Lecture 18: Control Structures Sys.Prog & Scripting - HW Univ 1 Example: If
More informationIntroduction INF 5750
Introduction - INF 5750 INF 5750 Technical basis Interfaces Three-layer architecture Framework and tool overview Interfaces What is it? Defines a contract with implementing classes Defines which methods
More informationCloud providers, tools and best practices in running Magento on Kubernetes. Adrian Balcan MindMagnet Software
Cloud providers, tools and best practices in running Magento on Kubernetes Adrian Balcan DevOps @ MindMagnet Software About Me Companies Projects Adrian Balcan contact@adrianbalcan.com Agenda Magento on
More informationPayment Suite. Release
Payment Suite Release Apr 25, 2017 Contents 1 User Documentation 3 1.1 Installation................................................ 3 1.2 Configuration............................................... 4
More information1 Software Architecture
Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to
More informationDDD and BDD. Dan North ThoughtWorks
DDD and BDD Dan North ThoughtWorks BDD and DDD Dan North ThoughtWorks What is Domain Driven Design? It s about focusing on the domain and letting it affect the software very much - Jimmy Nilsson (ADDDP)
More informationArchitecture using Functional Programming concepts < + >
Architecture using Functional Programming concepts < + > Jorge Castillo @JorgeCastilloPr 1 2 Kotlin and Functional Programming FP means concern separation (declarative computations vs runtime execution),
More informationHIDE PRICE CALL FOR PRICE FOR MAGENTO 2
1 User Guide Hide Price Call For Price for Magento 2 HIDE PRICE CALL FOR PRICE FOR MAGENTO 2 USER GUIDE BSS COMMERCE 1 2 User Guide Hide Price Call For Price for Magento 2 Contents 1. Hide Price Call For
More informationProgramming, numerics and optimization
Programming, numerics and optimization Lecture A-4: Object-oriented programming Łukasz Jankowski ljank@ippt.pan.pl Institute of Fundamental Technological Research Room 4.32, Phone +22.8261281 ext. 428
More informationSPRING MOCK TEST SPRING MOCK TEST I
http://www.tutorialspoint.com SPRING MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Spring Framework. You can download these sample mock tests at
More informationhttps://tale.sh/mlin17
First Steps to Building Secure Magento Extensions https://tale.sh/mlin17 Page 1 Talesh Seeparsan CTO Bit79 Page 2 There is no such thing as an unhackable site You just need to be able to run faster than
More informationP2: Collaborations. CSE 335, Spring 2009
P2: Collaborations CSE 335, Spring 2009 Milestone #1 due by Thursday, March 19 at 11:59 p.m. Completed project due by Thursday, April 2 at 11:59 p.m. Objectives Develop an application with a graphical
More informationBEHAVIOR DRIVEN DEVELOPMENT BDD GUIDE TO AGILE PRACTICES. Director, Strategic Solutions
BEHAVIOR DRIVEN DEVELOPMENT BDD GUIDE TO AGILE PRACTICES Presenter: Joshua Eastman Director, Strategic Solutions ABOUT THE SPEAKER Josh has over seven years of experience as an accomplished software testing
More informationDemonstrations and examples are a key part in most introductory physics student s learning
2 Demonstrations and examples are a key part in most introductory physics student s learning process. Students are well versed in how gravity functions because they have experienced its effects first hand,
More information