Refactoring to Patterns


Joshua Kerievsky - 2004
    In 1999, "Refactoring" revolutionized design by introducing an effective process for improving code. With the highly anticipated " Refactoring to Patterns ," Joshua Kerievsky has changed our approach to design by forever uniting patterns with the evolutionary process of refactoring.This book introduces the theory and practice of pattern-directed refactorings: sequences of low-level refactorings that allow designers to safely move designs to, towards, or away from pattern implementations. Using code from real-world projects, Kerievsky documents the thinking and steps underlying over two dozen pattern-based design transformations. Along the way he offers insights into pattern differences and how to implement patterns in the simplest possible ways.Coverage includes: A catalog of twenty-seven pattern-directed refactorings, featuring real-world code examples Descriptions of twelve design smells that indicate the need for this book s refactorings General information and new insights about patterns and refactoringDetailed implementation mechanics: how low-level refactorings are combined to implement high-level patterns Multiple ways to implement the same pattern and when to use each Practical ways to get started even if you have little experience with patterns or refactoring"Refactoring to Patterns" reflects three years of refinement and the insights of more than sixty software engineering thought leaders in the global patterns, refactoring, and agile development communities. Whether you re focused on legacy or greenfield development, this book will make you a better software designer by helping you learn how to make important design changes safely and effectively. "

Growing Object-Oriented Software, Guided by Tests


Steve Freeman - 2009
    This one's a keeper." --Robert C. Martin "If you want to be an expert in the state of the art in TDD, you need to understand the ideas in this book."--Michael Feathers Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your code before you write the code itself. However, this simple idea takes skill and judgment to do well. Now there's a practical guide to TDD that takes you beyond the basic concepts. Drawing on a decade of experience building real-world systems, two TDD pioneers show how to let tests guide your development and "grow" software that is coherent, reliable, and maintainable. Steve Freeman and Nat Pryce describe the processes they use, the design principles they strive to achieve, and some of the tools that help them get the job done. Through an extended worked example, you'll learn how TDD works at multiple levels, using tests to drive the features and the object-oriented structure of the code, and using Mock Objects to discover and then describe relationships between objects. Along the way, the book systematically addresses challenges that development teams encounter with TDD--from integrating TDD into your processes to testing your most difficult features. Coverage includes - Implementing TDD effectively: getting started, and maintaining your momentum throughout the project - Creating cleaner, more expressive, more sustainable code - Using tests to stay relentlessly focused on sustaining quality - Understanding how TDD, Mock Objects, and Object-Oriented Design come together in the context of a real software development project - Using Mock Objects to guide object-oriented designs - Succeeding where TDD is difficult: managing complex test data, and testing persistence and concurrency

The Patient in Room Nine Says He's God


Louis M. Profeta - 2008
    The late-night passing of a beloved aunt summons a childhood bully who shows up minutes later, after twenty-five years, to be forgiven and to heal a broken doctor. This ER doctor finds God's opposite in: a battered child's bruises covered over by make-up, a dying patient whose son finally shows up at the end to reclaim the man's high-top sneakers, the rich or celebrity patients loaded with prescription drugs from doctor friends who end up addicted. But, his real outrage is directed at our cavalier treatment of the elderly, If you put a G-tube in your 80-year-old mother with Alzheimer's because she's no longer eating, you will probably have a fast track to hell.

Software Design Decoded: 66 Ways Experts Think


Marian Petre - 2016
    Expert software designers have specific habits, learned practices, and observed principles that they apply deliberately during their design work. This book offers sixty-six insights, distilled from years of studying experts at work, that capture what successful software designers actually do to create great software.The book presents these insights in a series of two-page illustrated spreads, with the principle and a short explanatory text on one page, and a drawing on the facing page. For example, "Experts generate alternatives" is illustrated by the same few balloons turned into a set of very different balloon animals. The text is engaging and accessible; the drawings are thought-provoking and often playful.Organized into such categories as "Experts reflect," "Experts are not afraid," and "Experts break the rules," the insights range from "Experts prefer simple solutions" to "Experts see error as opportunity." Readers learn that "Experts involve the user"; "Experts take inspiration from wherever they can"; "Experts design throughout the creation of software"; and "Experts draw the problem as much as they draw the solution."One habit for an aspiring expert software designer to develop would be to read and reread this entertaining but essential little book. The insights described offer a guide for the novice or a reference for the veteran--in software design or any design profession.A companion web site provides an annotated bibliography that compiles key underpinning literature, the opportunity to suggest additional insights, and more.

Soft City: Building Density for Everyday Life


David Sim - 2019
    Soft City is about ease and comfort, where density has a human dimension, adapting to our ever-changing needs, nurturing relationships, and accommodating the pleasures of everyday life. How do we move from the current reality in most cites—separated uses and lengthy commutes in single-occupancy vehicles that drain human, environmental, and community resources—to support a soft city approach?   In Soft City David Sim, partner and creative director at Gehl, shows how this is possible, presenting ideas and graphic examples from around the globe. He draws from his vast design experience to make a case for a dense and diverse built environment at a human scale, which he presents through a series of observations of older and newer places, and a range of simple built phenomena, some traditional and some totally new inventions.   Sim shows that increasing density is not enough. The soft city must consider the organization and layout of the built environment for more fluid movement and comfort, a diversity of building types, and thoughtful design to ensure a sustainable urban environment and society.  Soft City begins with the big ideas of happiness and quality of life, and then shows how they are tied to the way we live. The heart of the book is highly visual and shows the building blocks for neighborhoods: building types and their organization and orientation; how we can get along as we get around a city; and living with the weather. As every citizen deals with the reality of a changing climate, Soft City explores how the built environment can adapt and respond.  Soft City offers inspiration, ideas, and guidance for anyone interested in city building. Sim shows how to make any city more efficient, more livable, and better connected to the environment.

Architecting the Cloud: Design Decisions for Cloud Computing Service Models (Saas, Paas, and Iaas)


Michael J. Kavis - 2013
    However, before you can decide on a cloud model, you need to determine what the ideal cloud service model is for your business. Helping you cut through all the haze, Architecting the Cloud is vendor neutral and guides you in making one of the most critical technology decisions that you will face: selecting the right cloud service model(s) based on a combination of both business and technology requirements.Guides corporations through key cloud design considerations Discusses the pros and cons of each cloud service model Highlights major design considerations in areas such as security, data privacy, logging, data storage, SLA monitoring, and more Clearly defines the services cloud providers offer for each service model and the cloud services IT must provide Arming you with the information you need to choose the right cloud service provider, Architecting the Cloud is a comprehensive guide covering everything you need to be aware of in selecting the right cloud service model for you.

The Innovator's Toolkit: 50+ Techniques for Predictable and Sustainable Organic Growth


David Silverstein - 2008
    It presents fundamental tools and concepts for innovation and includes methods and strategies for improving products and service or creating new ones. You'll master a four-step innovation methodology that takes you through problem identification, into ideal generation, to idea selection, and finally implementation. This one-of-a-kind guide presents an effective plan for achieving constant innovation for business success.

TO:KY:OO


Liam Wong - 2019
    Born and raised in Edinburgh, Scotland, Wong studied computer arts in college and, by the time he was twenty-five, was living in Canada and working as a director at one of the world’s leading video game companies. His job took him to Tokyo for the first time, where he discovered the ethereality of floating worlds and the lurid allure of Tokyo’s nocturnal scenes. “I got lost in the beauty of Tokyo at night,” he explains.A testament to the deep art of color composition, this publication brings together a refined body of images that are evocative, timeless, and completely transporting. This volume also features Wong’s creative and technical processes, including identifying the right scene, capturing the essence of a moment, and methods to enhance color values—insights that are invaluable to admirers and photography students alike.

Walt Disney's Disneyland


Chris Nichols - 2017
    Together, artists, architects, and engineers transformed a dusty tract of orange groves about an hour south of Los Angeles into one of the world’s most beloved destinations.Today, there are Disney resorts from Paris to Shanghai, but the original Disneyland in Anaheim, California, which has been visited by more than 800 million people to-date, remains one of America’s most popular attractions. From the day it opened on July 17, 1955, Disneyland brought history and fairy tales to life, the future into the present, and exciting cultures and galaxies unknown to our imaginations.This bountiful visual history draws on Disney’s vast historical collections, private archives, and the golden age of photojournalism to provide unique access to the concept, development, launch, and enjoyment of this sun-drenched oasis of fun and fantasy. Disneyland documents Walt’s earliest inspirations and ideas; the park’s extraordinary feats of design and engineering; its grand opening; each of its immersive “lands” from Main Street, U.S.A., to Tomorrowland; and the park's evolution through the six decades since it opened. It is a treasure trove of Disney original documentation and expertise, with award-winning writer Chris Nichols drawing on his extensive knowledge of both Disneyland and Southern California history to reveal the fascinating tale of “the happiest place on Earth.”

Patterns of Enterprise Application Architecture


Martin Fowler - 2002
    Multi-tiered object-oriented platforms, such as Java and .NET, have become commonplace. These new tools and technologies are capable of building powerful applications, but they are not easily implemented. Common failures in enterprise applications often occur because their developers do not understand the architectural lessons that experienced object developers have learned. Patterns of Enterprise Application Architecture is written in direct response to the stiff challenges that face enterprise application developers. The author, noted object-oriented designer Martin Fowler, noticed that despite changes in technology--from Smalltalk to CORBA to Java to .NET--the same basic design ideas can be adapted and applied to solve common problems. With the help of an expert group of contributors, Martin distills over forty recurring solutions into patterns. The result is an indispensable handbook of solutions that are applicable to any enterprise application platform. This book is actually two books in one. The first section is a short tutorial on developing enterprise applications, which you can read from start to finish to understand the scope of the book's lessons. The next section, the bulk of the book, is a detailed reference to the patterns themselves. Each pattern provides usage and implementation information, as well as detailed code examples in Java or C#. The entire book is also richly illustrated with UML diagrams to further explain the concepts. Armed with this book, you will have the knowledge necessary to make important architectural decisions about building an enterprise application and the proven patterns for use when building them. The topics covered include - Dividing an enterprise application into layers - The major approaches to organizing business logic - An in-depth treatment of mapping between objects and relational databases - Using Model-View-Controller to organize a Web presentation - Handling concurrency for data that spans multiple transactions - Designing distributed object interfaces

Head First Design Patterns


Eric Freeman - 2004
     At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun. You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code. You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design pattern. Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter. With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts. If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.

Tom Kundig: Houses


Dung Ngo - 2006
    Kundig's projects, especially his houses, uniquely combine these two seemingly disparate sets of characteristics to produce some of the most inventive structures found in the architecture world today. Kundig's internationally acclaimed work is inspired by both the industrial structures with which he grew up in the Pacific Northwest and the vibrant craft cultures that are fostered there. His buildings uniquely meld industrial sensibilities and materials such as Cor-ten steel and concrete with an intuitive understanding of scale. As Kundig states, "The idea is insaperable from the fabrication, inseparable from the materials used."Tom Kundig: Houses presents five projects in depth, from their early conceptual sketches to their final lovingly wrought, intimate details. Kundig's houses reflect a sustained and active collaborative process between designer, craftsmen, and owners, resulting in houses that bring to life the architect's intentions, the materials used, and lines of unforgettable beauty.

Welcome to the Urban Revolution: How Cities Are Changing the World


Jeb Brugmann - 2009
    In the second half of the twentieth century, revolutions reshaped our world--the civil rights movement in America, the fall of the shah in Iran, the collapse of the Soviet bloc, and the end of apartheid in South Africa. All of these revolutions were fundamentally urban. They were the revolutions of Detroit, Gdansk, Berlin, Tehran, and Johannesburg, uprisings of city dwellers intent on ending their marginalization and securing their place in the world economy.In Welcome to the Urban Revolution, internationally recognized urbanist Jeb Brugmann draws on two decades of fieldwork and research to show how the city is now a medium for revolutionary change. Not just political upheaval but technological, economic, and social innovations are forged in our cities. We may think of cities as hotbeds of crime or engines of globalization, but Brugmann shows how cities are becoming laboratories for solving major challenges of the twenty-first century: poverty, inequality, and environmental sustainability.Bridging urban studies, economics, and sociology, Brugmann gives us a new way of looking at cities, giving shape to the emerging practice of urbanism. His positive, unconventional analysis turns traditional ideas about the city on their head.

Building and Dwelling: Ethics for the City


Richard Sennett - 2018
    Richard Sennett shows how Paris, Barcelona and New York City assumed their modern forms; rethinks the reputations of Jane Jacobs, Lewis Mumford and others; and takes us on a tour of emblematic contemporary locations, from the backstreets of Medellín, Colombia, to the Google headquarters in Manhattan. Through it all, he shows how the 'closed city' - segregated, regimented, and controlled - has spread from the global North to the exploding urban agglomerations of the global South. As an alternative, he argues for the 'open city,' where citizens actively hash out their differences and planners experiment with urban forms that make it easier for residents to cope. Rich with arguments that speak directly to our moment - a time when more humans live in urban spaces than ever before - Building and Dwelling draws on Sennett's deep learning and intimate engagement with city life to form a bold and original vision for the future of cities.

Multimedia: Making it Work


Tay Vaughan - 1993
    The reader will learn to plan and manage multimedia projects, from dynamic CD-ROMs and DVDs to professional websites.