I joined the Andela boot camp after an extensive application process. As is the norm, we were paired into groups and each group was assigned a learning facilitator assistant. These were the groups…
I have been planning to learn Software Design for a quite a while now but I always ended up finding some other fancy topic. You can be a software engineer with years of experience and still do fine without delving into the meat of Software design but the perks of understanding this complex process are unfathomable.
Before you start the journey, you need to know what you want to achieve and how. Here I am sharing my roadmap for learning software design. I have broken it into different milestones. If time permits, I will release more write-ups of my interpretation of this complex subject.
Clean code is easy to figure out, sustain and change. Basic principles like: being consistent, preferring meaningful variable, function and class names over comments, ensuring code is indented and spaced properly, ensuring all the tests can run, writing pure functions with no side effects.
It’s good to understand the three major programming paradigms and the way they influence how we write code.
Object-oriented programming helps us to create a pluggable architecture and brings flexibility to our code. It’s important to understand the 4 fundamental principles of OOP.
Design principles are well-tested object oriented best practices that you can use as guiding lights.
Someone else has already solved all software problems. Use their knowledge instead of re-inventing the wheel. There are 3 categories of design patterns.
Once we have organized our code using the low level design patterns, next is to think about planning our architecture. Similar to low-level design principles, we have architecture design principles.
Similar to low-level software design problems, someone else has solved before all the architecture level problems. Let’s use those architecture styles.
Suited for projects like Uber.
The components are separate and talk to each other by communicating over a network protocol.
Architectural Patterns give the implementation details of the architectural styles.
Most of us know most of these jargons. I will attempt to deep-dive into each of these and this time I am ready to trade my right arm for it.
Anthropology has shown decades ago that mankind resorts to magical thinking as a defense against a world that we can no longer explain: the conspiracy theorist who is angry with 5G or the MP who…
2. A consistent performance is seen and the goals from the last performance appraisal seem to have been met. 3. Employee wishes to be promoted to Project Head by the end of the year. 4. The employee…