软件工程
Go语言编程之旅:一起用Go做项目 豆瓣
作者: 陈剑煜 / 徐新华 电子工业出版社 2020 - 6
《Go语言编程之旅:一起用Go做项目》共分为6章,分别是命令行应用、HTTP应用、RPC应用、WebSocket 应用、进程内缓存和 Go语言中的大杀器,其中前5章是Go语言开发中最常见的项目类型。
《Go语言编程之旅:一起用Go做项目》对项目开发、细节分析、运行时分析等核心内容进行了较为深入的剖析,提供了相对完整的项目实践经验。在项目迭代过程中,难免会遇到问题,因此本书针对Go语言的大杀器(分析工具)及常见问题进行了全面讲解,帮助读者对各类问题进行排查。
本书适合有一定Go语言基础的读者以及相关开发人员阅读。
2020年10月15日 在读
微信读书ing go夜读是很好的tg和YouTuber 非常推荐 6个实例学习go的方方面面 而且是1.14版本
2020 软件工程
深入分布式缓存:从原理到实践 豆瓣
作者: 于君泽 / 曹洪伟 2017
这是国内首本从大型互联网系统的应用角度探讨分布式缓存的书籍,包含了原理、框架、架构、案例等多方面的视角。
互联网系统随着容量需求的陡增,许多看似简单的存储类场景都面临着巨大的容量和稳定性风险,而其中的大部分都可以通过对缓存的合理使用来规避。读者从对本书的阅读当中,将会获得应对这些问题的经验,也会对分布式缓存有一个体系化的认识。
本书内容共分为三个部分,按照从理论到实现,再到实践的思路撰写。
首先介绍分布式缓存的背景知识,对本书“分布式”和“缓存”这两个关键词进行了全面的综述,作为后续章节叙述的基础;
第二部分介绍业界主流的缓存,关注其原理与实现,囊括了Ehcache、Memcached、Redis、tair、EVCache、Aerospike等六个缓存或类缓存系统;
最后一部分讨论缓存在互联网系统中的实践,从广告、社交、新闻、电商、营销等五类典型的互联网应用入手,分析它们面临的性能稳定性问题以及如何利用分布式缓存解决这些问题
2020年10月14日 在读
最后面的事例可以看看 做面试用 timelime feed的schema和cache怎么用
分布式 软件工程
Java并发实现原理:JDK源码剖析 豆瓣
作者: 余春龙 电子工业出版社 2020 - 4
《Java并发实现原理:JDK源码剖析》全面而系统地剖析了Java Concurrent包中的每一个部分,对并发的实现原理进行了深刻的探讨。全书分为8章,第1章从最基础的多线程知识讲起,理清多线程中容易误解的知识点,探究背后的原理,包括内存重排序、happen-before、内存屏障等;第2~8章,从简单到复杂,逐个剖析Concurrent包的每个部分,包括原子类、锁、同步工具类、并发容器、线程池、ForkJoinPool、CompletableFuture共7个部分。本书遵循层层递进的逻辑,后一章建立在前一章的知识点基础之上,建议读者由浅入深,逐步深入阅读。
《Java并发实现原理:JDK源码剖析》适合有一定Java开发经验的工程师、架构师阅读。通过本书,读者可以对多线程编程形成一个“深刻而直观”的认识,而不是再仅仅停留在概念和理论层面。
PostgreSQL实战 豆瓣
作者: 谭峰 张文升 2018 - 1
本书基于PostgreSQL 10编写,重点介绍PostgreSQL的丰富特性以及生产实践运维技巧。全书共18章,分为基础篇、核心篇、进阶篇三部分。基础篇包括第1到4章,主要介绍PostgreSQL基础知识,例如安装、客户端工具、数据类型、SQL高级特性等,为读者阅读核心篇和进阶篇做好准备;核心篇包括第5到9章,主要介绍PostgreSQL核心内容,例如体系结构、并行查询、事务与并发控制、分区表、NoSQL特性等;进阶篇包括第10到18章,主要介绍PostgreSQL进阶内容,例如性能优化、物理复制、逻辑复制、备份与恢复、高可用、版本升级、Oracle数据库迁移PostgreSQL实战、PostGIS等。
Systems Performance 2nd Edition 豆瓣
作者: Brendan Gregg Prentice 2020
Operating system performance analysis and tuning leads to a better end-user experience and lower costs, especially for cloud computing environments that pay by the OS instance. Systems Performance, 2nd Edition covers concepts, strategy, tools and tuning for Unix operating systems, with a focus on those that are Linux- and Solaris-based.
Go语言高级编程 豆瓣
6.0 (5 个评分) 作者: 柴树杉 / 曹春晖 人民邮电出版社 2019 - 7
本书从实践出发讲解Go语言编程的进阶知识。本书共6章,第1章简单回顾Go语言的发展历史;第2章和第3章系统介绍CGO编程和Go汇编语言的用法;第4章对RPC和Protobuf技术进行深入介绍,并讲述如何打造一个自己的RPC系统;第5章介绍工业级环境的Web系统的设计和相关技术;第6章介绍Go语言在分布式领域的一些编程技术。
Python Concurrency with asyncio 豆瓣
作者: Matthew Fowler Manning Publications 2021 - 5
Python Concurrency with asyncio teaches you to write concurrent Python code that will boost the speed of your apps and APIs. The book demystifies asynchio's unique single-threaded concurrency model, giving you a behind-the-scenes understanding of the library and its new async/await syntax. Hard-to-grok concurrency topics are broken down into simple flowcharts so you can easily see how your coroutines and tasks are running.
You'll learn to apply asyncio to solve common performance problems, such as batch database jobs, slow web servers, and scaling microservices. All examples you'll build are designed to be usable in the real world, including a clever command line SQL client that can run multiple slow queries at the same time. By the time you're done, you'll even be able to combine asyncio with traditional multiprocessing and multithreading techniques for huge improvements to performance.
what's inside
Use coroutines and tasks alongside async/await syntax to run code concurrently
Build web APIs and make concurrency web requests with aiohttp
Run thousands of SQL queries concurrently
Create a map-reduce job that can process gigabytes of data concurrently
Use threading with asyncio to mix blocking code with asyncio code
2020年10月10日 想读 豆瓣读书功能终于恢复
软件工程
Spring Start Here 谷歌图书 豆瓣
作者: Laurentiu Spilca Manning Publications 2021 - 6 其它标题: Spring Start Here
Spring Quickly teaches you how to build professional-quality applications using Spring and Spring Boot. Author Laurentiu Spilca draws on a decade of Java experience to show you when, where, and why to use Spring in existing and brand-new apps. You'll start with the core components of the framework and then learn how features like Spring Boot simplify the tedious repetitive tasks you face in every project. When you're done, you'll be able to create Spring apps, secure it with authentication and authorization, and move on to the next exciting steps of your Spring journey.
what's inside
Manage application objects with Spring context
Implement data persistence using data sources and transactions
Implement data exchange between applications using REST services
Learn Spring Boot's convention-over-configuration approach
Write unit and integration tests for apps implemented with Spring
Data Modeling 豆瓣
作者: Andy Oppel McGraw-Hill Education 2010 - 1
Essential Skills--Made Easy! Learn how to create data models that allow complex data to be analyzed, manipulated, extracted, and reported upon accurately. Data Modeling: A Beginner's Guide teaches you techniques for gathering business requirements and using them to produce conceptual, logical, and physical database designs. You'll get details on Unified Modeling Language (UML), normalization, incorporating business rules, handling temporal data, and analytical database design. The methods presented in this fast-paced tutorial are applicable to any database management system, regardless of vendor. Designed for Easy Learning Key Skills & Concepts--Chapter-opening lists of specific skills covered in the chapter Ask the expert--Q&A sections filled with bonus information and helpful tips Try This--Hands-on exercises that show you how to apply your skills Notes--Extra information related to the topic being covered Self Tests--Chapter-ending quizzes to test your knowledge Andy Oppel has taught database technology for the University of California Extension for more than 25 years. He is the author of Databases Demystified, SQL Demystified, and Databases: A Beginner's Guide, and the co-author of SQL: A Beginner's Guide, Third Edition, and SQL: The Complete Reference, Third Edition.
The Practitioner's Guide to Graph Data 豆瓣
作者: Matthias Broecheler / Denise Gosnell O'Reilly Media, Inc. 2020 - 4
This book will enable you to apply graph thinking to solve complex problems. If you want to learn how to build architectures for extracting value for your domain’s complex problems, then this book is for you.
You’ll learn how to think about your data as a graph, and how to determine if graph technology is right for your application. The book describes techniques for scalable, real-time, and multimodel architectures that solve complex problems, and shows how companies are successfully applying graph thinking in distributed production environments.
Authors Denise Koessler Gosnell and Matthias Broecheler also introduce the Graph Schema Language, a set of terminology and visual illustrations to normalize how graph practitioners communicate conceptual graph models, graph schema, and graph database design.
Cloud Native Spring in Action 豆瓣
作者: Thomas Vitale Manning Publications 2021 - 6
Cloud Native Spring in Action teaches you effective Spring and Kubernetes cloud development techniques that you can immediately apply to enterprise-grade applications. It takes you step by step from your first idea through to production, showing how cloud native development can add business value at every stage of the software development lifecycle. As you develop an online bookshop, you’ll learn how to build and test a cloud native app with Spring, containerize it with Docker, and deploy it to the public cloud with Kubernetes. Including coverage of security, continuous delivery, and configuration, this hands-on guide is the perfect primer for navigating the increasingly complex cloud landscape.
Data Algorithms with Spark 豆瓣
作者: Mahmoud Parsian O'Reilly Media, Inc. 2021
Apache Spark’s speed, ease of use, sophisticated analytics, and multilanguage support makes practical knowledge of this cluster-computing framework a required skill for data engineers and data scientists. With this hands-on guide, anyone looking for an introduction to Spark will learn practical algorithms and examples for this framework using PySpark.
In each chapter, author Mahmoud Parsian shows you how to solve a data problem with a set of Spark transformations and algorithms. You’ll learn how to tackle problems involving ETL, design patterns, machine learning algorithms, data partitioning, and genomics analysis. Each detailed recipe includes PySpark algorithms using the PySpark driver and shell script.
With this book, you will:
Learn how to select Spark transformations for optimized solutions
Explore powerful transformations and reductions including reduceByKey(), combineByKey(), and mapPartitions()
Understand data partitioning for optimized queries
Design machine learning algorithms including Naive Bayes, linear regression, and logistic regression
Build and apply a model using PySpark design patterns
Apply motif finding algorithms to graph data
Analyze graph data by using the GraphFrames API
Apply PySpark algorithms to clinical and genomics data (such as DNA-Seq)
Mastering Kafka Streams and ksqlDB 豆瓣
作者: Mitch Seymour O'Reilly Media, Inc. 2021 - 3
Working with unbounded and fast-moving data streams has historically been difficult. But with Kafka Streams and ksqlDB, building stream processing applications is easy and fun. This practical guide explores the world of real-time data systems through the lens of these popular technologies and explains important stream processing concepts against a backdrop of interesting business problems.
Mitch Seymour, senior data systems engineer at Mailchimp, introduces you to both Kafka Streams and ksqlDB so that you can choose the best tool for each unique stream processing project. Non-Java developers will find the ksqlDB path to be an especially gentle introduction to stream processing. In this book, you’ll learn:
Basic and advanced uses of Kafka Streams and ksqlDB
How to transform, enrich, and process event streams
How to build both stateless and stateful stream processing applications
The different notions of time and the role it plays in stream processing
How to to build event-driven microservices on top of continuous event streams
Features, operational characteristics, deployment patterns, and configuration tips for both technologies
Network Programming with Go 豆瓣
作者: Adam Woodbeck No Starch Press 2021 - 3
Shows you how to leverage the Go programming language's concurrency and rich standard library to write robust network programs. You'll learn how to write secure, network software in idiomatic Go using the language's latest features.
In Network Programming with Go you'll learn how to leverage Go's concurrency and rich standard library to write robust network programs to create and handle network connections. You'll learn how to craft custom HTTP/2 and SSH servers, build secure network connections with HTTPS, HTTP/2, SSH, TLS, encrypted port forwarding, integrate TLS with free Let's Encrypt certificates, QUIC (HTTP/3), structured logging, and metrics. The author also connects network applications with corresponding cloud offerings such as AWS, Azure, and Google Cloud and shows how to programmatically interact with these providers using their software development kits. Difficult concepts are explained with analogies, diagrams, and examples as you learn to solve common networking problems and write secure software. For professional developers and experienced Go programmers.
Black Hat Go 豆瓣
作者: Tom Steele / Chris Patten No Starch Press 2018 - 3
In Black Hat Go, you'll learn how to write powerful and effective penetration testing tools in Go, a language revered for its speed and scalability. Start off with an introduction to Go fundamentals like data types, control structures, and error handling; then, dive into the deep end of Go’s offensive capabilities as you learn how to:
Write a simple TCP proxy to use concurrency for non-parallel tasks
Create HTTP clients to perform common web interactions
Write a custom DNS server and proxy
Sniff and process packets using the gopacket library
Create extendable tools to expand program functionality
Write your own exploits with the help of insider techniques
Black Hat Go will show you how to build powerful security tools to pen test huge networks, fast.
Java by Comparison 豆瓣
作者: Simon Harrer / Jörg Lenhard Pragmatic Bookshelf 2018 - 4
Write code that's clean, concise, and to the point: code that others will read with pleasure and reuse. Comparing your code to that of expert programmers is a great way to improve your coding skills. Get hands-on advice to level up your coding style through small and understandable examples that compare flawed code to an improved solution. Discover handy tips and tricks, as well as common bugs an experienced Java programmer needs to know. Make your way from a Java novice to a master craftsman. This book is a useful companion for anyone learning to write clean Java code. The authors introduce you to the fundamentals of becoming a software craftsman, by comparing pieces of problematic code with an improved version, to help you to develop a sense for clean code. This unique before-and-after approach teaches you to create clean Java code. Learn to keep your booleans in check, dodge formatting bugs, get rid of magic numbers, and use the right style of iteration. Write informative comments when needed, but avoid them when they are not. Improve the understandability of your code for others by following conventions and naming your objects accurately. Make your programs more robust with intelligent exception handling and learn to assert that everything works as expected using JUnit5 as your testing framework. Impress your peers with an elegant functional programming style and clear-cut object-oriented class design. Writing excellent code isn't just about implementing the functionality. It's about the small important details that make your code more readable, maintainable, flexible, robust, and faster. Java by Comparison teaches you to spot these details and trains you to become a better programmer. What You Need: You need a Java 8 compiler, a text editor, and a fresh mind. That's it.
2020年8月14日 在读
One class name in the Spring framework is famous: Roses are red, leaves are green, but only Java has AbstractSingletonProxyFactoryBean.[33]
2018 软件工程
Web Security for Developers 豆瓣
作者: Malcolm McDonald 译者: Malcolm McDonald No Starch Press, Inc 2020 - 5
Every website today is vulnerable to attack and a compromised website can ruin a company's reputation. Consider the Heartland Payment System data breach of 2008: the Heartland attackers made off with 130 million credit card numbers using a SQL injection attack to gain access to the web-servers that handled payment data.
Web Security for Developers covers everything a web developer needs to know about web security. Readers will learn who attackers are and what they have at their disposal, how the Internet and websites operate, and various ways websites get attacked. Author Malcolm McDonald explores common attacks like SQL injection and cross-site scripting, as well as common vulnerabilities like information leakage. The first half of the book describes security concepts every developer should know; the second half delves into the individual vulnerabilities themselves, offering real-world examples and code samples.
Istio服务网格技术解析与实践 豆瓣
作者: 王夕宁 2020 - 3
本书系统介绍服务网格技术与Istio的开发实战。
全书分为三大篇,共12章。
初级篇(第1~3章):首先介绍Istio和服务网格的基本概念,并快速搭建Istio环境,部署第一个应用程序;然后介绍Istio的整体架构。
中级篇(第4~8章):介绍Istio在东西向、南北向流量方面的路由控制能力,包括流量路由规则、流量镜像等,以及流量治理方面的高级能力,包括流量策略、负载均衡等;还介绍Istio安全方面的能力,以及Istio Mixer的控制与观测能力。
高级篇(第9~12章):介绍Istio的稳定性与运维经验、Istio的定制与扩展、基于Istio的无服务器计算设计等;最后对云原生技术的生态系统进行了介绍和未来展望,并展示了如何实现多云环境下的多集群部署。
2020年8月3日 在读 为啥封面直接用了《database system concept》
软件工程
深入理解Kotlin协程 豆瓣
作者: 霍丙乾 2020 - 6
内容简介
这是一部从工作机制、实现原理、应用场景、使用方法、实践技巧、标准库、框架、应用案例等多个维度全面讲解Kotlin协程的专著,它同时提供了多语言视角,亦可通过本书了解其他语言的协程。
本书作者是腾讯的的高级工程师,是国内Kotlin领域的先驱者和布道者,不仅在工程实践领域积累了丰富的经验,而且在Kotlin开发者社群里有广泛的影响力和号召力。
全书共9章:
第1章从协程的核心应用场景——异步程序设计的思路和关键问题切入,引出Kotlin协程的概念;
第2章首先介绍了协程的概念、分类,然后讲解了Python、Lua、Go等不同语言的协程实现和对比;
第3~4章以 Kotlin 标准库的协程 API 为核心,讲解了简单协程的使用方法和运行机制,以及通过简单协程设计和实现复合协程的思路和方法;
第5~6章以Kotlin的官方协程框架为模板,通过逐步实现其中的核心功能,分析了其中的实现细节和复合协程的运行机制,并对框架的使用做了深入探讨;
第7~8章讲解了协程在Android应用开发和Web服务开发中的应用场景、面临的挑战,以及解决各种常见问题的方法和思路;
第9章探讨了JavaScript 和 Native等非JVM平台对协程的支持情况,以及协程在这些平台上的应用。
Microservices: Up and Running 豆瓣
作者: Irakli Nadareishvili / Ronnie Mitra O'Reilly Media, Inc. 2020 - 11
Microservices architectures offer great benefits: faster change speeds, better scalability and cleaner, evolvable architectures. But, implementing your first Microservices architecture to get those rewards is difficult. How do you quickly educate your team on all the technical details of execution to maximize your chances of success? How do you survive the first year of bringing your microservices implementation to life? How do you improve your execution?
Making the right implementation decisions is difficult and you don't have the luxury of time to find out if the decisions you are making are the right ones. This book offers a prescriptive guide for building a Microservices architecture to combat that uncertainty. Inside, you will find a step-by-step implementation journey mapped out based on the techniques and architectures that have been proven to work for Microservices systems.
This book solves the following problems for users:
What does a "good" microservices project look like?
Are the decisions you're making for your project the "right" ones?
How do you come up with a good microservices design that fits your own context as quickly as possible?
Where should you spend time thinking/designing and where should you just implement "best practices"?
2020年7月22日 在读
Terraform for AWS config, Docker for cloud native, Node.js, Flask, MySQL, Redis for Microservice developing in Chap 10: Flights Management, and Reservations Management.
7 steps of the SEED(s) design methodology that we discussed: Designing Microservices, culminating in writing the code for both of the sample microservices.
计算机科学 2020 软件工程