
Just finished reading the above - here are the key things I have taken away from it as a collection of links:
- ANSI/IEEE standard 1471 / ISO/IEC 42010:2007 - Recommended Practice for Architectural Description of Software-intensive Systems
- ISO/IEC 19501 - Unified Modeling Language (UML) Version 1.4.2
- ISO/IEC 9126 - Software Engineering Product Quality
- ISO/IEC 12207 - Software Lifecycle Processes
- Patterns of Enterprise Application Architecture - Martin Fowler
- Murphy's Laws
UML Essentials
- UML & MDA vs Domain Specific Languages (DSL)
- UML round trip engineering
- UML as a sketch vs UML as a blueprint
- UML Distilled
- Use Cases
- Class Diagram
- Sequence Diagram
Design Principles & Patterns
- Layers - Spaghetti Code vs Lasagne Code
- High Cohesion / Single Responsibility Principle
- Loose Coupling
- Separation of Concerns
- Design Guidelines for Developing Class Libraries
- Design patterns: elements of reusable object-oriented software - Gang of Four
- Open/Closed Principle
- Liskov Substitution Principle
- Dependency Inversion Principle
- Refactoring to Patterns - Joshua Kerievsky
- Data & Object Factory
- Anti-Patterns
- IoC Frameworks - Unity, Castle Windsor, Ninject, Spring.NET, StructureMap
- Design for Testability - Stubs, Doubles, Mocks / Fakes
- Mocking Frameworks - NMock, TypeMock, RhinoMocks
- Design by Contract - Code Contracts
- Unit Testing Tools - MSTest, MBUnit, NUnit, XUnit.NET
- Static Analysis Tools - NDepend, FxCop, StyleCop
- Security - Security Development Cycle (SD3+C), Code Access Security, STRIDE Threat Model, DREAD, XSS, SQL Injection, Buffer Overflow Exploitation, Fuzz Testing
- Aspect-Oriented Programming - Policy Injection Application Block
- DRY, YAGNI, Once and Only Once
The Business Layer
- Transaction Script pattern and Command pattern
- Table Module pattern - ADO.NET DataSet
- Active Record pattern - LINQ-to-SQL, Castle ActiveRecord
- Domain Model pattern - Domain Driven Design
The Service Layer
- Service Layer pattern
- Remote Façade pattern
- Data Transfer Object (DTO) pattern
- Adapter pattern
- Service Oriented Architecture (SOA)
The Data Access Layer (DAL)
- CRUD Services - Data Mapper pattern
- Query Services - Query/Criteria Object pattern
- Transactions - Unit of Work pattern
- Concurrency - Optomistic Concurrency (OOL), Pessimistic Concurrency
- Separated Interface pattern - Repository pattern
- Plugin pattern / Service Locator pattern - Inversion of Control pattern / Dependency Injection
- Identity Map pattern
- Lazy (Deferred) Loading pattern - dynamic fetch plans
- Object Relational Mappers - Entity Framework (EF), LINQ-to-SQL, NHibernate, EntitySpaces, Genome, LLBLGen Pro
- Persistence Ignorance (PI) - POCO's
- Myths about Stored Procedures
The Presentation Layer
- Autonomous View (AV)
- Separated Presentation
- Model View Controller (MVC) - ASP.NET MVC, Castle MonoRail, Model2
- Model View Presenter (MVP) - Passive View (PV), Supervising Controller (SVC)
- Presentation Model (PM) - Model View ViewModel (MVVM)
- Testing the UI - WatiN, Selenium, WebAii
- Behaviour Driven Development (BDD) - Cucumber, SpecFlow, NBehave
No comments:
Post a Comment