Contents
Summary
This is a curated list of the most didactic and/or deeply detailed must-read resources about software development.
Online Resources
Architectural Patterns
Is a general, reusable solution to a commonly occurring problem in software architecture within a given context. Architectural patterns are similar to software design pattern but have a broader scope.
Code Smells
A code smell is a surface indication that usually corresponds to a deeper problem in the system.
Database
A database is an organized collection of data. It is the collection of schemas, tables, queries, reports, views, and other objects.
- Books
- SQL Indexing and Tuning by Markus Winand (Free web-edition)
Decomposing
Decomposition in computer science, also known as factoring, is breaking a complex problem or system into parts that are easier to conceive, understand, program, and maintain.
Domain-Driven Design
Domain-driven design (DDD) is an approach to developing software for complex needs by deeply connecting the implementation to an evolving model of the core business concepts.
-
Articles / Papers
-
Videos
-
Books
Logging
In computing, a logfile is a file that records either events that occur in an operating system or other software runs, or messages between different users of a communication software. Logging is the act of keeping a log.
- Articles / Papers
Object-Oriented Design
Object-Oriented Design is the process of planning a system of interacting objects for the purpose of solving a software problem.
-
Articles / Papers
-
Videos
Service-Oriented Architecture
A service-oriented architecture (SOA) is a style of software design where services are provided to the other components by application components, through a communication protocol over a network. The basic principles of service-oriented architecture are independent of vendors, products and technologies.
- Articles / Papers
System Architectures
A system architecture is a conceptual model that defines the structure, behavior, and more views of a system. An architecture description is a formal description and representation of a system, organized in a way that supports reasoning about the structures and behaviors of the system.
-
Articles / Papers
-
Videos
- Architecture the Lost Years by Uncle Bob (The Clean Architecture)
- What is programming MVC?
Miscellaneous
Git Revision Control
Revision control is any kind of practice that tracks and provides control over changes to source code.
-
Articles / Papers
-
Books