Anyone who develops software for a living needs a proven way to produce it better, faster, and cheaper. The Productive Programmer offers critical timesaving and productivity tools that you can adopt right away, no matter what platform you use. Master developer Neal Ford not only offers advice on the mechanics of productivity-how to work smarter, spurn interruptions, get the most out your computer, and avoid repetition-he also details valuable practices that will help you elude common traps, improve your code, and become more valuable to your team. You'll learn to: Write the test before you write the code Manage the lifecycle of your objects fastidiously Build only what you need now, not what you might need later Apply ancient philosophies to software development Question authority, rather than blindly adhere to standards Make hard things easier and impossible things possible through meta-programming Be sure all code within a method is at the same level of abstraction Pick the right editor and assemble the best tools for the job This isn't theory, but the fruits of Ford's real-world experience as an Application Architect at the global IT consultancy ThoughtWorks. Whether you're a beginner or a pro with years of experience, you'll improve your work and your career with the simple and straightforward principles in The Productive Programmer.
The software development ecosystem is constantly changing, providing a constant stream of new tools, frameworks, techniques, and paradigms. Over the past few years, incremental developments in core engineering practices for software development have created the foundations for rethinking how architecture changes over time, along with ways to protect important architectural characteristics as it evolves. This practical guide ties those parts together with a new way to think about architecture and time.
If you’re familiar with functional programming basics and want to gain a much deeper understanding, this in-depth guide takes you beyond syntax and demonstrates how you need to think in a new way. Software architect Neal Ford shows intermediate to advanced developers how functional coding allows you to step back a level of abstraction so you can see your programming problem with greater clarity. Each chapter shows you various examples of functional thinking, using numerous code examples from Java 8 and other JVM languages that include functional capabilities. This book may bend your mind, but you’ll come away with a much better grasp of functional programming concepts. Understand why many imperative languages are adding functional capabilities Compare functional and imperative solutions to common problems Examine ways to cede control of routine chores to the runtime Learn how memoization and laziness eliminate hand-crafted solutions Explore functional approaches to design patterns and code reuse View real-world examples of functional thinking with Java 8, and in functional architectures and web frameworks Learn the pros and cons of living in a paradigmatically richer world If you’re new to functional programming, check out Josh Backfield’s book Becoming Functional.
Salary surveys worldwide regularly place software architect in the top 10 best jobs, yet no real guide exists to help developers become architects. Until now. This book provides the first comprehensive overview of software architecture’s many aspects. Aspiring and existing architects alike will examine architectural characteristics, architectural patterns, component determination, diagramming and presenting architecture, evolutionary architecture, and many other topics. Mark Richards and Neal Ford—hands-on practitioners who have taught software architecture classes professionally for years—focus on architecture principles that apply across all technology stacks. You’ll explore software architecture in a modern light, taking into account all the innovations of the past decade. This book examines: Architecture patterns: The technical basis for many architectural decisions Components: Identification, coupling, cohesion, partitioning, and granularity Soft skills: Effective team management, meetings, negotiation, presentations, and more Modernity: Engineering practices and operational approaches that have changed radically in the past few years Architecture as an engineering discipline: Repeatable results, metrics, and concrete valuations that add rigor to software architecture
What will you learn from this book? If you're a software developer looking for a quick on-ramp to software architecture, this handy guide is a great place to start. From the authors of Fundamentals of Software Architecture, Head First Software Architecture teaches you how to think architecturally and explores the unique challenges of software architecture. You'll learn the distinction between architecture and design and the relationship between code, components, and architectural styles. You'll also learn how to work with some common architectural styles through vivid, fun examples. Quick, easy, and entertaining, this book is a valuable introduction to the world of software architecture. Why does this book look so different? Based on the latest research in cognitive science and learning theory, Head First Software Architecture uses a visually rich format to engage your mind, rather than a text-heavy approach that puts you to sleep. Why waste your time struggling with new concepts? This multisensory learning experience is designed for the way your brain really works.
Architects are often harried because they have no clean, easy decisions: everything is an awful tradeoff between two or more less than perfect alternatives. These are the difficult problems architects face, what this book's authors call "the hard parts." These topics have no best practices, forcing architects to understand various tradeoffs to succeed. This book discusses these hard parts by not only investigating what makes architecture so difficult, but also by providing proven ways to address these problems and make them easier. The book explores topics such as choosing an appropriate architecture, deciding on service granularity, managing workflows and orchestration, managing and decoupling contracts, managing distributed transactions, and optimizing operational characteristics such as scalability, elasticity, and performance. As practicing consultants, the authors focus on questions they commonly hear architects ask and provide techniques that enable them to discover the tradeoffs necessary to answer these questions.
What will you learn from this book? If you're a software developer looking for a quick on-ramp to software architecture, this handy guide is a great place to start. From the authors of Fundamentals of Software Architecture, Head First Software Architecture teaches you how to think architecturally and explores the unique challenges of software architecture. You'll learn the distinction between architecture and design and the relationship between code, components, and architectural styles. You'll also learn how to work with some common architectural styles through vivid, fun examples. Quick, easy, and entertaining, this book is a valuable introduction to the world of software architecture. Why does this book look so different? Based on the latest research in cognitive science and learning theory, Head First Software Architecture uses a visually rich format to engage your mind, rather than a text-heavy approach that puts you to sleep. Why waste your time struggling with new concepts? This multisensory learning experience is designed for the way your brain really works.
A guide to the skills required for state-of-the-art web development, this book covers a variety of web development frameworks. The uses of the standard web API to create applications with increasingly sophisticated architectures are highlighted, and a discussion of the development of industry-accepted best practices for architecture is included. The history and evolution toward this architecture and the reasons it is superior to previous efforts are described, and an overview of the most popular web application frameworks, their architecture, and use is provided. The same application is built in six different frameworks, allowing developers to conduct an informed comparison. An evaluation of the pros and cons of each framework is provided to assist developers in making decisions or evaluating frameworks on their own. Best practices covered include sophisticated user interface techniques, intelligent caching and resource management, performance tuning, debugging, testing, and web services.
The software development ecosystem is constantly changing, providing a constant stream of new tools, frameworks, techniques, and paradigms. Over the past few years, incremental developments in core engineering practices for software development have created the foundations for rethinking how architecture changes over time, along with ways to protect important architectural characteristics as it evolves. This practical guide ties those parts together with a new way to think about architecture and time.
Presentation Patterns is the first book on presentations that categorizes and organizes the building blocks (or patterns) that you’ll need to communicate effectively using presentation tools like Keynote and PowerPoint. Patterns are like the lower-level steps found inside recipes; they are the techniques you must master to be considered a master chef or master presenter. You can use the patterns in this book to construct your own recipes for different contexts, such as business meetings, technical demonstrations, scientific expositions, and keynotes, just to name a few. Although there are no such things as antirecipes, this book shows you lots of antipatterns—things you should avoid doing in presentations. Modern presentation tools often encourage ineffective presentation techniques, but this book shows you how to avoid them. Each pattern is introduced with a memorable name, a definition, and a brief explanation of motivation. Readers learn where the pattern applies, the consequences of applying it, and how to apply it. The authors also identify critical antipatterns: clichés, fallacies, and design mistakes that cause presentations to disappoint. These problems are easy to avoid—once you know how. Presentation Patterns will help you Plan what you’ll say, who you’ll say it to, how long you’ll talk, and where you’ll present Perfectly calibrate your presentation to your audience Use the storyteller’s “narrative arc” to full advantage Strengthen your credibility—and avoid mistakes that hurt it Hone your message before you ever touch presentation software Incorporate visuals that support your message instead of hindering it Create highly effective “infodecks” that work when you’re not able to deliver a talk in person Construct slides that really communicate and avoid “Ant Fonts,” “Floodmarks,” “Alienating Artifacts,” and other errors Master 13 powerful techniques for delivering your presentation with power, authority, and clarity Whether you use this book as a handy reference or read it from start to finish, it will be a revelation: an entirely new language for systematically planning, creating, and delivering more powerful presentations. You’ll quickly find it indispensable—no matter what you’re presenting, who your audiences are, or what message you’re driving home.
Adopt a practical and modern approach to architecting and implementing DDD-inspired solutions to transform abstract business ideas into working software across the entire spectrum of the software development life cycle Key Features • Implement DDD principles to build simple, effective, and well-factored solutions • Use lightweight modeling techniques to arrive at a common collective understanding of the problem domain • Decompose monolithic applications into loosely coupled, distributed components using modern design patterns Book Description Domain-Driven Design (DDD) makes available a set of techniques and patterns that enable domain experts, architects, and developers to work together to decompose complex business problems into a set of well-factored, collaborating, and loosely coupled subsystems. This practical guide will help you as a developer and architect to put your knowledge to work in order to create elegant software designs that are enjoyable to work with and easy to reason about. You'll begin with an introduction to the concepts of domain-driven design and discover various ways to apply them in real-world scenarios. You'll also appreciate how DDD is extremely relevant when creating cloud native solutions that employ modern techniques such as event-driven microservices and fine-grained architectures. As you advance through the chapters, you'll get acquainted with core DDD's strategic design concepts such as the ubiquitous language, context maps, bounded contexts, and tactical design elements like aggregates and domain models and events. You'll understand how to apply modern, lightweight modeling techniques such as business value canvas, Wardley mapping, domain storytelling, and event storming, while also learning how to test-drive the system to create solutions that exhibit high degrees of internal quality. By the end of this software design book, you'll be able to architect, design, and implement robust, resilient, and performant distributed software solutions. What you will learn • Discover how to develop a shared understanding of the problem domain • Establish a clear demarcation between core and peripheral systems • Identify how to evolve and decompose complex systems into well-factored components • Apply elaboration techniques like domain storytelling and event storming • Implement EDA, CQRS, event sourcing, and much more • Design an ecosystem of cohesive, loosely coupled, and distributed microservices • Test-drive the implementation of an event-driven system in Java • Grasp how non-functional requirements influence bounded context decompositions Who this book is for This book is for intermediate Java programmers looking to upgrade their software engineering skills and adopt a collaborative and structured approach to designing complex software systems. Specifically, the book will assist senior developers and hands-on architects to gain a deeper understanding of domain-driven design and implement it in their organization. Familiarity with DDD techniques is not a prerequisite; however, working knowledge of Java is expected.
In these pages, you'll meet the state legislator who never met a special interest he did not like, an alderman groveling to a mob boss, and the prosecutor who gained notoriety as a publicity hound."--BOOK JACKET. "Neal's beat is politics, but his interests are rich and varied. He also writes about sports, music, literature, and film with a point of view that is fresh and original."--BOOK JACKET.
The true story behind NASCAR’s hardscrabble, moonshine-fueled origins, “fascinating and fast-moving . . . even if you don’t know a master cylinder from a head gasket” (Atlanta Journal-Constitution). “[Neal] Thompson exhumes the sport’s Prohibition-era roots in this colorful, meticulously detailed history.”—Time Today’s NASCAR—equal parts Disney, Vegas, and Barnum & Bailey—is a multibillion-dollar conglomeration with 80 million fans, half of them women, that grows bigger and more mainstream by the day. Long before the sport’s rampant commercialism lurks a distant history of dark secrets that have been carefully hidden from view—until now. In the Depression-wracked South, with few options beyond the factory or farm, a Ford V-8 became the ticket to a better life. Bootlegging offered speed, adventure, and wads of cash. Driving with the Devil reveals how the skills needed to outrun federal agents with a load of corn liquor transferred perfectly to the red-dirt racetracks of Dixie. In this dynamic era (the 1930s and ’40s), three men with a passion for Ford V-8s—convicted felon Raymond Parks, foul-mouthed mechanic Red Vogt, and war veteran Red Byron, NASCAR’s first champ—emerged as the first stock car “team.” Theirs is the violent, poignant story of how moonshine and fast cars merged to create a sport for the South to call its own. In the tradition of Laura Hillenbrand’s Seabiscuit, this tale captures a bygone era of a beloved sport and the character of the country at a moment in time.
The complete guide to creating large mission-critical applications with Delphi. The authors, all experienced developers, cover the object-oriented concepts underlying Delphi, present examples including a comprehensive case study, and show how Delphi can be used with other technologies, such as OLE 1.0/2.0, DDE, Windows DLLS, and database-related tools.
The coronavirus pandemic dramatically arrived on the scene of 2020. In just a few months, the world experienced changes that would soon shape daily movement. Countries mandated lockdowns. Travel bans were imposed. Frontline workers across the globe were working to keep others safe and keep themselves alive. In the midst of all the changes and daily briefings were students. Students from every walk of life who found suddenly themselves studying at home. Some with parents who found themselves more deeply involved in their children's education than before. And, then, there were the students. Socially distanced from their classmates, the lives of students were transformed. West Village Academy in Detroit, Michigan, experienced a shift. Here are the stories of some of their students. Students with hopes. Students with dreams. Students who persevere in the face of a changing education landscape. Students determined to "emerge from the curve" from a pandemic.
Nearly five decades of on-the-job training have equipped O'Neal with the skills and charm of a master storyteller."—The Drama Review "A dramatic tale spinner with a canny sense of humor and a winning, engaging stage presence. . . . O'Neal's shows mix folksiness, a sophisticated sense of theatricality and astute observation that are a pleasure to watch."—The Philadelphia Inquirer Artist and activist John M. O'Neal is best known for his Junebug Jabbo Jones cycle of plays, a remarkable collection of tales and anecdotes drawn from African American oral literature, which he has performed all over the globe. Four of these plays are included in this volume, along with four of O'Neal's other works: large-scale ensemble productions, first performed by his ensemble company Junebug Productions, as well as in collaboration with A Travelling Jewish Theater (San Francisco, California), Roadside Theater (Kentucky), and Pregones Theater (Bronx, New York). John M. O'Neal co-founded the Free Southern Theater in 1963 as a cultural arm of the southern Civil Rights movement, as well as Junebug Productions, a professional African American arts organization in New Orleans. For FST, O'Neal worked as a field director for the Student Non-Violent Coordinating Committee and worked as national field program director with the Committee for Racial Justice. He has written eighteen plays, a musical comedy, poetry, and several essays, and has performed throughout the United States, Canada, France, and Scandinavia. He is the recipient of the Award of Merit from the Association of Performing Arts Presenters, the United States Artists Award, and a Ford Foundation Award.
Thank you for visiting our website. Would you like to provide feedback on how we could improve your experience?
This site does not use any third party cookies with one exception — it uses cookies from Google to deliver its services and to analyze traffic.Learn More.