软件工程
Release It! 豆瓣
作者: Michael T. Nygard Pragmatic Bookshelf 2017 - 10
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.
The Rust Programming Language (Covers Rust 2018) 豆瓣 Goodreads
作者: Steve Klabnik / Carol Nichols No Starch Press 2019 - 8
The official book on the Rust programming language, written by the Rust development team at the Mozilla Foundation, fully updated for Rust 2018.
The Rust Programming Language is the official, definitive guide to Rust, a hugely popular, community-supported programming language. This is the second edition of the improved version of the free online Rust book, so well-loved in the Rust community that it is simply referred to as "the Book".
Programmers love Rust because it allows them to write powerful code efficiently, without the risk of crashes and errors common in languages like C and C++. This book will show readers how to use Rust's robust type system to keep programs memory-safe and speedy, and make the most of the Cargo package manager that brings the pieces of a program together. The reader will learn all about Rust's ownership rules, which lie at the heart of Rust's reliability and crash-resistant compiling.
The Rust Programming Language covers everything from basic concepts like variable bindings, control flow, functions, and error handling, to more advanced topics, such as crates, generics, concurrency, and the nitty gritty of Rust's type system. With improved organization, hands-on features, and a more tutorial-oriented style, this version offers a vast improvement over the original.
The second edition also provides an entirely new chapter on macros and an expanded chapter on crates, two key aspects of Rust that make it so popular. Readers will also find extra appendices on Rust development tools and Rust versions.
Parallel and Concurrent Programming in Haskell 豆瓣
作者: Simon Marlow O'Reilly Media 2013 - 8
This book covers the breadth of Haskell's diverse selection of programming APIs for concurrent and parallel programming. It is split into two parts. The first part, on parallel programming, covers the techniques for using multiple processors to speed up CPU-intensive computations, including methods for using parallelism in both idiomatic Haskell and numerical array-based algorithms, and for running computations on a GPU. The second part, on concurrent programming, covers techniques for using multiple threads, including overlapping multiple I/O operations, building concurrent network servers, and distributed programming across multiple machines.
Transaction Processing 豆瓣
Springer 2015 - 1
Transactions are a concept related to the logical database as seen from the perspective of database application programmers: a transaction is a sequence of database actions that is to be executed as an atomic unit of work. The processing of transactions on databases is a well- established area with many of its foundations having already been laid in the late 1970s and early 1980s.
The unique feature of this textbook is that it bridges the gap between the theory of transactions on the logical database and the implementation of the related actions on the underlying physical database. The authors relate the logical database, which is composed of a dynamically changing set of data items with unique keys, and the underlying physical database with a set of fixed-size data and index pages on disk. Their treatment of transaction processing builds on the “do-redo-undo” recovery paradigm, and all methods and algorithms presented are carefully designed to be compatible with this paradigm as well as with write-ahead logging, steal-and-no-force buffering, and fine-grained concurrency control.
Chapters 1 to 6 address the basics needed to fully appreciate transaction processing on a centralized database system within the context of our transaction model, covering topics like ACID properties, database integrity, buffering, rollbacks, isolation, and the interplay of logical locks and physical latches. Chapters 7 and 8 present advanced features including deadlock-free algorithms for reading, inserting and deleting tuples, while the remaining chapters cover additional advanced topics extending on the preceding foundational chapters, including multi-granular locking, bulk actions, versioning, distributed updates, and write-intensive transactions.
This book is primarily intended as a text for advanced undergraduate or graduate courses on database management in general or transaction processing in particular.
The Erlang Run-Time System 豆瓣
作者: Erik Stenman O'Reilly Media 2017 - 3
Erlang's process-oriented approach has given it a very different runtime environment. As Erlang and tools built on Erlang, like CouchDB, Riak, and EjabberD spread, understanding those underpinnings becomes much more important for people building and maintaining applications. This book will explore Erlang's unique approach to building a virtual machine, demonstrating how to take advantage of its power and tune it to fit your needs.
Guide to Reliable Distributed Systems 豆瓣
作者: Kenneth P. Birman Springer 2012 - 1
This book describes the key concepts, principles and implementation options for creating high-assurance cloud computing solutions. The guide starts with a broad technical overview and basic introduction to cloud computing, looking at the overall architecture of the cloud, client systems, the modern Internet and cloud computing data centers. It then delves into the core challenges of showing how reliability and fault-tolerance can be abstracted, how the resulting questions can be solved, and how the solutions can be leveraged to create a wide range of practical cloud applications. The author's style is practical, and the guide should be readily understandable without any special background. Concrete examples are often drawn from real-world settings to illustrate key insights. Appendices show how the most important reliability models can be formalized, describe the API of the Isis2 platform, and offer more than 80 problems at varying levels of difficulty.
Get Programming with Scala 豆瓣
作者: Daniela Sfregola Manning Publications 2020 - 6
Get Programming with Scala teaches you the core skills you'll need to code with Scala. This book lives up to its name! You'll learn the ins and outs of Scala by actually programming with it, thanks to the practical examples, exercises, and easy-to-follow lessons. You'll start by reviewing OOP concepts in the Scala language. Then, example-by-example, you'll gradually open up the world of functional programming. You'll explore functions and types and learn how to combine them to create powerful, flexible abstractions. Along the way, you'll learn some Scala testing and get an intuition for sniffing out and fixing code that doesn't smell quite right.
what's inside
Learn to express OO principles in Scala
Express your program designs in functions
Make use of types to enforce program requirements
Use abstractions to avoid code duplication
Write meaningful tests and recognize code smells
Blockchain in Action 豆瓣
作者: Bina Ramamurthy Manning Publications 2020 - 5
Written by Bina Ramamurthy, award-winning creator of the blockchain Coursera online course, Blockchain in Action begins with the essential principles of blockchain and teaches you to create your own decentralized apps. From the start you’ll go hands-on with the Ethereum blockchain, designing and coding your first smart contract with the JavaScript-based Solidity language. This smart contract will become the foundation on which you will build advanced functionality, including trust validation, a web UI for better user access, and privacy and security features that enable deployment on a public blockchain network. By the time you’re finished, you’ll be fully prepared to build useful blockchain applications.
what's inside
How blockchain differs from other distributed systems
Smart contract development with Ethereum and the Solidity language
Web UI for decentralized apps
Identity, privacy and security techniques
On-chain and off-chain data storage
Pulsar in Action 豆瓣
作者: David Kjerrumgaard Manning Publications 2020 - 3
Pulsar in Action is a hands-on guide to building scalable streaming messaging systems for distributed applications and microservices systems. You’ll start with Pulsar’s fundamentals, each illustrated by real-world examples, as you get to grips with Pulsar’s unique architecture. Pulsar contributor David Kjerrumgaard teaches the skills you need to deploy a Pulsar server, ingest data from third-party systems, and deploy lightweight computing logic with simple functions. You’ll learn to employ Pulsar’s seamless scalability through relatable case studies, including an IOT analytics application that can be deployed within a resource constrained environment and a microservices application based on Pulsar functions. At the end of this practical book, you’ll be ready to fully take advantage of Pulsar to create high-traffic message-driven applications.
what's inside
Publish from Apache Pulsar into third-party data repositories and platforms
Design and develop Apache Pulsar functions
Perform interactive SQL queries against data stored in Apache Pulsar
Examples of Pulsar-based microservices that you can download and try yourself
Software Developer Life 豆瓣
作者: David Xiang David Xiang 2018 - 5
We've made a dent into the 21st century and software has been eating the world. Suspenseful tech dramas play out in the news, boot camps churn out entry-level developers in a matter of months, and there's even an HBO show dedicated to Silicon Valley.
In the midst of these trends lies a severe lack of attention to the daily life of the developer--the day-to-day reality that surrounds each line of code. There are plenty of resources available to help the budding developer learn how to code, but what about everything else?
Who Should Read This Book?
This book is for anyone interested in getting a sneak peek inside the world of software!
The new graduates about to jump into their first jobs
The veterans who want a dose of nostalgia and a good chuckle
The product managers looking to empathize more with their coding counterparts
The disgruntled developers contemplating the meaning of life
The high school students thinking about jumping on the computer science bandwagon
The budding programmers looking to become more effective and gain more leverage at work
What's Inside The Book?
This book is a highlight reel of content revolving around Software Developer Life.
Inside you will find 40 concise chapters covering 5 broad topics:
Career
Learning
Coding
Daily Life
Stories
Everyone has something unique to share. This book gathers together various perspectives and unique stories to give a well-rounded view of modern software development.
Web Development with Node and Express, 2nd Edition 豆瓣
作者: Ethan Brown O'Reilly Media 2020 - 10
Build dynamic web applications with Express, a key component of the Node/JavaScript development stack. In this updated edition, author Ethan Brown teaches you Express 5 fundamentals by walking you through the development of an example application. This hands-on guide covers everything from server-side rendering to API development suitable for use in single-page apps (SPAs)
Express strikes a balance between a robust framework and no framework at all, allowing you a free hand in your architecture choices. Frontend and backend engineers familiar with JavaScript will also learn best practices for building multi-page and hybrid web apps with Express. Pick up this book and discover new ways to look at web development.
Engineering a Compiler, Second Edition 豆瓣 Goodreads
作者: Keith Cooper / Linda Torczon Morgan Kaufmann 2011 - 2
This entirely revised second edition of Engineering a Compiler is full of technical updates and new material covering the latest developments in compiler technology. In this comprehensive text you will learn important techniques for constructing a modern compiler. Leading educators and researchers Keith Cooper and Linda Torczon combine basic principles with pragmatic insights from their experience building state-of-the-art compilers. They will help you fully understand important techniques such as compilation of imperative and object-oriented languages, construction of static single assignment forms, instruction scheduling, and graph-coloring register allocation.
In-depth treatment of algorithms and techniques used in the front end of a modern compiler
Focus on code optimization and code generation, the primary areas of recent research and development
Improvements in presentation including conceptual overviews for each chapter, summaries and review questions for sections, and prominent placement of definitions for new terms
Examples drawn from several different programming languages
BPF Performance Tools 豆瓣 Goodreads
作者: Brendan Gregg Addison Wesley 2019 - 11
BPF (eBPF) tracing is the superpower that can analyze everything, helping you find performance wins, troubleshoot software, and more. This book covers over one hundred and fifty BPF observability tools for the analysis of CPUs, memory, disks, file systems, networking, languages, applications, containers, hypervisors, security, and the
Linux kernel. These tools range from basic to advanced, producing new metrics, stack traces, and custom latency histograms.
This is a book for everyone: sysadmins, developers, SREs, performance engineers, database engineers, researchers, and students. While prior knowledge is helpful, this book summarizes performance engineering and
kernel internals to help even relative beginners understand the included BPF tools. No programming is necessary, either, unless you want to. These easy-to-use tools can be run as-is, and this book also teaches you how to customize and develop your own BPF observability tools using different interfaces, with a focus on the high-level
bpftrace front-end.
The Pragmatic Programmer 豆瓣
8.9 (8 个评分) 作者: David Thomas / Andrew Hunt Addison-Wesley Professional 2019 - 9
“One of the most significant books in my life.” —Obie Fernandez, Author, The Rails Way
“Twenty years ago, the first edition of The Pragmatic Programmer completely changed the trajectory of my career. This new edition could do the same for yours.” —Mike Cohn, Author of Succeeding with Agile, Agile Estimating and Planning, and User Stories Applied
“. . . filled with practical advice, both technical and professional, that will serve you and your projects well for years to come.” —Andrea Goulet, CEO, Corgibytes, Founder, LegacyCode.Rocks
“. . . lightning does strike twice, and this book is proof.” —VM (Vicky) Brasseur, Director of Open Source Strategy, Juniper Networks
The Pragmatic Programmer is one of those rare tech books you’ll read, re-read, and read again over the years. Whether you’re new to the field or an experienced practitioner, you’ll come away with fresh insights each and every time.
Dave Thomas and Andy Hunt wrote the first edition of this influential book in 1999 to help their clients create better software and rediscover the joy of coding. These lessons have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology, and the Pragmatic philosophy has spawned hundreds of books, screencasts, and audio books, as well as thousands of careers and success stories.
Now, twenty years later, this new edition re-examines what it means to be a modern programmer. Topics range from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you’ll learn how to:
Fight software rot
Learn continuously
Avoid the trap of duplicating knowledge
Write flexible, dynamic, and adaptable code
Harness the power of basic tools
Avoid programming by coincidence
Learn real requirements
Solve the underlying problems of concurrent code
Guard against security vulnerabilities
Build teams of Pragmatic Programmers
Take responsibility for your work and career
Test ruthlessly and effectively, including property-based testing
Implement the Pragmatic Starter Kit
Delight your users
Written as a series of self-contained sections and filled with classic and fresh anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best approaches and major pitfalls of many different aspects of software development. Whether you’re a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you’ll quickly see improvements in personal productivity, accuracy, and job satisfaction. You’ll learn skills and develop habits and attitudes that form the foundation for long-term success in your career.
You’ll become a Pragmatic Programmer.
Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Inside Java SE 9 (Developer's Library) 豆瓣
作者: Monica Beckwith Addison-Wesley Professional 2019 - 8
Inside Java SE 9 shows experienced programmers exactly how to take full advantage of the highly anticipated new features in Java SE 9. Featuring sample code that reflects real-world use cases, this practical book by JavaOne Rockstar Monica Beckwith explains the key features and functions of Java SE 9 and demonstrates the benefits of utilizing them.
Beckwith shows how Java’s new module system (“Project Jigsaw”) enables working developers to build scalable solutions that are more secure and maintainable; and deliver exceptional performance. She reviews Java SE 9 changes in areas ranging from data types to performance optimizations; showing how to make the most of Java’s new tools and facilities. For example, you’ll learn how to:
Create microbenchmarks using the microbenchmarking harness
Create a modular jar
Take advantage of Java’s new logging interface
Take full advantage of the new default GC (garbage collection)
Use sjavac, segmented code caches, and contended object monitors
Create, compile and profile simple applications using the Netbeans IDE, and Oracle Developer Studio Performance Analyzer And much more
If you’re moving to Java SE 9 -- or want to know why you should -- Inside Java SE 9 is the book you’ve been waiting for.
Modern C 豆瓣 Goodreads
作者: Jens Gustedt Manning Publications 2019 - 10
If you think "Modern" and "C" don't belong in the same sentence, think again. The C standards committee actively reviews and extends the language, with updated published C standards as recently as 2018. In Modern C, author Jens Gustedt teaches you the skills and features you need to write relevant programs in this tried-and-true language, including Linux and Windows, device drivers, web servers and browsers, smartphones, and much more!
Modern C teaches you to take your C programming skills to new heights, whether you're just starting out with C or have more extensive experience. Organized by level, this comprehensive guide lets you jump in where it suits you best while still reaping the maximum benefits.
AWS System Administration 豆瓣
作者: Mike Ryan / Federico Lucifredi O'Reilly Media 2018 - 8
With platforms designed for rapid adaptation and failure recovery such as Amazon Web Services, cloud computing is more like programming than traditional system administration. Tools for automatic scaling and instance replacement allow even small DevOps teams to manage massively scalable application infrastructures—if team members drop their old views of development and operations and start mastering automation.
This comprehensive guide shows developers and system administrators how to configure and manage AWS services including EC2, CloudFormation, Elastic Load Balancing, S3, and Route 53. Sysadms will learn will learn to automate their favorite tools and processes; developers will pick up enough ops knowledge to build a robust and resilient AWS application infrastructure.
Launch instances with EC2 or CloudFormation
Securely deploy and manage your applications with AWS tools
Learn to automate AWS configuration management with Python and Puppet
Deploy applications with Auto Scaling and Elastic Load Balancing
Explore approaches for deploying application and infrastructure updates
Save time on development and operations with reusable components
Learn strategies for managing log files in AWS environments
Configure a cloud-aware DNS service with Route 53
Use AWS CloudWatch to monitor your infrastructure and applications
Scalability Rules 豆瓣
作者: Martin L. Abbott / Michael T. Fisher Addison-Wesley Professional 2016 - 9
Scalability Rules, Second Edition, is the easy-to-use scalability primer and reference for every architect, developer, network/software engineer, web professional, and manager. Authors Martin L. Abbott and Michael T. Fisher have helped scale hundreds of high-growth companies and thousands of systems. Drawing on their immense experience, they present 50 up-to-the-minute technical best practices for supporting hyper growth practically anywhere.
Fully updated to reflect new technical trends and experiences, this edition is even easier to read, understand, and apply. Abbott and Fisher have also added powerful “stories behind the rules”: actual experiences and case studies from CTOs and technology executives at Etsy, NASDAQ, Salesforce, Shutterfly, Chegg, Warby Parker, Twitter, and other scalability pioneers.
Architects will find powerful technology-agnostic insights for creating and evaluating designs. Developers will discover specific techniques for handling everything from databases to state. Managers will get invaluable help in setting goals, making decisions, and interacting with technical teams. Whatever your role, you’ll find practical risk/benefit guidance for setting priorities, translating plans into action, and gaining maximum scalability at minimum cost.
You’ll learn how to
Simplify architectures and avoid “over-engineering”
Design scale into your solution, so you can scale on a just-in-time basis
Make the most of cloning and replication
Separate functionality and split data sets
Scale out, not up
Get more out of databases without compromising scalability
Eliminate unnecessary redirects and redundant double-checking
Use caches and CDNs more aggressively, without unacceptable complexity
Design for fault tolerance, graceful failure, and easy rollback
Emphasize statelessness, and efficiently handle state when you must
Effectively utilize asynchronous communication
Learn from your own mistakes and others’ high-profile failures
Prioritize your actions to get the biggest “bang for the buck”
Modern Java in Action 豆瓣
作者: Raoul-Gabriel Urma / Mario Fusco Manning Publications 2018 - 11
Manning's bestselling Java 8 book has been revised for Java 9! In Java 8 and 9 in Action, you'll build on your existing Java language skills with the newest features and techniques. After a practical introduction to lambdas using real-world Java code, you'll dive into the Streams API. Next, you'll discover event-driven reactive programming and see how the Java Module System (aka Jigsaw) will help change how you structure your code. This book also explains functional programming in Java, working with collections, and more.
"This is an excellent introduction to the newest features in Java 8 and 9. It provides clear and concise examples to help clarify how to use Java's newest features such as streams, lambda functions, and reactive streams."
~ Meredith Godar
"Hands on Java 8 and 9, simple and elegantly explained."
~ Deepak Bhaskaran
Technology Strategy Patterns 豆瓣
作者: Eben Hewitt O′Reilly 2018 - 10
Technologists who want their ideas heard, understood, and funded are often told to speak the language of business—without really knowing what that is. This book’s toolkit provides architects, product managers, technology managers, and executives with a shared language—in the form of repeatable, practical patterns and templates—to produce great technology strategies.
Author Eben Hewitt developed 39 patterns over the course of a decade in his work as CTO, CIO, and chief architect for several global tech companies. With these proven tools, you can define, create, elaborate, refine, and communicate your architecture goals, plans, and approach in a way that executives can readily understand, approve, and execute.
This book covers:
Architecture and strategy: Adopt a strategic architectural mindset to make a meaningful material impact
Creating your strategy: Define the components of your technology strategy using proven patterns
Communicating the strategy: Convey your technology strategy in a compelling way to a variety of audiences
Bringing it all together: Employ patterns individually or in clusters for specific problems; use the complete framework for a comprehensive strategy