In Shopsys, we like to work effectively and we automate most of our routines so our processes are easily adaptable by newcomers. In order to keep our development process smooth, we always look for suitable tools that are proven to make the work more effective so we aren’t reinventing the wheel.
We briefly present 6 the tools that help us do our more mundane tasks. As developers, we consider them crucial and hope you’ll also find some use for them on your own projects.
What is it: PHP Integrated Development Environment (IDE)
Why we use it: It is the best IDE available and our favorite. The development of new features, as well as refactoring, can be done quickly with PhpStorm as it really understands the code. Moreover, it makes the development of our Symfony based framework much easier and faster thanks to the Symfony plugin.
How we use it: We use the IDE for everyday development of Shopsys Framework. Smart refactoring, finding usages, and three-way merges for resolving conflicts are the top features we adore. We also use the built-in extensions like the command line interface or integrated Git client.
What is it? A version control system, i.e. software that helps the development team with managing the changes to source code over time.
Why we use it: Git is a #1 version control and it enables us to watch the changes in our codebase over time, and work on multiple features simultaneously. It is also really fast even on bigger projects like Shopsys Framework. We have tens of thousands of files in the framework and Git can handle it in the blink of an eye.
What is it: Web service where members of the opensource community help each other to create some of the best projects possible.
Why we use it: It provides the standard way to publish our code as opensource. It is also a great tool for effective team collaboration on the code level.
How we use it: We manage all the Shopsys Framework repositories on Github. We accept contributions and issue reports from our users. We love the new (beta) feature that enables making suggestions during the code review! We also make pull requests to other libraries we use whenever we find an issue or a bug.
How you can start using it: Create an account and you are ready to contribute to any opensource project! Add your public repository and invite people to help you with your development or help others to make their projects better.
What is it: An automation service.
Why we use it: We love automation and Jenkins allows us to automate many development tasks, such as building, deployment, or testing of our application.
How we use it: When we create a new feature branch, Jenkins builds the application on this branch on a CD server. The build checks coding standards and runs tests, including Codeception tests, ensuring the feature does not break anything. Moreover, Jenkins creates the instance of the application a unique URL that is available for manual testing and business validation by our product owner. We also use Jenkins for many other automated actions, such as splitting of the Shopsys monorepo using our monorepo tools.
What is it: A tool for automated load testing of a web application.
Why we use it: We need to monitor the performance of Shopsys Framework easily and repeatedly under simulated traffic.
How we use it: We fill our shop with performance data (40,000 products) and let Gatling load test the application with concurrent users in various scenarios. When we work on a feature that is expected to influence Shopsys Framework performance, we watch the tests results before and after the implementation of such a feature. Also, we run the load tests after each release of a new version of Shopsys Framework. Gatling simply watches the Shopsys framework performance and lets us know if there are any issues.
Why we use it: Shopsys Framework is designed for big projects and enterprise use, so we prepare it to be automatically scaled as your business grows. Cloud deployment offers such a feature and Google is one of the greatest cloud providers.
How we use it: We have prepared scripts and configuration files along with a cookbook “How to deploy SSFW to Google Cloud Platform” so our users are able to deploy their projects to the cloud solution easily. Also, whenever we need to test any new configuration or server installation guide, we utilize the possibility of running a new virtual server in the desired configuration with a click of a mouse.
There are many effective and quality tools we use on a daily basis. Once you find the tool that suits your needs and help you with your everyday problems, it becomes priceless for you. We want to leverage the power of such tools as much as possible so we can focus on the real problems of our e-commerce domain and don’t waste time. We hope we inspired you a little bit and if you use any other tool that you would like to recommend to us, please let us know in the comment section below the article!