15.01.2013 Views

Foundations of Programming - Karl Seguin

Foundations of Programming - Karl Seguin

Foundations of Programming - Karl Seguin

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Foundations</strong> <strong>of</strong> <strong>Programming</strong><br />

Table <strong>of</strong> Contents<br />

About the Author ...............................................................................................................................6<br />

ALT.NET .............................................................................................................................................7<br />

Goals ..............................................................................................................................................8<br />

Simplicity ........................................................................................................................................8<br />

YAGNI.............................................................................................................................................8<br />

Last Responsible Moment................................................................................................................9<br />

DRY ................................................................................................................................................9<br />

Explicitness and Cohesion ................................................................................................................9<br />

Coupling .........................................................................................................................................9<br />

Unit Tests and Continuous Integration .............................................................................................9<br />

In This Chapter..............................................................................................................................10<br />

Domain Driven Design.......................................................................................................................11<br />

Domain/Data Driven Design...........................................................................................................11<br />

Users, Clients and Stakeholders .....................................................................................................12<br />

The Domain Object .......................................................................................................................13<br />

UI .................................................................................................................................................15<br />

Tricks and Tips ..............................................................................................................................16<br />

Factory Pattern .........................................................................................................................16<br />

Access Modifiers .......................................................................................................................17<br />

Interfaces .................................................................................................................................17<br />

Information Hiding and Encapsulation ........................................................................................18<br />

In This Chapter..............................................................................................................................19<br />

Persistence.......................................................................................................................................20<br />

The Gap ........................................................................................................................................20<br />

DataMapper .................................................................................................................................20<br />

We have a problem ...................................................................................................................23<br />

Limitations................................................................................................................................24<br />

In This Chapter..............................................................................................................................25<br />

Dependency Injection .......................................................................................................................26<br />

Sneak Peak at Unit Testing.............................................................................................................27<br />

Don’t avoid Coupling like the Plague ..............................................................................................28<br />

Dependency Injection....................................................................................................................28<br />

Constructor Injection.................................................................................................................28<br />

Frameworks..............................................................................................................................30<br />

A Final Improvement .................................................................................................................32<br />

In This Chapter..............................................................................................................................33<br />

Unit Testing......................................................................................................................................34<br />

Why Wasn't I Unit Testing 3 Years Ago?..........................................................................................35<br />

The Tools ......................................................................................................................................36<br />

nUnit ........................................................................................................................................36<br />

<strong>Foundations</strong> <strong>of</strong> <strong>Programming</strong> Copyright © <strong>Karl</strong> <strong>Seguin</strong> www.codebetter.com<br />

4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!