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.
PhpStorm
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.
How you can start using it: Go to the official website and download it.
Git
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.
How we use it? Because it’s so important, we almost take it for granted. We use it to keep the teamwork consistent by using the so-called feature branch workflow. We are very thorough with the form of each commit, and even have guidelines for creating commits in our documentation. To keep a clean project history we leverage advanced Git features like fixup commits and an interactive rebase with the autosquash option.
How you can start using it? Download it from the official website and check the documentation. The basics are really easy and the advantages of using Git version control are priceless.
Github
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.
Jenkins
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.
How you can start using it: See the official “Getting started” reference. You can also install Jenkins very easily using Docker by looking at the official documentation.
Gatling
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.
How you can start using it: Download it from the official webpage and write the first testing scenario using Scala programming language or let the Gatling generate the script for you using a recorder tool. See the quickstart reference for more information.
Google Cloud
What is it: A suite of cloud computing services.
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.
How you can start using it: Go to the official website and you can start playing with it. For more information, see the “Getting started” manual, or you can take a look at our documentation to see how to set up Google cloud for usage with your project based on Shopsys Framework.
Conclusion
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!
Čtěte také