软件工程
Docker in Practice 豆瓣
作者: Ian Miell / Aidan Hobson Sayers Manning Publications 2019 - 2
Summary
Docker in Practice, Second Edition presents over 100 practical techniques, hand-picked to help you get the most out of Docker. Following a Problem/Solution/Discussion format, you'll walk through specific examples that you can use immediately, and you'll get expert guidance on techniques that you can apply to a whole range of scenarios.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the Technology
Docker's simple idea-wrapping an application and its dependencies into a single deployable container-created a buzz in the software industry. Now, containers are essential to enterprise infrastructure, and Docker is the undisputed industry standard. So what do you do after you've mastered the basics? To really streamline your applications and transform your dev process, you need relevant examples and experts who can walk you through them. You need this book.
About the Book
Docker in Practice, Second Edition teaches you rock-solid, tested Docker techniques, such as replacing VMs, enabling microservices architecture, efficient network modeling, offline productivity, and establishing a container-driven continuous delivery process. Following a cookbook-style problem/solution format, you'll explore real-world use cases and learn how to apply the lessons to your own dev projects.
What's inside
Continuous integration and delivery
The Kubernetes orchestration tool
Streamlining your cloud workflow
Docker in swarm mode
Emerging best practices and techniques
About the Reader
Written for developers and engineers using Docker in production.
Programming for the Puzzled 豆瓣
作者: Srini Devadas MIT Press 2017 - 10
This book builds a bridge between the recreational world of algorithmic puzzles (puzzles that can be solved by algorithms) and the pragmatic world of computer programming, teaching readers to program while solving puzzles. Few introductory students want to program for programming’s sake. Puzzles are real-world applications that are attention grabbing, intriguing, and easy to describe.
Each lesson starts with the description of a puzzle. After a failed attempt or two at solving the puzzle, the reader arrives at an Aha! moment—a search strategy, data structure, or mathematical fact—and the solution presents itself. The solution to the puzzle becomes the specification of the code to be written. Readers will thus know what the code is supposed to do before seeing the code itself. This represents a pedagogical philosophy that decouples understanding the functionality of the code from understanding programming language syntax and semantics. Python syntax and semantics required to understand the code are explained as needed for each puzzle.
Readers need only the rudimentary grasp of programming concepts that can be obtained from introductory or AP computer science classes in high school. The book includes more than twenty puzzles and more than seventy programming exercises that vary in difficulty. Many of the puzzles are well known and have appeared in publications and on websites in many variations. They range from scheduling selfie time with celebrities to solving Sudoku problems in seconds to verifying the six degrees of separation hypothesis. The code for selected puzzle solutions is downloadable from the book’s website; the code for all puzzle solutions is available to instructors.
Getting Started with LevelDB 豆瓣
作者: Andy Dent Packt Publishing 2013 - 11
Mobile and standalone desktop apps often need to store and rapidly retrieve data. LevelDB scales from a few simple values up to trillions of records and is flexible enough to store any kind of data.
Getting Started with LevelDB progresses through the sophisticated ways to use databases. It starts by explaining how to install and build LevelDB from the basics, and moves on to explain the different Objective-C layers for LevelDB. It can be used as an introduction to database-backed iOS apps, as well as provides clarification to key-value stores and helps you understand how they relate to SQL.
LevelDB is a flexible data solution that uses key-value stores to allow for the development of highly complex, efficient data storage systems. From the basics of data storage and retrieval to complex cases involving data storage for apps, this book covers a wide range of LevelDB topics
Even relatively simple apps may have the need to search their data using different terms. Getting Started with LevelDB shows how to design keys to retrieve and store data efficiently. You will learn how its “levelled” nature delivers speedy writes and how to tune its settings and design for performance. You will also see a few techniques for debugging and tuning.
Getting Started with LevelDB will leave you as an accomplished LevelDB programmer, confident you can build a complex database-backed app with high performance on iOS or OS/X.
A Tour of C++ (2/e) 豆瓣
作者: Bjarne Stroustrup Addison Wesley 2018 - 6
In A Tour of C++ (2/e), Bjarne Stroustrup, the creator of C++, describes what constitutes modern C++. This concise, self-contained guide covers most major language features and the major standard-library components―not, of course, in great depth, but to a level that gives programmers a meaningful overview of the language, some key examples, and practical help in getting started.
Stroustrup presents the C++ features in the context of the programming styles they support, such as object-oriented and generic programming. His tour is remarkably comprehensive. Coverage begins with the basics, then ranges widely through more advanced topics, including many that are new in C++17, such as move semantics, uniform initialization, lambda expressions, improved containers, random numbers, and concurrency. The tour even covers some extensions being made for C++20, such as concepts and modules, and ends with a discussion of the design and evolution of C++.
This guide does not aim to teach you how to program (for that, see Stroustrup’s Programming: Principles and Practice Using C++, Second Edition), nor will it be the only resource you’ll need for C++ mastery (for that, see Stroustrup’s The C++ Programming Language, Fourth Edition, and recommended online sources). If, however, you are a C or C++ programmer wanting greater familiarity with the current C++ language, or a programmer versed in another language wishing to gain an accurate picture of the nature and benefits of modern C++, you can’t find a shorter or simpler introduction than this tour provides.
Principles of Transaction Processing, Second Edition 豆瓣
作者: Philip A. Bernstein / Eric Newcomer Morgan Kaufmann 2009 - 6
Principles of Transaction Processing is a clear, concise guide for anyone involved in developing applications, evaluating products, designing systems, or engineering products. This book provides an understanding of the internals of transaction processing systems, describing how they work and how best to use them. It includes the architecture of Web Application Servers, transactional communications paradigms, and mechanisms for recovering from transaction and system failures. The use of transaction processing systems has changed in the years since publication of the first edition. Electronic commerce has become a major focus for business data processing investments, from banking and stock purchase on the web, to eBay auctions, to corporate database management. New standards, new technology and products, and new languages allow web services and SOA to become the leading style of design for enterprise applications. And with the help of this book and its rich examples, you will be able to produce the state-of-the-art applications discussed within. For more information check out Eric Newcomer's blog: http://ericnewcomer.wordpress.com/2009/05/15/what-we-learned-writing-the-second-edition-of-the-tp-book/
Complete revision of the classic "non mathematical" transaction processing reference for systems professionals.
Updated to focus on the needs of transaction processing via the Internet-- the main focus of business data processing investments, via web application servers, SOA, and important new TP standards.
Retains the practical, non-mathematical, but thorough conceptual basis of the first edition.
Seven Databases in Seven Weeks 豆瓣
作者: Luc Perkins / Eric Redmond Pragmatic Bookshelf; 2018 - 3
Data is getting bigger and more complex by the day, and so are your choices in handling it. Explore some of the most cutting-edge databases available - from traditional relational databases to newer NoSQL approaches - and make informed decisions about challenging data storage problems. This is the only comprehensive guide to the world of NoSQL databases, with in-depth practical and conceptual introductions to seven different technologies: Redis, Neo4J, CouchDB, MongoDB, HBase, Postgres, and DynamoDB. This second edition includes a new chapter on DynamoDB and updated content for each chapter.
While relational databases such as MySQL remain as relevant as ever, the alternative, NoSQL paradigm has opened up new horizons in performance and scalability and changed the way we approach data-centric problems. This book presents the essential concepts behind each database alongside hands-on examples that make each technology come alive.
With each database, tackle a real-world problem that highlights the concepts and features that make it shine. Along the way, explore five database models - relational, key/value, columnar, document, and graph - from the perspective of challenges faced by real applications. Learn how MongoDB and CouchDB are strikingly different, make your applications faster with Redis and more connected with Neo4J, build a cluster of HBase servers using cloud services such as Amazon's Elastic MapReduce, and more. This new edition brings a brand new chapter on DynamoDB, updated code samples and exercises, and a more up-to-date account of each database's feature set.
Whether you're a programmer building the next big thing, a data scientist seeking solutions to thorny problems, or a technology enthusiast venturing into new territory, you will find something to inspire you in this book.
Kafka 豆瓣
作者: Neha Narkhede / Gwen Shapira O'Reilly Media 2017 - 10
Learn how to take full advantage of Apache Kafka, the distributed, publish-subscribe queue for handling real-time data feeds. With this comprehensive book, you'll understand how Kafka works and how it's designed. Authors Neha Narkhede, Gwen Shapira, and Todd Palino show you how to deploy production Kafka clusters; secure, tune, and monitor them; write rock-solid applications that use Kafka; and build scalable stream-processing applications.
Get Programming with Go Goodreads 豆瓣
作者: Nathan Youngman Manning Publications 2018 - 9
Hobbyists, newcomers, and professionals alike can benefit from a fast, modern language; all you need is the right resource! Get Programming with Go provides a hands-on introduction to Go language fundamentals, serving as a solid foundation for your future programming projects. You'll master Go syntax, work with types and functions, and explore bigger ideas like state and concurrency, with plenty of exercises to lock in what you learn.
C++ Concurrency in Action 豆瓣
作者: Mr Anthony Williams Manning Publications 2017
C++ 11 delivered strong support for multithreaded applications, and the subsequent C++14 and 17 updates have built on this baseline. C++ has better options for concurrency than ever before, which means it's an incredibly powerful option for multicore and parallel applications.
The Kubernetes Book 豆瓣
作者: Nigel Poulton Independently published 2017 - 7
Containers are here and resistance is futile! Now that people are getting their heads around Docker, they need an orchestration platform to help them manage their containerized apps. Kubernetes has emerged as one of the hottest and most important container orchestration platforms in the world. This book gets you up to speed fast!
Kubernetes in Action 豆瓣 Goodreads
9.6 (5 个评分) 作者: Marko Luksa Manning Publications 2017 - 8
Kubernetes in Action teaches you to use Kubernetes to deploy container-based distributed applications. You'll start with an overview of Docker and Kubernetes before building your first Kubernetes cluster. You'll gradually expand your initial application, adding features and deepening your knowledge of Kubernetes architecture and operation. As you navigate this comprehensive guide, you'll explore high-value topics like monitoring, tuning, and scaling.
Kubernetes is Greek for "helmsman," your guide through unknown waters. The Kubernetes container orchestration system safely manages the structure and flow of a distributed application, organizing containers and services for maximum efficiency. Kubernetes serves as an operating system for your clusters, eliminating the need to factor the underlying network and server infrastructure into your designs.
Using OpenMP 豆瓣
作者: Barbara Chapman / Gabriele Jost The MIT Press 2007 - 10
OpenMP, a portable programming interface for shared memory parallel computers, was adopted as an informal standard in 1997 by computer scientists who wanted a unified model on which to base programs for shared memory systems. OpenMP is now used by many software developers; it offers significant advantages over both hand-threading and MPI. Using OpenMP offers a comprehensive introduction to parallel programming concepts and a detailed overview of OpenMP. Using OpenMP discusses hardware developments, describes where OpenMP is applicable, and compares OpenMP to other programming interfaces for shared and distributed memory parallel architectures. It introduces the individual features of OpenMP, provides many source code examples that demonstrate the use and functionality of the language constructs, and offers tips on writing an efficient OpenMP program. It describes how to use OpenMP in full-scale applications to achieve high performance on large-scale architectures, discussing several case studies in detail, and offers in-depth troubleshooting advice. It explains how OpenMP is translated into explicitly multithreaded code, providing a valuable behind-the-scenes account of OpenMP program performance. Finally, Using OpenMP considers trends likely to influence OpenMP development, offering a glimpse of the possibilities of a future OpenMP 3.0 from the vantage point of the current OpenMP 2.5. With multicore computer use increasing, the need for a comprehensive introduction and overview of the standard interface is clear. Using OpenMP provides an essential reference not only for students at both undergraduate and graduate levels but also for professionals who intend to parallelize existing codes or develop new parallel programs for shared memory computer architectures. Barbara Chapman is Professor of Computer Science at the University of Houston. Gabriele Jost is Principal Member of Technical Staff, Application Server Performance Engineering, at Oracle, Inc. Ruud van der Pas is Senior Staff Engineer at Sun Microsystems, Menlo Park.
Scalability Patterns: Best Practices for Designing High Volume Websites 豆瓣
Apress 2018 - 7
With the proliferation of countless electronic devices and the ever growing number of Internet users, the scalability of websites has become an increasingly important challenge. Scalability, even though highly coveted, may not be so easy to achieve. Think that you can't attain responsiveness along with scalability? Chander Dhall will demonstrate that, in fact, they go hand in hand.
What You'll Learn
Architect and develop applications so that they are easy to scale.Learn different scaling and partitioning options and the combinations.Learn techniques to speed up responsiveness.Deep dive intocaching,column-family databases, document databases, search engines and RDBMS.Learnscalability andresponsiveness concepts that are usually ignored.Effectively balance scalability, performance, responsiveness, and availability while minimizing downtime.
Who This Book Is For
Executives (CXOs),software architects, developers, and IT Pros
The Little Typer Goodreads 豆瓣
作者: Daniel P. Friedman / David Thrane Christiansen MIT Press 2018 - 10
An introduction to dependent types, demonstrating the most beautiful aspects, one step at a time. A program's type describes its behavior. Dependent types are a first-class part of a language, and are much more powerful than other kinds of types; using just one language for types and programs allows program descriptions to be as powerful as the programs they describe. The Little Typer explains dependent types, beginning with a very small language that looks very much like Scheme and extending it to cover both programming with dependent types and using dependent types for mathematical reasoning. Readers should be familiar with the basics of a Lisp-like programming language, as presented in the first four chapters of The Little Schemer. The first five chapters of The Little Typer provide the needed tools to understand dependent types; the remaining chapters use these tools to build a bridge between mathematics and programming. Readers will learn that tools they know from programming-pairs, lists, functions, and recursions-can also capture patterns of reasoning. The Little Typer does not attempt to teach either practical programming skills or a fully rigorous approach to type. Instead, it demonstrates the most beautiful aspects as simply as possible, one step at a time.
Cloud Native DevOps with Kubernetes 豆瓣
作者: John Arundel / Justin Domingus O'Reilly Media 2019 - 3
Kubernetes is the operating system of the cloud-native world, providing a reliable and scalable platform for running containerized workloads. This book shows developers and operations staff how to apply industry-standard DevOps practices to Kubernetes in a cloud-native context. You’ll learn all about the Kubernetes ecosystem and discover battle-tested solutions to everyday problems.
In this friendly, pragmatic book, cloud experts John Arundel and Justin Domingus show you what Kubernetes can do—and what you can do with it. You’ll build, step by step, an example cloud-native application and its supporting infrastructure, along with a development environment and continuous deployment pipeline that you can use for your own applications.
•Understand containers and Kubernetes from first principles—no experience necessary
•Run your own clusters or choose a managed Kubernetes service from Amazon, Google, and others
•Design your own cloud-native services and infrastructure
•Use Kubernetes to manage resource usage and the container lifecycle
•Optimize clusters for cost, performance, resilience, capacity, and scalability
•Learn the best tools for developing, testing, and deploying your applications
•Apply the latest industry practices for observability and monitoring
•Secure your containers and clusters in production
•Adopt DevOps principles to help make your development teams lean, fast, and effective