编程相关书籍
文章平均质量分 91
哈哈哈
@来杯咖啡
物极必反,否极泰来,法天象地,以定位也.
展开
-
《大型网站技术架构》核心原理与案例分析
作为科普类书籍阅读,扩展视野。原创 2023-07-25 10:08:26 · 113 阅读 · 0 评论 -
《Spring源码深度分析》持续更新中...
持续更新中...原创 2023-02-12 16:22:25 · 199 阅读 · 0 评论 -
《精通Spring4.x 企业应用开发实战》读后总结+PDF+源码下载
本书分为5篇。原创 2022-09-11 14:12:21 · 967 阅读 · 0 评论 -
《Code_Complete_2》持续更新中......
这本书有意设计成使你既可以从头到尾阅读,也可以按主题阅读。1. 如果你想从头到尾阅读,那么你可以直接从第2章“用隐喻来更充分地理解软件开发”开始钻研。2. 如果你想学习特定的编程技巧,那么你可以从第6章“可以工作的类”开始,然后根据交叉引用的提示去寻找你感兴趣的主题。3. 如果你不确定哪种阅读方式更适合你,那么你可以从第3章3.2节“辦明你所从事的软件的类型”开始。.....................原创 2022-08-10 21:53:50 · 637 阅读 · 0 评论 -
《Thinking_in_java_4th》持续输出中.......
第4章 控制执行流程https://github.com/easytobegin/Thinking_in_java_4th原创 2022-07-25 22:07:27 · 188 阅读 · 0 评论 -
《大型网站技术架构》序
高手定律这个世界只有遇不到的问题,没有解决不了的问题,高手之所以成为高手,是因为他们遇到了常人很难遇到的问题,并解决了。 所以百度有很多广告搜索的高手, 淘宝有很多海量数据的高手, QQ 有很多高并发业务的高手,原因大抵如此。一个100 万用户的网站,不会遇到1亿用户同时在线的问题;一个拥有100万件商品网站的工程师,可能无法理解一个拥有10亿件商品网站的架构。原创 2023-08-06 23:41:29 · 285 阅读 · 0 评论 -
《大型网站技术架构设计》第二篇 架构-性能
网站性能是客观的指标,可以具体体现到响应时间、吞吐量等技术指标,同时也是主观的感受,而感受则是一种与具体参与者相关的微妙的东西,用户的感受和工程师的感受不同,不同的用户感受也不同。原创 2023-08-06 17:34:25 · 533 阅读 · 2 评论 -
《大型网站技术架构》第二篇 架构-高可用
2011年4月12日,亚马逊云计算服务 EC2 ( Elastic Computer Cloud) 发生故障,其ESB ( Elastic Block Storage)服务不可用,故障持续了数天,最终还是有部分数据未能恢复。这一故障导致美国许多使用亚马逊云服务的知名网站(如:Foursquare, Quora)受到影响,并引发了人们对使用云计算安全性、可靠性的大规模讨论。2010年1月12日,百度被黑客攻击,其 DNS 域名被劫持,导致百度全站长达数小时不可访问。该事件一时成为新闻焦点,各种媒体争相报道。原创 2023-08-06 18:10:44 · 1406 阅读 · 5 评论 -
《大型网站技术架构》第一篇 概述
慢慢地演化成一个大型网站。在这个漫长的技术演化过程中,不需要放弃什么,不需要推翻什么,不需要剧烈的革命,就那么润物细无声地把一个只有一台服务器,几百个用户的小网站演化成一个几十万台服务器,数十亿用户的大网站。由于大公司巨大成功的光环效应,再加上从大公司挖来的技术高手的影响,网站在讨论架构决策时,最有说服力的一句话就成了“淘宝就是这么搞的”或者 “Facebook 就是这么搞的”。大公司的经验和成功模式固然重要,值得学习借鉴,但如果因此而变得盲从,就失去了坚持自我的勇气,在架构演化的道路上迟早会迷路。原创 2023-07-25 08:54:19 · 216 阅读 · 0 评论 -
《Spring源码深度分析》第9章 整合MyBatis
MyBatis 本是 Apache 的一个开源项目 Batis,2010 年这个项目由 Apache Software Foundation 迁移到了 Google Code,并且改名为 MyBatis(下载地址为MyBatis 是支持普通 SQL 查询、存储过程和高级映射的优秀持久层框架。1、MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。2、MyBatis 使用简单的 XML 或注解用于配置和原始映射,原创 2023-03-07 23:06:16 · 116 阅读 · 0 评论 -
《精通Spring4.x 企业应用开发实战》第13章 使用 SpringJDBC访问数据库
Spring JDBC 是 Spring 所提供的持久层技术。它的主要目的是降低使用 JDBC API的门槛,以一种更直接、更简洁的方式使用 JDBC API。在 Spring JDBC 里,仅需做那些与业务相关的 DML操作的事,而将资源获取、Statement 创建、资源释放及异常处理等繁杂而乏味的工作交给 Spring JDBC。虽然 ORM的框架已经成熟丰富,但 JDBC 的灵活、直接的特性,依然让它拥有自己的用武之地。原创 2023-04-30 00:00:00 · 1037 阅读 · 2 评论 -
《Spring源码深度分析》第6章 容器的功能扩展
经过前面几章的分析,相信大家已经对 Spring 中的容器功能有了简单的了解,在前面的章节中我们一直以 BeanFacotry 接口以及它的默认实现类 XmlBeanFactory 为例进行分析,但是,Spring 中还提供了另一个接口ApplicationContext,用于扩展 BeanFacotry 中现有的功能。ApplicationContext 和 BeanFacotry 两者都是用于加载 Bean 的,但是相比之下,ApplicationContext 提供了更多的扩展功能,原创 2023-03-13 09:57:20 · 473 阅读 · 3 评论 -
《精通Spring4.x 企业应用开发实战》第20章 实战型单元测试
按照软件工程思想,软件测试可以分为单元测试、集成测试、功能测试、系统测试等。功能测试和系统测试一般来说是测试人员的职责,但单元测试和集成测试则必须由开发人员保证。单元测试:当对 UserService 这个业务层的类进行单元测试时,可以通过创建UserDao 和 LoginLogDao** 模拟对象**,在假设 DAO 类正确工作的情况下对 UserService 进行测试。集成测试:而对 UserService 进行集成测试时,则应该注入真实的UserDao 和 LoginLogDao进行测试。原创 2023-03-07 10:55:48 · 446 阅读 · 2 评论 -
《Spring源码深度分析》第5章 Bean的加载
经过前面的分析,我们终于结束了对XML 配置文件的解析,接下来将会面临更大的挑战,就是对 bean 加载的探索。bean 加载的功能实现远比 bean 的解析要复杂得多。原创 2023-03-05 00:34:51 · 792 阅读 · 0 评论 -
《Spring源码深度分析》第4章 自定义标签的解析
Spring源码深度分析》持续更新中…在之前的章节中,我们提到了在 Spring 中存在默认标签与自定义标签两种,而在上一章节中我们分析了 Spring 中对默认标签的解析过程,相信大家一定已经有所感悟。那么,现在将开始新的里程,分析 Spring 中自定义标签的加载过程。【Spring学习】Spring自定义标签详细步骤i ++) {// 解析默认的标签元素 parseDefaultElement(ele , delegate);} else {原创 2023-03-05 00:19:19 · 439 阅读 · 0 评论 -
《Spring源码深度分析》第3章 默认标签的解析
《Spring源码深度分析》持续更新中…之前提到过 Spring 中的标签包括默认标签和自定义标签两种,而两种标签的用法以及解析方式存在着很大的不同,本章节重点带领读者详细分析默认标签的解析过程。至此我们便完成了对XML 文档到 GenericBeanDefinition 的转换,也就是说到这里,XML中所有的配置都可以在 GenericBeanDefinition 的实例类中找到对应的配置。原创 2023-03-01 10:34:07 · 253 阅读 · 0 评论 -
《Spring源码深度分析》第2章 容器的基本实现
源码分析是一件非常煎熬非常有挑战性的任务,你准备好开始战斗了吗?在正式开始分析 Spring 源码之前,我们有必要先来回顾一下 Spring 中最简单的用法,尽管我相信您已经对这个例子非常熟悉了。待补充。原创 2023-02-26 00:25:26 · 463 阅读 · 0 评论 -
《精通Spring4.x 企业应用开发实战》第1章 Spring概述
spring的概述原创 2023-02-21 14:58:11 · 898 阅读 · 0 评论 -
《精通Spring4.x 企业应用开发实战》第15章 Spring Cache
精通Spring4.x 企业应用开发实战》持续更新中…伴随着信息量的爆炸式增长,以及构建的应用系统越来越多样化、复杂化,特别是伴随着近年来企业级应用互联网化的超势,缓存(Cache)对应用程序性能的优化变得越来越重要。将所需服务请求的数据放到缓存中,既可以提高应用程序的访问效率,又可以减少数据库服务器的压力,从面让用户获得更为极致的体验。原创 2023-02-16 22:31:35 · 232 阅读 · 0 评论 -
《精通Spring4.x 企业应用开发实战》第16章 任务调度和异步执行器
任务调度是大多数应用系统的常见需求之一,直接自己编写基于线程的调度程序,不但容易出错,而且实现难度很大。而借助巨人的肩膀,可以站得更高、看得更远:1、Quartz是任务调度领域享誉盛名的开源框架,Spring 提供了集成 Quartz 的功能,可以让开发人员以更面向 Spring 的方式创建基于 Quartz的任务调度应用。2、此外,Spring也为JDK Timer、Java 5.0 和Executor提供了有益的支持。原创 2023-02-16 22:20:35 · 294 阅读 · 0 评论 -
《精通Spring4.x 企业应用开发实战》第12章 Spring 的事务管理难点剖析
精通Spring4.x 企业应用开发实战》原创 2023-02-15 16:57:58 · 794 阅读 · 4 评论 -
《精通Spring4.x 企业应用开发实战》第11章 Spring的事务管理
精通Spring4.x 企业应用开发实战》待补充。原创 2023-02-12 23:09:05 · 722 阅读 · 0 评论 -
《Spring源码深度分析》第8章 数据库连接JDBC
本章主要以Spring提供的模板类’JdbcTemplate‘为例,进行源代码分析。待补充。原创 2023-02-12 16:14:12 · 952 阅读 · 0 评论 -
《精通Spring4.x 企业应用开发实战》第10章 Spring对Dao的支持
在日常开发中,我们习惯性的定义类似这样的目录结构:controller、service、dao。我们大多数时候给DAO层的定义是:用于DB的交互。其实,抛开DB,DAO层也是可以与其他存储介质(OSS、File…)进行交互的。所以说,请不要把DAO仅仅限制为DB交互。略。原创 2023-02-07 22:50:05 · 472 阅读 · 0 评论 -
《代码大全2》第18章 表驱动法
编程模式(scheme---从表里面查找信息而不使用逻辑语句(if和 case)。能通过逻辑语句来选择的事物,都可以通过来选择。原创 2022-09-10 21:20:18 · 460 阅读 · 0 评论 -
《代码大全2》第17章 不常见的控制结构
有时被人当做最前沿的编程要素,有时却又会被批判得声名狼藉——这些情况甚至常常同时发生!这些结构不是所有语言都有的,但如果在提供这些结构的语言中谨慎地使用它们,你将会获得很多帮助。原创 2022-09-10 11:57:40 · 305 阅读 · 0 评论 -
《代码大全2》第16章 控制循环
循环”是一个非正式的术语,用来指代任意一种迭代控制结构 (iterativecontrol structure)——任一能够导致应用程序反复执行一段代码的结构。常见的循环种类有 C++和 Java 中的 for、while 和 do-while, 以及 Microsoft Visual Basic 中的For-Next、 While-Wend 和 Do-Loop-While。使用循环是编程中最复杂的方面之一;知道如何以及何时使用每一种循环是创建高质量软件的一个决定性因素。原创 2022-09-09 06:09:19 · 844 阅读 · 0 评论 -
《代码大全2》第15章 使用条件语句
条件语句用来控制其他语句是否执行;其他语句在 if、else、 case、 switch 等语句里时变为“有条件”执行。尽管从逻辑上说,把 while、 for 等循环控制符看做条件语句也是合理的,但传统上还是把它们分别对待。第16章“控制循环”会仔细研究 while 和 for 语句。原创 2022-09-08 23:00:25 · 247 阅读 · 0 评论 -
《代码大全2》第14章 组织直线型代码
以语句为中心。本章介绍最简单的控制流:即按先后顺序放置语句和语句块。尽管组织直线型代码是一个相对简单的任务,但代码结构上的一些微妙之处还是会对代码的质量、正确性、可读性和可维护性带来影响。原创 2022-09-06 08:46:41 · 402 阅读 · 0 评论 -
《代码大全2》第12章 基本数据类型
基本数据类型是构建其他所有数据类型的构造块 (building blocks )。本章包含了使用数(普遍意义上)、整数、浮点数、字符和字符串、布尔变量、枚举类型、具名常量以及数组的一些技巧。本章的最后一节将讲述如何创建自己的数据类型。原创 2022-09-04 23:30:11 · 985 阅读 · 0 评论 -
《代码大全2》第11章 变量名的力量
尽管讨论如何为变量取好的名字与讨论如何高效编程同样重要,我却还没看到任何资料能将创建好的名字的诸多注意事项涵盖一二。很多编程教科书只用几段的篇幅讲讲如何选择缩写,几句老生常谈,指望你自己解决这个问题。而我却要反其道而行之:就如何取一个好的名字给你大量的信息,多得你可能根本都不会用到!本章所述原则主要适用于为变量——对象和基本数据—命名。不过它们也适用于为类、包、文件以及其他的编程实体命名。有关如何为子程序命名请参阅第7.3节“好的子程序名字”。原创 2022-09-02 10:09:42 · 1010 阅读 · 0 评论 -
《代码大全2》第10章 使用变量的一般事项
本节将会向你讲述如何加快变量定义的工作。创建变量的确占去了你很多时间,因此养成一个良好的习惯会为你在整个项目周期内省去很多时间和麻烦。原创 2022-09-01 23:18:56 · 332 阅读 · 0 评论 -
《代码大全2》第7章 高质量的子程序
在讨论高质量的子程序的细节之前,明确下面这两个基本术语会很有帮助。首先,什么是“子程序(routine)”?方法过程。那什么又是高质量的子程序呢?这个问题更难回答。也许回答这个问题的最简单的办法,是来看看什么东西不是高质量的子程序。这里举一个低质量的子程序的例子:这个子程序里有哪些不妥呢?给你一个提示:你应该能够从中发现至少10不同的问题。请你先列出自己发现的问题,然后再来看下面这份清单:很差劲的名字没有文档布局不好。.........原创 2022-08-28 17:03:07 · 573 阅读 · 0 评论 -
《代码大全2》第6章 可以工作的类
在计算时代的早期,程序员基于语句思考编程问题。到了20世纪七八十年代,程序员开始基干子程序去思考编程。进入21世纪,程序员以类为基础思考编程问题。原创 2022-08-22 22:02:53 · 606 阅读 · 0 评论 -
《代码大全2》第5章 软件构建中的设计
寻找现实世界的对象 (object,物体)形成一致的抽象封装实现细节在可能的情况下继承藏住秘密(信息隐藏)找出容易改变的区域保持松散耦合探寻通用的设计模式高内聚性构造分层结构严格描述类契约分配职责为测试而设计避免失误有意识地选择绑定时间创建中央控制点考虑使用蛮力画一个图保持设计模块化。原创 2022-08-16 19:58:39 · 512 阅读 · 0 评论 -
《代码大全2》第4章 关键的“构建“决策
第3章“三思而后行:前期准备”讨论了设计蓝图和建筑许可证在软件业里的等价物。你可能对那些准备工作没有多少发言权,所以第3章当构建开始后你需要做什么。本章关注的焦点是程序员和技术带头人个人必须(直接或间接)负责的准备工作。...原创 2022-08-15 15:17:28 · 860 阅读 · 0 评论 -
《代码大全2》第3章 三思而后行,前期准备
在开始构建之前,首先要满足的一项先决条件是,对这个系统要解决的问题做出清楚的陈述。这有时称为“产品设想/product vision ”、“设想陈述/visionstatement”、“任务陈述/mission statement” 或者“产品定义/product definition”。这里将它称为“问题定义/problem definition”。由于这本书是关于软件构建的,本节不打算告诉你如何去写问题定义,而是告诉你如何辦认是否已经写好了问题定义,以及它能否成为构建活动的良好基础。..........原创 2022-08-14 10:07:57 · 1132 阅读 · 0 评论 -
《代码大全2》第2章 用隐喻来更充分地理解软件开发
本书其他章节的内容并不直接依赖在这一章中讨论的隐喻。因此,如果想直按学习实践方面的知识,你可以跳过本章不读:而如果你想更清楚地理解软件开发的过程,请读读这一章吧。原创 2022-08-13 21:09:38 · 242 阅读 · 0 评论 -
《代码大全2》第1章 欢迎进入软件构建的世界
按照一般的用法,“构建”是指建设的过程。构建过程可能包含有计划(产品需求)、设计(产品设计、开发设计)、检查工作(测试)的一些方面。开发计算机软件己是一个复杂的过程。在过去25 年间,研究者己经认识到在软件开发过程中涉及到各种不同的活动(activity),可以理解软件构建,就是由这些活动组成定义问题 (problem definition)需求分析 (requirements development)规划构建 (construction planning).........................原创 2022-08-13 20:36:59 · 888 阅读 · 0 评论 -
《代码大全2》第8章 防御式编程
防御式编程来自防御式驾驶。在防御式驾驶中要建立这样一种思维,那就是。这样才能确保在其他人做出危险动作时你也不会受到伤害。你要承担起保护自己的责任,哪怕是其他司机犯的错误。。更一般地说,其核心想法是要承认程序都会有问题,都需要被修改,聪明的程序员应该根据这一点来编程序。本章就是要讲述如何面对严酷的非法数据的世界、在遇到 “绝不会发生”的事件以及其他程序员犯下的错误时保护你自己。............原创 2022-08-10 23:10:23 · 512 阅读 · 0 评论