DC's blog DC's blog
首页
  • 计算机基础
  • linux基础
  • mysql
  • git
  • 数据结构与算法
  • axure
  • english
  • docker
  • opp
  • oop
  • 网络并发编程
  • 不基础的py基础
  • 设计模式
  • html
  • css
  • javascript
  • jquery
  • UI
  • 第一次学vue
  • 第二次学vue
  • Django
  • drf
  • drf_re
  • 温故知新
  • flask
  • 前后端不分离

    • BBS
    • 订单系统
    • CRM
  • 前后端部分分离

    • pear-admin-flask
    • pear-admin-django
  • 前后端分离

    • 供应链系统
  • 理论基础
  • py数据分析包
  • 机器学习
  • 深度学习
  • 华中科大的网课
  • cursor
  • deepseek
  • 杂文
  • 罗老师语录
  • 关于我

    • me
  • 分类
  • 归档
GitHub (opens new window)

DC

愿我一生欢喜,不为世俗所及.
首页
  • 计算机基础
  • linux基础
  • mysql
  • git
  • 数据结构与算法
  • axure
  • english
  • docker
  • opp
  • oop
  • 网络并发编程
  • 不基础的py基础
  • 设计模式
  • html
  • css
  • javascript
  • jquery
  • UI
  • 第一次学vue
  • 第二次学vue
  • Django
  • drf
  • drf_re
  • 温故知新
  • flask
  • 前后端不分离

    • BBS
    • 订单系统
    • CRM
  • 前后端部分分离

    • pear-admin-flask
    • pear-admin-django
  • 前后端分离

    • 供应链系统
  • 理论基础
  • py数据分析包
  • 机器学习
  • 深度学习
  • 华中科大的网课
  • cursor
  • deepseek
  • 杂文
  • 罗老师语录
  • 关于我

    • me
  • 分类
  • 归档
GitHub (opens new window)
  • 计算机基础

    • 前奏(介绍)
      • 计算机
        • 灵魂问答
        • 计算机的三层结构
      • 项目完整开发流程
        • 需求分析阶段
        • 项目开发阶段
        • 项目测试阶段
        • 项目上线阶段
    • 计算机硬件组成
    • 操作系统
    • 计算机网络概览
    • 计算机网络之网络接口层
    • 计算机网络之网络层
    • 计算机网络之传输层
    • 计算机网络补充
  • linux基础

  • mysql

  • git

  • 数据结构与算法

  • axure

  • english

  • docker

  • IT_Need
  • 计算机基础
DC
2022-12-09
目录

前奏(介绍)

Sometimes it’s the very people who no one imagines anything of who do the things no one can imagine. -- By 电影:模仿游戏

学知识灵魂三问: 是什么?为什么?怎么用?

开始学习前,一定要明白一点. 计算机组成原理、操作系统、计算机网络很重要很重要!但是现目前我们时间有限, 在有限的时间里, 只需要跟着egon老师先简单了解一些对接下来编程有帮助的知识点即可..!!! 不要当完美主义者、不要当完美主义者、不要当完美主义者. 不要想着对这三大块知识面面俱到!! 理论为辅,实践编程为主, 不然学起来会很痛苦, 切勿自乱阵脚, 后续再挤时间重新一丝不苟的将这三大块全面学习一遍!!!


# 计算机

# 灵魂问答

程序是什么?

程序 就是一堆代码文件. 若程序只有一个文件,通常将此文件称之为 脚本文件 .
程序 = 数据结构 + 算法;
程序从属于软件,软件是一堆完成各自特定功能的程序的集合.
But很多时候,我们在阐述过程中说软件就是指程序,说程序就是在说软件.. 可结合具体语境分析,别纠结..

计算机的分类

计算机 = 硬件 + 软件.
计算机只有硬件的话,就相当于是一堆废铁.
计算机的运行全都受到软件(一堆应用程序的集合)的控制. 可以说 软件/程序是计算机硬件的灵魂 .

软件分为两大类
1> 操作系统: 就是一个协调、管理、控制计算机硬件资源与应用软件的一个控制程序.
2> 应用软件/应用程序

# 计算机的三层结构

应用程序调用操作系统接口; 操作系统管理硬件; cpu是硬件中的最高指挥官.. 换句话说, cpu是硬件的老大, cpu的老大是操作系统..Hhh

计算机体系的三层结构:
最上面 --      应用程序 支付宝 微信 滴滴...
中间层 --      操作系统 Linux Windows Mac
最底层 --      硬件

首先要明确,开发的工作就是使用解释器规定的一系列命令堆砌成一个应用程序..给用户使用.
而命令是干啥的?eg: shell解释器的ls命令就是对操作系统一些接口封装后的产物
说白了, 用软件的某一个功能, 就是执行了某个程序(一堆代码/命令),进而去调用OS对应的系统接口,完成对计算机硬件的操作. 所以说, 应用程序调用硬件是需要经过操作系统的 .所有的应用程序都是运行在操作系统之上的.

要理解的非常底层才能直接使用计算机硬件.
操作系统内核负责帮我们管理硬件,但内核提供的功能还是比较多比较细的.
系统接口将内核的一些功能封装封装.(做个比喻:内核功能十几万个,系统接口封装完可能就几万个)
有了系统接口后仍然不够简单,于是乎有了应用程序. shell解释器、python解释器等等..
而我们学python,学的是python解释器的一系列命令(即python解释器的一系列进一步封装的功能)
用这些python命令我们可以开发出更加上层的应用程序(解释型语言开发的应用程序)

注意哦,有些应用程序是可以直接调用系统接口的.
1
2
3
4
5
6
7
8

Ps: 有一些软件(编译型语言 -- c语言 go语言写的..)是不通过解释器的,它 直接调用系统接口 .这样的效率会高一些.


# 项目完整开发流程

UE: 交互设计,负责软件好不好用
UI: 界面设计,负责界面好不好看
FE: 前端开发
RD: 后端开发
QA: 测试
OP: 运维

# 需求分析阶段

1> 产品经理( PM ) 根据调研提出一个需求,
2> 公司的产品部门对需求进行评审,判断是否是一个伪需求(不合理的需求);
3> 若需求合理,PM会召集项目相关技术人员开需求讨论会.
     相关技术人员 [eg: UE'用户体验' UI'界面设计' RD'研发' QA'测试' 等]
4> 这一过程中,PM会先讲解产品原型(产品的样本草图)... 讨论这些需求的可行性,能否通过技术实现 
     不断开会,直到确定此需求是没问题的.
注意: 若作为开发人员,需求不明确,千万别进入开发环节; 不要看见某需求很简单,就马上说能实现,很多坑的 

# 项目开发阶段

这一阶段分为 设计阶段 和 真正开发阶段 (前后端根据接口规范分头开发). 最后合并.

PM把控软件的整体质量,UE负责将PM脑中如何跟用户交互的抽象想法具像化, UI根据UE的交互设计稿设计页面.

PM会跟UE泡在一起.-- 画出交互原型图.

交互式设计师( UE ) 负责产品与用户的交互,如何交互更符合用户的习惯. 负责软件好不好用.
     UE注重的是用户体验.是不管页面的具体内容的
eg: 此按钮应该大致放在页面哪个位置,跳转到哪个界面.出错了在哪弹出信息 

界面设计师( UI ) 负责设计页面具体的样子.每个页面的边边脚脚是什么样子的.本质就是画画.
eg: 背景是什么, 字体多大, 距离是怎样的, 布局是怎样的 

前端开发( FE ) 负责根据UI的设计图进行客户端程序(eg: web界面,手机app,微信小程序)的开发...

后端开发( RD ) 负责收到前端的请求提供数据接口 
     在啥功能都没写的时候,PE和RD就会定好接口规范,要封装哪些数据接口,每个接口叫什么名,怎么用.
     后端开发的项目经理 project manager 也称为 PM... 它负责将项目的技术框架搭建好 
一两周小迭代,一两月大迭代 -_- 我真的会谢.

# 项目测试阶段

1> 开发人员会先进行 code review(代码评审 重新过一遍代码)
2> 测试人员( QA ) 负责设计好测试用例等.开发好的软件或多或少有点bug..
测试环境 -- 准生产环境(与线上环境尽可能一比一 QA也会在这里面测试) -- 线上/生产环境(互联网用户使用的环境).

# 项目上线阶段

环境 作用
dev 前后端联调的环境 (数据自己造,乱七八糟的)
test 交给测试测试的环境 (数据自己造,乱七八糟的)
release 预发布环境, 数据从真实环境拉过来的.一般不会改
master 正式环境/主分支

Ps: 一旦进入test环境,开发就会来新项目了. 就项目测试测出问题,还要占用开发新项目的时间. (つД`)ノ

运维人员编写上线方案, 在准生产环境staging进行一遍测试.没问题后部署上线.

运维人员( OP ) 负责设计好整套系统的架构. 环境、网络安全、计算机硬件等都归OP管.
比如: 软件要上线时,计算机硬件需要什么配置,用什么操作系统.是否需要集群去承载这个软件 
          此版本出现问题了立刻回滚到上一个版本等.(上线时所有人都在 小问题马上改 大问题赶紧回滚)
细分的话,运维分为,devops自动化运维;dba数据库管理 等等 .

运维职责:
1> 画架构图
2> 保证应用程序7*24*365小时不间断的运行
     稳定性     做好监控 
     可靠性     数据备份 解决单点故障
     性能        优化调优,扩展, 所有的优化都会停留到IO性能上
OP在服务器上主要部署的是服务端,用户在应用商店下载的是客户端..

运维要有集群的概念(电源、风扇、硬盘等),集群性能更高,也能防止单点故障..当出现问题后,及时解决问题 
要知道哦,不是一上来就用集群,慢慢根据需求改变的 


后续的操作系统部分更多的会从应用角度阐述..

计算机硬件组成

计算机硬件组成→

最近更新
01
deepseek本地部署+知识库
02-17
02
实操-微信小程序
02-14
03
教学-cursor深度探讨
02-13
更多文章>
Theme by Vdoing | Copyright © 2023-2025 DC | One Piece
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式