Become an Awesome Software Architect, Book 1: Foundation 2019

Become an Awesome Software Architect, Book 1: Foundation 2019
English | 2019 | ISBN : 1697271065 | 192 pages | EPUB | 2.58 MB

Great software architects aren’t born. They are a product of decades of building real-life solutions and relentless learning. They become really good at their trade closer to the retirement age. But most startups are fostered by young entrepreneurs who dare to try but lack the experience. They also lack the $$ to hire a silver-haired architect to join their team from day one. Left to their own faculties, the entrepreneurs and their engineering teams quickly get on the path of learning from their own mistakes. Eventually, they discover this is the most expensive way of learning. Over time they get better, and some become the true masters of the craft – but way too late to make a difference for their early-day projects.

This book is meant to break the vicious circle. It isn’t a textbook, at least not in the traditional sense. It is a business-centric practical guide to software architecture, intended for software engineers, technology executives, students of computer science, and tech-savvy entrepreneurs who want to de-risk their entrepreneurial endeavors or to fast-track their careers in software engineering. The recipes in this book are highly practical, battle-tested, and current for building mid- to large-scale systems in 2019-2020.

The book covers the following topics:

Software architecture, what it is, and what it's for
The Hit List of a software architect; functional vs non-functional requirements
Programming languages; object-oriented vs functional programming; how to pick the right tool for a job
Datastores, SQL vs NoSQL vs Event Stores, CRUD vs CQRS vs Append-Only
Data Models, Domain-Driven Design approach to data modeling
Layering your architecture, reducing complexity and dependencies
Code composition, SOLID principles, Dependency inversion demystified
Latency; synchronous and asynchronous processing
Errors, error recovery, and the right way of handling retries
Practical logging
Real-time and near-real-time processing
Event streaming and streaming architectures
Caching and CDNs
User Interfaces, unified cross-platform UI architectures
MVC model and its successors; a reusable UI composition model
Microservices, the Dos and the Don'ts
API design patterns, API versioning, and backward compatibility
API security
Batch processing, and how to avoid it
Multi-tenancy, and why it is more important than you might think
Removing dependencies between engineering workstreams, develop great code fast with a team of any size
Runtime infrastructures, from dedicated servers to cloud to serverless architectures
Runtime frameworks, how to pick one, and how to protect yourself from the framework's shortcomings
Brainstorming technique that really works

Every topic is illustrated with easy to follow code examples and diagrams. Enjoy!

No comments have been posted yet. Please feel free to comment first!

    Load more replies

    Join the conversation!

    Login or Register
    to post a comment.

    Advanced Search