quot效果图 设计师 效果

设计模式与前端工程师

前端要不要学习设计模式 始终认为每个行业都有自己的特点,各自的专业性。一个开发工程师如果不知道电脑是哪些基本硬件组成,那么我们大概率都会认为这个人非常不专业。那么前端要不要学设计模式呢?设计模式跟前端有多大关系呢? 前端工程师首先是一个工程师,既然是一个软件工程师,那么类似设计模式、数据结构、网络相 ......
设计模式 前端 工程师 模式 工程

【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现

【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现 简介 桥接模式(Bridge Pattern)是一种结构型设计模式,它将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,来实现二者的解耦。参与桥接的接口是稳定的,用户可以扩展和修改桥接中的类,但是不能改变接口。 ......
设计模式 语言 模式 Python Java

【建造者设计模式详解】Java/JS/Go/Python/TS不同语言实现

简介 建造者模式(Builder Pattern),也叫生成器模式,属于创建型模式。它使用多个简单的对象一步一步构建成一个复杂的对象。它允许你使用相同的创建代码生成不同类型和形式的对象。 当你希望使用代码创建不同形式的产品 (例如各种商品和订单) 时, 一些基本部件不会变,而其组合经常变化的时候,就 ......
设计模式 语言 模式 Python Java

简易的工厂设计模式

工厂设计模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需暴露对象的创建逻辑。在工厂模式中,我们定义一个接口或抽象类,该接口或抽象类用于创建对象,但让子类决定要实例化的类。工厂方法模式使类的实例化延迟到其子类。 下面是一个完整的C#实现案例: 首先,我们定义一个接口,用于创建对象: p ......
设计模式 简易 工厂 模式

详细讲解23种设计模式

工厂方法模式(Factory Method Pattern) 工厂方法模式是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法把对象的实例化推迟到子类。 代码示例: csharpCopy codepublic interface IProduct { vo ......
设计模式 模式

CSS 数学函数与容器查询实现不定宽文本溢出跑马灯效果

在许久之前,曾经写过这样一篇文章 -- 不定宽溢出文本适配滚动。我们实现了这样一种效果: 文本内容不超过容器宽度,正常展示 文本内容超过容器的情况,内容可以进行跑马灯来回滚动展示 像是这样: 但是,之前的方案,有一个很明显的缺点,如果我们事先知道了容器的宽度,那么没问题,但是如果没法确定容器的宽度, ......
跑马灯 容器 函数 文本 效果

票据系统设计

最近做票据系统,在此做一个总结。下面从几个关键点逐一来阐述。 1. 库存 通俗地讲,票据系统的主要功能是出票、买票、卖票。买卖双方之间的交易就形成了票据的流转。这个过程中,票是最关键的元素。票据库存是整个票据系统的核心,所有业务最终都是对库存进行操作。对应有出库、入库操作。 交易类的库存操作是在结算 ......
票据 系统

聊聊「订单」业务的设计与实现

订单业务一直都是系统研发中的核心模块,订单的产生过程,与系统中的很多模块都会高度关联,比如账户体系、支付中心、运营管理等,即便单看订单本身,也足够的复杂; ......
订单 业务

一种通过nacos动态配置实现多租户的log4j2日志物理隔离的设计

1、背景 1.1、背景 旧服务改造为多租户服务后,log4j日志打印在一起不能区分是哪个租户的,日志太多,太杂,不好定位排除问题,排查问题较难。 1.2、前提 不改动以前的日志代码(工作量太大) 1.3、打印日志示例 package com.cherf.sauth.controller; impor ......
租户 物理 动态 log4j2 nacos

如何设计一个最简化的推荐系统

互联网时代,数据呈爆炸式增长,前所未有的数据量远远超过受众的接收和处理能力,因此,从海量复杂数据中有效获取关键性有用信息成为必须解决的问题。 面对信息过载问题,人们迫切需要一种高效的信息过滤系统,“推荐系统”应运而生。 20世纪90年代以来,尽管推荐系统在理论、方法和应用方面取得了系列重要进展,但数... ......
系统

微信小程序抢红包高并发设计

1、背景 某次促销活动采用微信炒群,红包雨的方式进行引流,面向广大C端用户,活动期间面向大规模用户,系统设计需要承载三高(高可用、高并发、高性能)要求。 系统设计首先我们要考虑几个问题: 1、业务场景面向高并发,怎么设计一个高性能抢红包程序以解决在高并发条件下能正常运行? 2、系统高并发瓶颈会出现在 ......
红包 程序

C#神器"BlockingCollection"类实现C#神仙操作

前言 如果你想玩转C# 里面多线程,工厂模式,生产者/消费者,队列等高级操作,就可以和我一起探索这个强大的线程安全提供阻塞和限制功能的C#神器类 BlockingCollection简单介绍 微软介绍地址:https://learn.microsoft.com/zh-cn/dotnet/standa ......
神器 BlockingCollection quot 神仙

SpringCloud微服务实战——搭建企业级开发框架(四十九):数据字典注解的设计与实现

数据字典是系统中基本的必不可少的功能,在多种多样的系统中,数据字典表的设计都大同小异。但是使用方式确是多种多样,设计好一套易用的数据字典功能模块,可以使开发事半功倍。 常用的数据字典使用方式: 直接在SQL语句中LEFT JOIN (当然是不推荐这样用的) 查询出原始数据,然后再根据原始数据需要的字 ......
注解 SpringCloud 字典 框架 数据

SpringCloud微服务实战——搭建企业级开发框架(五十):集成移动端推送功能的系统通知公告数据库设计

系统的通知公告功能似乎是很容易被忽略的功能模块,在传统的软件系统中,一般OA类软件系统不可或缺,而在应用软件系统中此功能或有或无,在现在大多数的互联网软件系统中,此功能又必不可缺。所以,在框架设计时,我们需要考虑业务系统是否需要此功能模块,然后将此功能作为扩展插件,在需要时开启,在不需要时配置关闭即 ......

.Net Core后端架构实战【1-项目分层框架设计】

摘要:基于.NET Core 7.0WebApi后端架构实战【1-项目结构分层设计】 2023/02/05, ASP.NET Core 7.0, VS2022 引言 从实习到现在回想自己已经入行四年了,很庆幸自己一直还是从事着开发的工作。这几年不管是工作还是生活都有很多不甘与失落还有收获,从学校出来 ......
架构 实战 框架 项目 Core

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

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

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

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

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

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

设计模式之(13)--模板方法模式

今天我们来学习下模板方法设计模式。 模板方法(Template Method Pattern):抽象的父类中定义一个操作中算法的骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。简单地讲,就是“父类的模板方法定义不变的流程,子类重写流程中的方法”。 ......
模式 设计模式 模板 方法

vivo 自研Jenkins资源调度系统设计与实践

本文从目前业界实现Jenkins的高可用的实现方案,分析各方案的优缺点,引入vivo目前使用的Jenkins高可用方案,以及目前Jenkins资源的调度方案的设计实践和目前的落地运行效果。 ......
Jenkins 系统 资源 vivo

推荐系统[八]算法实践总结V0:腾讯音乐全民K歌推荐系统架构及粗排设计

推荐可分为以下四个流程,分别是召回、粗排、精排以及重排: 1. 召回是源头,在某种意义上决定着整个推荐的天花板; 2. 粗排是初筛,一般不会上复杂模型; 3. 精排是整个推荐环节的重中之重,在特征和模型上都会做的比较复杂; 4. 重排,一般是做打散或满足业务运营的特定强插需求,同样不会使用复杂模型... ......
系统 算法 全民 架构 音乐

c++ 程序通用多线程单例设计 c++ web 框架设计经验谈

设计 c++ web 框架时候,想要一个框架缓存类,很多通用缓存类是用字符保存,作为框架内置就不要序列和反序列了,因为框架内部使用。 想给自己的paozhu c++ web 框架添加缓存类,参考了springboot 于是确定用单例设计模式缓存类模板。 c++11后静态变量已经统一为线程安全了,网络 ......
经验谈 线程 框架 经验 程序

用ChatGPT,快速设计一个真实的账号系统

hi,我是熵减,见字如面。 用ChatGPT,可以尝试做很多的事情。 今天我们就来让ChatGPT做为架构师,来帮我们设计一个账号系统吧。 我的实验过程记录如下,与你分享。 用户故事 首先,我们从用户故事开始吧。 提示:我们从用户故事开始,需要设计一个网站的账号系统模型,其中包括账号基础信息实体,邮 ......
账号 ChatGPT 系统

C4模型,架构设计图的脚手架,你值得拥有

hi,我是熵减,见字如面。 对于软件开发团队来说,写软件设计文档,花架构图,是日常工作中的关键一项。 而其中,如何画好系统设计的架构图呢? Simon Brown 就 提出 C4 模型,来解决这个问题。 基于C4模型的脚手架,架构师们就可以统一团队内的不同层级的视角,交付一个成体系的架构设计。 下面 ......
脚手架 设计图 架构 模型

写给准备跳槽的小伙伴们的设计模式——工厂方法设计模式

概述 工厂方法模式(FactoryMethod),定义一个创建产品对象的工厂接口,让工厂子类决定实例化那一个产品类。我们把被创建的对象称为“产品”,把创建产品的对象称为“工厂”。如果要创建的产品不多,只要一个工厂类就可以完成,这种模式叫“简单工厂模式”,它不属于 23 种经典设计模式,它的缺点是增加 ......
设计模式 模式 小伙伴 小伙 工厂

看完这篇原型设计模式,还不会,请你吃瓜

概述 使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 在软件系统开发中,有时候会遇到这样的情况:我们需要用到多个相同实例,最简单直接的方法是通过多次调用new方法来创建相同的实例。 student s=new student(); student s1=new student() ......
设计模式 原型 模式

Three.js 进阶之旅:物理效果-碰撞和声音 💥

本文内容主要汇总如何在 Three.js 创建的 3D 世界中添加物理效果,使其更加真实。所谓物理效果指的是对象会有重力,它们可以相互碰撞,施加力之后可以移动,而且通过铰链和滑块还可以在移动过程中在对象上施加约束。 通过本文的阅读,你将学习到如何使用 Cannon.js 在 Three.js 中创建... ......
物理 声音 效果 之旅 128165

基于Vue3+TS的Monorepo前端项目架构设计与实现

写在前面 你好,我是前端程序员鼓励师岩家兴!去年在另一个项目https://juejin.cn/post/7121736546000044046中,我向读者朋友们介绍了结合npm包管理工具yarn作vue3项目的monorepo架构设计。今天,在这个风和日丽阳光明媚的钱塘江畔,我心情很好,我打算再写 ......
前端 架构 Monorepo 项目 Vue3

Java 文本检索神器 "正则表达式"

Java 文本检索神器 "正则表达式" 每博一文案 在我们短促而又漫长的一生中,我们在苦苦地寻找人生的幸福,可幸福往往又与我们失之交臂, 当我们为此而耗尽宝贵的。青春年华,皱纹也悄悄地爬上了眼角的时候,我们或许才能悄悄懂得生活实际上意味 着什么。 —————— 《平凡的世界》 叶赛宁的诗,不惋惜,不 ......
正则 表达式 神器 quot 文本

Java 优化:读取配置文件 "万能方式" 跨平台,动态获取文件的绝对路径

Java 优化:读取配置文件 "万能方式" 跨平台,动态获取文件的绝对路径 每博一文案 往事不会像烟雾似的飘散,将永远像铅一般沉重地浇铸在心灵的深处。 不过,日常生活的纷繁不会让人专注地沉湎于自己的痛苦 不幸,即使人的心灵伤痕累累,也还得要去为现实中的生存和发展而挣扎。 —————— 《平凡世界》 ......
文件 quot 路径 方式 动态