软件工程
自制编译器 豆瓣
ふつうのコンパイラをつくろう
作者: [日] 青木峰郎 译者: 严圣逸 / 绝云 人民邮电出版社 2016 - 6
本书将带领读者从头开始制作一门语言的编译器。笔者特意为本书设计了CЬ语言,CЬ可以说是C语言的子集,实现了包括指针运算等在内的C语言的主要部分。本书所实现的编译器就是C Ь语言的编译器, 是实实在在的编译器,而非有诸多限制的玩具。另外,除编译器之外,本书对以编译器为中心的编程语言的运行环境,即编译器、汇编器、链接器、硬件、运行时环境等都有所提及,介绍了程序运行的所有环节。
自制编程语言 豆瓣
プログラミング言語を作る
作者: [日] 前桥和弥 译者: 刘卓 / 徐谦 人民邮电出版社 2013 - 11
本书手把手地教读者用C语言制作两种编程语言:crowbar与Diksam。crowbar是运行分析树的无类型语言,Diksam是运行字节码的静态类型语言。这两种语言都具备四则运算、变量、条件分支、循环、函数定义、垃圾回收等功能,最终版则可以支持面向对象、异常处理等高级机制。所有源代码都提供下载,读者可以一边对照书中的说明一边调试源代码。这个过程对理解程序的运行机制十分有帮助。
本书适合有一定基础的程序员和编程语言爱好者阅读。
自制搜索引擎 豆瓣
検索エンジン自作入門
作者: [日]山田浩之 / [日]末永匡 译者: 胡屹 人民邮电出版社 2016 - 1
《自制搜索引擎》聚焦于Google和Yahoo!等Web搜索服务幕后的搜索引擎系统,首先讲解了搜索引擎的基础知识和原理,接着以现实中的开源搜索引擎Senna/Groonga为示例,使用该引擎的源代码引导读者亲自体验搜索引擎的开发过程。这部分讲解涉及了倒排索引的制作和压缩、检索的处理流程以及搜索引擎的优化等内容。又简单介绍了一些更加专业的搜索引擎的知识和要点,为读者今后进一步学习打下了基础。本书适合所有对搜索引擎感兴趣的技术人员阅读。
Kubernetes in Action, Second Edition 豆瓣
作者: Marko Lukša Manning Publications 2020 - 6
Kubernetes in Action, Second Edition teaches you to use Kubernetes to deploy container-based distributed applications. You'll start with an overview of how Docker containers work with Kubernetes and move quickly to building your first cluster. You'll gradually expand your initial application, adding features and deepening your knowledge of Kubernetes architecture and operation. In this revised and expanded second edition, you’ll take a deep dive into the structure of a Kubernetes-based application and discover how to manage a Kubernetes cluster in production. As you navigate this comprehensive guide, you'll also appreciate thorough coverage of high-value topics like monitoring, tuning, and scaling.
what's inside
Up and running with Kubernetes
Deploying containers across a cluster
Securing clusters
Updating applications with zero downtime
Building Machine Learning Pipelines 豆瓣
作者: Catherine Nelson / Hannes Hapke O'Reilly Media, Inc. 2020 - 9
Companies are spending billions on machine learning projects, but it’s money wasted if the models can’t be deployed effectively. In this practical guide, Hannes Hapke and Catherine Nelson walk you through the steps of automating a machine learning pipeline using the TensorFlow ecosystem. You’ll learn the techniques and tools that will cut deployment time from days to minutes, so that you can focus on developing new models rather than maintaining legacy systems.
Data scientists, machine learning engineers, and DevOps engineers will discover how to go beyond model development to successfully productize their data science projects, while managers will better understand the role they play in helping to accelerate these projects. The book also explores new approaches for integrating data privacy into machine learning pipelines.
Understand the machine learning management lifecycle
Implement data pipelines with Apache Airflow and Kubeflow Pipelines
Work with data using TensorFlow tools like ML Metadata, TensorFlow Data Validation, and TensorFlow Transform
Analyze models with TensorFlow Model Analysis and ship them with the TFX Model Pusher Component after the ModelValidator TFX Component confirmed that the analysis results are an improvement
Deploy models in a variety of environments with TensorFlow Serving, TensorFlow Lite, and TensorFlow.js
Learn methods for adding privacy, including differential privacy with TensorFlow Privacy and federated learning with TensorFlow Federated
Design model feedback loops to increase your data sets and learn when to update your machine learning models
Fundamentals of Software Architecture 豆瓣 Goodreads
作者: Neal Ford / Mark Richards O'Reilly Media 2020 - 2
Although salary surveys worldwide regularly identify software architect as one of the top ten best jobs, no decent guides exist to help developers become architects. Until now. This practical guide provides the first comprehensive overview of software architecture’s many aspects. You’ll examine architectural characteristics, architectural patterns, component determination, diagramming and presenting architecture, evolutionary architecture, and many other topics.
Authors Neal Ford and Mark Richards help you learn through examples in a variety of popular programming languages, such as Java, C#, JavaScript, and others. You’ll focus on architecture principles with examples that apply across all technology stacks.
Using Asyncio in Python 豆瓣
作者: Caleb Hattingh O'Reilly Media, Inc. 2020 - 2
If you’re among the Python developers put off by Asyncio’s complexity, it’s time to take another look. Asyncio is complicated because it aims to solve problems in concurrent network programming for both framework developers and end-user developers like you. The features you need to consider are a small subset of the whole Asyncio API, but picking out the right features is the tricky part. That’s where this practical book comes in.
Veteran Python developer Caleb Hattingh helps end-user developers gain a basic understanding of Asyncio’s building blocks—enough to get you started writing simple event-based programs. You’ll learn why Asyncio offers a safer alternative to preemptive multitasking (threading) and how this API provides a simple way to support thousands of simultaneous socket connections.
Get a critical comparison of Asyncio and threading for concurrent network programming
Take an Asyncio walkthrough, including a quickstart guide to help you hit the ground looping with event-based programming
Learn the difference between Asyncio features for end-user developers and those for framework developers
Understand Asyncio’s new async/await language syntax, including coroutines and task and future APIs
Get detailed case studies (with code) of some popular Asyncio-compatible third-party libraries
37 Things One Architect Knows About IT Transformation 豆瓣
作者: Gregor Hohpe CreateSpace Independent Publishing Platform 2016 - 8
Many large enterprises are feeling pressure from the rapid digitalization of the world: digital disruptors attack unexpectedly with brand-new business models; the "FaceBook generation" has dramatically different user expectations; and a whole slew of new technologies has become available to everyone with a credit card. This is tough stuff for enterprises that have been, and still are, very successful, but are built around traditional technology and organizational structures. "Turning the tanker", as the need to transform is often described, has become a board room-level topic in many traditional enterprises. Not as easily done as said.
Chief IT Architects and CTOs play a key role in such a digital transformation endeavor. They combine the technical, communication, and organizational skill to understand how a tech stack refresh can actually benefit the business, what "being agile" and "DevOps" really mean, and what technology infrastructure is needed to assure quality while moving faster. Their job is not an easy one, though: they must maneuver in an organization where IT is often still seen as a cost center, where operations means "run" as opposed to "change", and where middle-aged middle-management has become cozy neither understanding the business strategy nor the underlying technology. It's no surprise then that IT architects have become some of the most sought-after IT professionals around the globe.
This book aims to equip IT architects with the skills necessary to become effective not just in systems architecture, but also in shaping and driving the necessary transformation of large-scale IT departments. In today’s world, technical transformation and organizational transformation have become inseparable.
Organized into 37 episodes, this book explains:
The role and qualities of an architect in a large enterprise
How to think about architecture at enterprise scale
How to communicate to a variety of stakeholders
Organizational structures and systems
How to transform traditional organizations
Armed with these insights, architects and CTOs will be able to ride the Architect Elevator up and down the organization to instill lasting change.
Reactive Systems Explained 豆瓣
作者: Peter Gollmar / Grace Jansen O'Reilly Media, Inc. 2020 - 2
Enterprises are busy transforming themselves by building applications capable of handling massive scale, enormous amounts of data, or both. The good news? There’s an unprecedented choice of open source technologies available to pursue these next-generation applications. In this report, enterprise architects and tech leads will examine the factors driving so many organizations to build reactive systems for cloud native development.
Grace Jansen and Peter Gollmar from IBM examine how the reactive architectural style enables microservices-driven applications to react better to their surroundings and to each other. You’ll learn the key patterns of reactive systems and draw distinctions between implementations offered by various toolkits and frameworks.
Learn how reactive systems handle web and mobile commerce and data-driven decisions
Understand what makes reactive systems reactive: Which tools or implementations do you need to attain reactivity?
Explore concurrency and parallelism with multithreading, the reactor pattern, the multireactor pattern, and the actor model
Learn how reactive works with your enterprise application and understand when a reactive system is the right choice
Get Your Hands Dirty on Clean Architecture 豆瓣
作者: Tom Hombergs Packt Publishing 2019 - 9
Gain insight into how hexagonal architecture can help to keep the cost of development low over the complete lifetime of an application
Key Features
Explore ways to make your software flexible, extensible, and adaptable
Learn new concepts that you can easily blend with your own software development style
Develop the mindset of building maintainable solutions instead of taking shortcuts
Book Description
We would all like to build software architecture that yields adaptable and flexible software with low development costs. But, unreasonable deadlines and shortcuts make it very hard to create such an architecture.
Get Your Hands Dirty on Clean Architecture starts with a discussion about the conventional layered architecture style and its disadvantages. It also talks about the advantages of the domain-centric architecture styles of Robert C. Martin's Clean Architecture and Alistair Cockburn's Hexagonal Architecture. Then, the book dives into hands-on chapters that show you how to manifest a hexagonal architecture in actual code. You'll learn in detail about different mapping strategies between the layers of a hexagonal architecture and see how to assemble the architecture elements into an application. The later chapters demonstrate how to enforce architecture boundaries. You'll also learn what shortcuts produce what types of technical debt and how, sometimes, it is a good idea to willingly take on those debts.
After reading this book, you'll have all the knowledge you need to create applications using the hexagonal architecture style of web development.
What you will learn
Identify potential shortcomings of using a layered architecture
Apply methods to enforce architecture boundaries
Find out how potential shortcuts can affect the software architecture
Produce arguments for when to use which style of architecture
Structure your code according to the architecture
Apply various types of tests that will cover each element of the architecture
Who this book is for
This book is for you if you care about the architecture of the software you are building. To get the most out of this book, you must have some experience with web development. The code examples in this book are in Java. If you are not a Java programmer but can read object-oriented code in other languages, you will be fine. In the few places where Java or framework specifics are needed, they are thoroughly explained.
The Software Architect Elevator 豆瓣 Goodreads
作者: Gregor Hohpe O'Reilly Media 2020 - 3 其它标题: The Software Architect Elevator: Redefining the Architect's Role in the Digital Enterprise
As the digital economy changes the rules of the game for enterprises, it’s also changing the role of architects. In addition to making technical decisions, architects can help change the organization’s structure and processes to support this transition. To do that, architects need to take the express elevator from the engine room to the penthouse, where business strategy resides.
Brimming with anecdotes from actual IT transformations, this book prepares software architects, senior developers, and other IT professionals for a more complex but rewarding role in the enterprise.
This book is ideal for:
Architects and senior developers looking to shape the company’s technology direction or assist in an organizational transformation
Enterprise architects and senior technologists looking for practical advice on how to navigate technical and organizational topics
CTOs and senior technical architects who want to learn what’s worked and what hasn’t in large-scale architecture and transformation
IT managers seeking to understand how architecture can support their technical transformation agenda
Practices of an Agile Developer 豆瓣
作者: [美] Venkat Subramaniam / [美] Andy Hunt Oreilly & Associates Inc 2006 - 4
Want to be a better developer? This books collects the personal habits, ideas, and approaches of successful agile software developers and presents them in a series of short, easy-to-digest tips. This isn't academic fluff; follow these ideas and you'll show yourself, your teammates, and your managers real results. These are the proven and effective agile practices that will make you a better developer.
This book will help you improve five areas of your career:
The Development Process
What to Do While Coding
Developer Attitudes
Project and Team Management
Iterative and Incremental Learning
These practices provide guidelines that will help you succeed in delivering and meeting your user's expectations, even if the domain is unfamiliar. You'll be able to keep normal project pressure from turning into disastrous stress while writing code, and see how to effectively coordinate mentors, team leads, and developers in harmony.
You can learn all this stuff the hard way, but this book can save you time and pain. Read it, and you'll be a better developer.
Clean Architecture 豆瓣 Goodreads
作者: [美国] Robert C·Martin Prentice Hall 2017 - 9
Practical Software Architecture Solutions from the Legendary Robert C. Martin (“Uncle Bob”)
By applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system. Now, building upon the success of his best-selling books Clean Code and The Clean Coder, legendary software craftsman Robert C. Martin (“Uncle Bob”) reveals those rules and helps you apply them.
Martin’s Clean Architecture doesn’t merely present options. Drawing on over a half-century of experience in software environments of every imaginable type, Martin tells you what choices to make and why they are critical to your success. As you’ve come to expect from Uncle Bob, this book is packed with direct, no-nonsense solutions for the real challenges you’ll face—the ones that will make or break your projects.
Learn what software architects need to achieve—and core disciplines and practices for achieving it
Master essential software design principles for addressing function, component separation, and data management
See how programming paradigms impose discipline by restricting what developers can do
Understand what’s critically important and what’s merely a “detail”
Implement optimal, high-level structures for web, database, thick-client, console, and embedded applications
Define appropriate boundaries and layers, and organize components and services
See why designs and architectures go wrong, and how to prevent (or fix) these failures
Clean Architecture is essential reading for every current or aspiring software architect, systems analyst, system designer, and software manager—and for every programmer who must execute someone else’s designs.
Register your product at informit.com/register for convenient access to downloads, updates, and/or corrections as they become available.
Practical AI on the Google Cloud Platform 豆瓣
作者: Micheal Lanham O'Reilly Media, Inc. 2020
AI is complicated, but cloud providers have stepped in to make it easier, offering free (or affordable) state-of-the-art models and training tools to get you started. In this book, AI novices will learn how to use Google’s AI-powered cloud services to do everything from analyzing text, images, and video to creating a chatbot.
Author Micheal Lanham takes you step-by-step through building models, training them, and then expanding on them to accomplish increasingly complex tasks. If you have a good grasp of math and the Python language, this book will get you up and running with Google Cloud Platform, whether you’re looking to build a simple business AI application or an AI assistant.
Learn key concepts for data science, machine learning, and deep learning
Explore tools like Video AI, AutoML Tables, the Cloud Inference API, the Recommendations AI API, and BigQuery ML
Perform image recognition using CNNs, transfer learning, and GANs
Build a simple language processor using embeddings, RNNs, and Bidirectional Encoder
Representations from Transformers (BERT)
Use Dialogflow to build a chatbot
Analyze video with automatic video indexing, face detection, and TF Hub
Programming Rust, 2nd Edition 豆瓣 谷歌图书
作者: Leonora F.S. Tindall / Jason Orendorff O'Reilly Media, Inc. 2021 - 5
The Rust programming language offers the rare and valuable combination of statically verified memory safety and low-level control. Imagine C++ but without dangling pointers, null pointer dereferences, leaks, or buffer overruns. With this practical guide, systems programmers will understand Rust’s rules clearly and economically. You’ll learn how to express programs that Rust can prove are free of a broad class of common errors.
Rust brings the benefits of an expressive modern type system to systems programming. Authors Jim Blandy and Jason Orendorff demonstrate how Rust’s features put programmers in control over memory consumption and processor use, combining predictable performance with memory safety and trustworthy concurrency.
You’ll learn:
How to write fast, safe, concurrent programs in Rust
Rust’s rules for managing memory efficiently, including ownership, borrowing, moves, and lifetimes
How to design interfaces that fit well into the Rust ecosystem
Rust’s all-purpose Cargo tool for building, testing, and managing Rust packages
High-level features like traits, generics, closures, and iterators that make Rust productive and flexible
Istio Explained 豆瓣
作者: Daniel Berg / Lin Sun O'Reilly Media, Inc. 2020 - 2
Microservices can be complicated and difficult to manage, but there’s a ready solution to this problem. With this practical guide, Lin Sun and Daniel Berg explain how service meshes can help you control interactions between the services in your application. You’ll explore what a service mesh is and how it works using Istio, an open source service mesh for managing and securing microservices.
Ideal for application developers, DevOps engineers, SecOps engineers, and others responsible for the delivery of containers and microservices, this guide takes an incremental adoption approach with Istio so you can adopt various features gradually and still reap the benefits. You’ll learn Istio’s architecture and explore its capabilities for observing microservices and dealing with their interactions.
Learn how a service mesh manages microservices and helps you innovate faster
Explore Istio’s observability, traffic management, and security capabilities
Add services to a mesh incrementally in a brownfield application
Use Istio to manage secure communication between services
Control how traffic flows into and out of the mesh and between services
On Java 8 豆瓣
作者: Bruce Eckel MindView LLC 2017 - 6
NOTE: Although the book refers to the web site www.OnJava8.com, that site is not yet live.
The examples are freely available at https://github.com/BruceEckel/OnJava8-Examples.
On Java 8 is only available as an eBook, and only via Google Play Books. Any other source or delivery mechanism is illegitimate.
This book is far too large to publish as a single print volume, and my intent has always been to only publish it as an eBook. Color syntax highlighting for code listings is, alone, worth the cost of admission. Searchability, font resizing or text-to-voice for the vision-impaired, the fact you can always keep it with you---there are so many benefits to eBooks it's hard to name them all.
Anyone buying this book needs a computer to run the programs and write code, and the eBook reads nicely on a computer (I was also surprised to discover that it even reads tolerably well on a phone). However, the best reading experience is on a tablet computer. Tablets are inexpensive enough you can now buy one for less than you'd pay for an equivalent print version of this book (which, note, does not exist). It's much easier to read a tablet in bed (for example) than trying to manage the pages of a physical book, especially one this big. When working at your computer, you don't have to hold the pages open when using a tablet at your side. It might feel different at first, but I think you'll find the benefits far outweigh the discomfort of adapting.
I've done the research, and Google Play Books provides a very nice reading experience on every platform, including Linux and iOS devices. As an experiment, I've decided to try publishing exclusively through Google Books.
The free sample includes a complete table of contents.
Java SE 11 Programmer I Certification Guide 豆瓣
作者: Mala Gupta Manning Publications 2021 - 2
OCP Java SE 11 Programmer I Certification Guide prepares you for the 1Z0-815 with complete and thorough coverage of the exam topics. Each chapter starts with a list of exam objectives mapped to section numbers, followed by sample questions and exercises that reinforce key concepts. Complex topics are explained through analogies, visual aids, and comic strips that you can easily remember under exam conditions. Specially designed “Twist in the Tale” exercises help you reevaluate and modify code to answer wild card exam questions you’ve not previously prepared for. You’ll also get the scoop on common exam mistakes and ways to avoid traps and pitfalls. With this book as your study guide, you’ll be ready and confident on test day.
what's inside
Complete coverage of the OCP Java SE 11 Programmer I exam
Hands-on coding exercises
Behind the scenes with classes in Java APIs
How to avoid built-in traps and pitfalls
Sample questions written in the exam format
2020年2月21日 想读 02/21/2021在何处做什么呢? 实现自己的理想了吗?
软件工程
Java Cookbook, 4th Edition 豆瓣
作者: Ian F. Darwin O'Reilly Media 2020 - 5
Java continues to grow and evolve, and this Cookbook continues to evolve in tandem. This book helps to get you up to speed right away with hundreds of hands-on recipes across a broad range of Java topics. You’ll learn useful techniques for everything from string handling and functional programming to network communication.
Each recipe includes self-contained code solutions that you can freely use, along with a discussion of how and why they work. If you are familiar with the basics of the Java language, this cookbook will bolster your knowledge of the language in general and its many recent changes and how to apply them in your day-to-day development.
Recipes include:
Methods for compiling, running, and debugging
“Packaging” Java classes and building applications
Manipulating, comparing, and rearranging text
Regular expressions for string- and pattern-matching
Handling numbers, dates, and times
Structuring data with collections, arrays, and other types
Object-oriented and functional programming techniques
Input/Output, Directory and filesystem operations
Network programming on both client and server
Processing JSON for data interchange
Multithreading and concurrency
Using Java in Big Data applications
Interfacing Java with other languages
The 4th Edition of this book has been updated to cover changes through Java 12 and includes new recipes for Big Data and data science.
Java Network Programming 豆瓣
作者: Elliotte Rusty Harold O'Reilly Media 2004 - 10
The new third edition of this highly regarded introduction to Java networking programming has been thoroughly revised to cover all of the 100+ significant updates to Java Developers Kit (JDK) 1.5. It is a clear, complete introduction to developing network programs (both applets and applications) using Java, covering everything from networking fundamentals to remote method invocation (RMI). Java Network Programming, 3rd Edition includes chapters on TCP and UDP sockets, multicasting protocol and content handlers, servlets, multithreaded network programming, I/O, HTML parsing and display, the Java Mail API, and the Java Secure Sockets Extension. There's also significant information on the New I/O API that was developed in large part because of the needs of network programmers. This invaluable book is a complete, single source guide to writing sophisticated network applications. Packed with useful examples, it is the essential resource for any serious Java developer.
2020年2月12日 在读
果然和面试时说的一样, experienced SWE就该对见过的东西非常熟悉, 不然就代表态度不行.
分布式的基础还是Network.
Networking很容易判断出经验/能力. 快速定位api call失败的原因: 到了TCP层? DNS? whitelist?
Java 软件工程