Here’s some links that I often refer to (or just want for reference):
OO (+ Architectural) Principles and Patterns
- Solid(object-oriented design)
- Common Closure Principle
- Common Reuse Principle
- Loose Coupling
- Facade
- Stable Dependencies Principle
- Stable Abstractions Principle
- Caching Patterns (Write-Through, Write-Behind, etc)
And the bonus links:
- The architects omnibus of links: http://www.bredemeyer.com/links.htm
- Wikipedia Definition of Software Architecture
Architecture Methods and Frameworks
- The Architecture Journal (MSDN): Evaluating Application Architecture, Quantitatively
- Software Engineering Institute (Carnegie Mellon University)
- ATAM
- ARID (I particularly like the use of pseudo-code to test the architecture)
- Architecture Documentation, Views and Beyond Approach
- Enterprise Architecture Frameworks: TOGAF and Zachman
- 4+1
- 5-Layer Architecture
Data Architecture (the dark arts)
- Data Warehouse
- Data Mart
- OLTP and OLAP
- Fact and Dimension (and Slowly Changing Dimension)
- Star Schema and Snowflake Schema
- Normalization and Denormalization
Quality Attributes & Non-Functional Stuff
- Non-Functional Requirement
- List of System Quality Attributes
- The following PDF articles are in a folder here:
- Dictionary of Non-Functional Requirements
- Architecural Cheat-Sheet
Architecture & Programming Books
- Martin Fowler: Patterns of Enterprise Application Architecture (and here)
- Robert C Martin & Micah Martin: Agile Principles, Patterns, and Practices in C#
- Luke Hohman: Beyond Software Architecture: Creating and Sustaining Winning Solutions
- Frederick Brooks: The Mythical Man-Month
- Steve McConnell: Code Complete, (Official Site)
UX / Usability
Security
- OWASP (Open Web Application Security Project)
- CWE (Common Weakness Enumeration project)
- SABSA (Sherwood Applied Business Security Architecture framework)
.Net Reference
Blogs
- Wired: Danger Room
- Seth Godin
- WebMonkey
Laws
- Hanlon’s Razor: Never attribute to malice that which can be adequately explained by stupidity.
- Niven’s Laws, specifically law 1 from Known Space.
- Clarke’s three laws, specifically law 3: Any sufficiently advanced technology is indistinguishable from magic.
Misc
- List of .NET Dependency Injection Containers (IOC)
- Enterprise Libraries: Patterns & Practices, CodePlex
- List and Definitions of UML Connectors
- Facts and Fallacies of Software Engineering
- An Illustrated Book of Bad Arguments
- Roger Sessions / SIP / Complex Architectures: White Papers
- Bredemeyer Consulting – Resources for Software and Systems Architects