自由学习记录(37)

对于这一方面,先把课都过一遍吧,尽量快的摸清楚底

软件工程 没有复杂的逻辑推理,概念性和理论很强,所以靠记

------
数据:是使程序能够适当处理信息的数据结构
程序:是能够完成预定功能和性能的可执行指令序列
文档:是开发、使用和维护过程程序所需要的图文资料

软件工程 三个要素:方法、工具和过程
方法:完成软件开发各项任务的技术方法,回答“怎么做”
工具:为运用方法提供的自动或半自动软件工程支撑环境
过程:是为了获得高质量软件所需要完成的一系列任务框架,回答“何时做

选择填空考察,具体记住有哪些阶段,即可

第三章       软件设计

第四章 软件开发与测试

黑盒测试白盒测试

第五章 面向对象

用例图

都是对功能分析,然后画图

第六章 软件维护与项目管理

选择填空

估算规模与甘特图

Linux

虚拟机会额外装两个以太网

Linux的字符界面,Window则是交互界面

虚拟机操作系统安装完成后的配置网络连接

虚拟机与其它机器(物理机或虚拟机)进行组网。

虚拟机连接 Internet,从外网获取资源。

虚拟机的组网方式主要有两种:

(1)桥接:在桥接模式下,VMware 虚拟出来的操作系统就像是局域网中的一台独立 的主机,它可以访问网内任何一台机器。缺点:需要和宿主机器处于同一网段,如果宿主 机的网段发生变化,所有虚拟机的 IP 重新修改。

(2)NAT:使用 NAT 模式,就是让虚拟系统借助 NAT(网络地址转换)功能,通过宿主 机器所在的网络来访问公网。虚拟机和宿主机不需要在同一网段,虚拟机单独组成一个局 域网。如果宿主机的网段发生变化,与虚拟机组成的网段无关

nat 的网络模型

------------------

考,,,Linux里面  localhost Login

输入密码的时候不会显示,,离谱

----这样跟着pdf做还是没什么收获,,算了

Linux王者CentOS7极简入门:7小时让你从凡人进阶筑基强者!_哔哩哔哩_bilibili

整理一下现在的课程了

web开发基础

python程序设计

数据存储综合实训(目前涉及Linux和Maven,Java做项目)

计算机网络

软件工程

计算机组成原理

(还挺头大的,感觉里面这些没多少以后会用,直接收益不如做一些个人探索)

也不管了,,都看吧,,一视同仁,也别整什么游戏开发为主线了,能多了解新东西就够了-----

麻了嗝淡呐,谁还管你啊,考,都没发现这么多要紧的事去做,,,上课是给各位脸了

Unity

自动创建以这个对象为名的Controller文件

//有限状态机(Finite-state machine,FSM)
//又称有限状态自动机,简称状态机
//是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型

老动画系统Animation 组件,制作出的动画格式 和新的动画格式是有区别的

老的创建动画文件也不会创建Controller,直接就是一个动画文件直接用

//目前我们为对象 在Animation窗口创建的动画 都会被 新动画系统支配
有特殊需求或者针对一些简易动画,才会使用老动画系统

回退的时间周期cycle offset

没有属性变化,就不能添加关键帧

1.0是代表一秒结束的意思,也是为了好在这上面区分

同一个状态机Controller下,可以有多个Animation

/保存动画文件时(create),Unity会帮助我们完成以下操作
//1.创建一个AnimatorController(动画控制器或称之为动画状态机资源(新动画系统)
//2.将新创建的动画文件添加到Animator Controller中
//3.为动画对象添加Animator组件
//4.为Animator组件关联创建的AnimatorController文件

animation窗口,

预览-录制--回到第一个关键帧--回到上个关键帧-播放--下一个关键帧--最后一个关键帧

//动画中的帧:
//假设某个动画的帧率为60帧每秒,意味着该动画1秒钟最多会有60次改变机会
//每一帧的间隔时间是1s/60=16.67毫秒
//也就是说我们最快可以每16.67毫秒改变一次对象状态

//动画时间轴:
//每一个动画文件都有自己的一个生命周期,从动画开始到结束
//我们可以在动画时间轴上编辑每一个动画生命周期中变化

//原理:
//制作动画时:记录在固定时间点对象挂载的脚本变量变化
//播放动画时:将制作动画时记录的数据固定时间点进行改变,产生动画效果

---------

大小端(Endianness)指的是多字节数据在内存中存储的字节顺序。具体而言,它描述了数据的高位字节和低位字节在内存地址中的排列方式。

大端序(Big-Endian)

  • 高位字节存储在内存的低地址处,低位字节存储在高地址处。
  • 这种方式符合人类从左到右阅读数字的习惯。

小端序(Little-Endian)

  • 低位字节存储在内存的低地址处,高位字节存储在高地址处。
  • 这种方式在某些计算操作中更为高效。

网络传输通常采用大端序(也称为网络字节序),因此在发送和接收数据时,需要进行相应的字节序转换,以确保数据的正确解析。

Well-Known Types 转换成的 C# 类型

当你在 proto 文件中引用了 Google 提供的预定义消息类型(Well-Known Types),生成的 C# 代码会引用相应的命名空间下的类。例如:

  • google.protobuf.Timestamp
    在 C# 中会生成或引用到:

    Google.Protobuf.WellKnownTypes.Timestamp

    这个类型封装了秒和纳秒,并且提供了DateTime 相互转换的方法

  • google.protobuf.Duration
    在 C# 中对应:

    Google.Protobuf.WellKnownTypes.Duration

  • google.protobuf.Any
    在 C# 中对应:

    Google.Protobuf.WellKnownTypes.Any

    允许你封装任意 Protobuf 消息,并带有类型信息。

  • google.protobuf.Struct
    在 C# 中对应:

    Google.Protobuf.WellKnownTypes.Struct

    用于表示类似 JSON 的动态结构。

  • google.protobuf.FieldMask
    在 C# 中对应:

    Google.Protobuf.WellKnownTypes.FieldMask

这些类型都是由 Protobuf 官方提供、跨语言支持的标准类库,在生成的代码中直接使用,无需你手动实现数据转换。

proto 文件中,可以定义的各种数据类型

  1. 标量类型(Scalar Types)
    这些是内置的基本数据类型,包括:

    • 浮点数类型doublefloat
    • 整数类型
      • 有符号整数:int32int64sint32sint64
      • 无符号整数:uint32uint64
      • 固定宽度整数:fixed32fixed64sfixed32sfixed64
    • 布尔类型bool
    • 字符串string
    • 字节串bytes

数组和List

字典map

oneof 字段
用于定义一组互斥的字段,也就是一次只会有一个字段被赋值。

在 C# 里,oneof 字段 的特点就是 只能赋值其中的一个变量,并且访问时 只能使用当前被赋值的字段,其他字段会被自动清除。

假设有以下 proto 文件:

syntax = "proto3";message SearchResult {oneof result {string text = 1;int32 number = 2;}
}

对应生成的C#代码(protobuf自动生成)

public sealed partial class SearchResult : pb::IMessage<SearchResult> {private object result_;public ResultOneofCase ResultCase { get; private set; }public enum ResultOneofCase {None = 0,Text = 1,Number = 2}public string Text {get { return ResultCase == ResultOneofCase.Text ? (string) result_ : null; }set {result_ = value;ResultCase = value == null ? ResultOneofCase.None : ResultOneofCase.Text;}}public int Number {get { return ResultCase == ResultOneofCase.Number ? (int) result_ : 0; }set {result_ = value;ResultCase = ResultOneofCase.Number;}}public void ClearResult() {result_ = null;ResultCase = ResultOneofCase.None;}
}
public sealed partial class SearchResult : pb::IMessage<SearchResult> {private object result_;public ResultOneofCase ResultCase { get; private set; }public enum ResultOneofCase {None = 0,Text = 1,Number = 2}public string Text {get { return ResultCase == ResultOneofCase.Text ? (string) result_ : null; }set {result_ = value;ResultCase = value == null ? ResultOneofCase.None : ResultOneofCase.Text;}}public int Number {get { return ResultCase == ResultOneofCase.Number ? (int) result_ : 0; }set {result_ = value;ResultCase = ResultOneofCase.Number;}}public void ClearResult() {result_ = null;ResultCase = ResultOneofCase.None;}
}

在c#里实际使用这个自动生成的类(oneof互斥规则)

  • 节省存储空间(同一时间只存一个字段的数据)。
  • 避免无意义的字段同时存在(例如搜索结果不可能同时是字符串和整数)。

proto文件里 为什么必须有字段编号?

  1. 紧凑的二进制编码

    • Protobuf 在序列化时会将每个字段编码为 [tag][value] 的形式,其中 tag 就是字段编号。
    • 没有数字标识符,二进制数据就无法正确地表示每个字段。
  2. 兼容性

    • 当你在未来对消息进行升级,比如新增或删除字段,只要保留已有字段的编号不变,就可以确保旧版数据依然能够被正确解析。
    • 如果没有明确的编号,版本之间的兼容性将无法保证。
  3. 解析效率

    • 使用数字标识符,解析器可以更快速地识别每个字段,提高解析速度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/22587.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker仿真宇树狗GO1

1. 启动容器 docker run -it --rm humble_suo bash2. 安装Go1 的仿真包 apt update apt install -y git cmake build-essential git clone https://github.com/unitreerobotics/unitree_ros.git cd unitree_ros colcon build source install/setup.bash3. 启动仿真环境 ros2…

《游戏人工智能编程 案例精粹》阅读心得

最近读完了这本《游戏人工智能编程 案例精粹》&#xff0c;感觉获益匪浅&#xff0c;在对游戏人工智能的设计上有了更深的感悟。 这本书既适合初学者学习&#xff0c;因为次书会从最基础的数学物理公式推导一步一步介绍到完整的人工智能开发&#xff1b;同时也适合进阶程序员&a…

黑马点评_商品信息缓存模块

保证缓存不要有空档期 删除后马上要写入中间不能插入任何阶段(如查询数据库) 对于单体系统1&#xff0c;将缓存与数据库操作放在同一个事务中&#xff08;当前项目就是一个单体项目&#xff0c;所以选择这种方式&#xff09; 对于分布式系统2&#xff0c;利用TCC&#xff08;Tr…

OnlyOffice:前端编辑器与后端API实现高效办公

OnlyOffice&#xff1a;前端编辑器与后端API实现高效办公 一、OnlyOffice概述二、前端编辑器&#xff1a;高效、灵活且易用1. 完善的编辑功能2. 实时协作支持3. 自动保存与版本管理4. 高度自定义的界面 三、后端API&#xff1a;管理文档、用户与权限1. 轻松集成与定制2. 实时协…

面阵工业相机提高餐饮业生产效率

餐饮行业是一个快节奏、高要求的领域&#xff0c;该领域对生产过程中每一个阶段的效率和准确性都有很高的要求。在食品加工、包装、质量控制和库存管理等不同生产阶段实现生产效率的优化是取得成功的关键步骤。面阵工业相机能够一次性捕捉对象的二维区域图像&#xff0c;并支持…

现场可以通过手机或者pad实时拍照上传到大屏幕的照片墙现场大屏电子照片墙功能

现场可以通过手机或者pad实时拍照上传到大屏幕的照片墙现场大屏电子照片墙功能&#xff0c;每个人都可以通过手机实时拍照上传到大屏幕上,同时还可以发布留言内容&#xff0c;屏幕上会同步滚动播放展示所有人的照片和留言。相比校传统的照片直播功能更加灵活方便&#xff0c;而…

【多线程】线程安全

目录 一、初识线程安全 什么是线程安全问题 理解线程不安全的原因 原因总结 二、解决线程不安全 加锁&#x1f510; 锁对象 synchronized几种使用方式 死锁&#x1f50f; 死锁的三个场景 (1)一个线程针对一把锁连续加锁两次 (2)两个线程两把锁 (3)N个线程M个锁 如…

传统文旅+AI构建数字文旅新生态

传统文旅AI构建数字文旅新生态 前言&#xff1a; 当前许多旅游景区在旅游管理和旅游基础设施配套上都下足了功夫&#xff0c;在一定程度上也给旅客和消费者带来了舒适的体验感。但是针对于我们游客而言&#xff0c;似乎只有欣赏沿途风景、了解景区历史文化、拍照打卡和品尝特色…

VSCode - VSCode 切换自动换行

VSCode 自动换行 1、基本介绍 在 VSCode 中&#xff0c;启用自动换行可以让长行代码自动折行显示&#xff0c;避免水平滚动条频繁使用&#xff0c;提升代码阅读体验 如果禁用自动换行&#xff0c;长行代码就需要手动结合水平滚动条来阅读 2、演示 启用自动换行 禁用自动换…

解锁音频新境界:LALAL.AI 与 Audo Studio 深度解析

在音频处理的世界里&#xff0c;噪音常常是困扰我们的一大难题。无论是专业的音频工作者&#xff0c;还是普通的音频爱好者&#xff0c;都渴望拥有一款强大的工具来解决这个问题。今天&#xff0c;就为大家介绍两款来自 AI 工具导航&#xff08;AIDH.NET&#xff09;的 AI 语音…

线上死锁问题排查和处理

Java 死锁排查 通过 jps jstack 来定位和排查 如果线程长时间处于阻塞&#xff0c;就需要考虑是否是死锁了。 模拟死锁 public class DeadlockDemo {private static final Object lock1 new Object();private static final Object lock2 new Object();public static vo…

5 分钟用满血 DeepSeek R1 搭建个人 AI 知识库(含本地部署)

最近很多朋友都在问&#xff1a;怎么本地部署 DeepSeek 搭建个人知识库。 老实说&#xff0c;如果你不是为了研究技术&#xff0c;或者确实需要保护涉密数据&#xff0c;我真不建议去折腾本地部署。 为什么呢&#xff1f; 目前 Ollama 从 1.5B 到 70B 都只是把 R1 的推理能力…

MT7628基于原厂的SDK包, 修改ra1网卡的MAC方法。

1、在/etc/config/wireless文件添加多个WIFI网卡的方法。 2、修改WIFI驱动&#xff0c;在src/embedded/ap/ap.c文件里面&#xff0c;从系统文件信息来修改ra1网卡的MAC内容&#xff0c;添加红色部分源代码。 RTMP_IO_WRITE32(pAd, RMAC_RMACDR, Value); if (idx > 0) …

brew Nushell mac升级版本

运行命令&#xff1a; brew upgrade nushell 国内更新比较慢建议架个梯子。 如果没有更新则先更新一下brew brew update 更新后看下版本是否死最新的了

windows怎样查看系统信息(处理器等)

首先打开命令行工具 win R 输入 cmd&#xff0c; 输入 msinfo32 &#xff0c;然后回车 这个页面就可以看到 电脑的锐龙版就是 AMD 芯片 酷睿版就是 intel 芯片

mysql之Innodb数据页

Innodb数据页结构 InnoDB数据页结构一、数据页基础概念二、数据页核心结构1. 头部控制区2. 数据存储区3. 尾部与目录区 三、关键机制详解1. 记录链表与删除优化2. 页目录与二分查找3. 空间复用与碎片管理4. 数据页的合并与分裂 四、应用与性能影响1. 索引效率2. 插入优化3. 事务…

1200沿指令和取反指令的应用。

以下是关于西门子S7-1200 PLC中沿指令&#xff08;边沿检测指令&#xff09;和取反指令的详细解析及应用示例&#xff0c;结合其工作原理、编程方法和典型场景&#xff1a; 一、沿指令&#xff08;边沿检测指令&#xff09; 1. 功能说明 沿指令用于检测信号状态的变化&#x…

three.js之特殊材质效果

*案例42 创建一个透明的立方体 <template><div ref"container" className"container"></div> </template><script setup> import * as THREE from three; import WebGL from three/examples/jsm/capabilities/WebGL.js // 引…

三格电子上新了——PLC 数据采集网关

型号&#xff1a;SG-PLC-Private 第一章 产品概述 PLC 转 Modbus 网关型号 SG-PLC-Private &#xff08; PLC 私有协议网关&#xff09;&#xff0c;是三格电子推出的工业 级网关&#xff08;以下简称网关&#xff09;&#xff0c;主要用于 在不需要对 PLC 编程的情况…

算法日记25:01背包(DFS->记忆化搜索->倒叙DP->顺序DP->空间优化)

对于01背包这类DP入门的问题&#xff0c;新手应该是去了解如何一步步得出所谓的状态转移方程&#xff0c;而不是直接去看答案所给予的方程过程应该为&#xff1a;DFS->记忆化搜索->倒序递推->循序递推->二维->一维 一、DFS暴力搜索 O ( 2 n ) O(2^n) O(2n) 1…