It’s no secret that software is often written poorly. In commercial environments, developers will regularly find themselves facing technical debt and find that the ability to refactor code is an essential skill to master. As Martin Fowler famously wrote: "Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
Due to bad design in software, delivering value to the client can become ever more difficult and stressful until bad software design decisions are rectified. For developers working on badly designed projects, making repayments on technical debt, whilst also delivering value is a key skill – this session will explain how it is possible to square-the-circle and both deliver value whilst paying down technical debt.
Unfortunately far too many developers consider refactoring as a risky task filled with code that’s ridden with var_dumps and debug breakpoints. This session seeks to teach attendees that refactoring can be a safe, everyday task during normal software development and that it is indeed healthy to refactor software mercilessly, especially when operating in an Agile environment with changing software requirements.
This session will feature a hands-on demonstration of how to refactor a legacy app through a combination of automated testing, faster releases and merciless refactoring.
Practical experience in automated software testing and continuous integration are vital learning outcomes and this session seeks to expose attendees to tools like Docker, PHPUnit, Selenium and PHP Mess Detector. Beyond testing, we’ll cover the Code Smells that help developers weed out where the problematic code is.
Gaining a firm grounding in Object-Oriented Programming when refactoring PHP is invaluable and as such, this session will take a deep-dive into Polymorphism, SOLID principles and anti-patterns. After nailing down Object-Orientation, we’ll discuss how we can move legacy software architecture to suitable Design Patterns.
Extreme Programming practices will be presented as a key discussion point on how developers can help achieve these goals.
About the speaker
Junade Ali is a British computer scientist with specialist knowledge of computer security, distributed systems and software design. He is the author of multiple software engineering books, including “Mastering PHP Design Patterns”.
Currently, Junade holds the position of Lead Support Operations Engineer at Cloudflare and is working part-time on a PhD in theoretical computer science. He has completed a number of high-profile security research projects that have been covered in the media; including anonymous leak password detection in Pwned Passwords, IoT security research and DDoS attack analysis.
His software engineering experience has varied from being the lead developer of the then largest digital agency in the UK (by headcount) to developing software for embedded systems used in mission critical road safety applications.
At the age of 17, he started a post-graduate Masters, and was later awarded a Distinction and “Best Overall Masters” award for a thesis based of his earlier conference paper “Coverage and Sensor Placement for Vehicles on Predetermined Routes - A Greedy Heuristic Approach”.