计算机硬件
1. 电脑需要电流直接控制
2. 操作系统帮助用户将底层的实现细节实现好
内核(程序)对计算机硬件进行直接控制
有了内核之后,可以不需要直接使用电流对底层硬件进行驱动,程序相对简单了好多。
但是对于一些非专业人士,还是有很大的难度进行使用
因此,假如内核有 10万 个功能,我们可以将其进行分类包装,进行简化接口,进而形成了系统接口(简易程度再次加大)==》完成了操作系统的实现
那么,可以继续往上进行封装,进行简化功能。到达了应用程序这一层
各类解释器将操作系统提供的接口进行了再次封装(对计算机专业人员友好,但是对于非专业人员依然很不友好)
再往上走,一些解释型开发的应用程序就可以说是为用户提供了一些应用程序封装功能,提供可视化接口
上图是我们科班人员需要学习的东西
项目开发的完整流程
一、需求分析阶段
1、PM(产品经理):
对市场进行调研,得到一些需求,之后再次对周围的人进行市场调研(比如:流程实现)
2、产品内部评审: 提交给产品部分,对这些需求进行审核(是否是伪需求,还是真需求)
不通过:则需求被打回,继续做专业化梳理
通过,则继续下面的内容
3、寻找技术相关的人才(UE, UI, RD,QA),再次探讨需求的可行性(技术的可行性),讲解产品的原型(样版)
技术是否明确:确定明确:那么进行开发阶段;不明确,重新探讨
二、项目开发阶段(设计阶段 + 开发阶段)
1. 分头行动,进行设计(下面三个大块,相互独立,是并联的,但是每一块儿是串联的)
UE做交互设计
UI根据UE做设计,页面风格
FE做页面开发
QA设计测试用例,进行评审
RD人员设计技术方案、评审(多次讨论)
RD排期:多个项目的优先级的划分,同时 QA 的排期也需要RD的排期来排期
前后端开发定于好接口 & 各自开发 & 联调自测
三、项目测试阶段:
前端和后端代码进行合并
1、开发自测(项目内部进行测试)(code review)
发现 bug 修改,确定没有什么问题之后,
2、QA测试人员:对代码进行测试
测试环境验证
沙箱环境验证
对bug进行修复
(这一步可能需要反复进行bug发现和修改)
3、产品进行第一次验收
四、项目上线阶段
(一旦产品上线之后,OP, RD 等工作人员都在凌晨需要加班)
上线计划的填写
上线准备工作
具体上线的步骤
(一旦上线出现问题之后,如何进行回滚:出现问题之后,首先回滚到上一个版本,产品在背后将问题解决完成之后再上线)
上线成功之后,上线功能回顾(再次测试),确定没有问题之后,产品进行第二次验收
验收完毕 ,整个项目上线完成
OP人员需要监控好,计算机硬件、网络的稳定性、以及安全性
软件上线完成之后,运维人员的三大职责:
整套体系结构:应用程序 --> 操作系统 --》计算机硬件--》网络--》安全
监控《== 保证应用程序 7*24*365(就是为了体现不间断) 天的不间断运行
数据备份(异地备份, 一般会存在磁盘)
优化: 优化操作系统(内核);优化硬件(加内存条,加硬盘等);多台计算机搭载一个应用程序
由于需求是不断进行变化的,因此需要不断地更新需求
1~2weeks小版本的上线
1~2months大版本的上线
原型草图:
1、 前端开发:
产品经理负责把控产品的整体质量,UE负责将产品经理脑中的初像的想法具体化,UI根据 UE的设计稿,将界面画出来(美观);之后将 UI 做好的图片,交给FE前端(根据 UI 的设计来实现前端开发)
UI <---- UE
UE(User Experience)交互式设计:(交互)
软件按钮触发之后,下一步跳转到的页面
UE 不管页面的排版,只管,某个页面的大概区域应该有某个功能触发(一个软件打开之后,必须是可以关闭的,否则就被定性为一种病毒)
UI(User Interface)设计师:将UE交互式设计的结果转换为一个一个好看的界面(美化)
FE(Front-End)(前端开发):(web 客户端,app客户端,微信小程序)
(应用程序若想在操作系统上面进行使用,需要和操作系统进行绑定)
(拓展:
小米生态:以小米手机的操作系统为平台,上面绑定各种各样的应用程序)
2、 后端开发
RD(Research and Develop) 后端开发 PM项目经理(PM项目经理是可以中途更换的,但是PM产品经理是不可以的 )
前端触发响应,将请求发送给后端,后端接收到请求,将数据反馈给前端,在界面进行显示
那么既然要进行沟通,就需要一些设计规范(接口的定义与调用)
QA 测试人员:
功能测试,设计好的测试用例
OP 运维人员(Operations) Devops 自动化运维人员、 dba数据库运维人员
设计好整套系统架构
一个较好的公司,在开发的过程中会存在下列的若干环境:( OP管理下面环境)
0. 个人电脑开发
QA使用: 1. 测试环境
2. staging 环境(服务器)(与线上环境是1:1的):是对外宣传的环境
3. 线上环境 =》直接和公网进行联通,用户使用的环境
服务器
一般是两个电源模块(两股电)
1、机架式服务器
2、刀片式服务器(服务器就是一块主板)主要是为了集群而生,离开了柜子之后不能单独运行
3、塔式服务器
去IOE运动:(三家公司进行垄断了) 去掉下面三家公司的产品
I:IBM:主要是服务器 --》 替换为Dell服务器、浪潮、云主机等
O: Oracle: 主要是数据库存储 --》MySql(但是 MySql被 Oracle 所收购),所以就又出现了 marriadb
E:EMC:主要是存储 --》自定义的存储(ceph(块存储), nfs, swift(云计算中)对象存储)
Linux : Redhat linux 是做的不错的,是在开源linux的基础上完善了一些内容,进行收费,需要购买 license,从此用户就照着 Redhat linux 重新写了一个 centos 系统