常看常新的技术常识

Hang

最近由于项目所需,工作重心向产品方向发生了倾斜,除了照常梳理需求、输出交互稿外,还需要对接开发、领导、业务方等,协调各方资源来保障项目的正常进行。由于业务方不直接与开发对接,“我”成了整个链条的中枢,这对个人综合能力又有了新的要求:

  1. 在业务方提出新需求时,要初步评估技术的可实现性、时间成本、可调用的开发资源等,及时辨别并拒绝不合理的需求能极大的节省沟通成本;
  2. 在跟开发沟通时,能更好的评估开发周期;
  3. 当系统出现问题时,需要能判断出大概的原因和解决方向,协助运维对问题进行排查

以上三点都需要我们对基本的技术知识有一定了解,于是趁着业余时间查阅了相关资料。得益于大学课程的丰富性,许多技术知识都接触过,省了不少理解的时间。想着时间一久又容易忘记,所以将这些零碎的知识汇总在一块,希望常常温故而知新。

技术名词汇总

XML/JSON 可扩展的结构化数据传输格式,使不同编程语言进行数据传递和交互 英语之于各国语言,普通话之于各方言;两者好比两种格式的信纸,写了同一封内容的信
URL 唯一资源定位符 指纹
token 令牌,访问操作的许可授权 健身房的卡,持卡进入,逾期作废
cookie 用户身份标识,储存在客户端 解决http协议无状态的弊端,为了让客户端和服务端建立长久联系
session 用户身份标识,储存在服务端
SDK 软件包、软件框架、操作系统等建立应用软件时的开发工具的集合
单点登录 一个账号只需要登录一次就可以访问不同页面或产品 eg:登录QQ,可以访问QQ空间、QQ邮箱等其他服务
写死 将数据集写死在本地,省去数据接口的开发,可以快速实现效果,但不利于更新
负载均衡 将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行 交通指挥调度中心,实现流量动态平衡

产品与技术

12

技术原理:

  1. first…second…then….
  2. if,do;else if ,do
  3. 重复做某件事N次
  4. 只要满足某个条件,就一直做这件事

数据结构

单一数据项根据一定的规则形成的结构,用来对零散数据进行结构化管理。

3

队列

4

特点:先进先出,顺序执行
应用场景:1、电商领域商品抢购;2、消息推送;3、排队叫车

树状结构

5

特点:唯一根节点,多个末端节点
应用场景:1、角色权限设计;2、tab导航;3、文件系统设计

数组

数组是指具有相同数据类型的数据元素组成的集合。数组同样有数据类型,而且一个数组内只能同时存在一种数据类型

6

特点:数据按顺序成组,每个数据项都有下标,数据项位置可交换
应用场景:1、列表展示;2、排序

栈:汉诺塔结构

7

特点:后进先出
应用场景:返回,从三级页面返回到一级页面,需要先回到二级,才能再回到一级

8

程序方法:程序中的最小执行单元,一个方法定义输入输出参数,方法体执行对应的业务逻辑

技术架构:MVC

9

Model(M):模型结构层(数据)

  • 数据结构
  • 代码实现数据结构
  • 代码实现被调用方法

View(V):视图层(界面元素)

  • 前端页面框架
  • 页面控件、布局
  • 调用方法

Controller(C):控制器(逻辑处理)

  • 设计控制器结构
  • 业务逻辑
  • 控制页面更新和展示
  • 数据更新

例:邮箱注册

10

前端

存储于客户端本地的一个文本文件,用来记录用户个人信息和浏览历史

  • 存储在客户端本地
  • 具备有效期
  • 可手动清除

Session

是服务端生成的一个访问状态,存储在服务端,用来校验用户身份有效性

  • 存储在服务端
  • 可设置有效期
  • 状态由服务端控制,客户端不可控制

web静态和动态页面

11

后端

缓存

缓存是一种临时存储机制,目的是用来提升数据加载过程中的速度和使用体验

缓存分为:

  • 一级缓存:手机内存,读取速度快,空间共享,数据临时性存储
  • 二级缓存:硬盘存储,空间独享,永久性存储

React Native

一种基于Web技术开发native app的技术,在不用发布前端版本的基础上实现热更新

优势:

  1. App可以像网页一样更新,随时发布,不依赖于版本迭代
  2. 不再区分程序员职能,一套应用程序统一开发
  3. 代码复用度高,避免多端兼容

12

消息推送

类型:

  1. 主动轮询
  2. 建立长链接
  3. 心跳消息

API

接口,一种客户端和服务端进行数据传输和交互的数据协议通信协议,约定客户端和服务端之间数据传输格式的访问地址

组成:url+数据参数
eg:登录接口:
url:https://192.168.0.1:8080/myserver/login.do
参数:{“username”:”bliss”,”password”:”000000”}
API调用:

  1. 同步调用
  2. 回调
  3. 异步调用

SDK

软件开发包(Software Development Kit),是一系列开发工具(API)的集合

13

常见的:定位SDK、推送SDK,类似于别人已经把这个服务做好了,打包成一个模块,我们直接调用就行了,不用再浪费成本去研发该服务

接口请求与响应

  1. 客户端程序通过发送HTTP请求访问对应的API(URL),并携带参数(JSON/XML)传递给服务端。

对应产品功能:

  • 一个功能可能只对应一个API,也可能同时调用多个API;
  • 一次功能操作,API可以顺序执行调用,也可以异步处理调用;
  1. 服务端接收API调用后,处理业务逻辑,并将处理结果以数据参数的形式返回给客户站

对应产品功能:

  • 客户端操作某一功能后,等待服务端返回结果;
  • 等待服务端响应功能结果,可以是同步的,也可以是异步的;
14

数据库

了解数据库的基本结构,知道每一种实体间的关系是如何设计的,设计产品时才能从数据的角度考虑产品的设计逻辑,设计出更符合数据模型的产品

数据库和服务端的关系:服务端程序处理业务逻辑,然后调用数据库进行数据操作

工作原理:

  1. 被服务端调用,进行数据增删改查
  2. 服务端程序通过SQL语句操作数据库,SQL语句需要工程师通过写代码的方式实现
  3. 数据库运行在服务器上,数据存储在服务器硬盘中

数据库表和关系结构

数据库“表”对应客观世界中的一个实体,“表”的名就是实体名,“表”的字段就是实体属性实体“人”一用户“表”
实体“订单”一订单“表”
实体“商品“——商品“表”

15

表与表之间关系结构可以是:1:n、n:n、1:1,通过“主键”进行关联
主键:每个表中,唯一标识一条数据的字段
eg 1:商品表的主键:productid,订单表主键:orderid

productid productname price color
1 毛巾 100 white
2 水杯 50 blue
ordertid totalprice productid time
10103871 150 1、2 20230417132719
10389021 100 1 20230514182305

eg 2:

16

SQL

结构化查询语言,是一种用来操作关系型数据库的编程语言,可以理解为对数据库的操作命令

17

18

数据表索引

索引是基于数据库表某一列或几列建立的目录结构

优点:通过索引能极大提高数据的查询效率
缺点:
1、索引需要耗费一定的物理存储空间,索引单独维护

2、每次对数据表更新的同时需要更新维护索引表

3、需要花费较多的时间去建立和维护索引,随着数据总量的增加,花费的时间也将增加

数据存储与恢复

数据存储在数据库中,数据库在物理上位于服务器的数据磁盘中,数据磁盘通常划分为两个区域:1、索引区;2、数据区

19

评估研发工作量需要从哪些方面进行考量:

20