随笔分类 - 读书笔记
摘要:程序员练级攻略:技术资源集散地 个人技术博客 "Coding Horror" ,这是杰夫·阿特伍德(Jeff Atwood)于 2004 年创办的博客,记录其在软件开发经历中的所思所想、点点滴滴。时至今日,该博客每天都有近 10 万人次的访问量,读者纷纷参与评论,各种观点与智慧在这里不断地激情碰撞。
阅读全文
摘要:程序员练级攻略:UI/UX设计 学习设计新手, "7 steps to become a UI/UX designer" 学习设计的一些原则和套路,如配色、平衡、排版、一致性等。 用户体验的 4D 步骤——Discover、Define、Develop 和 Delivery。 到一些网站上找灵感。
阅读全文
摘要:前端性能优化和框架 前端性能优化 前端性能优化方面的图书。 "Web Performance in Action" ,这本书目前国内没有卖的。以看电子版本,其中有 CSS、图片、字体、JavaScript 性能调优等。 "Designing for Performance" ,这本在线的电子书很不错
阅读全文
摘要:前端基础和底层原理 对于前端的学习和提高,前端的三个最基本的东西 HTML 5、CSS 3 和 JavaScript(ES6)是必须要学好的。这其中有很多很多的技术,比如,CSS 3 引申出来的 Canvas(位图)、SVG(矢量图) 和 WebGL(3D 图),以及 CSS 的各种图形变换可以让你
阅读全文
摘要:机器学习和人工智能 基本原理简介 机器学习的基本原理。机器学习主要有两种方式,一种是监督式学习(Supervised Learning),另一种是非监督式学习(Unsupervised Learning)。下面简单地说一下这两者的不同。 监督式学习(Supervised Learning) 。所谓监
阅读全文
摘要:容器化和自动化运维 Docker 和 Kubernetes,已经是分布式架构和自动化运维的必备工具了。 Docker Docker 的官方介绍 "Docker Overview" 。 Web 在线的 Playground: "Katacoda Docker Playground" 或者是 "Play
阅读全文
摘要:程序员练级攻略:微服务 微服务是分布式系统中最近比较流行的架构模型,也是 SOA 架构的一个进化。 Martin Fowler 的这篇关于微服务架构的文档 "Microservice Architecture" ( "中译版" ),这篇文章说明了微服务的架构与传统架构的不同之处在于,微服务的每个服务
阅读全文
摘要:学习架构指导性的文章和方法论,即分布式架构设计原则。下面是几篇很不错的文章,值得一读。 "Designs, Lessons and Advice from Building Large Distributed Systems" ,Google 杰夫·迪恩(Jeff Dean)2009 年一次演讲的
阅读全文
摘要:经典图书 Distributed Systems for fun and profit ,讲述以亚马逊的 Dynamo、谷歌的 Bigtable 和 MapReduce 等为代表的分布式系统背后的核心思想。 Designing Data Intensive Applications ,这本书深入到
阅读全文
摘要:分布式系统涵盖的面非常广,具体来说涵盖如下几方面: 服务调度 ,涉及服务发现、配置管理、弹性伸缩、故障恢复等。 资源调度 ,涉及对底层资源的调度使用,如计算资源、网络资源和存储资源等。 流量调度 ,涉及路由、负载均衡、流控、熔断等。 数据调度 ,涉及数据复本、数据一致性、分布式事务、分库、分表等。
阅读全文
摘要:对于数据库方向,重点就是两种数据库,一种是以 SQL 为代表的关系型数据库,另一种是以非 SQL 为代表的 NoSQL 数据库。关系型数据库主要有三个:Oracle、MySQL 和 Postgres。 关系型数据库 Oracle,《 "Oracle Database 9i/10g/11g 编程艺术"
阅读全文
摘要:Java 字节码相关 字节码编程,也就是动态修改或是动态生成 Java 字节码。Java 的字节码相当于汇编,其中的一些细节。 "Java Zone: Introduction to Java Bytecode" ,这篇文章图文并茂地讲述了 Java 字节码的一些细节。 "IBM Developer
阅读全文
摘要:异步 I/O 模型 异步 I/O 模型其中的设计模式或是解决方法可以借鉴到分布式架构上来。 史蒂文斯(Stevens)在《 "UNIX 网络编程" 》一书 6.2 I/O Models 中介绍了五种 I/O 模型。 阻塞 I/O 非阻塞 I/O I/O 的多路复用(select 和 poll) 信号
阅读全文
摘要:程序员练级攻略:Linux系统、内存和网络 Linux 系统相关 "Red Hat Enterprise Linux 文档" 。 "Linux Insides" ,GitHub 上的一个开源电子书,其中讲述了 Linux 内核是怎样启动、初始化以及进行管理的。 "LWN’s kernel page"
阅读全文
摘要:程序员练级攻略:软件设计 编程范式 学习编程范式可以让你明白编程的本质和各种语言的编程方式。 Wikipedia: Programming paradigm ,维基百科上有一个编程范式的页面,顺着这个页面看下去,你可以看到很多很多有用的和编程相关的知识。 Six programming paradi
阅读全文
摘要:程序员练级攻略:系统知识 进入专业的编程领域,学习系统知识是非常关键的一部分。 《 "深入理解计算机系统" 》,原书名为《Computer Systems A Programmer’s Perspective》。 本书的最大优点是为程序员描述计算机系统的实现细节,帮助其在大脑中构造一个层次型的计算机
阅读全文
摘要:程序员练级攻略:理论学科 数据结构与算法 无论是做业务还是做底层系统,经常需要使用算法处理各种各样的问题。 基础知识 :《 "算法" 》,是算法领域经典的参考书,不但全面介绍了关于算法和数据结构的必备知识,还给出了每位程序员应知应会的 50 个算法,并提供了实际代码。最不错的是,其深入浅出的算法介绍
阅读全文
摘要:程序员练级攻略:编程语言 0x1 前言 编程语言 JAVA C\C++ Go: "Go 语言、Docker 和新技术" 理论学科 "程序员的荒谬之言还是至理名言?" 系统知识 系统知识是理论知识的工程实践,这里面有很多很多的细节。比如像 Unix/Linux、TCP/IP、C10K 挑战等这样专业的
阅读全文
摘要:程序员素养帖子: "What are some of the most basic things every programmer should know?" "97 Things Every Programmer Should Know" 其中有 97 个非常不错的编程方面的建议。这篇文章是比较经
阅读全文
摘要:无论你做什么事,你都会面对各式各样的困难,这对每个人都是一样的,而只有兴趣、热情和成就感才能让你不怕这些困难 编程技能 "The Key To Accelerating Your Coding Skills" :这篇文章会告诉你如何有效地快速提高自己的编程能力。 编程技巧方面 "代码大全" 编程语言
阅读全文