前端编码规范

文章目录

  • 一、背景
  • 二、内容
    • 1、注释规范
      • (1)文件注释
      • (2)函数注释
      • (3)单行注释
      • (3)多行注释
    • 2、命名规范
      • (1)项目命名
      • (2)目录命名
      • (3)`JS` 、`CSS` 、`SCSS` 、`HTML` 、`PNG` 文件命名
      • (4)命名严谨性
    • 3、`HTML`规范(`Vue Template` 同样适用)
      • (1)HTML 类型
      • (2)缩进
      • (3)分块注释
      • (4)语义化标签
      • (5)引号
      • (6)`Image`
    • 4、`CSS`规范
      • (1)命名
      • (2)选择器
      • (3)尽量使用缩写属性
      • (4)每个选择器及属性独占一行
      • (5)省略`0`后面的单位
      • (6)避免使用`ID`选择器及全局标签选择器防止污染全局样式
    • 5、`SCSS`规范
      • (1)代码组织
      • (2)避免嵌套层级过多
    • 6、`Javascript`规范
      • (1)命名
      • (2)代码格式
      • (3)字符串
      • (4)对象声明
      • (5)使用`ES6+`
      • (6)括号
      • (7)`undefined` 判断
      • (8)条件判断和循环最多三层
      • (9)`this`的转换命名
      • (10)慎用`console.log`
    • 7、支付宝小程序规范
      • (1)页面高度`100vh`
      • (2)组件样式名无效
      • (3)图片失真
      • (4)**`HTTP`**
      • (5)`location`定位
      • (6)地图
      • (7) `createSelectorQuery`
      • (8)`getSetting`授权
      • (9)`showActionSheet`弹窗列表
      • (10)`$parent`
      • (11)`textarea`
      • (12)`Swiper`
      • (13)`picker`多列
      • (14)富文本
      • (15)`Canvas`画布
  • 三、最后

一、背景

  1. 规范目的:为了提高工作效率,便于后台人员添加功能及前端后期优化维护,输出高质量的文档,在网站建设中,使结构更加清晰,代码简明有序,有一个更好的前端架构。
  2. 规范基本准则:符合web标准,使用具有语义的标签,使结构、表现、行为分离,兼容性优良。页面性能优化,代码简洁、明了、有序,尽可能的减少服务器的负载,保证最快的解析速度。

二、内容

1、注释规范

(1)文件注释

  • 使用说明

在文件中,键入desc后,按tab键就会生成文件注释,补充上文件说明。(详细配置步骤见下面的IDE配置说明)

image.pngimage.png

  • IDE配置说明

Webstorm js中,自定义js说明注释(文档描述、作者、创建日期):快捷键 Ctrl + Shift + S 打开Webstorm设置,搜索Live Template,找到JavaScript,如下:

image.png

点击右上角+-> Live Template,添加注释模板,出现以下界面,填写相关的信息:

image.png

模板内容,如我需要定义文档描述、作者、创建日期:

/**
 * @Description: 
 * @author zling
 * @date $datetime$
*/

定义应用的内容,点击下方蓝色字更改’,选择JavaScriptTypeScriptVue

image.png

变量的设置:如日期变量$date$,点击右侧Edit variables中设置具体内容

image.png

变量设置如下:

名称:datetime
表达式:date("yyyy-MM-dd hh:mm:ss")

最后点击右下角【确定】,设置完成。

(2)函数注释

在函数声明上方键入 /** ,再按回车键:

image.png

第一行默认留空,此处手动填写函数用途说明,参数名后面的数据。类型说明需要手动添加,函数内有return注释会自动加上return参数:

image.png

添加注解后,调用函数时将鼠标光标放于括号内,按Ctrl + P 可以查看函数调用所需要的参数提示(在键入参数的过程中自动显示提示):

image.png

如果注解中设置了参数类型,Webstorm将在开发过程中调用函数时对参数进行类型检测,如果不符合预定义的类型,将给底部予波浪线警告提示:

image.png

(3)单行注释

  • 单独一行://(双斜线)与注释文字之间保留一个空格。
  • 在代码后面添加注释://(双斜线)与代码之间保留一个空格,并且//(双斜线)与注释文字之间保留一个空格。
  • 注释代码://(双斜线)与代码之间保留一个空格。
// 调用了一个函数;1)单独在一行
setTitle(); 
var maxCount = 10; // 设置最大量;2)在代码后面注释
// setName(); // 3)注释代码

(3)多行注释

  • 若开始(/)和结束(/)都在一行,推荐采用单行注释。
  • 若至少三行注释时,第一行为/,最后行为/,其他行以开始,并且注释文字与保留一个空格。
/*
* 代码执行到这里后会调用setTitle()函数
* setTitle():设置title的值
*/
setTitle();

2、命名规范

(1)项目命名

全部采用小写方式,以中线分隔。

正例:mall-management-system 
反例:mall_management-system / mallManagementSystem 

(2)目录命名

全部采用小写方式, 以中划线分隔,有复数结构时,要采用复数命名法, 缩写不用复数。

正例: scripts / styles / components / images / utils / layouts / demo-styles / demo-scripts / img / doc 
反例:script / style / demo_scripts / demoStyles / imgs / docs 

【特殊】VUE 的项目中的components 中的组件目录,使用kebab-case 命名。
正例:head-search / page-loading / authorized / notice-icon 
反例:HeadSearch / PageLoading

【特殊】VUE 的项目中的除 components 组件目录外的所有目录也使用kebab-case 命名。
正例:page-one / shopping-car / user-management 
反例:ShoppingCar / UserManagement

(3)JSCSSSCSSHTMLPNG 文件命名

全部采用小写方式, 以中划线分隔。

正例: render-dom.js / signup.css / index.html / company-logo.png 
反例:renderDom.js / UserManagement.html 

(4)命名严谨性

代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式也要避免采用。

正例:henan / luoyang / rmb 等国际通用的名称,可视同英文 
反例:DaZhePromotion [打折] / getPingfenByName() [评分] / int 某变量= 3 
杜绝完全不规范的缩写,避免望文不知义:
反例:AbstractClass “缩写”命名成AbsClass;condition “缩写”命名成condi,此类随意缩写严重降低了代码的可阅读性。

3、HTML规范(Vue Template 同样适用)

 // 标准代码翻译

(1)HTML 类型

推荐使用 HTML5 的文档类型申明:(建议使用 text/html 格式的HTML。避免使用XHTMLXHTML 以及它的属性,比如application/xhtml+xml 在浏览器中的应用支持与优化空间都十分有限)。

  • 规定字符编码
  • IE 兼容模式
  • 规定字符编码
  • doctype 大写
正例:
<!DOCTYPE html> 
<html> 
  <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> 
    <meta charset="UTF-8" /> 
    <title>Page title</title> 
  </head> 
  <body> 
  	<img src="images/company-logo.png" alt="Company"> 
  </body> 
</html> 

(2)缩进

缩进使用2 个空格(一个tab);
嵌套的节点应该缩进。

(3)分块注释

在每一个块状元素,列表元素和表格元素后,加上一对HTML 注释。

(4)语义化标签

HTML5 中新增很多语义化标签,所以优先使用语义化标签,避免一个页面都是div 或者p 标签。

正例
<header></header> 
<footer></footer> 
反例
<div> 
	<p></p> 
</div> 

(5)引号

使用双引号(" ") 而不是单引号( ') 。

正例:<div class="box"></div>
反例:<div class='box'></div>

(6)Image

移动端使用uniapp编码时,缩略图使用mode=aspectFill。保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。

4、CSS规范

(1)命名

  • 类名使用小写字母,以中划线分隔
  • id 采用驼峰式命名
  • scss 中的变量、函数、混合、placeholder 采用驼峰式命名
  • IDclass 的名称总是使用可以反应元素目的和用途的名称,或其他通用的名称,代替表象和晦涩难懂的名称。
不推荐:
.fw-800 { 
	font-weight: 800; 
}
.red { 
	color: red; 
}
推荐: 
.heavy { 
	font-weight: 800; 
}
.important { 
	color: red; 
}

(2)选择器

  • css 选择器中避免使用标签名

从结构、表现、行为分离的原则来看,应该尽量避免css 中出现HTML 标签,并且在css 选择器中出现标签名会存在潜在的问题。

  • 使用直接子选择器

很多前端开发人员写选择器链的时候不使用 直接子选择器(注:直接子选择器和后代选择器的区别)。有时,这可能会导致疼痛的设计问题并且有时候可能会很耗性能。然而,在任何情况下,这是一个非常不好的做法。如果你不写很通用的,需要匹配到 DOM 末端的选择器, 你应该总是考虑直接子选择器。

不推荐: 
.content .title { 
	font-size: 2rem; 
}
推荐: 
.content > .title { 
	font-size: 2rem; 
}

(3)尽量使用缩写属性

不推荐:
border-top-style: none; 
font-family: palatino, georgia, serif; 
font-size: 100%; 
line-height: 1.6; 
padding-bottom: 2em; 
padding-left: 1em; 
padding-right: 1em; 
padding-top: 0; 

推荐:
border-top: 0; 
font: 100%/1.6 palatino, georgia, serif; 
padding: 0 1em 2em; 

(4)每个选择器及属性独占一行

不推荐:
button { 
  width: 100px; 
  height: 50px;color: #fff; 
  background: #00a0e9; 
}

推荐:
button { 
  width: 100px; 
  height: 50px; 
  color: #fff; 
  background: #00a0e9; 
}

(5)省略0后面的单位

不推荐:
div {
  padding-bottom: 0px; 
  margin: 0em; 
}

推荐:
div {
  padding-bottom: 0; 
  margin: 0; 
}

(6)避免使用ID选择器及全局标签选择器防止污染全局样式

不推荐:
#header { 
  padding-bottom: 0px; 
  margin: 0em; 
}

推荐:
.header { 
  padding-bottom: 0; 
  margin: 0; 
}

5、SCSS规范

(1)代码组织

将公共 scss 文件放置在style 文件夹
例: // color.scss ,common.scss
按以下顺序组织

  • @import;
  • 变量声明;
  • 样式声明;
@import "mixins/size.less"; 
@default-text-color: #333; 
.page { 
  width: 960px; 
  margin: 0 auto; 
}

(2)避免嵌套层级过多

将嵌套深度限制在3 级。对于超过4 级的嵌套,给予重新评估。这可以避免出现过于详实的CSS选择器。避免大量的嵌套规则。当可读性受到影响时,将之打断。推荐避免出现多于20 行的嵌套规则出现。

不推荐:
.main { 
  .title { 
    .name { 
    	color: #fff; 
    } 
  } 
}

推荐:
.main-title { 
  .name { 
  	color: #fff; 
  } 
}

6、Javascript规范

(1)命名

采用小写驼峰命名lowerCamelCase,代码中的命名均不能以下划线,也不能以下划线或美元符号结束
反例:_name / name_ / name$ 
方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase 风格,必须遵从驼峰形式
正例:localValue / getHttpMessage() / inputUserId 

其中method 方法命名必须是 动词 或者 动词+名词 形式

正例:saveShopCarData /openShopCarInfoDialog 
反例:save / open / show / go 

*特此说明,增删查改,详情统一使用如下5 个单词,不得使用其他(目的是为了统一各个端)

add / update / delete / detail / get 

附: 函数方法常用的动词: 
get 获取/set 设置, 
add 增加/remove 删除, 
create 创建/destory 销毁, 
start 启动/stop 停止, 
open 打开/close 关闭, 
read 读取/write 写入, 
load 载入/save 保存, 
begin 开始/end 结束, 
backup 备份/restore 恢复, 
import 导入/export 导出, 
split 分割/merge 合并,
inject 注入/extract 提取, 
attach 附着/detach 脱离, 
bind 绑定/separate 分离, 
view 查看/browse 浏览, 
edit 编辑/modify 修改, 
select 选取/mark 标记, 
copy 复制/paste 粘贴, 
undo 撤销/redo 重做, 
insert 插入/delete 移除, 
add 加入/append 添加, 
clean 清理/clear 清除, 
index 索引/sort 排序, 
find 查找/search 搜索, 
increase 增加/decrease 减少, 
play 播放/pause 暂停, 
launch 启动/run 运行, 
compile 编译/execute 执行, 
debug 调试/trace 跟踪, 
observe 观察/listen 监听, 
build 构建/publish 发布, 
input 输入/output 输出, 
encode 编码/decode 解码, 
encrypt 加密/decrypt 解密, 
compress 压缩/decompress 解压缩, 
pack 打包/unpack 解包, 
parse 解析/emit 生成, 
connect 连接/disconnect 断开, 
send 发送/receive 接收, 
download 下载/upload 上传, 
refresh 刷新/synchronize 同步, 
update 更新/revert 复原, 
lock 锁定/unlock 解锁, 
check out 签出/check in 签入, 
submit 提交/commit 交付, 
push 推/pull 拉, 
expand 展开/collapse 折叠, 
enter 进入/exit 退出, 
abort 放弃/quit 离开, 
obsolete 废弃/depreciate 废旧, 
collect 收集/aggregate 聚集 

常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长

正例:MAX_STOCK_COUNT 
反例:MAX_COUNT  

(2)代码格式

使用2 个空格进行缩进

正例:
if (x < y) { 
	x += 10; 
} else { 
	x += 1; 
}

不同逻辑、不同语义、不同业务的代码之间插入一个空行分隔开来以提升可读性
说明:任何情形,没有必要插入多个空行进行隔开。

(3)字符串

统一使用单引号('),不使用双引号(")。这在创建HTML 字符串非常有好处:

正例: 
let str = 'foo'; 
let testDiv = '<div id="test"></div>'; 

反例: 
let str = 'foo'; 
let testDiv = "<div id='test'></div>";

(4)对象声明

使用字面值创建对象
正例:let user = {}; 
反例:let user = new Object(); 
使用字面量来代替对象构造器
正例:
var user = { 
  age: 0, 
  name: 1, 
  city: 3 
};

反例:
var user = new Object(); 
user.age = 0; 
user.name = 0; 
user.city = 0; 

(5)使用ES6+

必须优先使用ES6+ 中新增的语法糖和函数。这将简化你的程序,并让你的代码更加灵活和可复用。比如箭头函数、await/async , 解构, letfor…of 等等。

(6)括号

下列关键字后必须有大括号(即使代码块的内容只有一行):
if, else, for, while, do, switch, try, catch, finally, with

正例:
if (condition) { 
	doSomething(); 
}

反例:
if (condition) doSomething(); 

(7)undefined 判断

永远不要直接使用undefined 进行变量判断;使用typeof 和字符串undefined对变量进行判断。

正例:
if (typeof person === 'undefined') { 
	... 
}

反例:
if (person === undefined) { 
	... 
}

(8)条件判断和循环最多三层

条件判断能使用三目运算符和逻辑运算符解决的,就不要使用条件判断,但是谨记不要写太长的三目运算符。如果超过3 层请抽成函数,并写清楚注释。

(9)this的转换命名

对上下文this 的引用只能使用self 来命名。

(10)慎用console.log

console.log 大量使用会有性能问题,所以在非webpack 项目中谨慎使用log 功能。

7、支付宝小程序规范

(1)页面高度100vh

支付宝小程序页面height设置为100%不会撑满手机屏幕,需要使用100vh来撑满

(2)组件样式名无效

支付宝小程序组件上样式名的样式读不到,不要在组件上定义样式名class

(3)图片失真

background-size设置为100%后就显示正常

(4)HTTP

  • HTTP请求URL如果是使用new Date(),资源请求会报错,要使用(new Date()).valueOf()
错误:
url: `${ossHost}config.json?date=`+new Date()
data = Mon Feb 21 2022 10:13:41 GMT+0800 (中国标准时间)

正确
url: `${ossHost}config.json?date=${(new Date()).valueOf()}`
data = 1645409646290
  • 支付宝小程序不支持delete接口请求

(5)location定位

支付宝小程序不支持stopLocationUpdateoffLocationChangeonLocationChange

(6)地图

  • 位置名,支付宝小程序必填
uni.openLocation({
	name: 位置名
});
  • 支付宝小程序使用此方法无效果
vm.mapContext.moveToLocation({
  latitude: vm.latitude,
  longitude: vm.longitude
})
  • 支付宝小程序调用会报异常,不要传this
错误
uni.createMapContext("trailMap", this)

正确
my.createMapContext("trailMap")

(7) createSelectorQuery

SelectorQuery 对象实例支付宝不支持in这个属性

错误
uni.createSelectorQuery().in(this)

正确
uni.createSelectorQuery()

(8)getSetting授权

  • 支付宝小程序不支持后台定位scope.userLocationBackground
  • 获取定位授权权限支付宝小程序是通过authSetting['location'],而不是['scope.userLocation']

(9)showActionSheet弹窗列表

支付宝小程序点击取消或者遮罩蒙版也会进入success,但是回调对象参数的tapIndex值是-1

(10)$parent

支付宝小程序中会报错,调不到方法$parent

this.$parent.goTop()

(11)textarea

  • textarea设置了maxlength="1000",支付宝小程序右下角自动就会有剩余可输入多少字数
  • 支付宝小程序弹出输入法后会把输入框顶到最上面,导致看不到输入的文字,需要设置enable-native="false"

(12)Swiper

  • 支付宝小程序swipercurrent改变,不会触发change事件
  • 支付宝小程序swiper-item不支持click

(13)picker多列

uniapp中的picker组件在支付宝小程序中不支持多列mode=multiSelector,推荐使用w-picker第三方组件

(14)富文本

支付宝小程序富文本显示使用mp-html

(15)Canvas画布

画布画图片时,支付宝需要传9个参数,微信小程序传5个参数就好

微信小程序
ctx.drawImage(
	code,
	uni.upx2px(260), // 在画布上放置图像的 x 坐标位置
	uni.upx2px(657), // 在画布上放置图像的 y 坐标位置
	uni.upx2px(210), // 要使用的图像的宽度
	uni.upx2px(210) // 要使用的图像的高度
)

支付宝小程序
ctx.drawImage(
	code,
	uni.upx2px(0), // 开始剪切的 x 坐标位置,这一行支付宝小程序不能少
	uni.upx2px(0), // 开始剪切的 y 坐标位置,这一行支付宝小程序不能少
	228, // 被剪切图像的宽度,这一行支付宝小程序不能少
	228, // 被剪切图像的高度,这一行支付宝小程序不能少
	uni.upx2px(260), // 在画布上放置图像的 x 坐标位置
	uni.upx2px(657), // 在画布上放置图像的 y 坐标位置
	uni.upx2px(210), // 要使用的图像的宽度
	uni.upx2px(210) // 要使用的图像的高度
)

三、最后

本人每篇文章都是一字一句码出来,希望大佬们多提提意见。顺手来个三连击,点赞👍收藏💖关注✨。创作不易,给我打打气,加加油☕

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C# 使用 Fody 监控方法执行时间

写在前面 在做性能调优的时候&#xff0c;经常需要跟踪具体方法的执行时间&#xff1b;通过插入Stopwatch的方案对代码的侵入性太高了&#xff0c;所以引入了 MethodTimer.Fody 类库&#xff0c;采用编译时注入的方式给方法动态加上Stopwatch 跟踪代码&#xff0c;只需要在目标…

re:Invent 构建未来:云计算生成式 AI 诞生科技新局面

文章目录 前言什么是云计算云计算类型亚马逊云科技云计算最多的功能最大的客户和合作伙伴社区最安全最快的创新速度最成熟的运营专业能力 什么是生成式 AI如何使用生成式 AI后记 前言 在科技发展的滚滚浪潮中&#xff0c;我们见证了云计算的崛起和生成式 AI 的突破&#xff0c…

Python - Real-ESRGAN 提升图像、视频清晰度 - 最高可达 4 K

目录 一.引言 二.Real-ESRGAN 理论 1.模型简介 2.经典退化模型 ◆ 退化过程全览 ◆ K - 高斯滤波 ◆ N - 噪声 ◆ ↓r - Resize ◆ jpeg - 压缩 3.高阶退化模型 4.环形和超调伪影 5.网络结构 ◆ ESRGAN 生成器 ◆ U-Net 鉴别器 三.Real-ESRGAN 实战 1.快速体验…

YashanDB入选2023年世界互联网大会领先科技奖成果集《科技之魅》

近日&#xff0c;由深圳计算科学研究院自主研发的“崖山数据库系统YashanDB”入编2023年世界互联网大会领先科技奖成果集《科技之魅》。此次入选&#xff0c;充分彰显了YashanDB在数据库技术领域的突破性创新成果。 《科技之魅》是世界互联网大会领先科技奖的重要成果&#xff…

安网AC智能路由系统actpt_5g.data敏感信息泄露漏洞复现 [附POC]

文章目录 安网AC智能路由系统actpt_5g.data敏感信息泄露漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 安网AC智能路由系统actpt_5g.data敏感信息泄露漏洞复现 [附POC] 0x01 前言 免责声明&#xff1a;请勿利…

【python+Excel】读取和存储测试数据完成接口自动化测试

http_request2.py用于发起http请求 #读取多条测试用例 #1、导入requests模块 import requests #从 class_12_19.do_excel1导入read_data函数 from do_excel2 import read_data from do_excel2 import write_data from do_excel2 import count_case #定义http请求函数COOKIENon…

国密加密工业路由器 数据安全升级

国密加密工业路由器&#xff0c;简称国密加密路由器&#xff0c;是指遵循“商用密码管理规范”中规定的国家商用密码算法&#xff0c;采用国密加密芯片和密码算法的专业路由器。相比-般路由器&#xff0c;国密加密路由器具有更高级别的加密保护&#xff0c;可以有效提高数据传输…

昨日一题 1670. 设计前中后队列(中等,列表)

维护左右两个队列&#xff0c;控制左队列的长度比右队列长&#xff0c;且不超过1pushFront 往左队列的左边添加元素pushMiddle 往左队列的右边或者右队列的左边添加元素其余同理&#xff0c;可以参照代码 class FrontMiddleBackQueue:def __init__(self):self.llist, self.rli…

如何保证缓存和数据库的双写一致性?

一、什么是数据库和缓存双写一致性&#xff1f; 在分布式系统中&#xff0c;数据库和缓存会搭配一起使用&#xff0c;以此来保证程序的整体查询性能。也就说&#xff0c;分布式系统为了缓解数据库查询的压力&#xff0c;会将查出来的数据保存在缓存中&#xff0c;下次再查询时…

代码随想录算法训练营第五十九天| 503.下一个更大元素II 42. 接雨水

文档讲解&#xff1a;代码随想录 视频讲解&#xff1a;代码随想录B站账号 状态&#xff1a;看了视频题解和文章解析后做出来了 503.下一个更大元素II class Solution:def nextGreaterElements(self, nums: List[int]) -> List[int]:res [-1] * len(nums)stack []for i in…

Vue性能优化方法

一、前言 1.1 为什么需要性能优化 用户体验&#xff1a;优化性能可以提升用户体验&#xff0c;降低加载时间和响应时间&#xff0c;让用户更快地看到页面内容。SEO优化&#xff1a;搜索引擎更喜欢快速响应的网站&#xff0c;优化性能可以提高网站的排名。节约成本&#xff1…

【知识】稀疏矩阵是否比密集矩阵更高效?

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 问题提出 有些地方说&#xff0c;稀疏图比密集图的计算效率更高&#xff0c;真的吗&#xff1f; 原因猜想 这里的效率高&#xff0c;应该是有前提的&#xff1a;当使用稀疏矩阵的存储格式(如CSR)时&#xff0c;计…

云时空社会化商业 ERP 系统 Shiro 反序列化漏洞复现

0x01 产品简介 时空云社会化商业ERP&#xff08;简称时空云ERP&#xff09; &#xff0c;该产品采用JAVA语言和Oracle数据库&#xff0c; 融合用友软件的先进管理理念&#xff0c;汇集各医药企业特色管理需求&#xff0c;通过规范各个流通环节从而提高企业竞争力、降低人员成本…

Linux相关--笔试和面试高频

Linux RedHat公司已经宣布停止维护CentOS服务器操作系统&#xff0c;可以选择华为开源的欧拉系统、阿里开源的龙蜥系统和腾讯开源的TencentOS系统 面试 几个基本的Linux命令 pwd #查看当前绝对路径 结果/home/stu touch / vi编辑器 #创建文件 mkdir -p /home/stu/test #当…

ESP32-Web-Server 实战编程- 使用 AJAX 自动更新网页内容

ESP32-Web-Server 实战编程- 使用 AJAX 自动更新网页内容 概述 什么是 AJAX &#xff1f; AJAX Asynchronous JavaScript and XML&#xff08;异步的 JavaScript 和 XML&#xff09;。 AJAX 是一种用于创建快速动态网页的技术。 传统的网页&#xff08;不使用 AJAX&#…

鸿蒙原生应用/元服务开发-AGC分发如何下载管理Profile

一、收到通知 尊敬的开发者&#xff1a; 您好&#xff0c;为支撑鸿蒙生态发展&#xff0c;HUAWEI AppGallery Connect已于X月XX日完成存量HarmonyOS应用/元服务的Profile文件更新&#xff0c;更新后Profile文件中已扩展App ID信息&#xff1b;后续上架流程会检测API9以上Harm…

直接套用的软件详细设计说明书

软件开发全套资料过去进主页&#xff01;

stm32 计数模式

计数模式 但是对于通用定时器而言&#xff0c;计数器的计数模式不止向上计数这一种。上文基本定时器中计数器的计数模式都是向上计数的模式。 向上计数模式&#xff1a;计数器从0开始&#xff0c;向上自增&#xff0c;计到和自动重装寄存器的目标值相等时&#xff0c;计数器清…

安卓apk抓包

起因 手机&#xff08;模拟器&#xff09;有时候抓不到apk的包&#xff0c;需要借助Postern设置一个代理&#xff0c;把模拟器的流量代理到物理机的burp上。 解决方案 使用Postern代理&#xff0c;把apk的流量代理到burp。 Postern是一个用于代理和网络流量路由的工具&#xf…

Apache Flink(三):Flink核心特性及应用场景

&#x1f3e1; 个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;加入大数据技术讨论群聊&#xff0c;获取更多大数据资料。 &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你大数据的个人空间-豹…