软件工程名词简称
软件名称
-
ACID
原子性(Atomicity):整体不可分割性,要么全做要不全不做。
一致性(Consistency) :事务执行前、后数据库状态均一致。
隔离性(Isolation) :在事务未提交前,它操作的数据,对其它用户不可见(从其他session读取的数据还是commit之前的数据状态)。
持久性(Durability):一旦事务成功,将进行永久的变更。
-
AOP
面向切面编程
-
BASE 理论
分布式BASE理论
BASE是 Basically Available(基本可用)、Soft state(软状态) 和Eventually consistent(最终一致性) 三个短语的简写。
BASE是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于CAP定理逐步演化而来的,其核心思想是即使无法做到强一致性,但每个应用都可以根据自身的业务特点,采用适当的方法来使系统达到最终一致性。
-
BI
BI(Business Intelligence)即商务智能,它是一套完整的解决方案,用来将企业中现有的数据进行有效的整合,快速准确的提供报表并提出决策依据,帮助企业做出明智的业务经营决策。
-
Binlog
是The Binary Log的简称,意思就是二进制的日志文件。 mysql binlog 有几种模式,statement、row、mixed
-
BIO:
Blocking Input Output,同步阻塞I/O模式,数据的读取写入必须阻塞在一个线程内等待其完成。服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。
-
BRD
商业需求文档(Business Requirements Document)
-
CAP 理论
在设计一个大规模可扩展的网络服务时候会遇到三个特性:
一致性(consistency) 可用性(Availability) 分区容错(partition-tolerance)
-
CAS
是一种乐观锁机制。CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。CAS机制当中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会将内存地址V对应的值修改为B。
-
CLOSE_WAIT
CLOSE_WAIT是被动关闭连接是形成的。根据TCP状态机,服务器端收到客户端发送的FIN,则按照TCP实现发送ACK,因此进入CLOSE_WAIT状态。但如果服务器端不执行close() ,就不能由CLOSE_WAIT迁移到LAST_ACK,则系统中会存在很多CLOSE_WAIT状态的连接。此时,可能是系统忙于处理读、写操作,而未将已收到FIN的连接,进行close。此时,recv/read已收到FIN的连接socket,会返回0。
-
CQRS
命令查询职责分离(Command-Query Responsibility Segregation)
-
CR
Code Review 「代码审查」
-
CSRF
CSRF 全称 Cross Site Request Forgery,跨站点请求伪造,攻击者通过跨站请求,以合法的用户身份进行非法操作,如转账交易、发表评论等。其核心是利用了浏览器 Cookie 或服务器的 Session 策略,盗取用户的身份信息。
利用用户已经打开过的被攻击页面含有cookie等登录信息,比如用户访问了个钓鱼网站模拟的像银行,钓鱼网站里有一个转账按钮,背后调用的银行的转账API。
-
CDN
内容分发 文件缓存
-
COW
写入时复制(英语:Copy-on-write,简称COW)是一种计算机程序设计领域的优化策略。
-
CGI
Common Gateway Interface 公共网关接口
一种标准协议,Web 服务器通过该协议可以执行在服务器计算机上运行的程序。CGI 程序是响应来自 Web 客户机浏览器的请求而执行的。 如fast-cgi
-
DDD
领域驱动设计
-
DDOS
DDOS 全称 Distributed Denial of Service,分布式拒绝服务攻击。 一般有传输层握手攻击、应用层http流量攻击等。
-
DI
依赖反转
-
DLL
动态链接库
-
Docker
容器技术,利用Namespace+Cgroup做到资源隔离和限制。
- Linux Namespace(命名空间)是一种操作系统层级的资源隔离技术,不同 namespace 里的进程无法感知到其它 namespace 里面的进程和资源。
- Cgroups (Control Groups),Cgroups可以对指定的进程做各种计算机资源的限制,比如限制CPU的使用率,内存使用量,IO设备的流量等等。
-
failover
容错转移、故障转移
-
GC
垃圾回收(Garbage Collection)
-
GC root
GC 根对象
-
Geo
地域 地理位置
-
http/2
相比http/1.1,http/2优势:
- 多路复用,HTTP/2 允许同时发送多个请求和响应,不像http/1.1 会发生队头阻塞
- 二进制传输,不是文本协议
- 头部压缩
- 服务器推送
- 安全性改进
-
IaaS
Infrastructure as a Service(基础设施即服务)。IaaS处于最底层,服务商提供底层/物理层基础设施资源(服务器,数据中心,环境控制,电源,服务器机房)
-
IDE
集成开发环境
-
Idempotence
幂等性
-
issue 问题 在开发过程中提出的尚未确定为缺陷的事项,如疑问、需澄清的注意点等。
-
issue log
问题日志 所发现的可能缺陷及其改进建议、其他问题的列表
-
IOC
控制翻转
-
JDBC
Java 数据库连接
-
JDK
Java 开发工具包
-
JIT 编译
just-in-time compilation,即时编译。
-
JMM
Java Memory Model java内存模型
-
JRE
JRE(Java Runtime Enviroment) 是 Java 的运行环境。
-
JUC
java.util.concurrent Java并发包
-
JVM
Java 虚拟机
-
KISS原则
Keep It Simple And Stupid 原则
-
LBS
Location-Based Service,基于位置服务
-
Master-slave lag
主从延迟
-
MRD
市场需求文档(Market Requirement Document)
-
MVC
模型视图控制器,三层架构
-
MVCC
Multi-Version Concurrency Control 多版本并发控制,MVCC 是一种并发控制的方法。如mysql利用undo log等实现。
-
NIO:
NIO是指将IO模式设为“Non-Blocking”模式。NIO是一种同步非阻塞的I/O模型,在Java 1.4 中引入了NIO框架,对应 java.nio 包,提供了 Channel , Selector,Buffer等抽象。NIO中的N可以理解为Non-blocking,不单纯是New。它支持面向缓冲的,基于通道的I/O操作方法。
-
PaaS
Platform as a Service(平台即服务)。PaaS处于中间层,服务商提供基础设施底层服务,提供操作系统(Windows,Linux)、数据库服务器、Web服务器、域控制器和其他中间件,以及服务模型中的备份服务等中件层服务。
-
PR
Pull Request「合并请求」,和 Merge Request含义相同。
PR是从主干owner视角来看,提PR的人表示说,请owner 拉pull request过去把。
-
RC
数据库隔离级别,Read Committed。
-
RR
数据库隔离级别,Repeatable Read(可重复读)。
-
PRD
产品需求文档(Product Requirements Document)
-
p2p
Person-to-Person,个人对个人
-
QA
quality assurance(QA)质量保证
-
race condition
竞争状态 并发安全问题
-
Raft
分布式的一致性协议
-
Reactor
一种编程响应模型,事件驱动。利用IO多路复用。
-
release
发布版。发布版是产品的稳定和可执行版本
-
review
评审,目的是要找出一组工件中潜在的缺陷并评估质量。
-
RPC
Remote Procedure Call 远程过程调用 一个通信模型,其中,请求要通过函数调用向分布在其他位置的过程发出。过程的位置对调用方应用程序来说是透明的。
-
rr
round-robin 轮询
-
SaaS
Software as a Service(软件即服务)。SaaS处于最上层,服务商提供基于软件的解决方案,满足客户最终需求;如OA、CRM、MIS、ERP、HRM、CM、Office 365、iCloud、G Suite等应用,客户不需考虑任何形式的专业技术知识,获得完整的软件包,使他们的日常工作和生活变得更轻松。
-
sandbox
沙箱,一般是准正式环境
-
SOA
面向服务架构。将业务拆分成一个个服务标准件,然后再选择合适的标准件“组装”成各种应用软件系统。
微服务是SOA基础上的升华,粒度更细,基于领域拆分各服务。
-
SOLID原则
-
Single 单一职责 一个类或模块只负责完成一个功能。
-
Open Closed 对拓展开放,对修改关闭
-
Liskov Substitution 里氏替换
子类对象能够替换程序中父类对象出现的任何地方,并保证原来程序的逻辑行为不变及正确性不被破坏。
-
Interface Segregation Principle 接口隔离
接口隔离原则的含义,建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。提高内聚,减少对外交互。
-
Dependency Inversion Principle 依赖倒置
高层模块不依赖低层模块,它们共同依赖同一个抽象,抽象不要依赖具体实现细节,具体实现细节依赖抽象。
-
-
SSO
Single Sign-On 单点登录
-
swimlane
泳道。活动图上的一个分区,用于划分动作的职责。泳道通常对应于业务模型中的组织单元。
-
TDD
Test-Driven Development,测试驱动开发
-
test case
测试用例
-
TIME_WAIT
TIME_WAIT 是主动关闭链接时形成的,等待2MSL时间,约4分钟。主要是防止最后一个ACK丢失。 由于TIME_WAIT 的时间会非常长,因此server端应尽量减少主动关闭连接。
-
TLB
快表,TLB(Translation Lookaside Buffer)转换检测缓冲区是一个内存管理单元,用于改进虚拟地址到物理地址转换速度的缓存。
-
UI
用户界面,包括视觉设计、交互设计和用户体验(User Interface)
-
UML
Unified Modeling Language(UML)统一建模语言
-
Unit test
单元测试
-
unit test coverage
单元测试覆盖率
-
use case
用例。用例定义了一组用例实例,其中每个实例都是系统所执行的一系列操作,这些操作生成对于特定主角可见的值。用例类包含所有与产生"可见结果值"有关的主事件流和备用事件流。从技术角度来说,用例是实例为场景的类。
-
use-case diagram
用例图。一种说明系统内主角和用例之间的关系的图形。
-
use-case instance
用例实例。操作序列的执行情况在用例中指定。用例的实例。
-
use-case model
用例模型。根据用例说明系统的功能性需求的模型。
-
use-case realization
用例实现。用例实现描述如何在设计模型内部使用协作对象来实现一个特定用例。
-
use-case view
用例视图。一种描述在系统中如何执行关键用例的构架视图,主要侧重于对构架具有重要影响的构件(对象、任务、节点)。在 Unified Process 中,它是用例模型的视图。
-
XSS
跨站脚本攻击 Cross Site Scripting。 注入并执行js代码,可能泄露自己的cookie信息,发送给远程攻击者。
-
ZAB
ZAB 协议全称:Zookeeper Atomic Broadcast(Zookeeper 原子广播协议)。ZAB 协议的消息广播过程使用的是一个原子广播协议,类似一个 二阶段提交过程。对于客户端发送的写请求,全部由 Leader 接收,Leader 将请求封装成一个事务 Proposal,将其发送给所有 Follwer ,然后,根据所有 Follwer 的反馈,如果超过半数成功响应,则执行 commit 操作(先提交自己,再发送 commit 给所有 Follwer)。
-
云原生
- 微服务 - 应用层
- DevOps (持续构建 持续交付 持续部署 工具链) - k8s 容器调度、编排
- 容器 (Docker)
管理工程
SMART原则(S=Specific、M=Measurable、A=Attainable、R=Relevant、T=Time-bound)是为了利于员工更加明确高效地工作,更是为了管理者将来对员工实施绩效考核提供了考核目标和考核标准,使考核更加科学化、规范化,更能保证考核的公正、公开与公平。
- S 具体的 具体操作准则等
- M 可衡量的 明确的,而不是模糊的
- A 可达成的 通过现有的时间规划和执行力,以及外部相关人员物资的到位情况,确定能够实现的目标。
- R 有关联的 要和岗位职责相关联,不要跑题。
- T 有时限的 目标特性的时限性就是指目标是有时间限制的。
SWOT 分析
- S (strengths)优势
- W (weaknesses)劣势
- O (opportunities)机会
- T (threats)威胁。
按照企业竞争战略的完整概念,战略应是一个企业“能够做的”(即组织的强项和弱项)和“可能做的”(即环境的机会和威胁)之间的有机组合。
5w2h 分析
- WHAT 是什么,目的是什么
- WHY 为什么要做,可不可以不做,有没有替代方案
- WHEN 何时,什么时间做,什么时机最适宜
- WHERE 何处,在哪里做
- WHO 谁,由谁来做
- HOW 怎么做,如何提高效率,如何实施,方法是什么
- HOW MUCH 多少,做到什么程度,数量如何,质量水平如何,费用产出如何
5W2H分析法又叫七问分析法,广泛用于企业管理和技术活动,对于决策和执行性的活动措施也非常有帮助,也有助于弥补考虑问题的疏漏。
Two-pizza teams
双比萨团队”(Two-pizza teams),就是说让团队保持在两个比萨能让队员吃饱的小规模的概念。团队要小到让每个成员都能做出显著的贡献,并且相互依赖,有共同目标,以及统一的成功标准。
如果你在一个大于15人的团队里工作,你就是在和人类本性对抗。团队成员数量可以是3到12或者15个,最佳的成员数量是10个。