《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编码标准。
-
实践步骤:
-
安装Stylelint:通过npm或yarn安装Stylelint及其配置包。
npm install stylelint stylelint-config-standard --save-dev
-
配置Stylelint:在项目根目录创建
.stylelintrc
文件,定义规则。{"extends": "stylelint-config-standard","rules": {"color-hex-length": "long","number-leading-zero": null} }
-
运行Stylelint:在项目的构建脚本中集成Stylelint命令,或者使用编辑器插件实时检查。
-
9.3.3 拓展案例 1:创建项目特定的 Style Guide
为了保持项目样式的一致性,你决定为你的项目创建一个具体的Style Guide。
- 实践步骤:
- 定义基本原则:确定如何使用颜色、字体、间距等基本设计元素。
- 编写文档:使用Markdown或其他格式编写Style Guide,详细说明CSS类的命名规范、布局规则等。
- 分享与教育:在团队会议上介绍Style Guide,并确保所有开发者都能访问和理解这些规则。
9.3.4 拓展案例 2:利用 CSS 变量实现 Style Guide 中的设计系统
随着设计系统在现代Web开发中变得越来越重要,你决定使用CSS变量来实现Style Guide中定义的设计系统。
-
实践步骤:
-
定义CSS变量:在CSS根元素中定义颜色、字体大小和间距等变量。
:root {--primary-color: #007bff;--secondary-color: #6c757d;--font-size-normal: 16px;--spacing-unit: 8px; }
-
使用CSS变量:在项目的CSS文件中使用这些变量,确保样式的一致性。
-
更新Style Guide:将CSS变量的使用加入到Style Guide中,作为设计系统的一部分。
-
通过在项目中积极使用CSS Linters和遵循精心制定的Style Guides,你可以显著提高团队的协作效率,减少样式相关的错误,同时保持代码的清晰和一致性。这些工具和实践不仅有助于维护大型项目的CSS,还能提升整个开发过程的质量和愉悦度。
相关文章:
《CSS 简易速速上手小册》第9章:CSS 最佳实践(2024 最新版)
文章目录 9.1 维护大型项目的 CSS9.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 重点案例&…...
Qt QVariant类应用
QVariant类 QVariant类本质为C联合(Union)数据类型,它可以保存很多Qt类型的值,包括 QBrush,QColor,QString等等,也能存放Qt的容器类型的值。 QVariant::StringList 是 Qt 定义的一个 QVariant::type 枚举类型的变量&…...
不到1s生成mesh! 高效文生3D框架AToM
论文题目: AToM: Amortized Text-to-Mesh using 2D Diffusion 论文链接: https://arxiv.org/abs/2402.00867 项目主页: AToM: Amortized Text-to-Mesh using 2D Diffusion 随着AIGC的爆火,生成式人工智能在3D领域也实现了非常显著…...
Mac中管理多版本Jdk
1. 首先下载JDK,以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上的网络适配器
上代码: 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点阵屏显示动画 最后补充 上一节我们讲了点阵屏的工作原理,这节开始代码演示! 前面我们已经说了74HC595模块也提供了8个LED,当我们不使用点阵屏的时候也可以单独使用74HC595,这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 作用:查看分支 示例: 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. 获取全部产品…...
机器学习——流形学习
流形学习是一种在机器学习领域中用于理解和分析数据的技术。它的核心思想是,尽管我们通常将数据表示为高维空间中的向量,但实际上数据可能具有较低维度的内在结构,这种结构被称为流形。流形学习的目标是发现并利用数据的这种潜在结构…...
离线数仓(一)【数仓概念、需求架构】
前言 今天开始学习数仓的内容,之前花费一年半的时间已经学完了 Hadoop、Hive、Zookeeper、Spark、HBase、Flume、Sqoop、Kafka、Flink 等基础组件。把学过的内容用到实践这是最重要的,相信会有很大的收获。 1、数据仓库概念 1.1、概念 数据仓库&#x…...
物联网测试:2024 年的最佳实践和挑战
据 Transforma Insights 称,到 2030 年,全球广泛使用的物联网 (IoT) 设备预计将增加近一倍,从 151 亿台增至 290 亿台。这些设备以及智能汽车、智能手机等广泛应用于各种官僚机构。 健康视频监视器、闹钟以及咖啡机和冰箱等最受欢迎的家用电器…...
蓝桥杯Web应用开发-CSS3 新特性
CSS3 新特性 专栏持续更新中 在前面我们已经学习了元素选择器、id 选择器和类选择器,我们可以通过标签名、id 名、类名给指定元素设置样式。 现在我们继续选择器之旅,学习 CSS3 中新增的三类选择器,分别是: • 属性选择器 • 子…...
MongoDB聚合:$unionWith
$unionWith聚合阶段执行两个集合的合并,将两个集合的管道结果合并到一个结果集传送到下一个阶段。合并后的结果文档的顺序是不确定的。 语法 { $unionWith: { coll: "<collection>", pipeline: [ <stage1>, ... ] } }要包含集合的所有文档不…...
人工智能三子棋-人机对弈-人人对弈,谁会是最终赢家?
✅作者简介:大家好我是原始豌豆,感谢支持。 🆔本文由 原始豌豆 原创 CSDN首发🐒 如需转载还请通知⚠ 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:C语言项目实践…...
【leetcode热题100】反转链表 II
给你单链表的头指针 head 和两个整数 left 和 right ,其中 left < right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 示例 1: 输入:head [1,2,3,4,5], left 2, right 4 输出:[1,4,3,2…...
谷歌 DeepMind 联合斯坦福推出了主从式遥操作双臂机器人系统增强版ALOHA 2
谷歌 DeepMind 联合斯坦福推出了 ALOHA 的增强版本 ——ALOHA 2。与一代相比,ALOHA 2 具有更强的性能、人体工程学设计和稳健性,且成本还不到 20 万元人民币。并且,为了加速大规模双手操作的研究,ALOHA 2 相关的所有硬件设计全部开…...
金融行业专题|证券超融合架构转型与场景探索合集(2023版)
更新内容 更新 SmartX 超融合在证券行业的覆盖范围、部署规模与应用场景。新增操作系统信创转型、Nutanix 国产化替代、网络与安全等场景实践。更多超融合金融核心生产业务场景实践,欢迎阅读文末电子书。 在金融行业如火如荼的数字化转型大潮中,传统架…...
【C语言】C的整理记录
前言 该笔记是建立在已经系统学习过C语言的基础上,笔者对C语言的知识和注意事项进行整理记录,便于后期查阅,反复琢磨。C语言是一种面向过程的编程语言。 原想在此阐述一下C语言的作用,然而发觉这些是编程语言所共通的作用&#…...
C/C++模板初阶
目录 1. 泛型编程 2. 函数模板 2.1 函数模板概念 2.1 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 3. 类模板 3.1 类模板的定义格式 3.2 类模板的实例化 1. 泛型编程 如何实现一个通用的交换函数呢? 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 目的:希望在获得一个新…...
【QT+QGIS跨平台编译】之三十一:【FreeXL+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
文章目录 一、FreeXL介绍二、文件下载三、文件分析四、pro文件五、编译实践一、FreeXL介绍 【FreeXL跨平台编译】:Windows环境下编译成果(支撑QGIS跨平台编译,以及二次研发) 【FreeXL跨平台编译】:Linux环境下编译成果(支撑QGIS跨平台编译,以及二次研发) 【FreeXL跨平台…...
2024年 前端JavaScript入门到精通 第一天
主要讲解JavaScript核心知识,包含最新ES6语法,从基础到API再到高级。让你一边学习一边练习,重点知识及时实践,同时每天安排大量作业,加深记忆,巩固学习成果。 1.1 基本软件与准备工作 1.2 JavaScript 案例 …...
155基于matlab 的形态学权重自适应图像去噪
基于matlab 的形态学权重自适应图像去噪;通过串并联的滤波降噪对比图,说明并联降噪的优越性。输出降噪前后图像和不同方法的降噪情况的信噪比。程序已调通,可直接运行。 155matlab 自适应图像降噪 串并联降噪 (xiaohongshu.com)...
操作系统——内存管理(附带Leetcode算法题LRU)
目录 1.内存管理主要用来干什么? 2.什么是内存碎片? 3.虚拟内存 3.1传统存储管理方式的缺点? 3.2局部性原理 3.3什么是虚拟内存?有什么用? 3.3.1段式分配 3.3.2页式分配 3.3.2.1换页机制 3.3.2.2页面置换算法…...
I/O多路复用简记
IO多路复用(服务器如何处理多个socket的同时数据传输):1、select。2、poll。3、epoll。 select使用bitmap存socket文件描述符,由bitmap槽位的每一位为0或1决定对应序的socket连接是否有数据到来。由单线程(多线程处理每…...
SPECCPU2017操作说明
1、依赖包下载 yum install gcc* gfortran* 2、将软件包放至被测机器 3、增加权限 chmod X install.sh 4、运行安装 ./install.sh 5、运行 引入编译时所需的环境变量和相关库文件 source shrc 进入/spec2017,执行 ./runcpu -c ../config/Example-gcc-linux-ar…...
openresty (nginx)快速开始
文章目录 一、什么是openresty?二、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)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…...
【深度学习】基于多层感知机的手写数字识别
案例2:构建自己的多层感知机: MNIST手写数字识别 相关知识点: numpy科学计算包,如向量化操作,广播机制等 1 任务目标 1.1 数据集简介 MNIST手写数字识别数据集是图像分类领域最常用的数据集之一,它包含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. 思考四个问题:1.1 topic中partition存储分布:1.2 partiton中文件存储方式:1.3 partiton中segment文件存储结构:1.4 在partition中如何通过offset查找message: 2. kafka日志存储参数配置 Topic是逻辑上的概念ÿ…...
引入BertTokenizer出现OSError: Can‘t load tokenizer for ‘bert-base-uncased‘.
今天在跑一个模型的时候出现该报错,完整报错为: 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++
题目: 代码: #include<iostream> using namespace std; int main(){//一、分析问题//已知:10 个苹果到地面的高度a[10],陶陶把手伸直的时候能够达到的最大高度height//未知:陶陶能够摘到的苹果的数目sum。//关系ÿ…...
STM32F1 引脚重映射功能
STM32 端口引脚重映射 文章目录 STM32 端口引脚重映射前言1、查阅芯片数据手册1.1 串口引脚重映射描述 2、代码部分2.1 核心代码部分 3、实验现象4、总结 前言 在写程序时遇到想要的端口功能,而这个引脚又被其它的功能占用了无法删除掉或直接使用,这种情…...
c语言的各类输出函数(带完善更新)
printf double x; x 218.82631; printf("%-6.2e\n", x);printf(“%-6.2e\n”, x);使用printf函数以指定的格式输出x的值。"%-6.2e"是格式化字符串,其中: %e表示以科学计数法的形式输出浮点数。 6表示输出的总宽度为6个字符&#…...
【linux温故】CFS调度
写在前面 网上关于CFS 调度器的文章多如牛毛,没必要自己写。很多文章写的都非常好。 很多文章里,关键的技术点,都是一样的,只是各个文章说法不一样。 掌握了核心的,关键的,其他的,如果工作中…...
计算机网络之一
目录 1.因特网概述 1.1网络、互连网(互联网)和因特网 1.2.因特网发展的三个阶段 1.3基于ISP的三层架构的因特网 1.4.因特网的组成 2.三种交换方式 2.1电路交换 2.2分组交换 1.因特网概述 1.1网络、互连网(互联网)和因特网…...
从一到无穷大 #23 《流计算系统图解》书评
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 文章目录 引言内容总结 引言 春节假期回到家里断然是不会有看纸质书的时间的。造化弄人&#…...
华为问界M9:领跑未来智能交通的自动驾驶黑科技
华为问界M9是一款高端电动汽车,其自动驾驶技术是该车型的重要卖点之一。华为在问界M9上采用了多种传感器和高级算法,实现了在不同场景下的自动驾驶功能,包括自动泊车、自适应巡航、车道保持、自动变道等。 华为问界M9的自动驾驶技术惊艳之处…...
Java图形化界面编程——弹球游戏 笔记
Java也可用于开发一些动画。所谓动画,就是间隔一定的时间(通常小于0 . 1秒 )重新绘制新的图像,两次绘制的图像之间差异较小,肉眼看起来就成了所谓的动画 。 为了实现间隔一定的时间就重新调用组件的 repaint()方法,可以借助于…...
浅谈人工智能之深度学习~
目录 前言:深度学习的进展 一:深度学习的基本原理和算法 二:深度学习的应用实例 三:深度学习的挑战和未来发展方向 四:深度学习与机器学习的关系 五:深度学习与人类的智能交互 悟已往之不谏࿰…...
【复现】大华 DSS SQL 注入漏洞_46
目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 大华DSS是大华的大型监控管理应用平台,支持几乎所有涉及监控等方面的操作,支持多级跨平台联网等操作。 可…...
Python 中的断点类型详解
前言 在 Python 中,断点是一种在代码中设置的标记,用于在程序执行过程中停止或中断程序的执行,以便调试和查看程序的内部状态。断点是调试工具的关键组成部分,能够帮助开发者定位和解决代码中的错误。本文将详细介绍 Python 中的…...
一步步建立一个C#项目(连续读取S7-1200PLC数据)
这篇博客作为C#的基础系列,和大家分享如何一步步建立一个C#项目完成对S7-1200PLC数据的连续读取。首先创建一个窗体应用。 1、窗体应用 2、配置存储位置 3、选择框架 拖拽一个Button,可以选择视图菜单---工具箱 4、工具箱 拖拽Lable控件和TextBook控件 5、拖拽控件 接下来…...
Hive窗口函数详解
一、 窗口函数知识点 1.1 窗户函数的定义 窗口函数可以拆分为【窗口函数】。窗口函数官网指路: LanguageManual WindowingAndAnalytics - Apache Hive - Apache Software Foundationhttps://cwiki.apache.org/confluence/display/Hive/LanguageManual%20Windowing…...
车载电子电器架构 —— 电子电气系统功能开发
车载电子电器架构 —— 电子电气系统功能开发 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣扎,出门靠自己,四海皆…...
LeetCode--代码详解 7.整数反转
7.整数反转 题目 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 示例 …...
《统计学简易速速上手小册》第6章:多变量数据分析(2024 最新版)
文章目录 6.1 主成分分析(PCA)6.1.1 基础知识6.1.2 主要案例:客户细分6.1.3 拓展案例 1:面部识别6.1.4 拓展案例 2:基因数据分析 6.2 聚类分析6.2.1 基础知识6.2.2 主要案例:市场细分6.2.3 拓展案例 1&…...