软件工程
Pragmatic Thinking and Learning 豆瓣
作者: Andy Hunt Pragmatic Bookshelf 2008 - 11
In this title: together we'll journey together through bits of cognitive and neuroscience, learning and behavioral theory; you'll discover some surprising aspects of how our brains work; and, see how you can beat the system to improve your own learning and thinking skills. In this book you'll learn how to: use the Dreyfus Model of Skill Acquisition to become more expert; leverage the architecture of the brain to strengthen different thinking modes; avoid common 'known bugs' in your mind; learn more deliberately and more effectively; and, manage knowledge more efficiently. Software development happens in your head. Not in an editor, IDE, or design tool. It's time to take a pragmatic approach to thinking and learning, and start to refactor - and redesign - your brain.
Beyond Legacy Code Goodreads 豆瓣
作者: David Scott Bernstein Pragmatic Bookshelf 2015 - 8
We're losing tens of billions of dollars a year on broken software, and great new ideas such as agile development and Scrum don't always pay off. But there's hope. The nine software development practices in Beyond Legacy Code are designed to solve the problems facing our industry. Discover why these practices work, not just how they work, and dramatically increase the quality and maintainability of any software project.
These nine practices could save the software industry. Beyond Legacy Code is filled with practical, hands-on advice and a common-sense exploration of why technical practices such as refactoring and test-first development are critical to building maintainable software. Discover how to avoid the pitfalls teams encounter when adopting these practices, and how to dramatically reduce the risk associated with building software--realizing significant savings in both the short and long term. With a deeper understanding of the principles behind the practices, you'll build software that's easier and less costly to maintain and extend.
By adopting these nine key technical practices, you'll learn to say what, why, and for whom before how; build in small batches; integrate continuously; collaborate; create CLEAN code; write the test first; specify behaviors with tests; implement the design last; and refactor legacy code.
Software developers will find hands-on, pragmatic advice for writing higher quality, more maintainable, and bug-free code. Managers, customers, and product owners will gain deeper insight into vital processes. By moving beyond the old-fashioned procedural thinking of the Industrial Revolution, and working together to embrace standards and practices that will advance software development, we can turn the legacy code crisis into a true Information Revolution.
2020年4月12日 在读
Pragmatic Bookshelf 的书都挺短的 (~200), 30min翻完, 挺shallow, 不Pragmatic...
原来CLEAN是这个意思. 需要纲举目张.
计算机科学 软件工程
Practical Security 豆瓣
Pragmatic Bookshelf 2019 - 2
Most security professionals don't have the words "security" or "hacker" in their job title. Instead, as a developer or admin you often have to fit in security alongside your official responsibilities - building and maintaining computer systems. Implement the basics of good security now, and you'll have a solid foundation if you bring in a dedicated security staff later. Identify the weaknesses in your system, and defend against the attacks most likely to compromise your organization, without needing to become a trained security professional.
Computer security is a complex issue. But you don't have to be an expert in all the esoteric details to prevent many common attacks. Attackers are opportunistic and won't use a complex attack when a simple one will do. You can get a lot of benefit without too much complexity, by putting systems and processes in place that ensure you aren't making the obvious mistakes. Secure your systems better, with simple (though not always easy) practices.
Plan to patch often to improve your security posture. Identify the most common software vulnerabilities, so you can avoid them when writing software. Discover cryptography - how it works, how easy it is to get wrong, and how to get it right. Configure your Windows computers securely. Defend your organization against phishing attacks with training and technical defenses.
Make simple changes to harden your system against attackers.
2020年4月12日 已读
太简短的介绍了... 既没知识点, 也不hands-on.
今天问题就出在omniai-ui-server的UIFilter: CSRF in header is not match CSRF in cookie.
计算机科学 2019 软件工程
The Passionate Programmer 豆瓣 Goodreads
The Passionate Programmer: Creating a Remarkable Career in Software Development
作者: Chad Fowler Pragmatic Bookshelf 2009 - 6
Success in today's IT environment requires you to view your career as a business endeavor. In this book, you'll learn how to become an entrepreneur, driving your career in the direction of your choosing. You'll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skills themselves are a product. The choices you make about which technologies to focus on and which business domains to master have at least as much impact on your success as your technical knowledge itself; don't let those choices be accidental. We'll walk through all aspects of the decision-making process, so you can ensure that you're investing your time and energy in the right areas. You'll develop a structured plan for keeping your mind engaged and your skills fresh. You'll learn how to assess your skills in terms of where they fit on the value chain, driving you away from commodity skills and toward those that are in high demand. Through a mix of high-level, thought-provoking essays and tactical 'Act on It' sections, you will come away with concrete plans you can put into action immediately. You'll also get a chance to read the perspectives of several highly successful members of our industry from a variety of career paths. As with any product or service, if nobody knows what you're selling, nobody will buy. We'll walk through the often-neglected world of marketing, and you'll create a plan to market yourself both inside your company and to the industry in general. Above all, you'll see how you can set the direction of your career, leading to a more fulfilling and remarkable professional life.
Head First SQL 豆瓣 Goodreads
Head First SQL
作者: Lynn Beighley O'Reilly Media 2007 - 9
Head First SQL is about RDBMS (databases) specifically mySQL (version 5.0 or newer) and includes features of other databases. The book defines a database, demonstrates how to navigate an existing database, and teaches how to create simple and complex databases, as well as how to let a database grow from simple to complex.
Foundational understanding of database construction and navigation is the focus. The target audience is those brand-new to the topic as well as those with an acquaintance with the subject and the need for a greater conceptual understanding of databases.
It focuses on the basics of databases, so the main information should remain pertinent until RMDBS get re-conceived. I think revisions, such as the reprint due out in December, will add to the strength of the book as typos and coding errors will be addressed.
The title accurately describes the contents and the subtitle "A Brain-Friendly Guide" describes the goal of the approach. The only requirements for working with the material are: a computer or access to one, the ability to identify your operating system, familiarity with downloading from the internet (links and instructions are provided in the book and the program mySQL community release is free (download instructions are given for Mac and Windows users, I believe that instructions for Linux are not included with the assumption Linux users can access the mySQL community release page and download the program without a play-by-play)), and the courage to learn a command line window user interface if you don't already know this.
Head First SQL is most useful to those who, like myself, have heard passing references to databases and other than knowing they are important have no grasp of what it is, means, or can do. Also, this will be a helpful tool for those who have some of the verbiage, enough to pass at a cocktail party, but who would feel the cold chill of horror if expected to design, construct, and implement a database in conjunction with any of their paid responsibilities.
This is the first book that I have read on the subject of databases and the first computer book that I have been able to finish. So much of the educational information about program x, language y, or application z, depends on a working knowledge of the other two variables. This is a great book for beginners. It talks about data types, it explains null, and then has null explain himself. It tells me the importance of the semicolon at the end. All basic stuff. All stuff that other books take for granted. Many times when I believed I wasn't absorbing anything, along came questions I could answer, a crossword I could complete and match-column-A-with-column-B exercises that demonstrated that I was actually learning much more than than I was giving myself credit for.
It includes illustrations, photos, clean layout, and bite sized pieces of information. All this comes from the goal of allowing both sides of the brain access to the information. It's exactly the kind of approach that I need to reinforce the terms and concepts as well as provide encouraging feedback to keep me progressing through the material. I'm also grateful that it entertains me and keeps me going back to finish the whole thing long after the first blush of excitement has worn away.
Links, to the mySQL program necessary to work with the material, are included in the book as well as a few other links in the appendices. The Head First website is a must in order to link to the forums, newsletter, blog and downloadable files to create various tables used in the book. Head First came out with a web app called Hands On SQL which I would encourage you to try. It won't work with all of the book's material but it is a good-looking tool.
Learning SQL, 3rd Edition 豆瓣
作者: Alan Beaulieu O'Reilly Media 2020 - 3
Updated for the latest database management systems, the third edition of this introductory guide will get you up and running with SQL quickly. Whether you need to write database applications, perform administrative tasks, or generate reports, Learning SQL will help you easily master all the SQL fundamentals.
Each chapter presents a self-contained lesson on a key SQL concept or technique, with numerous illustrations and annotated examples. Exercises at the end of each chapter let you practice the skills you learn. Knowledge of SQL is a must for interacting with data. With Learning SQL, you'll quickly learn how to put the power and flexibility of this language to work.
Spring Security in Action 豆瓣
作者: Laurentiu Spilca Manning Publications 2021 - 1
Spring Security in Action shows you how to use Spring Security to create applications you can be confident will withstand even the most dedicated attacks. Starting with essential “secure by design” principles, you’ll learn common software vulnerabilities and how to avoid them right from the design stage. Through hands-on projects, including a web application and a microservices architecture, you’ll learn to manage system users, configure secure endpoints, and use, OAuth2 and OpenID Connect for authentication and authorization. As you go, you’ll learn how to adapt Spring Security to different architectures, such as configuring Spring Security for Reactive applications and container-based applications orchestrated with Kubernetes. When you’re done, you’ll have a complete understanding of how to use Spring Security to protect your Java enterprise applications from common threats and attacks.
what's inside
The principles of secure by design
The architecture of Spring Security
Spring Security contracts for password encoding, cryptography, and authentication
Applying Spring Security to different architecture styles
Migrating to AWS, A Manager's Guide 豆瓣
作者: Jeff Armstrong O'Reilly Media, Inc. 2020 - 8
Bring agility, cost savings, and a competitive edge to your business by migrating your IT infrastructure to AWS. Ideal for executive leadership, senior leadership, and engineering and IT managers, this practical book examines the advantages, disadvantages, and common pitfalls possible when moving your operations to the cloud.
Author Jeff Armstrong brings years of practical hands-on experience helping dozens of enterprises make this corporate change. You’ll explore real-world examples of how organizations have made—or attempted to make—this wide-ranging transition. With this guide, you’ll be better prepared to objectively evaluate your migration before, during, and after the process so you can ensure success.
By the end of this book, you’ll understand:
Benefits and drawbacks of migrating to AWS
Risks to your business and technology
Methods for properly accessing workloads
How to build a business case for this move
How to create a solid migration plan
How to identify low hanging fruit for refactoring
SRE with Java Microservices 豆瓣
作者: Jon Schneider O'Reilly Media, Inc. 2020
In a microservices architecture, the whole is indeed greater than the sum of its parts. But in practice, individual microservices can inadvertently impact others and alter the end user experience. Effective microservices architectures require standardization on an organizational level with the help of a platform engineering team.
This practical book provides a series of progressive steps that platform engineers can apply technically and organizationally to achieve highly resilient Java applications. Author Jon Schneider covers many effective SRE practices from companies leading the way in microservices adoption. You’ll examine several patterns that were created after much trial and error in recent years, complete with Java code examples.
Chapters are organized according to specific patterns, including:
Application Metrics: Availability, debuggability, and Micrometer
Debugging with observability: Three pillars of observability; components of a distributed trace
Charting and alerting: Building effective charts; KPIs for Java microservices
Safe multi-cloud delivery: Automated canary analysis
Source code observability: The problem of dependencies; API utilization
Traffic management: Concurrency of systems; platform, gateway, and client-side load balancing
2020年4月6日 在读 都是要学习的, Q2就是要move到microservice. 要掌握好. 不然debug没有头绪, 例如spring gateway websocket 504 gateway timeout issue.
软件工程 计算机科学 2020 分布式
Flow Architectures 豆瓣
作者: James Urquhart O'Reilly Media, Inc. 2020 - 9
Dominated by streaming data and events, the next generation of software development optimizes not only how technology interacts but also how businesses integrate with one another to meet customer needs. This phenomenon, called flow, consists of patterns and standards that determine which activity and related data is communicated between parties over the internet.
This book explores the critical implications of that evolution: What happens when event and data stream standards help you discover new activity sources to enhance existing businesses or drive new markets? What technologies and architectural patterns can position your company for opportunities enabled by flow?
James Urquhart, global field CTO at Pivotal Cloud Foundry, guides enterprise architects, software developers, and product managers through:
The business imperative for flow
Why worldwide flow is likely to happen
The factors that will enable flow in next 5–10 years
What you can do to take advantage of worldwide flow as it evolves
A Wardley map exploration that shows why worldwide flow is predictable
Microservices Security in Action 豆瓣
作者: Prabath Siriwardena / Nuwan Dias Manning Publications 2020 - 4
Microservices Security in Action teaches you how to secure your microservices applications code and infrastructure. After a straightforward introduction to the challenges of microservices security, you’ll learn fundamentals to secure both the application perimeter and service-to-service communication. Following a hands-on example, you’ll explore how to deploy and secure microservices behind an API gateway as well as how to access microservices accessed by a single-page application (SPA).
Along the way, authors and software security experts Prabath Siriwardena and Nuwan Dias shine a light on important concepts like throttling, analytics gathering, access control at the API gateway, and microservice-to-microservice communication. You’ll also discover how to securely deploy microservices using state-of-the-art technologies including Kubernetes, Docker, and the Istio service mesh. Lots of hands-on exercises secure your learning as you go, and this straightforward guide wraps up with a security process review and best practices. When you’re finished reading, you’ll be planning, designing, and implementing microservices applications with the priceless confidence that comes with knowing they’re secure!
what's inside
Key microservices security fundamentals
Securing service-to-service communication with mTLS and JWT
Deploying and securing microservices with Docker
Using Kubernetes security
Securing event-driven microservices
Using the Istio Service Mesh
Applying access control policies with OPA
Microservices security best practices
Building a single-page application to talk to microservices
Static code analysis, dynamic testing, and automatic security testing
The Design of Web APIs 豆瓣
作者: Arnaud Lauret Manning Publications 2019 - 10
The Design of Web APIs introduces you to the challenging and creative world of API design. In this experience-driven guide, you'll learn to think like an API designer, embracing effective practices for requirements gathering, blending business and technical goals, and adopting a consumer-first mindset. You'll master the lifecycle of web API design, including the all-important secure-by-design approach. This book teaches principles that can be applied in any style of API. Most examples are illustrated using REST and the OpenAPI specification.
what's inside
Characteristics of a well-designed API
Explore the full API design lifecycle
Designing user-oriented APIs
Secure APIs by design
Evolving existing APIs
Validating your API designs
Official Google Cloud Certified Associate Cloud Engineer Study Guide 豆瓣
作者: Dan Sullivan Sybex 2019 - 4
The Official Google Cloud Certified Associate Cloud Engineer Study Guide, provides everything you need to prepare for this important exam and master the skills necessary to land that coveted Google Cloud Engineering certification. Beginning with a pre-book assessment quiz to evaluate what you know before you begin, each chapter features exam objectives and review questions, plus the online learning environment includes additional complete practice tests. Written by Dan Sullivan, a popular and experienced online course author for machine learning, big data, and Cloud topics, Official Google Cloud Certified Associate Cloud Engineer Study Guide is your ace in the hole for deploying and managing Google Cloud Services.
Select the right Google service from the various choices based on the application to be built
Compute with Cloud VMs and managing VMs
Plan and deploying storage
Network and configure access and security
Google Cloud Platform is a leading public cloud that provides its users to many of the same software, hardware, and networking infrastructure used to power Google services. Businesses, organizations, and individuals can launch servers in minutes, store petabytes of data, and implement global virtual clouds with the Google Cloud Platform. Certified Associate Cloud Engineers have demonstrated the knowledge and skills needed to deploy and operate infrastructure, services, and networks in the Google Cloud. This exam guide is designed to help you understand the Google Cloud Platform in depth so that you can meet the needs of those operating resources in the Google Cloud.
Distributed Services with Go 豆瓣
作者: Travis Jeffery Pragmatic Bookshelf 2020 - 10
Take your Go skills to the next level by learning how to design, develop, and deploy a distributed service. Start from the bare essentials of storage handling, then work your way through networking a client and server, and finally to distributing server instances, deployment, and testing. All this will make coding in your day job or side projects easier, faster, and more fun.
Lay out your applications and libraries to be modular and easy to maintain. Build networked, secure clients and servers with gRPC. Monitor your applications with metrics, logs, and traces to make them debuggable and reliable. Test and benchmark your applications to ensure they’re correct and fast. Build your own distributed services with service discovery and consensus. Write CLIs to configure your applications. Deploy applications to the cloud with Kubernetes and manage them with your own Kubernetes Operator.
Dive into writing Go and join the hundreds of thousands who are using it to build software for the real world.
PostgreSQL Configuration: Best Practices for Performance and Security 豆瓣
作者: Baji Shaik Apress 2020 - 3
Obtain all the skills you need to configure and manage a PostgreSQL database. In this book you will begin by installing and configuring PostgreSQL on a server by focusing on system-level parameter settings before installation. You will also look at key post-installation steps to avoid issues in the future. The basic configuration of PostgreSQL is tuned for compatibility rather than performance. Keeping this in mind, you will fine-tune your PostgreSQL parameters based on your environment and application behavior. You will then get tips to improve database monitoring and maintenance followed by database security for handling sensitive data in PostgreSQL.
Every system containing valuable data needs to be backed-up regularly. PostgreSQL follows a simple back-up procedure and provides fundamental approaches to back up your data. You will go through these approaches and choose the right one based on your environment. Running your application with limited resources can be tricky. To achieve this you will implement a pooling mechanism for your PostgreSQL instances to connect to other databases. Finally, you will take a look at some basic errors faced while working with PostgreSQL and learn to resolve them in the quickest manner.
What You Will Learn
Configure PostgreSQL for performance
Monitor and maintain PostgreSQL instances
Implement a backup strategy for your data
Resolve errors faced while using PostgreSQL
Who This Book Is For
Readers with basic knowledge of PostgreSQL who wish to implement key
PostgreSQL.12.High.Availability.Cookbook 豆瓣
作者: Shaun Thomas Packt Publishing 2020 - 2
Key Features
Newly updated edition, covering the latest PostgreSQL 12 features with hands-on industry-driven recipes
Create a PostgreSQL cluster that stays online even when disaster strikes
Learn how to avoid costly downtime and data loss that can ruin your business
Book Description
Databases are nothing without the data they store. In the event of an outage or technical catastrophe, immediate recovery is essential. This updated edition ensures that you will learn the important concepts related to node architecture design, as well as techniques such as using repmgr for failover automation. From cluster layout and hardware selection to software stacks and horizontal scalability, this PostgreSQL cookbook will help you build a PostgreSQL cluster that will survive crashes, resist data corruption, and grow smoothly with customer demand.
You’ll start by understanding how to plan a PostgreSQL database architecture that is resistant to outages and scalable, as it is the scaffolding on which everything rests. With the bedrock established, you'll cover the topics that PostgreSQL database administrators need to know to manage a highly available cluster. This includes configuration, troubleshooting, monitoring and alerting, backups through proxies, failover automation, and other considerations that are essential for a healthy PostgreSQL cluster. Later, you’ll learn to use multi-master replication to maximize server availability. Later chapters will guide you through managing major version upgrades without downtime.
By the end of this book, you’ll have learned how to build an efficient and adaptive PostgreSQL 12 database cluster.
What you will learn
Understand how to protect data with PostgreSQL replication tools
Focus on hardware planning to ensure that your database runs efficiently
Reduce database resource contention with connection pooling
Monitor and visualize cluster activity with Nagios and the TIG (Telegraf, InfluxDB, Grafana) stack
Construct a robust software stack that can detect and avert outages
Use multi-master to achieve an enduring PostgreSQL cluster
Who this book is for
This book is for Postgres administrators and developers who are looking to build and maintain a highly reliable PostgreSQL cluster. Although knowledge of the new features of PostgreSQL 12 is not required, a basic understanding of PostgreSQL administration is expected.
Open Life 豆瓣
作者: Henrik Ingo Lulu.com 2006 - 8
The hot topics in information technology right now are Linux and Open Source. But what does Open Source offer those, who may not see their computer as a matter of life and death? Open Life: The Philosophy of Open Source spotlights the people, businesses, values and practices of the Open Source world. Divided into four parts, Open Life starts rather philosophically by comparing the concepts of openness and mean-spiritedness highlighting the latter's devious impact on our life. Part Two explores the Open Source culture from the time Linus Torvalds began writing code for his new operating system, how he behaves as a leader, and stating the virtues of a programmer. Part Three reviews some Open Source business models and evaluates both their economic and ethical sustainability. Leaving the world of software behind, Part Four considers how open business models can be applied in fields as diverse as mining, literature, and fashion design.
Operating Systems: Three Easy Pieces 豆瓣 Goodreads
作者: Remzi H Arpaci-Dusseau / Andrea C Arpaci-Dusseau Arpaci-Dusseau Books, LLC 2018 - 9
OSTEP ("oh step"), or the "the comet book", represents the culmination of years of teaching intro to operating systems to both undergraduates and graduates at the University of Wisconsin-Madison Computer Sciences department for nearly 20 years.The book is organized around three concepts fundamental to OS construction: virtualization (of CPU and memory), concurrency (locks and condition variables), and persistence (disks, RAIDS, and file systems).The material, if combined with serious project work and homeworks, will lead students to a deeper understanding and appreciation of modern OSes.The authors, Remzi and Andrea Arpaci-Dusseau, are both professors of Computer Sciences at the University of Wisconsin-Madison. They have been doing research in computer systems for over 20 years, working together since their first graduate operating systems class at U.C. Berkeley in 1993.Since that time, they have published over 100 papers on the performance and reliability of many aspects of modern computer systems, with a special focus on file and storage systems. Their work has been recognized with numerous best-paper awards, and some of their innovations can be found in the Linux and BSD operating systems today.
Fluent Python, 2nd Edition 豆瓣
作者: Luciano Ramalho O'Reilly Media, Inc. 2021 - 1
Python’s simplicity lets you become productive quickly, but often this means you aren’t using everything it has to offer. With the updated edition of this hands-on guide, you’ll learn how to write effective, modern Python 3 code by leveraging its best ideas.
Don’t waste time bending Python to fit patterns you learned in other languages. Discover and apply idiomatic Python 3 features beyond your past experience. Author Luciano Ramalho guides you through Python’s core language features and libraries and teaches you how to make your code shorter, faster, and more readable.
Featuring major updates throughout the book, Fluent Python, second edition, covers:
Special methods: The key to the consistent behavior of Python objects
Data structures: Sequences, dicts, sets, Unicode, and data classes
Functions as objects: First-class functions, related design patterns, and type hints in function declarations
Object-oriented idioms: Composition, inheritance, mixins, interfaces, operator overloading, static typing and protocols
Control flow: Context managers, generators, coroutines, async/await, and thread/process pools
Metaprogramming: Properties, attribute descriptors, class decorators, and new class metaprogramming hooks that are simpler than metaclasses
Quantum Computing: An Applied Approach 豆瓣
作者: Jack D. Hidary Springer 2019 - 8
This book integrates the foundations of quantum computing with a hands-on coding approach to this emerging field; it is the first work to bring these strands together in an updated manner. This work is suitable for both academic coursework and corporate technical training.
This volume comprises three books under one cover: Part I outlines the necessary foundations of quantum computing and quantum circuits. Part II walks through the canon of quantum computing algorithms and provides code on a range of quantum computing methods in current use. Part III covers the mathematical toolkit required to master quantum computing. Additional resources include a table of operators and circuit elements and a companion GitHub site providing code and updates.
Jack D. Hidary is a research scientist in quantum computing and in AI at Alphabet X, formerly Google X.
“Quantum Computing will change our world in unexpected ways. Everything technology leaders, engineers and graduate students need is in this book including the methods and hands-on code to program on this novel platform.”
―Eric Schmidt, PhD, Former Chairman and CEO of Google; Founder, Innovation Endeavors
2020年3月11日 想读 Announcing TensorFlow Quantum: An Open Source Library for Quantum Machine Learning
Monday, March 9, 2020
Posted by Alan Ho, Product Lead and Masoud Mohseni, Technical Lead, Google Research

“Nature isn’t classical, damnit, so if you want to make a simulation of nature, you’d better make it quantum mechanical.” — Physicist Richard Feynman
计算机科学 2019 软件工程