基本原则 大师 原则 三个
SPA路由实现的基本原理
1. SPA路由实现的基本原理 前端单页应用实现路由的策略有两种,分别是 基于hash 和 基于 History API 基于hash 通过将一个 URL path 用 # Hash 符号拆分。— 浏览器视作其为虚拟的片段。 最早前端路由的实现就是 基于 location.hash 来实现的, 有这 ......
slate源码解析(二)- 基本框架与数据模型
源码架构 首先来看下最核心的slate包下的目录: 可以看到,作为一个开源富文本库,其源码是相当之少。在第一篇文章中说过,Slate没有任何开箱即用的功能,只提供给开发者用于构建富文本所需的最基本的一套schema及操作API。因此源码的体量自然就要少许多。 我们来预览上图中各个目录下文件所负责的功 ......
推荐一个Dapper扩展CRUD基本操作的开源库
在C#众多ORM框架中,Dapper绝对称得上微型ORM之王,Dapper以灵活、性能好而著名,同样也是支持各种数据库,但是对于一些复杂的查询,我们写原生的SQL语句问题不大,对于CRUD基本操作,我们同样也是需要写原生的SQL来实现,这个就比较麻烦了。 今天给大家推荐一个Dapper扩展库,来实现 ......
【Go并发编程】Goroutine的基本使用
goroutine是什么 goroutine即协程,使用go关键字开启一个协程异步执行代码。 注意,main函数也是个goroutine。 基本使用 使用go执行子任务,会交替执行(和时间片一样)。 主goroutine退出后,其它的工作goroutine也会自动退出(有点父子进程的感觉): pac ......
C/C++内存对齐原则
C/C++内存对齐 what && why 当用户自定义类型时(struct 或 class),编译器会自动计算该类型占用的字节数。 C/C++ 为什么要内存对齐?我道行太浅,摘抄了网上的一个解释。 为了方便从内存中读取数据。假设没有内存对齐,在内存中存储一个 int 变量 x(占 4 字节),放在 ......
必知必会的设计原则——接口隔离原则
设计原则系列文章 必知必会的设计原则——单一职责原则 必知必会的设计原则——开放封闭原则 必知必会的设计原则——依赖倒置原则 必知必会的设计原则——里氏替换原则 必知必会的设计原则——接口隔离原则 必知必会的设计原则——迪米特原则 必知必会的设计原则——合成复用原则 概述 1、 客户端不应该依赖它不 ......
day01-SpringMVC基本介绍
SpringMVC介绍 1.离线文档 解压 spring-5.3.8-dist.zip文件。 位置:spring-framework-5.3.8/docs/reference/html/web.html#spring-web 2.SpringMVC基本介绍 2.1SpringMVC特点&概述 Spr ......
明解STM32—GPIO理论基础知识篇之基本结构
一、前言 万物皆有源头,大家学习单片机的源头操作就是通过GPIO口点灯,GPIO作为STM32最基础的外设,也是大家最先接触的外设。当然,看似基础的GPIO,不仅仅是简单的设置好IO口,让灯亮起就一了百了,了解清楚GPIO的使用特性,根本原理、运行机制对我们在涉及到GPIO的相关设计操作上会应用 ......
最容易懂的策略模式消除if-else分支,实现开闭原则,提高可扩展性
1 介绍 策略模式最常用的场景就是用于消除代码中的if-else,这里所说的if-else并不是说任何简单的判断都引入策略模式来优化,这样反而会增加代码的复杂度。 反例:使用策略模式对一个boolean类型的变量进行优化 2 背景 我负责的有一个基于流程引擎开发的项目,有一个功能模块是查看申请单的详 ......
day01-Spring基本介绍
Spring基本介绍 1.官方资料和下载 1.1Spring5下载 直接访问 https://repo.spring.io/ui/native/release/org/springframework/spring/,选择相应版本即可 进入官网 https://spring.io/ 进入Spring5 ......
Android Volley 基本使用
Android Volley 基本使用 本篇主要介绍 Google 给Android 平台提供的 Volley 一个 Http请求库 , 齐射! 1.概述 Volley是Google 提供的一个小巧的异步请求库,扩展很强支持okhttp,(默认是 Android2.3 及以上基于 HttpURLCo ......
【架构设计】你真的理解软件设计中的SOLID原则吗?
前言 在软件架构设计领域,有一个大名鼎鼎的设计原则——SOLID原则,它是由由Robert C. Martin(也称为 Uncle Bob)提出的,指导我们写出可维护、可以测试、高扩展、高内聚、低耦合的代码。是不是很牛,但是你们都理解这个设计原则吗,如果理解不深入的话,更这我通过JAVA示例深入浅出 ......
机器学习基本原理
深度学习是机器学习的一个特定分支。我们要想充分理解深度学习,必须对机器学习的基本原理有深刻的理解。
大部分机器学习算法都有超参数(必须在学习算法外手动设定)。机器学习本质上属于应用统计学,其更加强调使用计算机对复杂函数进行统计估计,而较少强调围绕这些函数证明置信区间;因此我们会探讨两种统计学的主要... ......
Apache Kafka 的基本概念
基本概念 主题 Topic topic 是 Kafka 最基础的组织单位,类似于关系数据库中的数据表。做为使用 kafka 的开发者,你最应该考虑的是和 topic 相关的抽象。创建不同的 topic 保存不同种类的 events,或者通过不同的 topic 保存各种版本经过过滤、转换后的同类 ev ......
一篇文章带你了解设计模式原理——UML图和软件设计原则
一篇文章带你了解设计模式原理——UML图和软件设计原则 我们在学习过程中可能并不会关心设计模式,但一旦牵扯到项目和面试,设计模式就成了我们的短板 这篇文章并不会讲到二十三种设计模式,但是会讲解设计模式的设计原则以及设计依据和最明显的图形表示 或许我们只有先去了解设计模式的来源才能真正理解设计模式吧 ......
【架构设计】保持简单轻量设计的三个原则——DRY,KISS, YAGNI
前言 一个软件轻量简单的软件架构是非常重要的,它可以让我们花最小的代价就能满足业务上的需求。那如何保证轻量简单呢?那今天就和大家分享下这其中的秘密,也就是3个重要的指导原则,KISS原则,YAGNI原则和DRY原则,你们都知道并且理解吗? 欢迎关注微信公众号「JAVA旭阳」交流和学习 KISS原则 ......
Pytorch基础-张量基本操作
Pytorch 中,张量的操作分为结构操作和数学运算,其理解就如字面意思。结构操作就是改变张量本身的结构,数学运算就是对张量的元素值完成数学运算。 ......
NGINX的配置和基本使用
Linux NGINX NGINX:engine X ,2002年开发,分为社区版和商业版(nginx plus ) 社区版:分为主线版(开发版,奇数),稳定版(偶数) Nginx官网:http://nginx.org NGINX的两大功能:web服务器、反向代理服务器 NGINX和APACHE一样 ......
Linux NTP工具的基本使用
NTP 时间同步 NTP(Network Time Protocol)协议,网络时间协议。利用ntp协议可以实现网络中的计算机时间同步。 实现NTP协议的工具: ntpdate:只能同步一次时间 ntp:持久同步时间 chrony:持久同步时间,精度比上面的ntp更好,速度更快。 使用ntpdate ......
软件设计中最关键的“开闭原则”,究竟指什么呢?
前言 软件设计原则中有一条很关键的原则是开闭原则,就是所谓的对扩展开放,对修改关闭。个人觉得这条原则是非常重要的,直接关系到你的设计是否具备良好的扩展性,但也是相对比较难以理解和掌握的,究竟怎样的代码改动才被定义为“扩展”?怎样的代码改动才被定义为“修改”?怎么才算满足或违反“开闭原则”?别急,本文 ......
数据结构初阶--二叉树介绍(基本性质+堆实现顺序结构)
树的基本概念和结构 树的相关概念 **节点的度:**一个节点含有的子树的个数称为该节点的度; 如上图:A的为2 叶节点或终端节点:度为0的节点称为叶节点; 如上图:D、F、G、H为叶节点 **非终端节点或分支节点:**度不为0的节点; 如上图:A、B…等节点为分支节点 **双亲节点或父节点:**若一 ......
MySQL数据库:2、MySQL的下载与安装、基本使用、系统服务制作
一、MySQL简介 MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 二、安装与下载 1、下载流程 1、访问官方(www.mysql.com) 2、点击‘DOWNLOADS’,进入下载界面 3、下拉,找到‘ ......
深入浅出学习透析Nginx服务器的基本原理和配置指南「初级实践篇 」
Nginx (Engine X)是一个轻量级的Web服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器、高性能的HTTP服务器,它以高稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。 ......
深入浅出学习透析 Nginx 服务器的基本原理和配置指南「运维操作实战篇」
Nginx 安装非常的简单,且Nginx 启动特别容易,并且几乎可以做到24小时不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下进行软件版本的升级。接下来我们要针对于安装和运维操作进行实战和分析。 ......
.NET 6 实现滑动验证码(二)、基本数据
上一节,介绍了滑动验证码的基本情况,也创建了一个.NET 6的工程。本节内容是创建一些基础类。 (创建基础类) 本节创建的类全部在工程的Model目录下: CaptchaData.cs CaptchaData.cs:验证码的数据类实体 namespace SlideCaptcha.Model { p ......
Blazor和Vue对比学习(进阶.路由导航一):基本使用
Blazor和Vue都是单文件组件SPA,路由的实现逻辑非常相似,页面路径的改变都是组件的切换,但因为各自语言的特性,在实现方式上有较大差异。 一、安装 1、Vue:Router是Vue的一个插件。如果使用Vite脚手架初始化项目,需要手动安装和配置Router插件。如果使用Vue脚手架初始化项目, ......
Java lambda表达式基本使用
代码示例:java.lambda.LambdaExpression 1 本质 lambda表达式本质上是对匿名内部类实例的一种简化写法。 1.1 案例 有以下List<Integer>对象: List<Integer> list = Arrays.asList(1, 3, 5, 7, 9, 2, 4 ......