The Cucumber Book, 2nd EditionExpress your customers wild ideas as a set of clear, executable specifications that everyone on the team can read. Feed those examples into Cucumber and let it guide your development. Build just the right code to keep your customers happy. You can use Cucumber to test almost any system or any platform.
Get started by using the core features of Cucumber and working with Cucumber's Gherkin DSL to describe - in plain language - the behavior your customers want from the system. Then write Ruby code that interprets those plain-language specifications and checks them against your application. Next, consolidate the knowledge you've gained with a worked example, where you'll learn more advanced Cucumber techniques, test asynchronous systems, and test systems that use a database. Recipes highlight some of the most difficult and commonly seen situations the authors have helped teams solve. With these patterns and techniques, test Ajax-heavy web applications with Capybara and Selenium, REST we ...
Scalable Cloud Ops with FugueCloud computing represents the greatest shift in computing in more than a decade. But the promise of the cloud is unrealized. The cloud isn't just about shedding the physical data center - it's about shedding the data center mindset. Cloud infrastructure can be controlled via API calls. This means we can view it as a giant general-purpose computer - and program it. That's where the Fugue operating system and the Ludwig language come in. They automate the creation, operation, enforcement, and termination of infrastructure in the cloud.
This definitive Fugue guide starts with a simple website and moves on to a more robust application with evolving infrastructure needs as you walk through the steps to harnessing the cloud. With Amazon Web Services, launch infrastructure quickly. Debug in design time. Automate deployment and enforcement of your cloud. Centralize your change control process and automate continuous auditing. Rest easy knowing configuration drift, unwanted changes, and inf ...
A Common-Sense Guide to Data Structures and AlgorithmsAlgorithms and data structures are much more than abstract concepts. Mastering them enables you to write code that runs faster and more efficiently, which is particularly important for today's web and mobile apps. This book takes a practical approach to data structures and algorithms, with techniques and real-world scenarios that you can use in your daily production code. Graphics and examples make these computer science concepts understandable and relevant. You can use these techniques with any language; examples in the book are in JavaScript, Python, and Ruby.
Use Big O notation, the primary tool for evaluating algorithms, to measure and articulate the efficiency of your code, and modify your algorithm to make it faster. Find out how your choice of arrays, linked lists, and hash tables can dramatically affect the code you write. Use recursion to solve tricky problems and create algorithms that run exponentially faster than the alternatives. Dig into advanced data structures such a ...
Continuous Delivery in JavaWith the release of Java 9 and the increasing maturity of web/microservice frameworks such as Spring Boot and Eclipse MicroProfile, there's never been a better time to design and implement Java-powered applications. But Java is only a small piece of the puzzle when it comes to continuously delivering working applications to a production environment.
This practical book charts the journey for establishing the practices and tooling to develop, operate and use a continuous delivery build pipeline for Java applications that will be deployed to a platform such as Kubernetes, AWS Lambda, and other cloud-based services. Each chapter focuses on a key practice within continuous delivery, and outlines appropriate tooling and describes how this should be utilized.Understand the process of continuous delivery, from setting up a local development environment through to deploying into production, and explore how this impacts the skills required from a modern Java application developer; ...
React Native CookbookTackling an app development project on multiple platforms is usually an arduous task, but with React Native, you can build cross-platform mobile apps that look and behave just like native apps built with Swift or Java. If you're familiar with JavaScript, the recipes in this cookbook will help you understand the React Native ecosystem, deal with design and hardware issues, take on the deployment process, and write maintainable code.
How do you organize a project? Or design an app that can access a device's camera? Based on author Jonathan Lebensold's personal journey through the app development process, the recipes in this cookbook will not only provide you with quick answers, they can also inspire you to come up with your own solutions.
Examine the software tools you'll use to build a React Native app; Leverage components and JavaScript libraries in the React ecosystem; Design cross-platform apps that balance UX, platform conventions, and technical complexity; Get common use case ...
Think Data StructuresIf you're a student studying computer science or a software developer preparing for technical interviews, this practical book will help you learn and review some of the most important ideas in software engineering - data structures and algorithms - in a way that's clearer, more concise, and more engaging than other materials.
By emphasizing practical knowledge and skills over theory, author Allen Downey shows you how to use data structures to implement efficient algorithms, and then analyze and measure their performance. You'll explore the important classes in the Java collections framework (JCF), how they're implemented, and how they're expected to perform. Each chapter presents hands-on exercises supported by test code online.
Use data structures such as lists and maps, and understand how they work; Build an application that reads Wikipedia pages, parses the contents, and navigates the resulting data tree; Analyze code to predict how fast it will run and how much memory it will ...
JSON at WorkJSON is becoming the backbone for meaningful data interchange over the internet. This format is now supported by an entire ecosystem of standards, tools, and technologies for building truly elegant, useful, and efficient applications. With this hands-on guide, author and architect Tom Marrs shows you how to build enterprise-class applications and services by leveraging JSON tooling and message/document design.
JSON at Work provides application architects and developers with guidelines, best practices, and use cases, along with lots of real-world examples and code samples. You'll start with a comprehensive JSON overview, explore the JSON ecosystem, and then dive into JSON's use in the enterprise.
Get acquainted with JSON basics and learn how to model JSON data; Learn how to use JSON with Node.js, Ruby on Rails, and Java; Structure JSON documents with JSON Schema to design and test APIs; Search the contents of JSON documents with JSON Search tools; Convert JSON documents to other d ...
Designing Distributed SystemsIn the race to compete in today's fast-moving markets, large enterprises are busy adopting new technologies for creating new products, processes, and business models. But one obstacle on the road to digital transformation is placing too much emphasis on technology, and not enough on the types of processes technology enables. What if different lines of business could build their own services and applications - and decision-making was distributed rather than centralized?
This report explores the concept of a digital business platform as a way of empowering individual business sectors to act on data in real time. Much innovation in a digital enterprise will increasingly happen at the edge, whether it involves business users (from marketers to data scientists) or IoT devices. To facilitate the process, your core IT team can provide these sectors with the digital tools they need to innovate quickly.
This report explores: Key cultural and organizational changes for developing business ...
iPhoto 6: The Missing Manual, 5th EditionIf you used iPhoto when it first came out, you'll remember the way it slowed to a crawl once you loaded it with about 2,000 photos. Compare that to this year's model: iPhoto 6 can handle as many as 250,000 images and still have the power to run a host of suped-up features. Its new software engine lets you make changes with a drag & drop editing tool, find photos with a robust search feature, and manipulate images without affecting the originals in your master library.
Apple makes it all sound so easy: just drag this, click that and you're done. But, as intuitive as these features are, you can still get lost, especially if you're new to iPhoto. Not to worry. iPhoto 6: The Missing Manual gives you plenty of undocumented tips & tricks for taking advantage of the new version and every little feature packed into it.
It's the top-selling iPhoto book for good reason. With wit and objectivity, David Pogue and Derrick Story start you out with a crash course on digital photography, complet ...
BlackBerry Development FundamentalsThe BlackBerry smartphone is today's #1 mobile platform for the enterprise and also a huge hit with consumers. Until now, it's been difficult for programmers to find everything they need to begin developing new applications for BlackBerry devices. BlackBerry Development Fundamentals is the solution: the first single-source guide to all aspects of development for the BlackBerry platform. This book thoroughly reviews the BlackBerry's unique capabilities and limitations, helps you optimize your upfront design choices, and covers native rich-client applications and Web-based mobile applications for both business and consumer environments. ...