行业术语
接口( Interface ):
一种用来定义程序的协议,通过衔接软件系统中的不同组成部分,实现计算机软件之间的相互通信。
软件框架(Software Framework):
软件框架是一种抽象,它提供了构建和部署应用程序的标准方法,并且是一个通用的、可重用的软件环境;它提供了大型软件平台的一部分特定功能,以促进软件应用程序、产品和解决方案的开发。软件框架可能包括支持程序、编译器、代码库、工具集和应用程序接口(API),将所有不同的组件组合在一起,以实现项目或系统的开发。
库(Library):
又叫函数库,用于开发软件的子程序集合。它类似于一些已经开发的模块,就像积木模块一样,是构建整个软件的一些通用零件仓库,这些程序模块或零件可以让编程变得更为容易和有效率。库和可执行文件的区别是,它不是独立的计算机程序,而是向其他程序提供服务的代码。
API ( Application Programming Interface):
应用程序接口,它是一种计算接口,用来定义软件之间的交互、可以进行的调用(call)或请求(request)的种类,以及如何进行调用或发出请求,应使用的数据格式,应遵循的惯例等。
UI/UX:
UI(User Interface)指的是用户界面,也就是计算机软件或系统和用户进行交互的接口,比如命令行接口、图形界面、鼠标、触摸屏等。UX ( User Experience)指的是用户使用特定产品、系统或服务时的行为、情绪与态度。
协议(Protocol ):
网络协议的简称。网络协议是通信计算机双方必须共同遵守的一组约定,比如怎么建立连接、怎么互相识别等。只有遵守这些约定,计算机之间才能相互通信交流。代表协议有TCP协议、HTTP协议等。
日志(Log):
记录软件运行中发生的事件,或通信软件中不同用户之间的消息。日志有助于软件工程师了解系统运行的情况,并为调查或审计提供相应的数据支持。
Cookie:
HTTP协议中需要保存在用户端的非常小的数据,一般是用户的登录状态、用户的基本信息,或是一个访问令牌。
指针(Pointer):
编程语言中用来表示或存储一类数据类型及其对象或变量的内存地址,这个地址直接指向( pointsto)存储在该地址的对象。
输人输出(IO):
IO是 Input和Output的缩写,也就是输入输出。1/O设备就是输入输出设备。软件和系统的1/O指忙闲状态,如硬盘IO、网络I/O等。
封装(Encapsulation):
在面向对象编程方法中,封装是指一种将抽象性函数接口的实现细节部分包装、隐藏起来的方法。同时它也是一种防止外界调用端,去访问对象内部实现细节的手段,这个手段是由编程语言本身来提供的。
继承( Inheritance):
如果一个类别B“继承自”另一个类别A,我们就把B称为“A的子类”,而把A称为“B的父类别”,也可以说“A是B的超类”。继承可以使得子类具有父类别的各种属性和方法,而不需要再次编写相同的代码。
多态(Polymorphism):
指相同的定义在面对不同的实例时会有不同的执行行为。
递归(Recursion):
在数学与计算机科学中,指在函数的定义中使用函数自身的方法,也就是在运行的过程中调用自己。打个比方:从前有座山,山里有座庙,庙里有个老和尚和小和尚,老和尚对小和尚说,从前有座山,山里有座庙,庙里有个老和尚和小和尚,老和尚对小和尚说……这就是递归。
闭包( Closure ):
也称函数闭包,是一种在支持头等函数的编程语言中实现词法绑定的技术。在操作上,闭包是将函数与其环境一起存储的方式。也就是说,闭包是一个持久作用域,即使代码执行已经离开该语句块,它也保留了局部变量,支持闭包的语言有JavaScript,Swift 和 Ruby 。
垃圾回收( Garbage Collection):
一种自动的内存管理机制。当某个程序占用的一部分内存空间不再被这个程序访问时,这个程序会借助垃圾回收算法向操作系统归还这部分内存空间。垃圾回收器可以减轻软件工程师的负担,也减少程序中的错误。垃圾回收最早起源于LISP语言,目前许多语言如Smalltalk 、Java、C#和Go语言都支持垃圾回收器。
MVC模式( Model-View-Controller ):
软件工程中的一种软件架构模式,目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。这种模式把软件系统分为三个基本部分:
·模型(Model ):软件工程师编写程序应有的功能(实现算法等)、数据库专家进行数据管理和数据库设计(可以实现具 体的功能)。
·视图( View ):界面设计人员进行图形界面设计。
·控制器( Controller ):负责转发请求,对请求进行处理。
进程(Process):
程序被加载到内存里运行的实例,是系统进行资源分配和调度的一个独立单位,就是程序的一次执行过程。
线程(Thread):
进程中的一部分,是操作系统能够调度的最小单位,一个进程中可以包括多个线程。
同步( Synchronous):
在编程中,调用一个程序指令后必须等到这个指令返回后,才能往下执行后续的指令。这个程序指令可能是在操作一个外部设备,或是正在进行一次网络请求,需要很长的时间才能返回。于是,整个程序都需要停转——直到这个同步指令返回。
异步(Asynchronous ):
与同步相反。异步指的是不需要等待当前指令返回,就可以继续进行后续指令的执行。异步与同步各有各的好与不好。一般来说,同步在编程复杂度的处理上表现好,但在系统性能上表现不好;异步在系统性能上表现很好,但在程序的控制逻辑上会使复杂度提升。
主键(Primary Key ):
数据库中的一个概念,比如录人学生信息时,有姓名、性别、学号。以上三个信息可以组成一个数据列,这个数据列里唯一的标识是学号,那么学号就是这个数据列的主键。所以主键是一种唯一关键,一个数据列只能有一个主键且主键不能为空值。
外键( Foreign Key):
用于建立数据库表与表之间的链接,比如在一个班级中,学生的学号是主键,学生里有班长,“班长”就是外键——“班长”表示某个班级的班长的学号,它引用了“学号”属性。
事务(Transaction):
访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单元。
NULL指针:
空指针,指的是一个已宣告但并未指向一个有效对象的指针。许多程序利用空指针来表示某些特定条件,例如未知长度数组的结尾或某些无法运行的操作。空指针错误是一种常见的程序错误,一旦尝试访问空指针所指向之对象的情况发生,就会出现 NullPointerException(空指针异常)。
死循环(Infinit Loop):
又称无限循环,是指程序的控制流程一直在重复运行某一段代码,无法结束的情形。其原因可能是程序中的循环没有设结束循环条件,或是结束循环的条件不可能成立等。
CPU:
中央处理器,是计算机的主要设备之一,功能主要是解释计算机指令以及处理计算机软件中的数据。计算机的可编程性主要是指对中央处理器的编程。
GPU:
图形处理器,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上运行绘图运算工作的微处理器。
迭代( Iteration):
一种敏捷软件开发的方式,倡导用“小步快跑”的方式,把一个复杂的系统分解成一块一块很小的任务,然后快速地开发这些小任务,最终形成一个大的软件系统。迭代开发把传统上一次完整的交付,变成了若干次不完整的交付,这样一来,可以让用户看到整个开发过程,可以及时得到用户的反馈,从而可以让最终的交付物更接近用户的需求。
白盒测试( White-Box Testing ):
软件测试的主要方法之一,也称结构测试、逻辑驱动测试或基于程序本身的测试。测试应用程序的内部结构或运作,而不是测试应用程序的功能。
黑盒测试(Black-Box Testing):
软件测试的主要方法之一。测试者不了解程序的内部情况,不需具备应用程序的代码、内部结构和编程语言的专门知识。只知道程序的输人、输出和系统的功能,这是从用户的角度针对软件界面、功能及外部结构进行测试,而不考虑程序内部逻辑结构。
黑客(Hacker ):
真实的黑客主要是指技术高超的软件工程师。除了精通编程、操作系统的人可以被视作黑客,对硬件设备做创新的工程师通常也被认为是黑客,另外现在精通网络人侵的人也被看作是黑客。黑客分为白帽子、灰帽子和黑帽子:
白帽子描述的是正面的黑客,他可以识别计算机系统或网络系统中的安全漏洞,但并不会恶意去利用,而是公布其漏洞。这样系统将可以在被其他人(例如黑帽子)利用之前来修补漏洞。
灰帽子擅长攻击技术,但不轻易造成破坏,他们精通攻击与防御,同时头脑里具有信息安全体系的宏观意识。
黑帽子研究攻击技术非法获取利益,通常有着黑色产业链。