The Well-Grounded Java Developer: Vital techniques of Java 7 and polyglot programming


Benjamin J. Evans - 2012
    New JVM-based languages like Groovy, Scala, and Clojure are redefining what it means to be a Java developer. The core Standard and Enterprise APIs now co-exist with a large and growing body of open source technologies. Multicore processors, concurrency, and massive data stores require new patterns and approaches to development. And with Java 7 due to release in 2011, there's still more to absorb.The Well-Grounded Java Developer is a unique guide written for developers with a solid grasp of Java fundamentals. It provides a fresh, practical look at new Java 7 features along with the array of ancillary technologies that a working developer will use in building the next generation of business software.

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. "

Brunel: The Man Who Built the World


Steven Brindle - 2005
    By the age of 26, he had been appointed chief engineer of the Great Western Railway, linking Bristol to London. His love of steamships led him to build a series of revolutionary vessels, including the Great Britain—the first steamship to cross the Atlantic. Illustrated with a wealth of blueprints, drawings, and rare photographs, this new biography tracks the life and achievements of this Victorian-era genius. A fascinating portrait of ambition and innovation, Brunel provides ample evidence to support the claim that Brunel was indeed “the man who built the world.”

97 Things Every Programmer Should Know: Collective Wisdom from the Experts


Kevlin Henney - 2010
    With the 97 short and extremely useful tips for programmers in this book, you'll expand your skills by adopting new approaches to old problems, learning appropriate best practices, and honing your craft through sound advice.With contributions from some of the most experienced and respected practitioners in the industry--including Michael Feathers, Pete Goodliffe, Diomidis Spinellis, Cay Horstmann, Verity Stob, and many more--this book contains practical knowledge and principles that you can apply to all kinds of projects.A few of the 97 things you should know:"Code in the Language of the Domain" by Dan North"Write Tests for People" by Gerard Meszaros"Convenience Is Not an -ility" by Gregor Hohpe"Know Your IDE" by Heinz Kabutz"A Message to the Future" by Linda Rising"The Boy Scout Rule" by Robert C. Martin (Uncle Bob)"Beware the Share" by Udi Dahan

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

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

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.

Building Structures Illustrated: Patterns, Systems, and Design


Francis D.K. Ching - 2008
    Taking a new approach to strucural design, Ching and his co-authors show how structural systems of a building -- as an integrated assembly of elements with pattern, proportions, and scale -- are related to the essential aspects of architectural design: formal and spatial composition, program fit, coordination with other building systems such as enclosure and mechanical systems, code compliance, etc.No other work by Francis D.K. Ching brings together so many aspects of architectural design as an integrated reference. Designers, builders, and students alike will gain a new understanding of structural principles and planning, without the need for mathematics.Using Ching's trademark presentation, Structural Patterns is illustrated throughout with line drawings to present the essential presence of structural systems in buildings, but also helps the reader make informed decisions for architectural design.

Suburban Nation: The Rise of Sprawl and the Decline of the American Dream


Andrés Duany - 2000
    This movement stems not only from the realization that sprawl is ecologically and economically unsustainable but also from a growing awareness of sprawl's many victims: children, utterly dependent on parental transportation if they wish to escape the cul-de-sac; the elderly, warehoused in institutions once they lose their driver's licenses; the middle class, stuck in traffic for two or more hours each day.Founders of the Congress for the New Urbanism, Andres Duany and Elizabeth Plater-Zyberk are at the forefront of this movement, and in Suburban Nation they assess sprawl's costs to society, be they ecological, economic, aesthetic, or social. It is a lively, thorough, critical lament, and an entertaining lesson on the distinctions between postwar suburbia-characterized by housing clusters, strip shopping centers, office parks, and parking lots-and the traditional neighborhoods that were built as a matter of course until mid-century. It is an indictment of the entire development community, including governments, for the fact that America no longer builds towns. Most important, though, it is that rare book that also offers solutions.

101 Things I Learned in Engineering School


John Kuprenas - 2013
    Far from a dry, nuts-and-bolts exposition, however, 101 THINGS I LEARNED® IN ENGINEERING SCHOOL probes real-world examples to show how the engineer's way of thinking can-and sometimes cannot-inform our understanding of how things work. Questions from the simple to the profound are illuminated throughout: Why shouldn't soldiers march across a bridge? Why do buildings want to float and cars want to fly? What is the difference between thinking systemically and thinking systematically? How can engineering solutions sympathize with the natural environment? Presented in the familiar, illustrated format of the popular 101 THINGS I LEARNED® series, 101 THINGS I LEARNED® IN ENGINEERING SCHOOL offers an informative resource for students, general readers, and even experienced engineers, who will discover within many provocative new insights into familiar principles.

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.

Domain-Driven Design: Tackling Complexity in the Heart of Software


Eric Evans - 2003
    "His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving understanding of it. Eric thinks that learning about your problem domain is as likely to happen at the end of your project as at the beginning, and so refactoring is a big part of his technique. "The book is a fun read. Eric has lots of interesting stories, and he has a way with words. I see this book as essential reading for software developers--it is a future classic." --Ralph Johnson, author of Design Patterns "If you don't think you are getting value from your investment in object-oriented programming, this book will tell you what you've forgotten to do. "Eric Evans convincingly argues for the importance of domain modeling as the central focus of development and provides a solid framework and set of techniques for accomplishing it. This is timeless wisdom, and will hold up long after the methodologies du jour have gone out of fashion." --Dave Collins, author of Designing Object-Oriented User Interfaces "Eric weaves real-world experience modeling--and building--business applications into a practical, useful book. Written from the perspective of a trusted practitioner, Eric's descriptions of ubiquitous language, the benefits of sharing models with users, object life-cycle management, logical and physical application structuring, and the process and results of deep refactoring are major contributions to our field." --Luke Hohmann, author of Beyond Software Architecture "This book belongs on the shelf of every thoughtful software developer." --Kent Beck "What Eric has managed to capture is a part of the design process that experienced object designers have always used, but that we have been singularly unsuccessful as a group in conveying to the rest of the industry. We've given away bits and pieces of this knowledge...but we've never organized and systematized the principles of building domain logic. This book is important." --Kyle Brown, author of Enterprise Java(TM) Programming with IBM(R) WebSphere(R) The software development community widely acknowledges that domain modeling is central to software design. Through domain models, software developers are able to express rich functionality and translate it into a software implementation that truly serves the needs of its users. But despite its obvious importance, there are few practical resources that explain how to incorporate effective domain modeling into the software development process. Domain-Driven Design fills that need. This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development. Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis--refactoring not just the code but the model underlying the code--in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Driven Design then builds on this foundation, and addresses modeling and design for complex systems and larger organizations.Specific topics covered include:Getting all team members to speak the same language Connecting model and implementation more deeply Sharpening key distinctions in a model Managing the lifecycle of a domain object Writing domain code that is safe to combine in elaborate ways Making complex code obvious and predictable Formulating a domain vision statement Distilling the core of a complex domain Digging out implicit concepts needed in the model Applying analysis patterns Relating design patterns to the model Maintaining model integrity in a large system Dealing with coexisting models on the same project Organizing systems with large-scale structures Recognizing and responding to modeling breakthroughs With this book in hand, object-oriented developers, system analysts, and designers will have the guidance they need to organize and focus their work, create rich and useful domain models, and leverage those models into quality, long-lasting software implementations.

Green from the Ground Up: Sustainable, Healthy, and Energy-Efficient Home Construction


David R. Johnston - 2008
    It starts with clear explanations of the concepts and fundamentals of green, healthy and energy-efficient construction and walks the reader through the entire construction process, injecting expert advice at every decision point. Construction techniques, materials, and products are thoroughly explained, making the often vaguely understood concepts cleanly understandable. The book gives builders and architects the tools to respond to growing requests from homeowners for green and energy-efficient houses, whether new or remodeled. Homeowners can use the book to understand the concepts, process, and options, whether they're doing it themselves or working with a professional.

Where Are the Women Architects?


Despina Stratigakos - 2016
    Yet the number of women working as architects remains stubbornly low, and the higher one looks in the profession, the scarcer women become. Law and medicine, two equally demanding and traditionally male professions, have been much more successful in retaining and integrating women. So why do women still struggle to keep a toehold in architecture? Where Are the Women Architects? tells the story of women's stagnating numbers in a profession that remains a male citadel, and explores how a new generation of activists is fighting back, grabbing headlines, and building coalitions that promise to bring about change.Despina Stratigakos's provocative examination of the past, current, and potential future roles of women in the profession begins with the backstory, revealing how the field has dodged the question of women's absence since the nineteenth century. It then turns to the status of women in architecture today, and the serious, entrenched hurdles they face. But the story isn't without hope, and the book documents the rise of new advocates who are challenging the profession's boys' club, from its male-dominated elite prizes to the erasure of women architects from Wikipedia. These advocates include Stratigakos herself and here she also tells the story of her involvement in the controversial creation of Architect Barbie.Accessible, frank, and lively, Where Are the Women Architects? will be a revelation for readers far beyond the world of architecture.-- "Books in Brief"

Advanced Control Theory


A. Nagoor Kani - 1999