JavaScript高级笔记
今日内容:1. JavaScript: 1. ECMAScript: 2. BOM: 3. DOM: 1. 事件 DOM简单学习:为了满足案例要求* 功能:控制html文档的内容 * 获取页面标签(元素)对象:Element * document.getElementById("id值"):通过元素的id获取元素对象 * 操作Element对象: 1. 修改属性值: 1. 明确获取的对象是哪一个? 2. 查看API文档,找其中有哪些属性可以设置 2. 修改标签体内容: * 属性:innerHTML 1. 获取元素对象 2. 使用innerHTML属性修改标签体内容 事件简单学习* 功能: 某些组件被执行了某些操作后,触发某些代码的执行。 * 造句: xxx被xxx,我就xxx * 我方水晶被摧毁后,我就责备对友。 * 敌方水晶被摧毁后,我就夸奖自己。 * 如何绑定事件 1. 直接在html标签上,指定事件的属性(操作),属性值就是js代码 1. 事件:onclick--- 单击事件 2. 通过j...
JavaScript基础笔记
今日内容1. JavaScript基础 JavaScript:* 概念: 一门客户端脚本语言 * 运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎 * 脚本语言:不需要编译,直接就可以被浏览器解析执行了 * 功能: * 可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。 * JavaScript发展史: 1. 1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为 : C-- ,后来更名为:ScriptEase 2. 1995年,Netscape(网景)公司,开发了一门客户端脚本语言:LiveScript。后来,请来SUN公司的专家,修改LiveScript,命名为JavaScript 3. 1996年,微软抄袭JavaScript开发出JScript语言 4. 1997年,ECMA(欧洲计算机制造商协会),制定出客户端脚本语言的标准:ECMAScript,就是统一了所有客户端脚本语言的编码方式。 * JavaScript = ECMAScript ...
C学习路线
C 学习路线 编程语言 计算机基础 数据结构和算法 计算机网络 操作系统 设计模式 项目实战 Linux 操作系统 编译/调试工具 Linux 环境编程 编程语言指针、内存管理 学习书籍:《C Primer Plus》、《C 和指针》、《C 专家编程》 计算机基础数据结构和算法、计算机网络、操作系统、设计模式 数据结构和算法刷题:LeetCode 学习书籍:《大话数据结构》(C/C++)、《算法》(Java)、《剑指 Offer》 计算机网络TCP/IP 协议 学习书籍:《TCP/IP 详解》 操作系统进程和线程(并发、锁)、内存(分布、调度) 学习书籍:《深入理解操作系统》 设计模式常用:单例、工厂、代理、策略、模板方法 学习书籍:《大话设计模式》 项目实战Linux 操作系统常用命令、shell 编程(批处理、自动化脚本) 学习书籍:《鸟哥的 Linux 私房菜》、《Linux 就该这么学》 编译/调试工具编译工具:gcc、make(makefile) 调试工具:gdb 学习资料:GNU 官方 gcc 和 gdb 文...
C++常用三方库
C++ 常用三方库gtest参考资料: GoogleTest + VScode 编译和编写简单测试用例 [C++] gtest 入门教程 glog头文件:#include <glog/logging.h>。 日志级别 INFO WARNING ERROR FATAL 打印 FATAL 消息会在打印完成后终止程序。 CHECK 宏glog 提供了 CHECK() 宏帮助我们检查程序的错误,当 CHECK() 的条件不满足时,它会记录 FATAL 日志并终止程序。 123456#define CHECK_EQ(x,y) CHECK_OP(x,y,EQ,==)#define CHECK_NE(x,y) CHECK_OP(x,y,NE,!=)#define CHECK_LE(x,y) CHECK_OP(x,y,LE,<=)#define CHECK_LT(x,y) CHECK_OP(x,y,LT,<)#define CHECK_GE(x,y) CHECK_OP(x,y,GE,>=)#define CHECK_GT(x,y) CHECK_OP(x,y,G...
C++学习路线
C++ 学习路线C 语言基础 郝斌老师的 C 语言教程(选看) C++ 基本语法 黑马程序员的 C++ 教程(必看) C++ 基础知识 《C++ Primer 第五版》(必看,这个更好) 《C++ Primer Plus 第六版》(选看) 在看这本书的时候记得不要跳过课后练习题,没必要每道题都要仔仔细细的做,但是每小节后的前 2-3 题绝对需要自己做一下。 C++ 高级特性 侯捷老师的 STL 泛型编程、C++11 新特性、内存管理与分析(必看) 侯捷老师的程序的生前死后(选看) Linux 网络编程 《TCP/IP 网络编程》(必看) 《Linux 高性能服务端编程》(必看) 前者是本很好的书,原因就是手把手教你写代码,这是真的手把手教你写代码,唯一不好的点就是书中的很多知识讲的太浅了,很多功能和原理都只是一笔带过,远远不如《Linux 高性能服务端编程》讲的深。 后端开发 陈硕老师的《Mudo:Linux 多线程服务端编程》(选看) 牛客网的 Linux C/C++ 服务器的开发专栏 并发编程/模板元等 《C++ 沉思录》 《...
C++基础知识
C++ 基础知识常用关键字autoauto 允许编译器根据初始化表达式自动推导变量的类型,从而减少了手动指定类型的繁琐工作。这不仅提高了代码的可维护性,还减少了类型错误的可能性。 注意事项: auto 关键字不能用于函数参数声明,这是因为函数参数的类型必须在函数声明时明确指定,而 auto 关键字只能用于变量的类型推导; auto 关键字不能用于直接声明数组类型,这是因为数组的大小必须在编译时确定,而 auto 关键字用于类型推导时,无法推导出数组的大小。 参考资料: 【C++】auto 关键字(C++ 11,超详细解析,小白必看系列) constconst 修饰普通类型的变量: 即常量(无法修改其值)。 const 修饰指针变量: 若 const 修饰指针指向的内容,则内容为不可变量; 若 const 修饰指针,则指针为不可变量; 若 const 修饰指针和指针指向的内容,则指针和指针指向的内容都为不可变量。 12345678910111213// 常量指针?不能修改指针指向的值const int *p = 8;// 指针常量?不能修改指针指向的地址int a = ...
ZMQ
ZMQvllm 里用于消息传输的 import zmq,用的是哪个开源项目,链接是什么?在 vLLM 里你看到的: 1import zmq 对应的其实不是一个“叫 zmq 的独立项目”,而是: ✅ Python 绑定库:PyZMQ GitHub:PyZMQ GitHub 仓库 官方说明:ZeroMQ Python 页面 👉 它是 ZeroMQ 的 Python bindings,也就是说: import zmq 实际导入的是 pyzmq 这个包里的 zmq 模块 (GitHub) ✅ 底层真正的消息库:ZeroMQ(libzmq) GitHub(核心库):https://github.com/zeromq/libzmq 关系是这样的: 12345Python代码 (import zmq) ↓PyZMQ(Python封装) ↓libzmq(C++实现的ZeroMQ核心库) PyZMQ 提供 Python API libzmq 才是真正执行消息传输的高性能通信库 (PyPI) 📌 总结一句话vLLM 里的 import zmq: ...
ValidationsAndTransformations
🏗️ 后端分层架构什么是分层架构?分层架构是一种后端设计模式,其中应用程序分为不同的层,每个层都有特定的职责。 1Client → Controller → Service → Repository → Database 它确保干净的代码、关注点分离和可扩展性。 为什么使用它?它解决的问题 将业务逻辑与 HTTP 逻辑混合 控制器内的 SQL 查询 难以维护且混乱的代码 测试困难 紧耦合 好处 结构简洁 轻松测试 可扩展的设计 可维护的代码 团队友好 层解释1️⃣ 控制器层作用: 处理 HTTP 请求。 职责: 验证输入 验证/授权 致电服务 返回响应 用于: 仅请求级验证。 2️⃣ 服务层作用: 包含业务逻辑。 职责: 应用业务规则 协调存储库 数据转换 用途: 业务验证(例如,“用户已存在”)。 3️⃣ 存储库层作用: 数据库交互。 职责: 增删改查操作 与DB / ORM通信 用途: 所有数据库访问。 验证规则 类型 层 输入验证 控制器 业务验证 服务 何时使用推荐用于: API 可扩展的后端系统 生产项...
TaskQueuesAndBackgroundJobs
后台作业1. 什么是后台作业? 定义: 在主请求-响应周期之外异步运行的任何逻辑。 示例 电子邮件通知: 在用户注册后发送“欢迎”电子邮件,这样他们就不必等待邮件服务器才能看到仪表板。 图像处理: 生成多个缩略图大小或在后台对上传的照片应用滤镜。 数据导出: 生成大量 CSV 或 PDF 报告,编译可能需要 30 秒以上。 第三方同步: 将数据推送到 CRM(如 Salesforce)或更新外部搜索索引(如 Algolia),而不阻塞 UI。 为什么使用它们?主要目标是卸载耗时的非关键任务,以便主后端 API 保持响应并防止请求超时。 效益 描述 响应能力 当工作稍后进行时,用户会立即收到“成功”消息。 可扩展性 您可以独立于 Web 服务器扩展后台“工作人员”。 弹性 如果作业失败(例如,外部 API 关闭),可以自动重试,而不会导致用户会话崩溃。 它是如何工作的(概念流程) 生产者: 您的 API 接收请求并将任务“推送”到队列中。 代理: 存储层(如 Redis 或 RabbitMQ)保存任务。 Worker: 一个单独的进程从队列中拉取任务并...
SerializationAndDeserialization
🔍 这是什么?序列化将内存中对象(如 Java 类或 JS 对象)转换为传输格式(如字符串或字节流)的过程。 反序列化将传输格式转回程序可以使用的本机对象的过程。 💡为什么我们需要它?想象一下 JavaScript 前端 将“User”对象发送到 Rust 后端: JavaScript 将数据视为动态对象。 Rust 将数据视为严格的结构。 他们不能共享内存。他们需要一个通用标准(如 JSON)来充当桥梁。 现实生活中的类比: 想想宜家的家具。 序列化: 工厂将成品办公桌拆成扁平包装箱(紧凑型运输)。 传输: 盒子被运送到您家。 反序列化: 您将部件从盒子中取出并重建桌子,以便您可以使用它。 🛠 流行标准 类型 示例 最适合 基于文本 JSON、XML、YAML Web API、配置、人类可读性 基于二进制 Protobuf、Avro 高性能微服务,内部通信 🏗 JSON 深入探究JSON(JavaScript 对象表示法)是最流行的 Web 通信标准。 规则: 大括号: 必须括在 {} 中。 键: 必须位于 "double q...