电源模块 结构合理 布局 模块

初学后端,如何做好表结构设计?

这篇文章介绍了设计数据库表结构应该考虑的4个方面,还有优雅设计的6个原则,举了一个例子分享了我的设计思路,为了提高性能我们也要从多方面考虑缓存问题。 ......
结构设计 结构

C | 结构体字节对齐

01.字节对齐现象 #include<stdio.h> struct st1{ char a; short b; int c; }; struct st2{ char a; int c; short b; }; int main(){ printf("sizeof st1 = %u\n", size ......
字节 结构

结构型-装饰器模式

定义 如果希望动态给某个类添加一些属性或者方法,但是你又不希望这个类派生的对象受到影响,那么装饰器模式就可以给你带来这样的体验。 它的定义就是在不改变原对象的基础上,通过对其进行包装拓展,使得原有对象可以动态具有更多功能,从而满足用户的更复杂需求。 举个例子,一部手机,你可以买各种花里胡哨的手机壳等 ......
结构型 结构 模式

Django笔记二之连接数据库、执行migrate数据结构更改操作

本篇笔记目录索引如下: Django 连接mysql,执行数据库表结构迁移步骤介绍 操作数据库,对数据进行简单操作 接下来几篇笔记都会介绍和数据库相关,包括数据库的连接、操作(包括增删改查)、对应的字段类型、model 里Meta 相关参数和 QueryAPI 的详解等。 这一篇先介绍数据库的连接和 ......
数据 数据结构 migrate 结构 数据库

NodeJs的模块化和包

模块化的基本概念 什么是模块化? 模块化是解决一个复杂问题时,自顶向下逐层把系统划分为若干个模块的过程,编程中,就是遵守一定规则,把一个大文件拆成独立并相互依赖的多个小模块。 模块化规范 使用什么样的语法格式引用模块和向外暴露成员 CommonJS规范 Node.js 遵循了 CommonJS 的模 ......
模块 NodeJs

最新 umi4-max 如何使用 webpack5 联邦模块

新项目用 umi4-max 搭建,部分功能想要使用其他项目的功能,不想重新开发,想到了使用 webpack5 的联邦模块,可以直接引用其他项目代码来实现共享代码。 理想很美好,现实很残酷。直接按照 webpack5 联邦模块的使用方法,并不能成功,而官方文档没有明确说明如何使用。 webpack 联 ......
联邦 模块 umi4-max webpack5 webpack

看看CabloyJS是如何异步加载并执行go wasm模块的

CabloyJS提供了一个内置模块a-wasmgo,将go wasm模块的异步加载运行机制进行了封装,使我们可以非常方便的在CabloyJS项目中引入go wasm,从而支持更多的业务场景开发 ......
模块 CabloyJS wasm

maven 多模块项目的测试覆盖率分析 - jacoco 聚合分析

前言 对于大多数 maven 多模块化工程,可以使用 Jacoco 这款工具,关于 Jacoco 这款工具,ChatGPT 对它的描述是这样的: JaCoCo(Java Code Coverage)是一个开源的测试覆盖率工具,它可以用于帮助开发人员衡量其软件测试的有效性。它支持多种语言,包括 Jav ......
覆盖率 模块 项目 jacoco maven

设计模式(十五)----结构型模式之外观模式

1 概述 有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮帮手就好,其实基金就是个好帮手,支付宝里就有许多的基金,它将投资者分散的资金集中起来,交由专业的经理人进行管理,投资于股票、债券、外汇等领域,而基金投资的 ......
模式 结构型 设计模式 外观 结构

设计模式(十四)----结构型模式之组合模式

1 概述 对于这个图片肯定会非常熟悉,上图我们可以看做是一个文件系统,对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。可以将这颗树理解成一个大的容器,容器里面包含很多的成员对象,这些成员对象即可是容器对象也可以 ......
模式 结构型 设计模式 结构

设计模式(十六)----结构型模式之代理享元模式

1 概述 定义: 运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。 2 结构 享元(Flyweight )模式中存在以下两种状态: 内部状态,即不会随着环境的改变而改变的可共享部分。 外部状态,指 ......
模式 结构型 设计模式 结构

面试官:请说一下如何优化结构体的性能?

使用内存对齐机制优化结构体性能,妙啊! 可以简单理解为:将对齐系数小的字段,尽可能放在一起,尽量减少空白填充。 掌握了内存对齐机制后,结构体Struct的优化,调整下字段顺序,效果立竿见影。内存对齐其实就是典型的空间换时间的方式,来达到优化的目的。牢记对齐原则,对实际场景进行分析,减少空白填充。 ......
性能 结构

【数据结构与算法学习】线性表(顺序表、单链表、双向链表、循环链表)

实现语言:C++ 1. 线性表相关概念 线性表(Linear List) 是由n(n≥0)个具有相同特性(数据类型)的数据元素(结点)a1,a2,...,ai-1,ai,ai+1,...,an组成的有限序列。 其中,a1为线性起点(起始结点),an为线性终点(终端结点)。对于每一个数据元素ai,我们 ......
数据结构 线性 双向 算法 顺序

【数据结构与算法学习】散列表(Hash Table,哈希表)

实现语言:C++ 1. 散列表 散列表,英文名称为Hash Table,又称哈希表、杂凑表等。 线性表和树表的查找是通过比较关键字的方法,查找的效率取决于关键字的比较次数。 而散列表是根据关键字直接访问的数据结构。散列表通过散列函数将关键字映射到存储地址,建立了关键字和存储地址之间的一种直接映射关系 ......
数据结构 算法 结构 数据 Table

Masa Framework源码解读-02缓存模块(分布式缓存进阶之多级缓存)

序言 ​ 今天这篇文章来看看Masa Framework的缓存设计,上一篇文章中说到的MasaFactory的应用也会在这章节出现。文章中如有错误之处还请指点,咱们话不多说,直入主题。 Masa Framework缓存简介 MASA Framework源码地址:https://github.com/ ......
缓存 分布式 Framework 源码 模块

Cesium渲染模块之VAO

1. 引言 Cesium是一款三维地球和地图可视化开源JavaScript库,使用WebGL来进行硬件加速图形,使用时不需要任何插件支持,基于Apache2.0许可的开源程序,可以免费用于商业和非商业用途 Cesium官网:Cesium: The Platform for 3D Geospatial ......
模块 Cesium VAO

Cesium渲染模块之Shader

1. 引言 Cesium是一款三维地球和地图可视化开源JavaScript库,使用WebGL来进行硬件加速图形,使用时不需要任何插件支持,基于Apache2.0许可的开源程序,可以免费用于商业和非商业用途 Cesium官网:Cesium: The Platform for 3D Geospatial ......
模块 Cesium Shader

Cesium渲染模块之Command

1. 引言 Cesium是一款三维地球和地图可视化开源JavaScript库,使用WebGL来进行硬件加速图形,使用时不需要任何插件支持,基于Apache2.0许可的开源程序,可以免费用于商业和非商业用途 Cesium官网:Cesium: The Platform for 3D Geospatial ......
模块 Command Cesium

【SpringBoot】还不会SpringBoot项目模块分层?来这手把手教你

前言 🍊缘由 经常看到网上很多优秀的开源项目中,代码简洁,模块分层完美。反观自己代码层级混乱,,却不知如何整理分层。此文手把手教你一步一步创建模块,左手右手一个慢动作。结合本人实际开发及个人项目中分层思路的分享,大神请勿喷。 ⏲️本文阅读时长 约25分钟 🎯主要目标 熟练掌握SpringBoot ......
SpringBoot 模块 项目

初识Node和内置模块

初识Node与内置模块 概述:了解Node.js,熟悉内置模块:fs模块、path模块、http模块 初识Node.js 浏览器中的JavaScript运行环境 运行环境是指代码正常运行所需的必要环境 对于Chrome浏览器运行环境=V8引擎+内置API(DOM、BOM等) V8引擎负责解析和执行J ......
模块 Node

ABP微服务系列学习-搭建自己的微服务结构(一)

在原本的结构里面,由于默认服务引用的都是ABP原生的模块,所以结构目录里面没有包含modules目录,这里我们添加一个modules目录,用于存放我们的自定义模块。在shared里面,我们再抽一个EventData的模块,用于消息队列共用数据实体。修改后结构如下图所示: 开始搭建 由于我们没有商业版 ......
结构 ABP

ABP微服务系列学习-搭建自己的微服务结构(三)

上一篇我们基础服务初步搭建完毕,接下来我们整一下认证和网关。 搭建认证服务 认证服务的话,ABP CLI生成的所有模板都包括了一个AuthServer。我们直接生成模板然后微调一下就可以直接用了。 abp new FunShow -t app --tiered 使用命令创建模板后,我们可以找到一个A ......
结构 ABP

Qt 学习笔记 - 第二章 - 添加图片、布局、界面切换

Qt 学习笔记全系列传送门: Qt 学习笔记 - 第一章 - 快速开始、信号与槽 【本章】Qt 学习笔记 - 第二章 - 添加图片、布局、界面切换 Qt 学习笔记 - 第三章 - Qt的三驾马车之一 - 串口编程 + 程序打包成Windows软件 Qt 学习笔记 - 第四章 - Qt的三驾马车之二 ......
布局 界面 第二章 笔记 图片

requests模块

爬虫是什么?;爬虫就是程序 >从互联网中,各个网站上,爬取数据【前提是:你能浏览的页面才能爬】,做数据清洗,保存到数据库的过程。 爬虫本质:模拟方式发送http请求、然后获取数据、再做数据清洗、最后保存到数据库 爬虫的重点:如何发送http请求?如何解析数据? 本篇爬虫知识主要包括(不会一次性写完, ......
模块 requests

IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤

IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤 、 @ IDEA 导入项目模块 Module 一. 创建一个空项目 想要导入模块 Module ,我们需要先创建一个项目,因为 Module模块在 IDEA 中是存在于项目下的。 这里我们先创建一个空项目,当然已经有项目了, ......
模块 步骤 程序 项目 IDEA

设计模式(十三)----结构型模式之桥接模式

1 概述 现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系: 我们可以发现有很多的类,假如我们再增加一个形状或再增加一种颜色,就需要创建更多的类。 试想,在一个有多种可能会变化的维度的系统中,用继承方式会造成类爆炸,扩展起来不灵活。每次在一 ......
模式 结构型 设计模式 结构

设计模式(十一)----结构型模式之装饰者模式

1、概述 我们先来看一个快餐店的例子。 快餐店有炒面、炒饭这些快餐,可以额外附加鸡蛋、火腿、培根这些配菜,当然加配菜需要额外加钱,每个配菜的价钱通常不太一样,那么计算总价就会显得比较麻烦。 使用继承的方式存在的问题: 扩展性不好 如果要再加一种配料(火腿肠),我们就会发现需要给FriedRice和F ......
模式 结构型 设计模式 结构

设计模式(十)----结构型模式之适配器模式

1、概述 如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。所以就需要一个插座转换器,转换器第1面插入当地的插座,第2面供我们充电,这样使得我们的插头在当地能使用。生活中这样的例子很多,手机充电器(将220v转 ......

vivo官网App模块化开发方案-ModularDevTool

作者:vivo 互联网客户端团队- Wang Zhenyu 本文主要讲述了Android客户端模块化开发的痛点及解决方案,详细讲解了方案的实现思路和具体实现方法。 说明:本工具基于vivo互联网客户端团队内部开源的编译管理工具开发。 一、背景 现在客户端的业务越来越多,大部分客户端工程都采用模块化的 ......
ModularDevTool 模块 方案 vivo App

精华推荐 |【算法数据结构专题】「延时队列算法」史上非常详细分析和介绍如何通过时间轮(TimingWheel)实现延时队列的原理指南

时间轮的介绍 时间轮(TimeWheel)是一种实现延迟功能(定时器)的精妙的高级算法,其算法应用范围非常广泛,在Java开发过程中常用的Dubbo、Netty、Akka、Quartz、ZooKeeper 、Kafka等各种框架中,各种操作系统的定时任务crontab调度都有用到,甚至Linux内核 ......