Dawn-K's Blog

「From ashes to the empire」

「软件工程」 软件工程基础知识

软件工程基础知识 软件开发模型 边做边改模型 没有规划一边做一边改. 容易陷入修改困难甚至无法修改的境地. 瀑布模型 将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动. 在瀑布模型中, 软件开发的各项活动严格按照线性方式进行. 缺点: 文档太多, 开发风险大, 用户只能在完全结束后才能看到. 早期的错误需要等到后期才能发现. 快速原型...

「软件工程」 makefile

Makefile 概述 Makefile 主要是为了解决构建问题。将编译,链接,清理自动化。 配置 make 在 Windows 上体验不太好。 主要是 Windows 的 Powershell 和 cmd 的命令并不兼容,而且相比 Linux, 功能还是弱了一些。 而且一定要注意,命令前面的分隔符是 tab 而不是空格 提前准备了若干文件,将这几个文件和 Makefile 放在同...

「数据库」 数据库基础知识

数据库 基本概念 实体 主键 主键应当是唯一的,并且几乎不会变动 码:所有属性都依赖于码属性。 码 : 能够唯一标识一条记录的属性或属性集。 候选码 : 能够唯一标识一条记录的最小属性集 主键 : 人为从候选码中挑的一个码。 主属性 : 包含在任一候选码中的属性称主属性 非主属性 : 不包含在候选码中的属性称为非主属性 数据库范式 范式是一种规范,能够减少数据冗余。但是范式...

「操作系统」 操作系统基础知识

操作系统基础知识 参考资料 概述 操作系统是一个系统软件,管理进程,调度系统资源,输入输出等,提供一个让用户和系统交互的操作界面。 线程进程 进程是资源分配的最小单位,线程是 CPU 调度的最小单位 多线程程序只要有一个线程崩溃,整个程序就崩溃了,但多进程程序中一个进程崩溃并不会对其它进程造成影响,因为进程有自己的独立地址空间,因此多进程更加健壮 在进程切换时,涉及到...

「C++」 编程语言发展

编程语言发展 发展历程 C 的发展历程 C 语言之父 丹尼斯里奇,在上世纪 70 年代早期在贝尔实验室研发了 C 语言,改进了 B 语言。后用于重写 Unix 内核。 美国国家标准局 C89(ANSI C) 国际化标准组织 C90(ISO C) 1999 年发布的 C99 C++发展历程 1980s 年早期 , 贝尔实验室开始对 C 进行改进,加入了面向对象的特...

「C++」 C++基础知识

C++知识补充 类型转换 static_cast 对应于 c 中的隐式类型转换。只能在基础类型(但是基础类型和指针类型不能转换), 和有派生关系的类对象之间转换,也不能去除原有的类型修饰符。 1 2 3 //相当于创建一个 static_cast<double>类型的匿名对象赋值给 d2 double d2 = static_cast<double>(i); ...

「软件工程-设计模式」 适配器模式

适配器模式 概述 适配器模式主要是用来链接两个接口, 比如我们希望通过增加一个第三方的类来增强我们现有的类的功能, 但是我们不想继承这个类(java只能单继承, 或者出于其他因素), 就往往使用适配器模式. 将新的类作为现有的类的一个成员, 原类通过调用这个成员的方法来增强自身功能. 实现 比如我们最开始有个 MediaPlayer 接口, 然后我们实现了一个 AudioPlayer...

「软件工程-设计模式」 装饰器模式

装饰器模式 概述 装饰器模式主要是在不更改原有类的情况下为其增加功能. 也就是用其他类(装饰器)包含原有类的方式. 实现 比如我们有一个咖啡接口, 和一个已经实现的咖啡实体类. 我们后续想往咖啡中自由添加调料, 而不改变 SimpleCoffee 的实现 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 interface Coffee { ...

「软件工程-设计模式」 概述

设计模式 [toc] 概述 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结. 使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性. 分类 创建型模式 这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式, 而不是使用 new 运算符直接实例化对象. 这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活. 工厂模式(F...

「软件工程-设计模式」 原型模式

原型模式 概述 不通过 new 关键字来产生一个对象, 而是通过对象复制来实现的模式就叫做原型模式. 这种主要是在 new 一个对象开销太大(相比于复制), 而需要大量的对象的情况下. 实现 首先要继承 Cloneable 接口, 实现其 clone()方法, 然后 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public abs...