术语漫谈

2018/08/24 杂记

答应了帮非计算机专业的一个朋友讲程序员世界的术语,所以这里写了这篇博客,因为我是 java 程序员,文中的观点可能片面或者错误,欢迎指正。

操作系统

主流电脑操作系统包括 WindowsMACosLinux 。操作系统就是协调计算机的硬件资源,帮助人们更快捷的完成工作。不同的操作系统对于程序员来说没有区别,毕竟都可以写代码:smirk:

计算机网络

计算机网络中的术语常见的应该就是 TCPUDP 了, TCP 协议是端对端的,就像是发微信给对方,要双方加好友才能发。 UDP 协议是无连接的,就像是有个人在发广播,不关注对方是不是听到了。

IP 呢就是计算机世界里面你的家庭住址,别人要给你通过网络传递消息,就需要知道你的地址才可以给你传输过来。

软件分类

当下的主要的软件分为 CS 和 BS 两种架构。

何谓 CS ,Client(客户端) - Server(服务器端),典型的软件就是 QQ 客户端、迅雷。

何谓 BS ,Browser(浏览器) - Server(服务器端),所有的网站都是 BS 架构, QQ 网页版也是 BS 架构哦,因为是在浏览器上面和服务器交互的。

前端

前端主要指的是, BS 架构中浏览器端的程序,包含 HTMLJS (JavaScript)、 CSS

这里面的 JavaScript 和 JAVA 可差别很大,借用大学课本的一句话就是,是雷峰塔和雷锋的关系(毫无任何关联)。

接着说这三者的关系, HTML 像是一个人的骨架,而 CSS 就是这个人的血肉和衣服, JS 呢就是这个人的大脑。

我们使用 HTML 搭建网页的基础框架,使用 CSS 来让网页变得生动和漂亮,使用 JS 来让网页响应我们的鼠标和键盘操作,让网页变得生动聪明。

AJAX 技术使得我们可以部分更新页面,而不必刷新整个页面,这样可以极大的提高用户体验,页面开发中会经常使用到。

HTML5 是HTML语言的第五次重大修改,目的是为了在移动设备上支持多媒体,引进了新的语法特征,如 video 、 audio 和 canvas 标记。

Canvas API (画布)是在 HTML5 中新增的标签用于在网页实时生成图像,并且可以操作图像内容,是一个可以用 JavaScript 操作的位图。

TypeScript 是 Microsoft 推出的开源语言,是 JavaScript 的超集,包含了 JavaScript 的所有元素,可以载入 JavaScript 代码运行,并扩展了 JavaScript 的语法。

AngularJSVueJsReactJS 都是前端分层的框架,分层的好处在于提高代码的可维护性和可读性。

后端

后端指的是,给 BS 架构浏览器端提供数据的服务器端程序,说到这里你可能会奇怪,明明我需要一个网页,新写一个 html 页面就可以了,为什么数据还需要后端提供呢,举个例子:ghost:

网易新闻网站每天都要更新新闻。有些新闻还是实时更新的,这时候总不能招一百个程序员,每天就是写 html 页面吧,这个时候就需要几个编辑往数据库录入新闻,用户每次访问网站的时候,前端程序去找后端程序问,最新的 10 条新闻是啥呀,后端程序就把这 10 条新闻的标题、时间、作者、内容 等等信息告诉前端程序,前端程序就可以给用户展示出最新的新闻了。

后端的编程语言我就拿 JAVA 举例子了,我也只会 JAVA 啊:joy:

JAVA WEB 技术的发展

  1. Servlet + JSP 这个就像是内功,别的花哨的武功基本离不开这个,这个阶段程序员小张是需要天天加班才能完成安排的任务
  2. SSH (Struts + Spring + Hibernate) 这个像是刚刚开始练功第一层,这里的工具就可以让开发工作变的不是那样的繁重了,到了这里,小张就可以稍微有时间喘口气了,但是还是很累。
  3. SSM (String + StringMVC + MyBatis) 这个就算是小有成就了,这三个结合起来,可以简化很多工作流程,小张就可以按时下班了。
  4. Spring Boot 这个算是当下 JAVA 开发技术的大合集,默认就帮你完成了很多工作,今天,老板找小张说,你最近下班挺早啊,给我发布一个新的接口出来,我明天早上就要,第二天小张早到了公司 5 分钟, 5 分钟以后,接口已经发布好了。
  5. …(学无止境啊)

OOP 面向对象编程,这里的对象是程序中的对象,可不是现实中的对象:grimacing:,与之相关的还有一个面向过程编程,C语言就是面向过程编程的语言,JAVA是面向对象的编程语言。

AOP 面向切面编程。

IOC 控制反转,Spring 中的术语。

DI 依赖注入,Spring 中的术语。

Tomcat 广泛使用的容器,为什么叫容器呢,因为这个是用来放后端代码的呀,把后端程序打包放进容器里面,就可以给前端提供服务了。

Maven 就是用来管理 JAVA 依赖的第三方包、以及用来执行上面的打包操作的工具。

Gradle 可以认为是对 Maven 的一种优化。

Jenkins 持续集成工具。

SVN 集中式版本控制系统。

Git 分布式版本控制系统。

GitHub GitHub 可以托管各种 git 库。

Redis 是一个 key-value 存储系统,主要用来做缓存。

Kafka Kafka 是一种高吞吐量的分布式发布订阅消息系统

RabbitMQ 消息队列(Message Queue)消息队列是一种应用间的异步协作机制,主要是为了应用解耦,增大系统处理数据的吞吐量。

数据库

mysql 免费的开源数据库。

Oracle 收费的商业数据库。

MongoDB 非关系型数据库(上面的两个数据库存储就像是 Excel 一样的二维表,是关系型数据库,这个的存储结构和上面的不一样)。

SQL 结构化查询语言,用于存取数据以及查询、更新和管理关系数据库系统。

服务器

一般的后端程序都会部署在服务器运行,服务器的操作系统一般是 Linux ,优势在于系统的稳定和免费,便于多用户同时操作。

SSH 这里的 SSH 不是上面的 SSH 三种框架的合成了,是安全外壳协议,简单来说是用来连接服务器的一个协议,Linux 服务器就是通过这个协议登录,然后进行操作的。

Linux 命令 就像是 Windows 系统下的 CMD 命令,用于和操作系统交互,控制操作系统完成你期望的工作。

转载请标注原文链接

Search

    Table of Contents