affiliate_link
Hiển thị các bài đăng có nhãn design. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn design. Hiển thị tất cả bài đăng

Thứ Năm, 27 tháng 6, 2013

Design Patterns after Design is Done

Design Patterns are a useful tool when you are designing a system, an effective shorthand for communicating and sharing design ideas and a way to build consistency into the code – if people understand them and follow patterns properly.

I'm not interested in arguments over whether design patterns are good or not, or which patterns are good and which ones aren't - although these are all important questions.

What I want to understand is how useful design patterns are over time. Do they still matter after the initial design is done?

Looking for Patterns in Code

The first thing to ask is whether developers working on the code can recognize the design patterns that were used, and how useful is it for them when they do.

In Design Patterns for Maintenance, Joshua Engel makes a case that when someone maintaining code recognizes a pattern, they instantly get more context, which means they can move faster and with more confidence:

“When the maintainer recognizes a pattern in a piece of code being maintained, the maintainer grasps a bit more about the code. The maintainer taps into a wealth of background material: personal experience as well as what's read in textbooks like Design Patterns. That background can clue you in to potential pitfalls, limitations, and the intended way for the code to evolve. Or, if the code fails to completely match the patterns, you have a guide to what needs to be added to gain the benefits of that pattern.”

This is backed up by research. In Making Software, chapter 22 “The Evidence for Design Patterns” reviewes two studies by Prof. Walter Tichy showing that design patterns can be useful to developers maintaining code, provided that the people maintaining the code recognize and understand the patterns. One study of computer science students who had some training in design patterns found that students made fewer mistakes and were faster at changing code if it followed well-known and easily-understood design patterns, and if the design patterns being used in the code were clearly documented in the comments. In another study, experienced programmers were also able to make changes quicker and with fewer bugs if the code followed design patterns that they were familiar with.

But another study on design patterns in legacy code explains how difficult it is to “mine for design patterns” in code:

  • recognizing design patterns in code requires a good understanding of the code as well as common patterns;
  • some patterns are easier to recognize than others – and some patterns probably won’t be recognized at all.

Understanding and Recognizing Patterns in Code

Patterns are only valuable if they are immediately recognizable by whoever is working on the code and can be easily followed. Which means that they have to be implemented properly in the first place, and sustained over time.

Besides the canonical GoF design pattern catalog, which most developers have at least heard of, and maybe Martin Fowler’s Patterns of Enterprise Application Architecture, there are lots of other less well-known pattern collections, never mind proprietary patterns that were invented by the team that wrote the software.

You can’t expect a developer to recognize these patterns, never mind understand them, from looking at code, unless they are otherwise made explicit in the code through naming conventions and comments (including, for more obscure patterns, live links to the pattern definition). The studies above prove thjat this kind of documentation is especially important for less experienced developers.

But just because something has “Factory” or “Strategy” in the name, or comments explaining that the code is following a pattern, doesn’t mean that it actually follows that pattern properly, at least not any more.

Refactoring to Patterns

Another place where patterns come into play is in refactoring. When cleaning up the structure of code, it’s natural (for some developers at least) to think about where patterns can be applied.

Refactoring to Patterns takes refactoring to a higher level, not just correcting obvious problems and inconsistencies in the code. It describes how to bring the design inline with common patterns (not all of them from the GoF book) using multiple refactoring steps.

Some patterns are simple to understand, simple to apply, don’t require a lot of changes to implement, and result in simpler code: Factories and Prototypes. Refactoring to other patterns requires a lot more work to understand and change the code, and may not be worth the effort: Strategies and State, Observer, Visitor.

What’s the real payback for refactoring or rewriting code to patterns for the sake of patterns? There often isn't one.

You don’t want to refactor to patterns unless:

  1. you have a good reason to refactor the code in the first place – the code is difficult to understand and change; and
  2. you know how to do refactoring properly and safely;
  3. you need the extra flexibility that most patterns offer; and
  4. you have the experience and judgement to know what patterns are needed and how to use them properly; and
  5. the people who you work with also understand patterns well enough to keep up with the changes that you want to make.

As it says in the GoF book:

Design patterns should not be applied indiscriminately. Often they achieve flexibility and variability by introducing additional levels of indirection, and that can complicate a design and/or cost you some performance. A design pattern should only be applied when the flexibility it affords is actually needed.

The Value of Patterns over Time

Refactoring to Patterns encourages more ambitious, larger-scale refactoring – which can be dangerous, because the more you refactor, the more chances there are of making mistakes and introducing bugs – and implementing patterns doesn't always make code more maintainable and easier to understand, which defeats the purpose of refactoring.

A study on design patterns and software quality at the University of Montreal (2008) found that design patterns in practice do not always improve code quality, reusability and expandability; and often makes code harder to understand. Some patterns are better than others: Composite makes code easier to follow and easier to change. Abstract Factory makes code more modular and reusable, but at the expense of understandability. Flyweight makes code less expandable and reusable, and much harder to follow. Most developers don’t recognize or understand the Visitor pattern. Observer can be difficult to understand as well, although it does make the code more flexible and extendible. Chain of Responsibility makes code harder to follow, and harder to change or fix safely. And Singleton, of course, while simple to recognize and understand, can make code much harder to change.

For maintainability and understandability, it’s more important to recognize and sustain coding conventions so that the code base is consistent than it is to implement patterns. And to understand common refactorings and how to use your IDE’s refactoring tools, as well as Michael Feathers’ patterns for cleaning up legacy code.

Whether you’re designing and writing new code, or changing code, or refactoring code, the best advice is:

  • Don’t use patterns unless you need to.
  • Don’t use patterns that you don’t fully understand.
  • Don’t expect that whoever is going to work on the code in the future to recognize and understand the patterns that you used – stick to common patterns, and make them explicit in comments where you think it is important or necessary.
  • When you’re changing code, take some time to look for and understand the patterns that might be in place, and decide whether it is worth preserving (or restoring) them: whether doing this will really make the code better and more understandable.

Thứ Tư, 23 tháng 1, 2013

Design Doesn't Emerge from Code

I know a lot of people who are transitioning to Agile or already following Agile development methods. Almost all of them are using something based on Scrum at the core, mixed with common XP practices like Continuous Integration and refactoring and automated unit testing – pretty much how Mike Cohn says things should be done in his book Succeeding with Agile.

Emergent Design in Scrum and XP

But none of them are doing emergent design as Cohn describes it, or as Kent Beck explains how design is done in Extreme Programming: trying to get away without any upfront design and architecture work, coding features right away and relying on test-first development, refactoring and technical spikes to work out a design on the fly, one week or two weeks at a time.

“For the first iteration, pick a set of simple, basic stories that you expect will force you to create the whole architecture. Then narrow your horizon and implement the stories in the simplest way that can possibly work. At the end of this exercise you will have your architecture. It may not be the architecture you expected, but then you will have learned something.” Kent Beck

You don’t need upfront architecture and design?

Maybe it’s because everyone I know is working at scale – building big enterprise systems and online systems used by lots of customers, systems that have a lot of constraints and dependencies. Many of them are working on brownfield projects where you need to understand the existing system’s design and implementation first, before you can come up with a new design and before you can make any changes. Performance-critical, mission-critical systems in highly-regulated environments.

Emergent, incremental design doesn’t work for these cases. And it doesn’t scale to large projects or any project that has to be delivered along with other projects and that has specified integration points and dependencies – which is pretty much every project that I've ever worked on.

Bob Martin, another one of the people who helped define how Agile development should be done, thinks that this incremental approach to design is, well…

“One of the more insidious and persistent myths of agile development is that up-front architecture and design are bad; that you should never spend time up front making architectural decisions. That instead you should evolve your architecture and design from nothing, one test-case at a time. Pardon me, but that’s Horse Shit.”

Martin goes on to say that

“there are architectural issues that need to be resolved up front. There are design decisions that must be made early. It is possible to code yourself into a very nasty cul-de-sac that you might avoid with a little forethought.”

Architecture and Design in Disciplined Agile Delivery

The way that most people that I know approach Agile development is better described by Scott Ambler in Disciplined Agile Delivery, a model for scaling Agile to larger systems, projects and organizations. As Ambler’s research shows, almost all teams (86%) spend at least some time (on average a month or more) on upfront on planning, scoping and architecture envisioning – what he calls the “Inception Phase” (borrowing from Rational’s Unified Process) or what most others call “Sprint 0” or “Iteration 0”.

This is time spent to understand the scope of the system at a high-level at least, and the constraints and dependencies that the project needs to work within. Time to model the main chunks of the system and their interfaces, and to choose a technical direction to start with.

Upfront architectural and design work doesn't have to take a lot of time. As Ambler points out, for many teams (except for some startups), a lot of architectural decisions have already been made for you:

“In practice, it’s likely you won’t need to do much initial architectural modeling: a large majority of project teams work with technical architecture decisions that were made years earlier. Your organization will most likely already have chosen a network infrastructure, an application-server platform, a database platform, and so on. In these situations your team will need to invest the time to understand those decisions and to consider whether the existing infrastructure build-out is sufficient (and if not, identify potential improvements).”
It’s when you have a real greenfield development project, when you don’t have anything to leverage and you’re doing something completely new, that you should spend more time on upfront thinking about design – not less.

Can you “be Agile” without Emergent Design?

Of course you can. Bob Martin points out that there’s nothing in “Agile Development” that says that you shouldn't do design upfront – as much design as you need to for the size of the system that you are building and the environment that you are working in.

You can and should do iterative, incremental design and development starting with a plan of where you are going and how you think that you are going to get there. As you go along and prove out your design and respond to feedback and deal with changes in requirements, this is where incremental design actually does come into play – handling changes in direction, filling in gaps, correcting misunderstandings. The design will change and maybe become something that you didn't expect. But you need a place to start from – designs don’t just emerge from code.

Thứ Ba, 23 tháng 10, 2012

You can’t Refactor your way out of every Problem

Refactoring is a disciplined way to clarify, retain or restore the design of a system as you make changes, and to help cleanup and correct the mistakes and mess that we all make as we work, to clear away the evidence of false starts and changes in direction and back tracking and to help fill in gaps and misunderstandings.

As a colleague of mine has pointed out, you can get a lot out of even the most simple and obvious refactoring changes: eliminating duplication, changing variable and method names to be more meaningful, extracting methods, simplifying conditional logic, replacing a magic number with a named constant. These are easy things to do, and will give you a big return in understandability and maintainability.

But refactoring has limitations – there are some problems that refactoring won’t solve.

Refactoring can’t help you if the design is fundamentally wrong

Some people naively believe that you can refactor your way out of any design mistake or misunderstanding – and that you can use refactoring as a substitute for upfront design. This assumes that you will be able to immediately recognize mistakes and gaps from customer feedback and correct the design as you are developing.

But it can take a long time, usually only once the system is being used in the real world by real customers to do real things, before you learn how wrong you actually were, how much you missed and misunderstood, exceptions and edge cases and defects piling up before you finally understand (or accept) that no, the design doesn't hold up, you can’t just keep on extending it and patching what you have – you need a different set of abstractions or a different architecture entirely.

Refactoring helps you make course corrections. But what if you find out that you've been driving the entire time in the wrong direction, or in circles?

Barry Boehm, in Balancing Agility and Discipline, explains that starting simple and refactoring your way to the right answer sometimes falls down:

“Experience to date also indicates that low-cost refactoring cannot be depended upon as projects scale up. The most serious problems that arise with simple design are problems known as “architecture breakers”. These highly expensive problems can occur when early, simple design decisions result in forseeable changes that cause breakage in design beyond the ability of refactoring to handle.”

This is another argument in the “Refactor or Design” holy war over how much design should be / needs to be done upfront and how much can be filled in as you go through incremental change and refactoring.

Deep Decisions

Many design ideas can be refined, elaborated, iterated and improved over time, and refactoring will help you with this. But some early decisions on approach, packaging, architecture, and technology platform are too fundamental and too deep to change or correct with refactoring.

You can use refactoring to replace in-house code with standard library calls, or to swap one library for another – doing the same thing in a different way. Making small design changes and cleaning things up as you go with refactoring can be used to extend or fill in gaps in the design and to implement cross-cutting features like logging and auditing, even access control and internationalization – this is what the XP approach to incremental design is all about.

But making small-scale design changes and improvements to code structure, extracting and moving methods, simplifying conditional logic and getting rid of case statements isn’t going to help you if your architecture won’t scale, or if you chose the wrong approach (like SOA) or the wrong application framework (J2EE with Enterprise Java Beans, any multi-platform UI framework or any of the early O/R mapping frameworks – remember the first release of TopLink?, or something that you rolled yourself before you understood how the language actually worked), or the wrong language (if you found out that Ruby or PHP won’t scale), or a core platform middleware technology that proves to be unreliable or that doesn't hold up under load or that has been abandoned, or if you designed the system for the wrong kind of customer and need to change pretty much everything.

Refactoring to Patterns and Large Refactorings

Joshua Kerievsky’s work on Refactoring to Patterns provides higher-level composite refactorings to improve – or introduce – structure in a system, by properly implementing well-understood design patterns such as factories and composites and observers, replacing conditional logic with strategies and so on.

Refactoring to Patterns helps with cleaning up and correcting problems like

“duplicated code, long methods, conditional complexity, primitive obsession, indecent exposure, solution sprawl, alternative classes with different interfaces, lazy classes, large classes, combinatorial explosions and oddball solutions”.

Lippert and Roock’s work on Large Refactorings explains how to take care of common architectural problems in and between classes, packages, subsystems and layers, doing makeovers of ugly inheritance hierarchies and reducing coupling between modules and cleaning up dependency tangles and correcting violations between architectural layers – the kind of things that tools like Structure 101 help you to see and understand.

They have identified a set of architectural smells and refactorings to correct them:

  • Smells in dependency graphs: Visible dependency graphs, tree-like dependency graphs, cycles between classes, unused classes
  • Smells in inheritance hierarchies: Parallel inheritance hierarchies, list-like inheritance hierarchy, inheritance hierarchy without polymorphic assignments, inheritance hierarchy too deep, subclasses without redefinitions
  • Smells in packages: Unused packages, cycles between packages, too small/large packages, packages unclearly named, packages too deep or nesting unbalanced
  • Smells in subsystems: Subsystem overgeneralized, subsystem API bypassed, subsystem too small/large, too many subsystems, no subsystems, subsystem API too large
  • Smells in layers: Too many layers, no layers, strict layers violated, references between vertically separate layers, upward references in layers, inheritance between protocol-oriented layers (coupling).

Composite refactorings and large refactorings raise refactoring to higher levels of abstraction and usefulness, and show you how to identify problems on your own and how to come up with your own refactoring patterns and strategies.

But refactoring to patterns or even large-scale refactoring still isn't enough to unmake or remake deep decisions or change the assumptions underlying the design and architecture of the system. Or to salvage code that isn't safe to refactor, or worth refactoring.

Sometimes you need to rewrite, not refactor

There is no end of argument over how bad code has to be before you should give up and rewrite it rather than trying to refactor your way through it.

The best answer seems to be that refactoring should always be your first choice, even for legacy code that you didn’t write and don’t understand and can’t test (there is an entire book written on how and where to start refactoring legacy spps).

But if the code isn’t working, or is so unstable and so dangerous that trying to refactor it only introduces more problems, if you can’t refactor or even patch it without creating new bugs, or if you need to refactor too much of the code to get it into acceptable shape (I’ve read somewhere than 20% is a good cut-off, but I can’t find the reference), then it’s time to declare technical bankruptcy and start again. Rewriting the code from scratch is sometimes your only choice. Some code shouldn't be – or can’t be – saved.

"Sometimes code doesn't need small changes—it needs to be tossed out so that you can start over. If you find yourself in a major refactoring session, ask yourself whether instead you should be redesigning and reimplementing that section of code from the ground up." Steve McConnell, Code Complete

You can use refactoring to restore, repair, cleanup or adapt the design or even the architecture of a system. Refactoring can help you to go back and make corrections, reduce complexity, and help you fill in gaps. It will pay dividends in reducing the cost and risk of ongoing development and support.

But refactoring isn’t enough if you have to reframe the system – if you need to do something fundamentally different, or in a fundamentally different way – or if the code isn’t worth salvaging. Don’t get stuck believing that refactoring is always the right thing to do, or that you can refactor yourself out of every problem.

Thứ Năm, 27 tháng 8, 2009

Wrightscapes : Frank Lloyd Wright’s Landscape Designs

Charles and Berdeana Aguar, "Wrightscapes : Frank Lloyd Wright’s Landscape Designs"
McGraw-Hill Professional | 2002 | ISBN: 0071377689 | 374 pages | PDF | 19,8 MB


Here is the first book to examine the environmental landscape designs of Frank Lloyd Wright, probably the world’s best known and most influential architect. WRIGHTSCAPES analyzes 85 of his works, and pays particular attention to site planning, landscape design, community scale, and regional planning.
The authors include many original diagrams, rare archival material, and some 200 photographs, many never published before. WRIGHTSCAPES also chronicles how and way Wright’s famous ecological sensabilities were established and how his design aspirations went far beyond accepted definitions of architecture.
WRIGHTSCAPES is ideal for required or supplemental reading within many curriculums of architecture, landscape architecture, and city planning or urban design.




Thứ Hai, 24 tháng 8, 2009

Garden Design

Richard Sneesby, Andrew Wilson, Paul Williams, Andi Clevely, Jenny Hendy, "Garden Design"
DK Publishing | 2009 | ISBN: 0756642744 | 360 pages | PDF | 118 MB


From the publisher of category-killer garden books including encyclopedias on gardening, perennials, plants and garden plans, here is the only book you will ever need to design your own garden, whether small or large. For beginners or experts and whatever the size of the garden, this reference shows the techniques step by step for tackling every aspect of garden design from planning and planting to simple construction projects.





Thứ Năm, 20 tháng 8, 2009

Valode & Pistre Architects

Philip Jodidio, "Valode & Pistre Architects"
Birkhäuser Basel | 2006 | ISBN: 3764372001 | PDF | 240 pages | 43 MB


The firm of Denis Valode and Jean Pistre, which has been practicing for 25 years, entered upon a new phase of its career in 1992, when the architects — in cooperation with the landscape architect Kathryn Gustafson — received the Equerre d’argent prize of the journal Le Moniteur for the L’Oréal corporate headquarters outside Paris. Their predominantly large-scale projects are distinguished by their high degree of diversity. For some years, Valode & Pistre have not only been practicing in France, their native country, but also maintain offices in Germany, Italy, Great Britain, Russia, Mexico, China, and elsewhere.

This book contains detailed presentations of 18 projects by Valode & Pistre, with documentation focusing on the specific working and design methods of the architects. Projects presented include the Renault Technocentre in Guyancourt, France; the Las Mercedes business park in Madrid, Spain; a group of office and hotel towers in Beijing, China; and the Hyatt Hotel in Ekaterinburg, Russia.




Thứ Ba, 18 tháng 8, 2009

Designing Community: Charrettes, Masterplans and Form-based Codes

Designing Community: Charrettes, Masterplans and Form-based Codes
Publisher: Published by Architectural Press | ISBN: 075066925X | edition 2007 | PDF | 283 pages | 19,04 mb


Greenfield sites around towns and cities, and redevelopment infill sites in existing urban areas often become battlegrounds between the conflicting interests of developers and communities. In America, design charrettes (intensive design and planning workshops) have become widely used as a means of bringing together these divergent groups, using detailed design exercises to establish agreement around a development masterplan. Despite the increasing frequency of their use, charrettes are widely misunderstood and can be misapplied.
This book provides a detailed guidance on the proper and most effective ways to use this helpful tool. The book combines charrette masterplanning with the creation of "design-based" codes (also known as "form-based" codes) to control the development's implementation in line with the design and planning principles established during the charrette process.



Thứ Năm, 13 tháng 8, 2009

Structural Timber Design to Eurocode 5

"Structural Timber Design to Eurocode 5"
Publisher: Wiley-Blackwell | Pages: 560 | 2008-01-10 | ISBN 1405146389 | PDF | 5 MB


Structural Timber Design to Eurocode 5 is a comprehensive book which provides practising engineers and specialist contractors with detailed information and in-depth guidance on the design of timber structures based on the common rules and rules for buildings in Eurocode 5 - Part 1-1. It will also be of interest to undergraduate and postgraduate students of civil and structural engineering.
The book provides a step-by-step approach to the design of all of the most commonly used timber elements and connections using solid timber, glued laminated timber or wood based structural products. It features numerous detailed worked examples, and incorporates the requirements of the UK National Annex.
It covers the strength and stiffness properties of timber and its reconstituted and engineered products; the key requirements of Eurocode 0, Eurocode 1 and Eurocode 5 - Part 1-1; the design of beams and columns of solid timber, glued laminated, composite and thin-webbed sections; the lateral stability requirements of timber structures; and the design of mechanical connections subjected to lateral and/or axial forces as well as rigid and semi-rigid connections subjected to a moment.




Thứ Ba, 11 tháng 8, 2009

Acoustic Detailing for Multi-Storey Residential Buildings

A. G. Way, G. H. (Graham H.) Couchman "Acoustic Detailing for Multi-Storey Residential Buildings"
Steel Construction Institute | ISBN: 1859421539 | 2004 | PDF (OCR) | 44 pages | 1.28 Mb


This publication provides guidance on acoustic details for steel framed residential buildings. Special consideration of acoustic performance is required in order to satisfy Part E of the Building Regulations. The acoustic details given in this publication are expected to satisfy the requirements of the Building Regulations as their performance has been assessed based on test results of similar details. Where appropriate, the details presented have been based on Robust Details (RDs) and amended as necessary to increase the scope provided by the RDs. Details are given for the junction of external walls with separating floors and separating walls with separating floors. The floor constructions included are in-situ concrete slabs with shallow profiled metal deck supported on hot-rolled steel sections, in-situ concrete slabs with deep profiled metal deck supported on ASB (Asymmetric Beams) or RHS edge beams and precast concrete units supported on hot-rolled steel sections. The wall constructions included are light steel framing and masonry blockwork. Floating floor treatments (with expected performance values), ceiling treatment options and details for services are also included.



Thứ Bảy, 8 tháng 8, 2009

Vernacular Architecture and Regional Design: Cultural Process and Environmental Response

Kingston Wm. Heath Ph.D., "Vernacular Architecture and Regional Design: Cultural Process and Environmental Response"
Architectural Press | 2009 | ISBN: 0750659335 | 216 pages | PDF | 28,5 MB


A governing principle of sustainable architecture is that buildings need to reflect upon and respond to the environment they are placed in. Through a series of international case studies, Vernacular Architecture and Regional Design re-examines vernacular architectural theory and looks at what gives buildings a sense of place.

The book equips the professional architect with the tools to realise socially responsible principles as part of the design process. The case studies of contemporary architects' work provide real examples of how the study of vernacular architecture can contribute directly to practice in sustainable design. It considers architecture and design as integrated social processes, not just technical or aesthetic exercises, thus showing how local building traditions can become part of a wider architectural and social fabric.

Vernacular Architecture and Regional Design will appeal to professionals around the world in the fields of architecture, architectural heritage and urban design.

* A series of international case studies demonstrates the place of vernacular architecture in the design process for a wide selection of contemporary architects' work.
* Offers a clear analysis of the vernacular building tradition, placing architecture in its social context.
* Introduces a new, socially and environmentally inspired approach to sustainable design.



Thứ Năm, 6 tháng 8, 2009

The Architect's Guide to Running a Practice

The Architect's Guide to Running a Practice [Architecture / Design] by David Littlefield
Author:David Littlefield | Publisher:Architectural Press | 144 Pages | 2004-12-28 | ISBN-0750660996 | PDF | 5.9 MB


This is your essential one stop shop for information on starting and running a practice. Case studies and advice from practitioners, big and small, run alongside outlines of all the key topics, to give you an insight into the problems and challenges others have faced when setting up a design business. Accessible and informative, this handbook is the ideal first point of reference when starting a practice.
Architects have many different reasons for setting up in practice; equally, there are many ways of running your own business. This handbook helps you consider whether or not you should set up on your own, examining issues such as financing, office space, recruitment, IT and workingo ut a business plan. Some architects want to stay small, while others have ambitions to grow into large businesses. Some grow big accidentally. And then there are those who pick and choose their work carefully, and even turn down undesirable contracts, while others will grab at everything possible. This book woudl explore these different models and illustrate how different kinds of practice develop into successful businesses.
Importantly, the book will stress that these issues are crucial - you may be the best designer in the world, but unless your business is well managed you will fail. On the other hand, some successful architects spend a lot of time looking for new work and attending to management issues, rarely finding the time for design work. This book would illustrate how architects have struck a balance between these two extremes.



Thứ Ba, 4 tháng 8, 2009

Shopping Environments: Evolution, Planning and Design

Peter Coleman, "Shopping Environments: Evolution, Planning and Design"
Architectural Press | 2006-10-11 | ISBN: 0750660015 | 472 pages | PDF | 176 MB


Shopping centers have become the most common of shopping environments and have influenced the make-up of cities around the world. However, in recent years, the enclosed "mall" has evolved and diversified with new types of retail environments that were developed to better suit their locale and meet public expectation.

This design guide has over 600 illustrations that present the core values and considerations that make a successful retail center: location, catchment user needs, as well as access and layout. Covering everything from site master planning to the essentials of public facilities and the technical systems, this is essential reading for architects of contemporary shopping centers.

A series of international examples showcasing different types of shopping environments are included to cover the wide range of designs that have occurred in recent years. From the "out of town" mall to retail parks and mixed use town center developments, the best of contemporary design is illustrated to provide both practical information and inspiration.

* A unique and inspirational guide to shopping centre design
* An international range of full colour illustrations explore the key contemporary issues in retail design and planning
* Packed with essential technical information and design detail


Part 1




Part 2


Thứ Hai, 3 tháng 8, 2009

Frank Lloyd Wright (Treasures of Art)

Frank Lloyd Wright (Treasures of Art) by Rh Value Publishing
Publisher: Gramercy | Number Of Pages: 80 | Publication Date: 1999-08-17 | Sales Rank: 870562 | ISBN: 051716115X | PDF | 59 Mb


The importance of the architect to the quality and character of any society is not usually as widely regarded as it deserves to be. While every past civilization is, to a considerable extent, recognized and judged by its architecture, its creators are in general little known or revered; it would seem as though the buildings which are of such importance to our lives have spontaneously appeared as if by magic. Civilizations are more widely evaluated by their literature, music, painting and sculpture and other useful artefacts, while architecture is merely taken for granted.

In this century, however, where great and far-reaching developments have occurred which require examination and justification, architects have come to be regarded with a mixture of interest, suspicion and sometimes dismay. All this has served to transform the interest of the general public in architecture and the architect is beginning to be appreciated and valued.
When they have great strength of character, lucidity of exposition and, in the view of the media, an interesting personal history as well, they have become publicly recognized figures of social importance. None more so than the subject of this book whose personality and achievement has, unlike many of his peers, dominated the first half of this century. With such figures as Le Corbusier and Mies van der Rohe, he is recognized as a creative architectural genius. His singular individual achievement, as a native-born American, was to gather together the strands of American historical architecture and create a corpus of work which is both modern and essentially American.

Frank Lloyd Wright's career, sometimes tragic, sometimes tempestuous—at all times creative—has been examined and re-examined in numerous studies and articles both during his lifetime and since his death in 1959 shortly before his most famous and notorious Guggenheim Museum in New York was completed. And his life continues to demand re-examination as the progress of architectural philosophy inspires dramatic stylistic change. This concise consideration of his life and work offers a careful analysis of this complex, powerful and confident personality as well as the architectural legacy left behind by him.



Thứ Bảy, 1 tháng 8, 2009

Daylighting, Architecture and Health: Building Design Strategies

Mohamed Boubekri - Daylighting, Architecture and Health: Building Design Strategies
Architectural Press | 2008 | ISBN: 0750667249 | Pages: 160 | PDF | 14.70 MB


Daylighting, Architecture and Health examines the relationship between natural light in buildings and human health, considering both psychological and physiological issues and bringing together a range of research in the field.

As we are becoming increasingly conscious of global warming and pushing towards energy efficiency in buildings, the book examines the question of daylighting from the perspective of the health of building occupants. It gathers and reviews all the latest and pertinent medical and architectural research related to natural light, or lack thereof, and its effect on people.

* Documents medical research findings which establish a link between light quality and health
* Considers design strategies for increasing daylight in buildings
* Develops understanding and awareness of the importance of natural light in buildings

Daylighting, Architecture and Health: Building Design Strategies is a timely and essential text for professional architects and all others concerned with the effects of daylighting on health, architecture and building design.

* Outlines appropriate design strategies for increasing daylight in buildings
* Demonstrates a link between light quality and health and explains the importance of natural light in buildings
* Brings together the latest medical and architectural research on this important topic



Thứ Sáu, 31 tháng 7, 2009

Travel, Space, Architecture (Design and the Built Environment)

Travel, Space, Architecture (Design and the Built Environment)
Jilly Traganou | ISBN: 0754648273 | PDF | 353 pages | April 2009 | 8 MB


Cultural theorists have, over the past few decades, examined the role of travel in spatial definition, and have noted its significance in the constant exchange and interaction between cultures. Whilst travelling has also been the subject of architectural research, particularly concerning the work of internationalist architects of the early 20th Century, deeper issues of travel, such as mapping, displacement, foreigness and otherness, have been largely neglected in architectural theory. This book brings architectural thinking in line with the cultural theory debates and argues that, rather than architecture being 'rooted' to place as has traditionally been asserted, border crossing and cross-cultural encounters have always been a prevailing paradigm of the spatial conceptualisation, representation and production of space. It brings together case studies ranging from those between Japan and Europe in the period of early modernity, to central Europe and the Mediterranean within the framework of modern architecture, and to the USA and the European East in the cold-war era, unveiling (mis)readings and exchanges that are embedded in subsequent cultural productions. It also addresses the influence of globalization on contemporary urban design and architecture, examining the impact of immigration on metropolitan environments and the spread of signature architectural practices throughout the world. In doing so, "Travel, Space, Architecture" promotes an original understanding of architecture as a practice concerned with a realm much broader than that of building, and of the influence of travel on designing and producing spatial conceptions and forms.



Thứ Năm, 30 tháng 7, 2009

Lighting by Design, Second Edition

Christopher Cuttle - Lighting by Design, Second Edition
Architectural Press | 2008 | ISBN: 0750687681 | Pages: 264 | PDF | 9.00 MB


Lighting by Design provides guidance on where to find inspiration for lighting ideas, how to plan the technical detail and how to execute the plan to create safe, effective and beautiful schemes.

Christopher Cuttle's unique three level approach uses Observation, Visualisation and Realisation as the means to achieve these aims. Cuttle is a well known figure in the UK, US and Australia and New Zealand, with a wealth of experience of both teaching and practice.

This new edition is fully updated and produced in full colour with many new diagrams and photographs. It will be immensely useful to professional and student architects, interior designers and specialist lighting designers.

* Benefit from Cuttle's extensive knowledge, experience and enthusiasm
* A technical guide that provides a thorough explanation of lighting theory
* Now with full colour images for clearer demonstration of key points



Thứ Tư, 29 tháng 7, 2009

Cafe & Restaurant Design

Martin Nicholas Kunz - Cafe & Restaurant Design
Te Neues Publishing Company | 2005 | ISBN: 3832790179 | Pages: 400 | PDF | 20.34 MB


Modern society’s most intense and vibrant interaction takes place over tables and bars. Architects all over the world have enhanced and orchestrated this experience. Ranging over nine countries and four continents, this book presents an international selection of distinctive cafés and restaurants built in recent years by the world’s hippest architects and designers. Filled with dramatic effects, innovative lighting, and infinite solutions to the challenges of space and material, these hot spots, meeting places, and intimate venues are designed to suit the ever-changing moods of a selective and fickle clientele. This compact yet lavishly illustrated book, aimed at professionals and anyone who enjoys the latest and best in restaurant design, includes over 400 photographs of remarkable spaces and also offers a comprehensive study of contemporary interior architecture.



Thứ Hai, 27 tháng 7, 2009

Seismic Design of Buildings to Eurocode 8

Ahmed Elghazouli, "Seismic Design of Buildings to Eurocode 8"
Taylor & Francis | 2009-06-17 | ISBN: 0415447623, 0203888944 | 320 pages | PDF | 10,5 MB


As the new Eurocode 8 on the Design of Structures for Earthquake Resistance has acquired the status of a full Euronorm, practical information and training has become urgently needed, especially in relation to the underlying principles of seismic behaviour and the design of building structures. This book covers seismic design in a clear but brief manner and links the principles to the code, illustrated with design examples. Concrete and steel buildings, and their foundations, are given special emphasis but the book is also applicable to many other types of structure and sub-structure.The book stems from practical short courses on seismic design, run jointly by the Society for Earthquake and Civil Engineering Dynamics (SECED) and Imperial College London. Its contributors are either senior academics with significant consulting experience, or leading practitioners, which gives the book a strong industry emphasis. It will be of value to a wide range of practising civil and structural engineers at different stages of their careers; and should also be of direct use to academics preparing courses and worked examples on seismic design to EC8, to advanced undergraduate students, and to Masters level students in Earthquake, Structural or Geotechnical Engineering.



Thứ Bảy, 25 tháng 7, 2009

Architectural Design and Ethics: Tools for Survival

Thomas Fisher - Architectural Design and Ethics: Tools for Survival
Architectural Press | 2008 | ISBN: 0750669853 | Pages: 264 | PDF | 6.69 MB


Architectural Design and Ethics offers both professional architects and architecture students a theoretical base and numerous suggestions as to how we might rethink our responsibilities to the natural world and design a more sustainable future for ourselves.

As we find ourselves on the steep slope of several exponential growth curves - in global population, in heat-trapping atmospheric gases, in the gap between the rich and poor, and in the demand for finite resources, Fisher lays down a theory of architecture based on ethics and explores how buildings can and do provide both social and moral dimensions. The book also has practical goals, demonstrating how architects can make better and more beautiful buildings whilst nurturing more responsible, sustainable development.

Architectural Design and Ethics will prove an invaluable text not only to those in the architecture field, but to anyone simply interested in the ethical issues surrounding our built environment.

* Joins the dots between architectural form, ethics and professional practice
* Uses the history of ethics to present relevant lessons for today's practitioners
* A wake up call to architects, advocating a greater focus on ethics over aesthetics



Thứ Năm, 23 tháng 7, 2009

The Architect's Guide to Design-Build Services

The Architect's Guide to Design-Build Services
Wiley | 2003 | ISBN: 0471218421 | Pages: 448 | PDF | 1.67 MB


The definitive resource for designer-led projects

The Architect's Guide to Design-Build Services offers authoritative knowledge and industry insight to architects considering entry into the burgeoning practice of design-build project delivery. Written by architects and other professionals with expertise in risk management, law, ethics, finance, and contracts, this instructive guide addresses the roles architects can assume during a design-build project, including leading the project, acting as subcontractor, and forming a joint venture with a contractor.

Developed by the AIA Design-Build Professional Interest Area, this book offers the real-world expertise of thirty industry leaders from the United States, Canada, and Mexico, who share their experience and know-how on such topics as:

* Starting out in design-build
* Risks and rewards of design-build delivery
* Succeeding in a design-build practice
* Design-build education
* Essential practice information
* Ethics and licensing laws

State laws regulating both architects and contractors are summarized to help busy firms bring design-build projects through to successful completion in a variety of jurisdictions.

The Architect's Guide to Design-Build Services is the most complete, definitive resource for architects, contractors, and attorneys involved in designer-led projects.