background preloader

Design

Facebook Twitter

Refactoring: Improving the Design of Existing Code (Addison-Wesley Object Technology Series): Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts: Books. Concepts of Database Design and Management. It’s not difficult to find an online tutorial on creating a database. It’s not hard to find a tutorial on how to create queries. In fact, it’s not hard to find tutorials on syntax for SQL, the differences of data types, and even which database is best for what purposes. It is, however, difficult to find good tutorials on the theories of designing, developing, and maintaining a quality database.

Database design and management isn’t very difficult. People much wiser than we have designed some very orderly and sound rules to follow and developed these rules into what is called the Normalization Process. Using this process, you can create brand new, fully functional, finely tuned databases or take current database tables, run them through these steps, and come out with well-oiled tables ready to fly. Functional Dependence Before we jump into the Normalization Process, I should take a step back and clear a few things up. Sound confusing? Taking the same table as above, lets add to it. On Keys. Design. 37signals: An Introduction to Using Patterns in Web Design (#) Posted in Design on Thursday, February 3rd, 2005 Ryan Singer from 37Signals shares a great method for solving an interface design challenge, given the myriad of possibilities that the layout of an interface can have.

His method works first by listing elements and then grouping related ones together, after which the groups are prioritized, mocked up and then joined together into a unit before being drawn up for real. There are some good links at the bottom and don't miss the link back to their blog for the ensuing discussion. Simple Design Tips for Non-Designers (#) Posted in Design on Friday, October 14th, 2005 Some great tips from Garrett that really ring home here at Fiftyfoureleven. Dave Werner's Portfolio 2006 (#) Posted in Design on Wednesday, March 8th, 2006 | Via Just gotta say wow. LogoPond - Identity Inspiration (#) Posted in Design on Wednesday, October 18th, 2006 | Via Logo Design History - Famous Logos (#)

Designing and Building Parallel Programs. Domain Driven Design Part 3: Repositories and Factories | The Blog of Matt Peters. Note: This is part of my series on Domain Driven Design: Today I conclude my series on Domain Driven Design. In the first part we looked at a brief introduction and the concept of Entities. In the second part we covered Value Objects and Services. Today we’ll look at Repositories and Factories. Repositories and Factories Eventually, when defining your Domain language, you are going to have to interact with the data stores and/or back end systems. I will create an interface for each Entity that needs to be stored using a repositories. I’ll create a factory called the RepositoryFactory that has a method called GetReservationRepository that returns an IReservationRepository. So, what does all of this buy us? Conclusion So, this has been a brief overview of Domain Driven Design.

There are two books that I would recommend for those that want to dig deeper into the subject. Like this: Like Loading... Domain-Driven Design: The Repository. Part 2: Domain-Driven Design: Data Access Strategies The Ubiquitous Language The ubiquitous language is the foundation of Domain-driven design. The concept is simple, developers and domain experts share a common language that both understand.

This language is set in business terminology, not technical terminology. This ubiquitous language allows the technical team become part of the business. The Repository Repositories play an important part in DDD, they speak the language of the domain and act as mediators between the domain and data mapping layers. In a nutshell, a Repository: Is not a data access layerProvides a higher level of data manipulationIs persistence ignoranceIs a collection of aggregate rootsOffers a mechanism to manage entities Data Access Objects In the absence of an ORM framework, the Data Access Object (DAO) handles the impedance mismatch that a relational database has with object-oriented techniques.

The User DAO class will look something like this: Injecting Repositories. Multi-tier Architectures. Next: Enterprise JavaBeans Overview Up: EJB Introduction Previous: JAVA Component Architectures Contents Multi-tier Architectures Server side deployed software is written to support concurrent users performing simultaneously, securely, reliably and efficiently. Examples of these applications are: Banks where many ATM machines connect to a central serverSupport centers where support engineers have terminals to bring up customer data from a central server.Insurance agencies where the sales staff have terminals that connect to a central server.Web sites where millions of users connect to Web servers that need to connect to a central server for logic and data.

Robust server-side deployments are not easy to build. Many issues arise, such as scalability, maintainability, security and reliability. With so many clients depending on the central server-side deployment any failure would be a catastrophe. Presentation layer: Contains components dealing with user interfaces and user interaction. SQAtester.com - Test Case Design. The ADDIE Instructional Design Model. Why Projects are Designed to Fail and How to Make Them Succeed — CIOUpdate.com. Unlike reengineering, which focused on making established business models more efficient, reinvention focuses on improving the business models themselves by successfully balancing continuity, change, and organized abandonment. Reinvention involves implementing new initiatives that are successful, expanding existing capabilities that are already successful, improving areas that are struggling, and/or stopping practices and businesses that are unsuccessful. Implementing reinvention projects is critical for companies to win in the global marketplace.

Unfortunately, project failures have consistently been a major barrier to reinvention. According to Standish Research, 70% of major projects fail to meet their objectives; 50% exceed their original cost estimates by a whopping 200%; and 20% are ultimately cancelled. Why is this? Companies and their consulting partners have been working on large enterprise projects for many decades, and yet the numbers haven’t improved. Page 1 of 2.