Fork me on GitHub
To the moon

A Coder,a Programmer,a Developer


  • Home

  • Tags

  • Categories

  • Archives

  • Search

负载均衡(1)

Posted on 2018-11-28 | Edited on 2023-05-09 | In notes

1. 负载均衡技术介绍

  1. HTTP 重定向负载均衡
  2. DNS 域名解析负载均衡
  3. 反向代理负载均衡
  4. IP 负载均衡
  5. 数据链路层负载均衡
Read more »

大型网站技术架构——读书笔记(1)

Posted on 2018-11-25 | Edited on 2023-05-09 | In notes

《大型网站技术架构——核心原理与案例分析》 李智慧

读书笔记(1)

1. 技术演化

  1. 最初是应用程序、文件、数据库都在同一台服务器上完成最简单的网站结构。
  2. 为解决存储空间不足的问题,出现应用服务器、文件服务器、数据库服务器职责分开的情况。
    • 应用服务器主要处理业务逻辑,需要更快更强的 CPU;
    • 文件服务器需要存储用户上传的文件,需要更大的硬盘;
    • 数据库服务器需要快速磁盘检索和数据缓存,所以需要更快的硬盘和更大的内存。
      • 网站使用的缓存分为两种:应用服务器上的本地缓存(特点:响应快,但数据量小,可能跟程序争用内存资源)、缓存在分布式缓存服务器上的远程缓存(可采用集群的方式,不受内存容量限制)。
Read more »

tinySpring-Aop-分析笔记(2)

Posted on 2018-11-17 | Edited on 2023-05-09 | In spring

tinySpring Aop 分析笔记(2)

项目学习地址:code4craft/tiny-spring

step-8-invite-pointcut-and-aspectj

  • step-8 新增了对AspectJExpressionPointcut这个类。
    • 它使用 AspectJ 表达式进行匹配。
    • 实现了Pointcut, ClassFilter, MethodMatcher三个接口。
    • 首先拿到一个PointcutParser,是用来解析 expression 的。
    • 解析传入的expression,拿到一个PointcutExpression的实现类。
    • ClassFilter 表示与表达式匹配的类;
    • MethodMatcher 查找与表达式匹配的方法;
    • Pointcut 表示获取的是方法还是类。
Read more »

tiny-spring-Aop 分析笔记(1)

Posted on 2018-11-16 | Edited on 2023-05-09 | In spring

tinySpring Aop 分析笔记(1)

项目学习地址:code4craft/tiny-spring

step-7-method-interceptor-by-jdk-dynamic-proxy

step 7 针对有接口的情况,采用 jdk 动态代理的方式实现 AOP。

另一种情况是:无接口时,创建子类,然后进行增强(调用父类的方法),实现动态代理的实现。即 cglib 动态代理。

Read more »

Aoot examination

Posted on 2018-11-13 | Edited on 2023-05-09 | In examination

aoot examination

1. 接口和抽象类的区别

  • 接口是对动作的抽象(这个对象能做什么),抽象类是对根源的抽象(这个对象是什么)。
  • 两者都不能直接实例化,对接口实例化时,接口变量必须指向一个类对象(此类对象必须实现了所有的接口方法);对抽象类实例化时,抽象类变量必须指向一个子类对象(此子类对象必须实现了所有的抽象方法)。注:如果方法不能全部被类 A 实现,那么类 A 必然是抽象类。
  • 接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。
  • 抽象方法要被实现,所以不能是静态的,也不能是私有的。
Read more »

UML(7)

Posted on 2018-11-13 | Edited on 2023-05-09 | In UML

面向对象系统分析与设计(7)

1. 面向对象的六大设计原则

  1. 单一职责,single responsibility principle,SRP
    • 一个类,只做一件事。
  2. 开闭原则,open close principle,OCP
    • 对扩展开放,对修改封闭,保护既有系统。
    • 是 OO 设计的真正核心。
  3. 里氏替换原则,liskov substitution principle,LSP
    • 子类可以拓展父类的功能,但不能修改父类原有的功能。
  4. 接口隔离原则,interface segregation principle,ISP
    • 接口间的依赖性要小;比如一个类要实现某功能时,如果接入接口 A 和接口 B,然而只有 A 的功能是必须的,但因为 A 和 B 的依赖性,接入 B 是完全没有必要的,修改的办法就是降低 A、B 间的依赖。
  5. 迪米特原则,law of demeter,LOD
    • 陌生的类不要作为局部变量的形式出现在类的内部,耦合性会变高。
  6. DIP原则,dependency inversion principle。
    • 模块设计、细节和策略应该依赖于抽象,抽象的稳定性决定了系统的稳定性。
    • 变量不应该持有指向具体类的指针或引用。
    • 类不应该从具体类派生。
    • 任何方法都不应该覆写它的任何基类中已经实现了的方法。
Read more »

UML(6)

Posted on 2018-11-12 | Edited on 2023-05-09 | In UML

面向对象系统分析与设计(6)

1. 系统设计

  • 定义:将分析模型的逻辑结构加以实现前的准备过程。

哪些工作内容:

  1. 考虑非功能性需求的弊端;
  2. 考虑全局设计问题;
  3. 考虑实现的环境 —— implement environment;
  4. 补充 classes 的所有属性和操作;
  5. 将 implementation 的工作分成可执行的小块;
  6. 为 subsystems 间建立接口。

当可以从“分析模式”平滑过渡到“设计模式”时(即无需大改时),就是开始系统设计的最佳时刻。

Read more »

UML(5)

Posted on 2018-11-11 | Edited on 2023-05-09 | In UML

面向对象系统分析与设计(5)

  • 为什么要对系统进行分析:
    1. 因为需求的特殊性;
    2. 用开发语言描述出来,更加正规且准确;
    3. 理解上的需要;
    4. 设计的需要。
  • 系统分析的过程:
    1. 分析结构;
    2. 分析用例;
    3. 分析 classes;
    4. 分析 packages;
Read more »

UML(4)

Posted on 2018-11-10 | Edited on 2023-05-09 | In UML

面向对象系统分析与设计(4)

引子

  • 为了让具有不同背景的角色(比如 user、customer 等)能够准确地获取需求,引入了类图、用例图、时序图、状态机图等等手段

UP建模

UP建模的四大阶段:

  1. 初始阶段:主要从此阶段拿到需求。搞定最关键部分的元素。占比10%。
  2. 详述阶段:填充细节,占比约80%。
  3. construction 阶段:补充剩下的。(不理会)
  4. transition 阶段:需求变更时进入此阶段。(不理会)
Read more »

UML(3)

Posted on 2018-11-10 | Edited on 2023-05-09 | In UML

面向对象系统分析与设计(3)

晦涩的概念

  • 做系统分析的目的:理解既有系统的功能、更好地满足未来的需求。
  • 做分析的几个阶段:收集相关信息;确定需求;为需求制定优先级;需求间的取舍;审核。
  • 做分析的技巧:从调查中发现本质;分析员应当了解业务细节和日常操作的流程;分析员要表现得像业务员一样尽可能地了解业务;分析员对问题要有独特的视角;从需求出发为业务过程建模。
  • 新系统需要具备什么特性?
    • 功能性需求(需要展示出必备的功能、需要建立在业务的基础上、需要有分析建模的记录文档);
    • 非功能性需求(技术性的环境、可用性、可靠性、安全性需求)。
Read more »
1…91011…16

Harrison Lee / Email (harrisonli60@163.com)

It is never too late to learn a new skill, even a challenging one.

153 posts
24 categories
33 tags
© 2025 Harrison Lee / Email (harrisonli60@163.com)
Powered by Hexo v6.3.0
|
Theme – NexT.Mist v7.0.0
|