教你巧用webpack在日志中记录文件行号

2022-11-14
目录 前言 通过提取 Error 错误栈 通过 webpack 预处理 总结 前言 在做前端项目时,会在各个关键节点打印日志,方便后续数据分析和问题排查.当日志越来越多之后,又会遇到通过日志反查代码所在文件和所在行的场景,于是一个很自然的需求就出来了: 在打印日志的时候,自动注入当前文件名.行号.列号. 举个例子,有个 logger 函数,我们在 index.js 的业务代码某一行添加打印逻辑: const { logLine } = require('./utils') function ge

flutter InheritedWidget使用方法总结

2022-11-14
目录 引言 didChangeDependencies 如何使用? 结论 引言 InheritedWidget,flutter中非常重要的一个功能组件.比如我们在应用的根 widget 中通过InheritedWidget共享了一个数据,那么我们便可以在任意子 widget 中来获取该共享的数据. didChangeDependencies 说到 InheritedWidget ,我们不得不聊聊 state 对象中的 didChangeDependencies 方法.当子控件依赖使用了父控件中的

sql索引失效的情况以及超详细解决方法

2022-11-14
目录 前言 数据准备 1.查询条件中有or,即使有部分条件带索引也会失效 2.like查询是以%开头 3.如果列类型是字符串,那在查询条件中需要将数据用引号引用起来,否则不走索引 4.索引列上参与计算会导致索引失效 5.违背最左匹配原则 6.如果mysql估计全表扫描要比使用索引要快,会不适用索引 7.other 补充:索引注意事项 总结 前言 大家都知道,一条查询语句走了索引和没走索引的查询效率是非常大的,在我们建好了表,建好了索引后,但是一些不好的sql会导致我们的索引失效,下面介绍一下索引

postgresql 常用SQL语句小结

2022-11-14
目录 1.查询链接数 2.查看死锁状态 3.删除死锁进程 4.备份数据库 5.还原数据库 6.插入数据 插入单条数据 插入多条数据 从一张表查询到的数据插入到另一张表 7 .查询pg中单张表的大小(不包含索引) 8.查询数据库中所有表的大小 9.按顺序查看索引 10 .查询数据库的大小 11.查询被锁定的表 12 .查询一个Schema下面的所有表的总大小(单位MB,包括索引和数据) 14 .查询表大小按大小排序并分离data与index 1.查询链接数 SELECT sum(numbacken

mysql添加索引方法详解(Navicat可视化加索引与sql语句加索引)

2022-11-14
目录 使用索引的场景: 下面是通过sql语句添加索引的方法: 1.普通索引 1).直接创建索引 2).修改表结构的方式添加索引 3).删除索引 2.唯一索引 1).创建唯一索引 2).修改表结构 3.主键索引 4.组合索引 5.全文索引 1).创建表的适合添加全文索引 2).修改表结构添加全文索引 3).直接创建索引 总结 使用索引的场景: 阿里云日志里出现了慢sql 然后发现publish_works_id字段会经常用于一些关联,所以决定把这个字段加上索引,优化sql 可视化navicat操作

Python基于随机采样一至性实现拟合椭圆(优化版)

2022-11-14
上次版本如果在没有找到轮廓或轮廓的点集数很小无法拟合椭圆或在RANSAC中寻找最优解时会死循环中,优化后的代码 import cv2 import os import numpy as np import matplotlib.pyplot as plt import math from Ransac_Process import RANSAC def cul_area(x_mask, y_mask, r_circle, mask): mask_label = mask.copy() num_a

BAT脚本接收输入数字

2022-11-14
bat编程,为什么if语句中接收不到输入(set /p)的内容 1.使用延迟变量:setlocal EnableDelayedExpansion 2.变量名不是用百分号而是用感叹号来表示的:  adb shell dumpsys procstats --hours !input_time! 原始脚本参考: @echo off @echo memory infomation setlocal EnableDelayedExpansion title 内存信息 if not exist "D:\cp

flutter Bloc 更新后事件同步与异步详解

2022-11-13
目录 前言 使用方式 Bloc 新形态用法 事件队列的阻塞属性? 前言 最近,小轰参与了公司 flutter 项目关于 Dart 2.0 的空安全升级工作.我们升级了所有依赖的三方库,其中就包括有 Bloc 库.作为一款使用率颇高的状态管理框架, Bloc 在版本迭代中进行了少许结构和细节的优化,下面是小轰对于 Bloc 新版本的使用总结. 使用方式 小轰使用的 Bloc 版本如下 flutter_bloc: ^7.3.1 通过最简单的例子来学习新知识 创建一个包含 加 减 操作的页面,使用 b

React 高阶组件与Render Props优缺点详解

2022-11-13
目录 高阶组件 增强型高级组件 注入型高阶组件 高阶组件 VS Render Props 总结 高阶组件 高阶组件(HOC)是一个接受组件作为参数并返回一个新组件的函数,如果多个组件有相同的逻辑,将这些逻辑用函数封装,使它们能跨组件共用,这种用法称为高阶组件.下面的代码演示什么是高阶组件: export default function WithPrintLog(InnerComponent) { return class extends React.Component{ componentDi

Java8中方便又实用的Map函数总结

2022-11-13
目录 简介 computeIfAbsent函数 computeIfPresent函数 compute函数 merge函数 putIfAbsent函数 forEach函数 总结 简介 java8之后,常用的Map接口中添加了一些非常实用的函数,可以大大简化一些特定场景的代码编写,提升代码可读性,一起来看看吧. computeIfAbsent函数 比如,很多时候我们需要对数据进行分组,变成Map<Integer, List<?>>的形式,在java8之前,一般如下实现: List<

使用Idea调试RocketMQ源码教程

2022-11-13
目录 前言 下载源码 代码编译 运行namesrv 启动 启动broker 配置文件 启动broker 小结 前言 为了更好地了解RocketMQ,我打算看一看它的源码了.随着RocketMQ5.0版本的发布,应该有更多小伙伴在实际应用中选择RocketMQ.那么我们就从这一篇文章开始,逐步来了解RocketMQ的神秘源码吧!接下来我们先把调试环境搭建好. 下载源码 源码地址:github.com/apache/rock… 我们先把RocketMQ源码下载下来,为了方便一点,建议小伙伴先fork

C++双线程调用网络摄像头与多线程调用多摄像头同步执行方法详细讲解

2022-11-13
目录 一.使用双线程调用网络摄像头并执行算法 方法一 方法二 二.使用多线程调用多路摄像头并同步执行多个算法 在调用网络摄像头处理自己的算法时,当解码的速度与算法运行的速度差太多时,会出现类似下面的错误 error while decoding MB 148 4, bytestream 所以需要使用两个线程,一个线程调用摄像头,一个线程用来处理图像. 一.使用双线程调用网络摄像头并执行算法 方法一 #include <iostream> #include <thread> #inc

uniapp组件uni-file-picker中对上传的图片进行压缩至1兆以内(推荐)

2022-11-13
目录 解决方法: 一.先开启uni-file-picker组件里对于压缩图片的配置项 sizeType,默认是有两个选项的: 二.将图片再次进行压缩,压缩至1兆以下,再传至服务器中: 我在做uniapp项目时,用的uni-file-picker组件,这是我做的一个项目实例,主要是将图片通过接口传至后台服务器 如果只是上传一张照片的话 还没有什么大问题,但是如果一连上传很多个图片,像我这个项目一样,而且有的图片特别大,我这边遇到一个上传照相机的照片就有10兆多,有的手机内存不足,临时空间不够,就会

一文理解MySQL数据库的约束与表的设计

2022-11-13
目录 1.数据库约束 1.1 约束类型 1.2 null 约束 1.3 unique 唯一的约束 1.4 default 默认值约束 1.5 primary key 主键约束 1.6 primary key auto_increment 自增主键 1.7 foreign key 外键约束 2.表的设计 2.1 一对一 2.2 一对多 2.3 多对多 总结 1.数据库约束 约束是关系型数据库提供的一种校验数据合法性的机制. 1.1 约束类型 约束类型 说明 示例 null 使用not null 指

Python使用自定义装饰器的示例详解

2022-11-13
在Python自动化测试中,使用自定义的装饰器来给测试方法传递测试数据: reader.py import csv import json from openpyxl import load_workbook from setting import DATA_DIR from os import path class Reader: @classmethod def read_excel(cls,xlname, min_row, max_row, min_col, max_col): xlnam

Java中注解与原理分析详解

2022-11-13
目录 一.注解基础 二.注解原理 三.常用注解 1.JDK注解 2.Lombok注解 四.自定义注解 1.同步控制 2.类型引擎 一.注解基础 注解即标注与解析,在Java的代码工程中,注解的使用几乎是无处不在,甚至多到被忽视: 无论是在JDK源码或者框架组件,都在使用注解能力完成各种识别和解析动作:在对系统功能封装时,也会依赖注解能力简化各种逻辑的重复实现: 基础接口 在Annotation的源码注释中有说明:所有的注解类型都需要继承该公共接口,本质上看注解是接口,但是代码并没有显式声明继承关

C++&nbsp;Boost实现数字与字符串转化详解

2022-11-13
目录 一.引言 二.Boost.LexicalCast 2.1 示例1 2.2 示例2 三.lexical_cast与c/c++提供类似接口的比较 3.1 两者比较 3.2 样例 一.引言 在boost库中,有一个函数Boost.LexicalCast可以将数字和字符串进行双向转换.本文介绍这种用法的案例. 二.Boost.LexicalCast Boost.LexicalCast 提供了一个转换运算符,boost::lexical_cast,它可以将数字从字符串转换为数字类型,例如 int 或

Android&nbsp;Loop机制中Looper与handler详细分析

2022-11-13
目录 Looper是什么 简单使用 从源码了解loop原理 loop分析 myLooper() next() handler.dispatchMessage handler分析 消息入队 同步屏障 总结 Looper是什么 用于为线程运行消息循环的类.默认情况下,线程没有与之关联的消息循环.要创建一个,在要运行循环的线程中调用 prepare(),然后调用loop()让它处理消息,直到循环停止为止.与消息循环的大多数交互是通过 Handler类进行的. 意思大概就是让线程有处理消息的能力,并且这

Python基于随机采样一至性实现拟合椭圆

2022-11-13
检测这些圆,先找轮廓后通过轮廓点拟合椭圆 import cv2 import numpy as np import matplotlib.pyplot as plt import math from Ransac_Process import RANSAC def lj_img(img): wlj, hlj = img.shape[1], img.shape[0] lj_dis = 7 # 连接白色区域的判定距离 for ilj in range(wlj): for jlj in range(h

SpringBoot动态定时功能实现方案详解

2022-11-13
目录 业务场景 环境准备 实现方案 归纳总结 业务场景 基于上篇程序,做了一版动态定时程序,然后发现这个定时程序需要在下次执行的时候会加载新的时间,所以如果改了定时程序不能马上触发,所以想到一种方法,在保存定时程序的时候将cron表达式传过去,然后触发定时程序,下面看看怎么实现 环境准备 开发环境 JDK 1.8 SpringBoot2.2.1 Maven 3.2+ 开发工具 IntelliJ IDEA smartGit Navicat15 实现方案 基于上一版进行改进: 先根据选择的星期生成c
巴特西