18 August 2018

Summer of coding

Yireo Blog

Thursday, 20 September 2018: MUG Waalwijk: Vue Storefront training in Waalwijk, Nederland » More information

Summer of coding

While the heat is striking down on Europe and many are sitting at the pool to chill, my summer is all about coding. I was looking forward to a summer without travels (because I had those earlier this year with dozens of conferences) and with time to work on pending projects. Here is an overview of my summer of coding.

Pending project: Magento 2 extensions

I think we have been postponing it too much: While we have created a lot of free Magento 2 extensions, migrating our commercial Magento 1 extensions to Magento 2 has been delayed many times.

Finally, after hard work, our popular Delete-Any-Order extension is now ready for Magento 2. And just a few days ago SalesBlock 2 for Magento 2 has gone live as well.

More extensions are underway: Our WebP extension and ByAttribute 2 extension are 50% complete. Also, we have worked on a connection between Magento 2 and Moneybird (a popular Dutch bookkeeping system) and a new TaxRatesManager extensoin (to make sure EU VAT rates are still valid). Work in progress.

Pending project: Yireo site

First of all, we wanted to renew our Yireo site (this site) and for various reasons. It was getting kind of slow. Also, it was running Joomla while we don't do that anymore. The chosen approach was to replace parts of the site gradually with a plain Slim PHP driven site with static files (Markdown, Plates templating).

The main portion of work was to refactor training pages, the blog and services. And that's done: Numerous pages on our site are now blasting fast. There is still work for improvement, but the strategy was to make sure to get the architecture right and migrate most of the pages.

Pending project: Getting GitLab CI to work

For some years now, we have been running GitLab, an alternative to BitBucket and GitHub. However, it runs on a server that also runs Nginx and Apache - a shared server with many other apps and demos. This complicated the setup of GitLab. I got it working in the end, but the feature of Continuous Integration was always lacking. For commercial projects, this meant using various other CI solutions, which is not cheap.

Finally, I found some time to fix the pending bug (a mistake in the Apache VirtualHost definition, something with proxying from the right port to the wrong port) and now GitLab CI is good to go.

Testing, testing, testing

Leading from this, I went on a rampage to add tests everywhere I could. For various extensions, integration tests and unit tests were already in place. But because GitLab CI makes it possible to run tests after after commit, without the need to wait for it, I added linters (for JS and PHP), code validators (PHP CodeSniffer including ExtDN rules, PHPMD).

Plus I also added "live tests" to perform various tests in live environments (Selenium browser testing but also CLI scripts) to guarantee the health of these systems. It took some time but it now works great.

Good things are ahead

Whoosh. Meanwhile, I am busy playing a lot with React (building various apps with Redux and other React stuff) and GraphQl (displaying WordPress - ugh, blasphemy - content in Magento 2).

And don't forget: Reacticon is coming in two months time. And additionally, the first steps are taken to organize a second version of MageTestFest in 2019.

Relaxed summer? No way! I'm busy with awesome projects!

Written by Jisse Reitsma op 18 August 2018

Looking for a training in-house?
Let's get to it!