In this truly unique technical book, today's leading software architects present valuable principles on key development issues that go way beyond technology. More than four dozen architects -- including Neal Ford, Michael Nygard, and Bill de hOra -- offer advice for communicating with stakeholders, eliminating complexity, empowering developers, and many more practical lessons they've learned from years of experience. Among the 97 principles in this book, you'll find useful advice such as: Don't Put Your Resume Ahead of the Requirements (Nitin Borwankar) Chances Are, Your Biggest Problem Isn't Technical (Mark Ramm) Communication Is King; Clarity and Leadership, Its Humble Servants (Mark Richards) Simplicity Before Generality, Use Before Reuse (Kevlin Henney) For the End User, the Interface Is the System (Vinayak Hegde) It's Never Too Early to Think About Performance (Rebecca Parsons) To be successful as a software architect, you need to master both business and technology. This book tells you what top software architects think is important and how they approach a project. If you want to enhance your career, 97 Things Every Software Architect Should Know is essential reading.
If you want to push your Java skills to the next level, this book provides expert advice from Java leaders and practitioners. You’ll be encouraged to look at problems in new ways, take broader responsibility for your work, stretch yourself by learning new techniques, and become as good at the entire craft of development as you possibly can. Edited by Kevlin Henney and Trisha Gee, 97 Things Every Java Programmer Should Know reflects lifetimes of experience writing Java software and living with the process of software development. Great programmers share their collected wisdom to help you rethink Java practices, whether working with legacy code or incorporating changes since Java 8. A few of the 97 things you should know: "Behavior Is Easy, State Is Hard"—Edson Yanaga “Learn Java Idioms and Cache in Your Brain”—Jeanne Boyarsky “Java Programming from a JVM Performance Perspective”—Monica Beckwith "Garbage Collection Is Your Friend"—Holly K Cummins “Java's Unspeakable Types”—Ben Evans "The Rebirth of Java"—Sander Mak “Do You Know What Time It Is?”—Christin Gorman
Tap into the wisdom of experts to learn what every programmer should know, no matter what language you use. 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
If the projects you manage don't go as smoothly as you'd like, 97 Things Every Project Manager Should Know offers knowledge that's priceless, gained through years of trial and error. This illuminating book contains 97 short and extremely practical tips -- whether you're dealing with software or non-IT projects -- from some of the world's most experienced project managers and software developers. You'll learn how these professionals have dealt with everything from managing teams to handling project stakeholders to runaway meetings and more. While this book highlights software projects, its wise axioms contain project management principles applicable to projects of all types in any industry. You can read the book end to end or browse to find topics that are of particular relevance to you. 97 Things Every Project Manager Should Know is both a useful reference and a source of inspiration. Among the 97 practical tips: "Clever Code Is Hard to Maintain...and Maintenance Is Everything" -- David Wood, Partner, Zepheira "Every Project Manager Is a Contract Administrator" -- Fabio Teixeira de Melo, Planning Manager, Construtora Norberto Odebrecht "Can Earned Value and Velocity Coexist on Reports?" -- Barbee Davis, President, Davis Consulting "How Do You Define 'Finished'"? -- Brian Sam-Bodden, author, software architect "The Best People to Create the Estimates Are the Ones Who Do the Work" -- Joe Zenevitch, Senior Project Manager, ThoughtWorks "How to Spot a Good IT Developer" -- James Graham, independent management consultant "One Deliverable, One Person" -- Alan Greenblatt, CEO, Sciova
Redefining the Architect's Role in the Digital Enterprise
Author: Gregor Hohpe
Publisher: O'Reilly Media
As the digital economy changes the rules of the game for enterprises, the role of software and IT architects is also transforming. Rather than focus on technical decisions alone, architects and senior technologists need to combine organizational and technical knowledge to effect change in their company’s structure and processes. To accomplish that, they need to connect the IT engine room to the penthouse, where the business strategy is defined. In this guide, author Gregor Hohpe shares real-world advice and hard-learned lessons from actual IT transformations. His anecdotes help architects, senior developers, and other IT professionals prepare for a more complex but rewarding role in the enterprise. This book is ideal for: Software architects and senior developers looking to shape the company’s technology direction or assist in an organizational transformation Enterprise architects and senior technologists searching for practical advice on how to navigate technical and organizational topics CTOs and senior technical architects who are devising an IT strategy that impacts the way the organization works IT managers who want to learn what’s worked and what hasn’t in large-scale transformation
Site reliability engineering (SRE) is more relevant than ever. Knowing how to keep systems reliable has become a critical skill. With this practical book, newcomers and old hats alike will explore a broad range of conversations happening in SRE. You'll get actionable advice on several topics, including how to adopt SRE, why SLOs matter, when you need to upgrade your incident response, and how monitoring and observability differ. Editors Jaime Woo and Emil Stolarsky, co-founders of Incident Labs, have collected 97 concise and useful tips from across the industry, including trusted best practices and new approaches to knotty problems. You'll grow and refine your SRE skills through sound advice and thought-provokingquestions that drive the direction of the field. Some of the 97 things you should know: "Test Your Disaster Plan"--Tanya Reilly "Integrating Empathy into SRE Tools"--Daniella Niyonkuru "The Best Advice I Can Give to Teams"--Nicole Forsgren "Where to SRE"--Fatema Boxwala "Facing That First Page"--Andrew Louis "I Have an Error Budget, Now What?"--Alex Hidalgo "Get Your Work Recognized: Write a Brag Document"--Julia Evans and Karla Burnett
"Learn the basics of messaging, a powerful paradigm that makes it easier to decouple and integrate enterprise applications. In this video course, messaging expert Mark Richards takes you through messaging fundamentals with the Java Message Service (JMS) API. You'll learn the basics of how to use the JMS 1.1 and 2.0 API to send and receive messages, how to do request/reply processing, how to use message selectors, and how to use publish and subscribe messaging-all through live, interactive coding with ActiveMQ and OpenMQ. This video begins with some fundamental messaging concepts, then takes you on a live coding journey through the JMS 1.1 API, the new JMS 2.0 simplified API, then a variety of messaging fundamentals topics that will enable you to understand and effectively use messaging for enterprise-wide applications. Topics include: Core messaging concepts, including guaranteed delivery and the difference between point-to-point and publish-and-subscribe messaging; New JMS 2.0 features, including shared subscriptions, asynchronous send, delivery delay, and delivery count; Standard, extended, and application message header properties Techniques for request/reply messaging-when you require a response from the receiver; Publish-and-subscribe messaging, including the various types of subscribers and guidelines for using them; Uses and limitations of message selectors, which specify conditions for receiving messages; How the three message acknowledgement modes work and when to use each."--Resource description page.
This how-to guide to good practices in the cloud is beginner-friendly but also takes a deep dive into topics such as architecting, scaling, and migrating. Author Emily Freeman covers topics including managing spend and measuring success. It's the ultimate guide for developers and DevOps engineers who have already started to work with cloud-based systems and those planning to make to leap. Topics include: Migrating to the cloud Securing your system Spending money fast Managing data in the cloud Automating yourself out of a job
A single dramatic software failure can cost a company millions of dollars - but can be avoided with simple changes to design and architecture. This new edition of the best-selling industry standard shows you how to create systems that run longer, with fewer failures, and recover better when bad things happen. New coverage includes DevOps, microservices, and cloud-native architecture. Stability antipatterns have grown to include systemic problems in large-scale systems. This is a must-have pragmatic guide to engineering for production systems. If you're a software developer, and you don't want to get alerts every night for the rest of your life, help is here. With a combination of case studies about huge losses - lost revenue, lost reputation, lost time, lost opportunity - and practical, down-to-earth advice that was all gained through painful experience, this book helps you avoid the pitfalls that cost companies millions of dollars in downtime and reputation. Eighty percent of project life-cycle cost is in production, yet few books address this topic. This updated edition deals with the production of today's systems - larger, more complex, and heavily virtualized - and includes information on chaos engineering, the discipline of applying randomness and deliberate stress to reveal systematic problems. Build systems that survive the real world, avoid downtime, implement zero-downtime upgrades and continuous delivery, and make cloud-native applications resilient. Examine ways to architect, design, and build software - particularly distributed systems - that stands up to the typhoon winds of a flash mob, a Slashdotting, or a link on Reddit. Take a hard look at software that failed the test and find ways to make sure your software survives. To skip the pain and get the experience...get this book.
"Dive into advanced topics for using Java Message Service (JMS) in the enterprise with this comprehensive video course. Through live, interactive coding in both JMS 1.1 and JMS 2.0, messaging expert Mark Richards take you deep into several advanced JMS features and techniques, including JMS transaction management, embedded messaging, RESTful JMS, Spring JMS, and message streaming. If you're a Java developer who understands JMS basics, particularly though Mark Richards' introductory video-Enterprise Messaging Using JMS: Fundamentals-this advanced course is the ideal way to continue your journey through enterprise messaging. Topics include: Design techniques and common message design pitfalls; How and when to use transactions with messaging; Using an embedded message broker in your application; Creating self-healing and auditing systems using message browsing; Techniques for sending and receiving large documents and images in messages; Sending and receiving messages through HTTP with RESTful JMS; Techniques for making your messaging applications run faster and scale better; Using Spring JMS to send and receive messages in Spring-based applications; Harnessing the full power of Spring JMS with Message Driven POJOs."--Resource description page.
Java Message Service, Second Edition, is a thorough introduction to the standard API that supports "messaging" -- the software-to-software exchange of crucial data among network computers. You'll learn how JMS can help you solve many architectural challenges, such as integrating dissimilar systems and applications, increasing scalability, eliminating system bottlenecks, supporting concurrent processing, and promoting flexibility and agility. Updated for JMS 1.1, this second edition also explains how this vendor-agnostic specification will help you write messaging-based applications using IBM's MQ, Progress Software's SonicMQ, ActiveMQ, and many other proprietary messaging services. With Java Message Service, you will: Build applications using point-to-point and publish-and-subscribe messaging models Use features such as transactions and durable subscriptions to make an application reliable Implement messaging within Enterprise JavaBeans (EJB) using message-driven beans Use JMS with RESTful applications and with the Spring application framework Messaging is a powerful paradigm that makes it easier to uncouple different parts of an enterprise application. Java Message Service, Second Edition, will quickly teach you how to use the key technology that lies behind it.
With this in-depth book, data engineers will learn powerful, real-world best practices for managing data big and small. Contributors from companies including Google, Microsoft, IBM, Facebook, Databricks, and GitHub share their experiences and lessons learned for cleaning, prepping, wrangling, storing, processing, and ingesting data. Current and aspiring data engineers, data architects, data team managers, data scientists, machine learning engineers, and software engineers will get targeted advice for overcoming a variety of specific challenges from engineers at major companies. Projects include: Building pipelines Stream processing Data privacy and security Data governance and lineage Data storage and architecture Ecosystem of modern tools Data team makeup and culture Career advice
The Standard Handbook of Electronics Engineering has defined its field for over thirty years. Spun off in the 1960’s from Fink’s Standard Handbook of Electrical Engineering, the Christiansen book has seen its markets grow rapidly, as electronic engineering and microelectronics became the growth engine of digital computing. The EE market has now undergone another seismic shift—away from computing and into communications and media. The Handbook will retain much of its evergreen basic material, but the key applications sections will now focus upon communications, networked media, and medicine—the eventual destination of the majority of graduating EEs these days.
'Book Review Index' provides quick access to reviews of books, periodicals, books on tape and electronic media representing a wide range of popular, academic and professional interests. More than 600 publications are indexed, including journals and national general interest publications and newspapers. 'Book Review Index' is available in a three-issue subscription covering the current year or as an annual cumulation covering the past year.
Written by the creator of SpecFlow and the author of The Cucumber for Java Book, this book provides inside information on how to get the most out of the discovery phase of Behaviour Driven Development (BDD). This practical guide demonstrates good collaboration techniques, illustrated by concrete examples. This book is written for everyone involved in the specification and delivery of software (including product owners, business analysts, developers, and testers). The book starts by explaining the reasons BDD exists in the first place and describes techniques for getting the most out of collaboration between business and delivery team members. This is the first in the BDD Books series that will guide you through the entire development process, including specific technical practices needed to successfully drive development using collaboratively-authored specifications and living documentation.