当前位置:首页 > 第11页

七种方法增强代码可扩展性(多图详解)

1 六大原则 在设计模式中有六大设计原则: 单一职责原则:一个类只做一件事 里式替换原则:子类可以扩展父类 依赖倒置原则:面向接口编程 接口隔离原则:高内聚低耦合 迪米特法则:最少知道原则 开闭原则:关闭修改,开放新增 我认为在这六个原则中开闭原则最为重要,开闭原则是可扩展性的重要基石。 第一个原因是需求变化时应该通过新增而不是修改已有代码实现,这样保证了代码稳定性,避免牵一发而动全身。 第二...
Lotus2023-05-22 02:37

用go设计开发一个自己的轻量级登录库/框架吧(拓展篇)

给自己的库/框架拓展一下吧(拓展篇) 主库:weloe/token-go: a light login library. 扩展库:weloe/token-go-extensions (github.com) 本篇给主库扩展一个Adapter提供简单的外部数据存储。 思路 一个库/框架往往不能完成所有事情,需要其他库/框架的支持才能达到更加完善的效果。本篇会对token-go框架的Adapter进行...
Lotus2023-05-22 02:37

es笔记四之中文分词插件安装与使用

本文首发于公众号:Hunter后端 原文链接:es笔记四之中文分词插件安装与使用 前面我们介绍的操作及演示都是基于英语单词的分词,但我们大部分使用的肯定都是中文,所以如果需要使用分词的操作肯定也是需要使用中分分词。 这里我们介绍一下如何安装中文分词插件。 在介绍安装之前,我们可以先来测试一下没有中文分词的分词效果,我们先来插入一条数据: PUT /exam/_doc/16 { "nam...
Lotus2023-05-22 02:37

SpringBoot限制接口访问频率 - 这些错误千万不能犯

最近在基于SpringBoot做一个面向普通用户的系统,为了保证系统的稳定性,防止被恶意攻击,我想控制用户访问每个接口的频率。为了实现这个功能,可以设计一个annotation,然后借助AOP在调用方法之前检查当前ip的访问频率,如果超过设定频率,直接返回错误信息。 常见的错误设计 在开始介绍具体实现之前,我先列举几种我在网上找到的几种常见错误设计。 1. 固定窗口 有人设计了一个在每分钟内只...
Lotus2023-05-22 02:37

pytorch学习笔记——timm库

  当使用ChatGPT帮我们工作的时候,确实很大一部分人就会失业,当然也有很大一部分人收益其中。我今天继续使用其帮我了解新的内容,也就是timm库。毫不夸张的说,Chat GPT比百分之80的博客讲的更清楚更好,仅次于源码。   当提到计算机视觉的深度学习框架时,PyTorch无疑是最受欢迎的选择之一。PyTorch拥有强大的自动求导功能、易于使用的API和广泛的社区支持。而针对计算机视觉任务,...
Lotus2023-05-22 02:37

XAF Excel Importer

开源项目地址:https://gitee.com/easyxaf/excel-importer 前言 在XAF中有Excel导出,但没有Excel导入,一开始不理解,难道Excel导入很难实现吗,当我自己去实现Excel导入功能时,才发现难的不是技术,而是要有足够的灵活性,在不同的项目中或不同的业务场景中,都会有不同的需求,可能需要很多客制化,那能不能实现通用的Excel导入功能呢,我感觉满足所...
Lotus2023-05-22 02:37

KO之间互相调用

需求 假设有两个KO,命名为moduleA.KO,moduleB.KO,现在要实现在moduleB.KO中调用moduleA.KO中的函数。 实现 ModuleA实现 源码: #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> void moduleA_func...
Lotus2023-05-22 02:36

Java 世界的法外狂徒:反射

概述 反射(Reflection)机制是指在运行时动态地获取类的信息以及操作类的成员(字段、方法、构造函数等)的能力。通过反射,我们可以在编译时期未知具体类型的情况下,通过运行时的动态查找和调用。 虽然 Java 是静态的编译型语言,但是反射特性的加入,提供一种直接操作对象外的另一种方式,让 Java 具备的一些灵活性和动态性,我们可以通过本篇文章来详细了解它 为什么需要反射 ? Java 需...
Lotus2023-05-22 02:36

在Winform中一分钟入门使用好看性能还好的Blazor Hybrid

在Winform中一分钟入门使用好看性能还好的Blazor Hybrid 安装模板 dotnet new install Masa.Template::1.0.0-rc.2 创建 Winform的Blazor Hybrid项目 dotnet new masablazor-winform -n WinformDesktop 创建完成打开项目文件WinformDesktop.csproj文件 打开...
Lotus2023-05-22 02:36

SICP:惰性求值、流和尾递归(Python实现)

求值器完整实现代码我已经上传到了GitHub仓库:TinySCM,感兴趣的童鞋可以前往查看。这里顺便强烈推荐UC Berkeley的同名课程CS 61A。 即使在变化中,它也丝毫未变。 ——赫拉克利特 吾犹昔人,非昔人也。 ——僧肇 绪论 在上一篇博客《SICP:元循环求值器(Python实现)》中,我们介绍了用Python对来实现一个Scheme求值器。然而,我们跳过了部分特殊形...
Lotus2023-05-22 02:36