当前位置: 首页 > news >正文

《CSS 简易速速上手小册》第9章:CSS 最佳实践(2024 最新版)

在这里插入图片描述

文章目录

  • 9.1 维护大型项目的 CSS
    • 9.1.1 基础知识
    • 9.1.2 重点案例:构建一个可复用的 UI 组件库
    • 9.1.3 拓展案例 1:优化现有项目的 CSS 结构
    • 9.1.4 拓展案例 2:实现主题切换功能
  • 9.2 BEM、OOCSS 和 SMACSS 方法论
    • 9.2.1 基础知识
    • 9.2.2 重点案例:使用 BEM 构建一个用户界面组件
    • 9.2.3 拓展案例 1:应用 OOCSS 原则重构 CSS
    • 9.2.4 拓展案例 2:使用 SMACSS 策略管理项目样式
  • 9.3 使用 CSS Linters 和 Style Guides
    • 9.3.1 基础知识
    • 9.3.2 重点案例:集成 Stylelint 到项目中
    • 9.3.3 拓展案例 1:创建项目特定的 Style Guide
    • 9.3.4 拓展案例 2:利用 CSS 变量实现 Style Guide 中的设计系统

9.1 维护大型项目的 CSS

在大型项目中维护CSS是一项挑战,但也是保持项目长期健康、可维护性和扩展性的关键。良好的CSS架构可以减少未来的头痛,让你的网站或应用即使在不断增长和变化时,也能保持优雅和高效。

9.1.1 基础知识

  • 模块化:把CSS代码分割成多个小文件,根据功能、组件或页面进行组织。这种方法简化了代码的查找、更新和测试。
  • 命名规范:采用一致的命名规则,如BEM(块、元素、修饰符),以避免样式冲突和提高代码的可读性。
  • CSS预处理器:Sass、Less等预处理器提供变量、混入、函数和嵌套等功能,帮助创建更动态和可维护的样式表。
  • 组件化:将UI拆分成重用的组件,每个组件有自己的样式,这样可以提高样式的复用性和一致性。
  • 文档化:为CSS代码和组件创建文档,确保团队成员能够理解和遵循设计规范。

9.1.2 重点案例:构建一个可复用的 UI 组件库

假设你的团队正在开发一个大型的电商平台,需要构建一套可复用的UI组件库来加速开发过程。

  • 实践步骤
    • 组件拆分:将UI拆分成基础组件(如按钮、输入框、卡片)和复合组件(如产品卡、导航栏)。
    • 样式封装:为每个组件创建独立的样式文件,使用Sass或Less来管理组件的变量和混入。
    • 命名规范:采用BEM命名规则来确保类名的一致性和可预测性。
    • 文档化:使用Storybook或其他工具为组件创建交互式文档,方便团队成员查找和使用组件。

9.1.3 拓展案例 1:优化现有项目的 CSS 结构

在一个已经开发一段时间的项目中,CSS代码可能变得难以管理。进行优化可以提高项目的可维护性。

  • 优化步骤
    • 审查和合并:审查现有的CSS文件,合并重复的样式规则,移除未使用的样式。
    • 模块化重构:按照功能或组件将CSS代码重构成模块化的结构。
    • 样式指南:创建一个样式指南,记录CSS的使用规则和最佳实践。

9.1.4 拓展案例 2:实现主题切换功能

为网站实现深色模式和浅色模式的切换功能,提升用户体验。

  • 实践步骤
    • 定义主题变量:使用CSS预处理器定义主题相关的变量,如颜色、字体等。
    • 创建主题类:为深色模式和浅色模式创建对应的CSS类,通过JavaScript根据用户选择切换类名。
    • 响应式媒体查询:利用prefers-color-scheme媒体查询自动匹配用户系统的主题偏好。

通过实施这些CSS最佳实践,你的项目将更加健壮、易于管理,同时也能提供更好的开发体验和用户体验。维护大型项目的CSS可能需要一些额外的时间和努力,但长远来看,这些投资将为项目的成功打下坚实的基础。

在这里插入图片描述


9.2 BEM、OOCSS 和 SMACSS 方法论

在CSS的世界里,维持大型项目的样式代码既整洁又可维护是一项挑战。幸运的是,BEM、OOCSS和SMACSS这三种CSS方法论提供了强大的策略来组织和管理你的CSS,让代码不仅易于理解,而且易于扩展。

9.2.1 基础知识

  • BEM(Block Element Modifier):一种命名约定,通过明确地描述块(Block)、元素(Element)和修饰符(Modifier),来帮助开发者理解关于代码之间关系的更多信息。
  • OOCSS(Object Oriented CSS):将CSS分解为可重用的对象(即模块),促进代码复用和页面渲染效率。
  • SMACSS(Scalable and Modular Architecture for CSS):一种风格指南,提供关于如何将CSS分割成更小、更管理的片段的建议,以及如何构建可扩展的样式指南。

9.2.2 重点案例:使用 BEM 构建一个用户界面组件

假设你正在构建一个评论卡片组件,该组件包括标题、内容和一个赞同按钮。

  • HTML 结构
<div class="comment-card"><h2 class="comment-card__title">评论标题</h2><p class="comment-card__content">这里是评论内容。</p><button class="comment-card__button--like"></button>
</div>
  • CSS 样式
.comment-card { /* 块样式 */ }
.comment-card__title { /* 元素样式 */ }
.comment-card__content { /* 元素样式 */ }
.comment-card__button--like { /* 修饰符样式 */ }

通过BEM方法,每个类名都清晰地表明了它是什么(块?元素?修饰符?),以及它属于哪个部分。

9.2.3 拓展案例 1:应用 OOCSS 原则重构 CSS

考虑一个网站有多个部分需要展示用户的个人信息卡片。使用OOCSS原则,我们可以将这个个人信息卡片抽象成一个可重用的对象。

  • CSS 样式
.user-card { /* 定义结构 */ }
.user-card .info { /* 定义样式 */ }

通过将通用样式(如.info)从特定组件中抽象出来,我们能够在不同的地方重用这些样式,从而减少代码重复并提高效率。

9.2.4 拓展案例 2:使用 SMACSS 策略管理项目样式

假设你负责的项目样式文件变得庞大而难以管理。采用SMACSS策略,你可以将CSS分割成几个主要的类别,比如基础、布局、模块、状态和主题。

  • 样式组织
// 基础样式
base.scss// 布局样式
layout.scss// 模块样式
modules/// 状态样式
states.scss// 主题样式
themes.scss

通过SMACSS,我们可以为不同类型的CSS规则提供明确的指导,帮助维护大型项目的样式代码,使其更加清晰和可维护。

BEM、OOCSS和SMACSS提供了不同的视角和策略来组织CSS代码,帮助开发者和设计师创建可维护、可扩展和高效的样式。选择适合你项目和团队工作流的方法论,可以使你的开发过程更加顺畅,让你更专注于创造出色的用户体验。

在这里插入图片描述


9.3 使用 CSS Linters 和 Style Guides

为了确保CSS代码的一致性、可维护性和高质量,使用CSS Linters和Style Guides是至关重要的。它们就像是编写CSS时的导师和守门人,引导你遵循最佳实践,同时自动检查和纠正潜在的问题。

9.3.1 基础知识

  • CSS Linters:是工具,用于自动检查CSS代码,发现错误和不一致的编码风格。常用的CSS Linters包括Stylelint、CSSLint等。
  • Style Guides:是一组编码规范和最佳实践的文档,它定义了如何编写CSS代码的规则。Style Guides可以是通用的,如Google的CSS Style Guide,也可以是针对具体项目的自定义规范。

9.3.2 重点案例:集成 Stylelint 到项目中

假设你正在开发一个大型Web应用,并希望确保团队成员遵守相同的CSS编码标准。

  • 实践步骤

    1. 安装Stylelint:通过npm或yarn安装Stylelint及其配置包。

      npm install stylelint stylelint-config-standard --save-dev
      
    2. 配置Stylelint:在项目根目录创建.stylelintrc文件,定义规则。

      {"extends": "stylelint-config-standard","rules": {"color-hex-length": "long","number-leading-zero": null}
      }
      
    3. 运行Stylelint:在项目的构建脚本中集成Stylelint命令,或者使用编辑器插件实时检查。

9.3.3 拓展案例 1:创建项目特定的 Style Guide

为了保持项目样式的一致性,你决定为你的项目创建一个具体的Style Guide。

  • 实践步骤
    1. 定义基本原则:确定如何使用颜色、字体、间距等基本设计元素。
    2. 编写文档:使用Markdown或其他格式编写Style Guide,详细说明CSS类的命名规范、布局规则等。
    3. 分享与教育:在团队会议上介绍Style Guide,并确保所有开发者都能访问和理解这些规则。

9.3.4 拓展案例 2:利用 CSS 变量实现 Style Guide 中的设计系统

随着设计系统在现代Web开发中变得越来越重要,你决定使用CSS变量来实现Style Guide中定义的设计系统。

  • 实践步骤

    1. 定义CSS变量:在CSS根元素中定义颜色、字体大小和间距等变量。

      :root {--primary-color: #007bff;--secondary-color: #6c757d;--font-size-normal: 16px;--spacing-unit: 8px;
      }
      
    2. 使用CSS变量:在项目的CSS文件中使用这些变量,确保样式的一致性。

    3. 更新Style Guide:将CSS变量的使用加入到Style Guide中,作为设计系统的一部分。

通过在项目中积极使用CSS Linters和遵循精心制定的Style Guides,你可以显著提高团队的协作效率,减少样式相关的错误,同时保持代码的清晰和一致性。这些工具和实践不仅有助于维护大型项目的CSS,还能提升整个开发过程的质量和愉悦度。

相关文章:

《CSS 简易速速上手小册》第9章:CSS 最佳实践(2024 最新版)

文章目录 9.1 维护大型项目的 CSS9.1.1 基础知识9.1.2 重点案例&#xff1a;构建一个可复用的 UI 组件库9.1.3 拓展案例 1&#xff1a;优化现有项目的 CSS 结构9.1.4 拓展案例 2&#xff1a;实现主题切换功能 9.2 BEM、OOCSS 和 SMACSS 方法论9.2.1 基础知识9.2.2 重点案例&…...

Qt QVariant类应用

QVariant类 QVariant类本质为C联合(Union)数据类型&#xff0c;它可以保存很多Qt类型的值&#xff0c;包括 QBrush&#xff0c;QColor&#xff0c;QString等等&#xff0c;也能存放Qt的容器类型的值。 QVariant::StringList 是 Qt 定义的一个 QVariant::type 枚举类型的变量&…...

不到1s生成mesh! 高效文生3D框架AToM

论文题目&#xff1a; AToM: Amortized Text-to-Mesh using 2D Diffusion 论文链接&#xff1a; https://arxiv.org/abs/2402.00867 项目主页&#xff1a; AToM: Amortized Text-to-Mesh using 2D Diffusion 随着AIGC的爆火&#xff0c;生成式人工智能在3D领域也实现了非常显著…...

Mac中管理多版本Jdk

1. 首先下载JDK&#xff0c;以jdk8和17为例 2. 打开.zprofile中添加如下内容 #java config export JAVA_8_HOME/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home export JAVA_17_HOME/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home#default java …...

用C语言列出Linux或Unix上的网络适配器

上代码&#xff1a; 1. #include <sys/socket.h> 2. #include <stdio.h> 3. 4. #include <netdb.h> 5. #include <ifaddrs.h> 6. 7. int main() { 8. struct ifaddrs *addresses; 9. if(getifaddrs(&addresses) -1) { 10. printf("…...

单片机学习笔记---LED点阵屏显示图形动画

目录 LED点阵屏显示图形 LED点阵屏显示动画 最后补充 上一节我们讲了点阵屏的工作原理&#xff0c;这节开始代码演示&#xff01; 前面我们已经说了74HC595模块也提供了8个LED&#xff0c;当我们不使用点阵屏的时候也可以单独使用74HC595&#xff0c;这8个LED可以用来测试7…...

Git分支常用指令

目录 1 git branch 2 git branch xx 3 git checkout xx 4 git checkout -b xx 5 git branch -d xx 6 git branch -D xx 7 git merge xx(含快进模式和冲突解决的讲解) 注意git-log: 1 git branch 作用&#xff1a;查看分支 示例&#xff1a; 2 git branch xx 作用&a…...

3.3 Binance_interface APP U本位合约行情-实时行情

Binance_interface APP U本位合约行情-实时行情 Github地址PyTed量化交易研究院 量化交易研究群(VX) py_ted目录 Binance_interface APP U本位合约行情-实时行情1. APP U本位合约行情-实时行情函数总览2. 模型实例化3. 获取一个产品的最优挂单 get_bookTicker4. 获取全部产品…...

机器学习——流形学习

流形学习是一种在机器学习领域中用于理解和分析数据的技术。它的核心思想是&#xff0c;尽管我们通常将数据表示为高维空间中的向量&#xff0c;但实际上数据可能具有较低维度的内在结构&#xff0c;这种结构被称为流形。流形学习的目标是发现并利用数据的这种潜在结构&#xf…...

离线数仓(一)【数仓概念、需求架构】

前言 今天开始学习数仓的内容&#xff0c;之前花费一年半的时间已经学完了 Hadoop、Hive、Zookeeper、Spark、HBase、Flume、Sqoop、Kafka、Flink 等基础组件。把学过的内容用到实践这是最重要的&#xff0c;相信会有很大的收获。 1、数据仓库概念 1.1、概念 数据仓库&#x…...

物联网测试:2024 年的最佳实践和挑战

据 Transforma Insights 称&#xff0c;到 2030 年&#xff0c;全球广泛使用的物联网 (IoT) 设备预计将增加近一倍&#xff0c;从 151 亿台增至 290 亿台。这些设备以及智能汽车、智能手机等广泛应用于各种官僚机构。 健康视频监视器、闹钟以及咖啡机和冰箱等最受欢迎的家用电器…...

蓝桥杯Web应用开发-CSS3 新特性

CSS3 新特性 专栏持续更新中 在前面我们已经学习了元素选择器、id 选择器和类选择器&#xff0c;我们可以通过标签名、id 名、类名给指定元素设置样式。 现在我们继续选择器之旅&#xff0c;学习 CSS3 中新增的三类选择器&#xff0c;分别是&#xff1a; • 属性选择器 • 子…...

MongoDB聚合:$unionWith

$unionWith聚合阶段执行两个集合的合并&#xff0c;将两个集合的管道结果合并到一个结果集传送到下一个阶段。合并后的结果文档的顺序是不确定的。 语法 { $unionWith: { coll: "<collection>", pipeline: [ <stage1>, ... ] } }要包含集合的所有文档不…...

人工智能三子棋-人机对弈-人人对弈,谁会是最终赢家?

✅作者简介&#xff1a;大家好我是原始豌豆&#xff0c;感谢支持。 &#x1f194;本文由 原始豌豆 原创 CSDN首发&#x1f412; 如需转载还请通知⚠ &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​ &#x1f4e3;系列专栏&#xff1a;C语言项目实践…...

【leetcode热题100】反转链表 II

给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], left 2, right 4 输出&#xff1a;[1,4,3,2…...

谷歌 DeepMind 联合斯坦福推出了主从式遥操作双臂机器人系统增强版ALOHA 2

谷歌 DeepMind 联合斯坦福推出了 ALOHA 的增强版本 ——ALOHA 2。与一代相比&#xff0c;ALOHA 2 具有更强的性能、人体工程学设计和稳健性&#xff0c;且成本还不到 20 万元人民币。并且&#xff0c;为了加速大规模双手操作的研究&#xff0c;ALOHA 2 相关的所有硬件设计全部开…...

金融行业专题|证券超融合架构转型与场景探索合集(2023版)

更新内容 更新 SmartX 超融合在证券行业的覆盖范围、部署规模与应用场景。新增操作系统信创转型、Nutanix 国产化替代、网络与安全等场景实践。更多超融合金融核心生产业务场景实践&#xff0c;欢迎阅读文末电子书。 在金融行业如火如荼的数字化转型大潮中&#xff0c;传统架…...

【C语言】C的整理记录

前言 该笔记是建立在已经系统学习过C语言的基础上&#xff0c;笔者对C语言的知识和注意事项进行整理记录&#xff0c;便于后期查阅&#xff0c;反复琢磨。C语言是一种面向过程的编程语言。 原想在此阐述一下C语言的作用&#xff0c;然而发觉这些是编程语言所共通的作用&#…...

使用STM32Cubemx创建一个工程并且给出每一步的含义

...

C/C++模板初阶

目录 1. 泛型编程 2. 函数模板 2.1 函数模板概念 2.1 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 3. 类模板 3.1 类模板的定义格式 3.2 类模板的实例化 1. 泛型编程 如何实现一个通用的交换函数呢&#xff1f; void Swap(int&…...

linux系统下vscode portable版本的c++/Cmake环境搭建001

linux系统下vscode portable版本的Cmake环境搭建 vscode portable 安装安装基本工具安装 build-essential安装 CMake final script code安装插件CMake Tools & cmakeC/C Extension Pack Testsettings,jsonCMakeLists.txt调试和运行工具 CG 目的&#xff1a;希望在获得一个新…...

【QT+QGIS跨平台编译】之三十一:【FreeXL+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、FreeXL介绍二、文件下载三、文件分析四、pro文件五、编译实践一、FreeXL介绍 【FreeXL跨平台编译】:Windows环境下编译成果(支撑QGIS跨平台编译,以及二次研发) 【FreeXL跨平台编译】:Linux环境下编译成果(支撑QGIS跨平台编译,以及二次研发) 【FreeXL跨平台…...

2024年 前端JavaScript入门到精通 第一天

主要讲解JavaScript核心知识&#xff0c;包含最新ES6语法&#xff0c;从基础到API再到高级。让你一边学习一边练习&#xff0c;重点知识及时实践&#xff0c;同时每天安排大量作业&#xff0c;加深记忆&#xff0c;巩固学习成果。 1.1 基本软件与准备工作 1.2 JavaScript 案例 …...

155基于matlab 的形态学权重自适应图像去噪

基于matlab 的形态学权重自适应图像去噪&#xff1b;通过串并联的滤波降噪对比图&#xff0c;说明并联降噪的优越性。输出降噪前后图像和不同方法的降噪情况的信噪比。程序已调通&#xff0c;可直接运行。 155matlab 自适应图像降噪 串并联降噪 (xiaohongshu.com)...

操作系统——内存管理(附带Leetcode算法题LRU)

目录 1.内存管理主要用来干什么&#xff1f; 2.什么是内存碎片&#xff1f; 3.虚拟内存 3.1传统存储管理方式的缺点&#xff1f; 3.2局部性原理 3.3什么是虚拟内存&#xff1f;有什么用&#xff1f; 3.3.1段式分配 3.3.2页式分配 3.3.2.1换页机制 3.3.2.2页面置换算法…...

I/O多路复用简记

IO多路复用&#xff08;服务器如何处理多个socket的同时数据传输&#xff09;&#xff1a;1、select。2、poll。3、epoll。 select使用bitmap存socket文件描述符&#xff0c;由bitmap槽位的每一位为0或1决定对应序的socket连接是否有数据到来。由单线程&#xff08;多线程处理每…...

SPECCPU2017操作说明

1、依赖包下载 yum install gcc* gfortran* 2、将软件包放至被测机器 3、增加权限 chmod X install.sh 4、运行安装 ./install.sh 5、运行 引入编译时所需的环境变量和相关库文件 source shrc 进入/spec2017&#xff0c;执行 ./runcpu -c ../config/Example-gcc-linux-ar…...

openresty (nginx)快速开始

文章目录 一、什么是openresty&#xff1f;二、openresty编译安装1. 编译安装命令1.1 编译完成后路径1.2 常用编译选项解释 2. nginx配置文件配置2.1 nginx.conf模板 3. nginx常见配置一个站点配置多个域名nginx配置中location匹配规则 三、OpenResty工作原理OpenResty工作原理…...

相机图像质量研究(11)常见问题总结:光学结构对成像的影响--像差

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…...

【深度学习】基于多层感知机的手写数字识别

案例2&#xff1a;构建自己的多层感知机: MNIST手写数字识别 相关知识点: numpy科学计算包&#xff0c;如向量化操作&#xff0c;广播机制等 1 任务目标 1.1 数据集简介 ​ MNIST手写数字识别数据集是图像分类领域最常用的数据集之一&#xff0c;它包含60,000张训练图片&am…...

给定n,m(200),构造一个n*m的矩阵a,使得每个4*4的子矩阵,左上角2*2的子矩阵的异或和等于右下角的,左下角的异或和等于右上角的

题目 #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e6 5, inf 1e18 5, maxm 4e4 5, mod 998244353…...

【开源】基于JAVA+Vue+SpringBoot的假日旅社管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统介绍2.2 QA 问答 三、系统展示四、核心代码4.1 查询民宿4.2 新增民宿评论4.3 查询民宿新闻4.4 新建民宿预订单4.5 查询我的民宿预订单 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的假日旅社…...

kafka 文件存储机制

文章目录 1. 思考四个问题&#xff1a;1.1 topic中partition存储分布&#xff1a;1.2 partiton中文件存储方式&#xff1a;1.3 partiton中segment文件存储结构&#xff1a;1.4 在partition中如何通过offset查找message: 2. kafka日志存储参数配置 Topic是逻辑上的概念&#xff…...

引入BertTokenizer出现OSError: Can‘t load tokenizer for ‘bert-base-uncased‘.

今天在跑一个模型的时候出现该报错&#xff0c;完整报错为&#xff1a; OSError: Cant load tokenizer for bert-base-uncased. If you were trying to load it from https://huggingface.co/models, make sure you dont have a local directory with the same name. Otherwis…...

陶陶摘苹果C++

题目&#xff1a; 代码&#xff1a; #include<iostream> using namespace std; int main(){//一、分析问题//已知&#xff1a;10 个苹果到地面的高度a[10],陶陶把手伸直的时候能够达到的最大高度height//未知&#xff1a;陶陶能够摘到的苹果的数目sum。//关系&#xff…...

STM32F1 引脚重映射功能

STM32 端口引脚重映射 文章目录 STM32 端口引脚重映射前言1、查阅芯片数据手册1.1 串口引脚重映射描述 2、代码部分2.1 核心代码部分 3、实验现象4、总结 前言 在写程序时遇到想要的端口功能&#xff0c;而这个引脚又被其它的功能占用了无法删除掉或直接使用&#xff0c;这种情…...

c语言的各类输出函数(带完善更新)

printf double x; x 218.82631; printf("%-6.2e\n", x);printf(“%-6.2e\n”, x);使用printf函数以指定的格式输出x的值。"%-6.2e"是格式化字符串&#xff0c;其中&#xff1a; %e表示以科学计数法的形式输出浮点数。 6表示输出的总宽度为6个字符&#…...

【linux温故】CFS调度

写在前面 网上关于CFS 调度器的文章多如牛毛&#xff0c;没必要自己写。很多文章写的都非常好。 很多文章里&#xff0c;关键的技术点&#xff0c;都是一样的&#xff0c;只是各个文章说法不一样。 掌握了核心的&#xff0c;关键的&#xff0c;其他的&#xff0c;如果工作中…...

计算机网络之一

目录 1.因特网概述 1.1网络、互连网&#xff08;互联网&#xff09;和因特网 1.2.因特网发展的三个阶段 1.3基于ISP的三层架构的因特网 1.4.因特网的组成 2.三种交换方式 2.1电路交换 2.2分组交换 1.因特网概述 1.1网络、互连网&#xff08;互联网&#xff09;和因特网…...

从一到无穷大 #23 《流计算系统图解》书评

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 文章目录 引言内容总结 引言 春节假期回到家里断然是不会有看纸质书的时间的。造化弄人&#…...

华为问界M9:领跑未来智能交通的自动驾驶黑科技

华为问界M9是一款高端电动汽车&#xff0c;其自动驾驶技术是该车型的重要卖点之一。华为在问界M9上采用了多种传感器和高级算法&#xff0c;实现了在不同场景下的自动驾驶功能&#xff0c;包括自动泊车、自适应巡航、车道保持、自动变道等。 华为问界M9的自动驾驶技术惊艳之处…...

Java图形化界面编程——弹球游戏 笔记

Java也可用于开发一些动画。所谓动画&#xff0c;就是间隔一定的时间(通常小于0 . 1秒 )重新绘制新的图像&#xff0c;两次绘制的图像之间差异较小&#xff0c;肉眼看起来就成了所谓的动画 。 ​ 为了实现间隔一定的时间就重新调用组件的 repaint()方法&#xff0c;可以借助于…...

浅谈人工智能之深度学习~

目录 前言&#xff1a;深度学习的进展 一&#xff1a;深度学习的基本原理和算法 二&#xff1a;深度学习的应用实例 三&#xff1a;深度学习的挑战和未来发展方向 四&#xff1a;深度学习与机器学习的关系 五&#xff1a;深度学习与人类的智能交互 悟已往之不谏&#xff0…...

【复现】大华 DSS SQL 注入漏洞_46

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 大华DSS是大华的大型监控管理应用平台&#xff0c;支持几乎所有涉及监控等方面的操作&#xff0c;支持多级跨平台联网等操作。 可…...

Python 中的断点类型详解

前言 在 Python 中&#xff0c;断点是一种在代码中设置的标记&#xff0c;用于在程序执行过程中停止或中断程序的执行&#xff0c;以便调试和查看程序的内部状态。断点是调试工具的关键组成部分&#xff0c;能够帮助开发者定位和解决代码中的错误。本文将详细介绍 Python 中的…...

一步步建立一个C#项目(连续读取S7-1200PLC数据)

这篇博客作为C#的基础系列,和大家分享如何一步步建立一个C#项目完成对S7-1200PLC数据的连续读取。首先创建一个窗体应用。 1、窗体应用 2、配置存储位置 3、选择框架 拖拽一个Button,可以选择视图菜单---工具箱 4、工具箱 拖拽Lable控件和TextBook控件 5、拖拽控件 接下来…...

Hive窗口函数详解

一、 窗口函数知识点 1.1 窗户函数的定义 窗口函数可以拆分为【窗口函数】。窗口函数官网指路&#xff1a; LanguageManual WindowingAndAnalytics - Apache Hive - Apache Software Foundationhttps://cwiki.apache.org/confluence/display/Hive/LanguageManual%20Windowing…...

车载电子电器架构 —— 电子电气系统功能开发

车载电子电器架构 —— 电子电气系统功能开发 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣扎,出门靠自己,四海皆…...

LeetCode--代码详解 7.整数反转

7.整数反转 题目 给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] &#xff0c;就返回 0。 假设环境不允许存储 64 位整数&#xff08;有符号或无符号&#xff09;。 示例 …...

《统计学简易速速上手小册》第6章:多变量数据分析(2024 最新版)

文章目录 6.1 主成分分析&#xff08;PCA&#xff09;6.1.1 基础知识6.1.2 主要案例&#xff1a;客户细分6.1.3 拓展案例 1&#xff1a;面部识别6.1.4 拓展案例 2&#xff1a;基因数据分析 6.2 聚类分析6.2.1 基础知识6.2.2 主要案例&#xff1a;市场细分6.2.3 拓展案例 1&…...