标签: 设计相关

花小染 | 2024-01-08 | 设计相关

如何画好一张架构图/业务图/流程图,掌握这4个关键点

前言 今天的分享不是干货,是锦上添花的软技能。作为一个开发,日常工作中免不了要画一些图,无论是技术架构图还是[业务流程图]()。基于个人的一些经验,分享一下我的作图方法,给大家一点思路提供参考,希望在未来的工作、生活中都能有所帮助。 一. 图例 1. 代码实现图 2. 技术架构图  3. 业务流程图 4. 技术链路图  5...

 962 |  0 |  0 设计相关

阁꧔ꦿ້໌࿐ | 2023-12-22 | 设计相关

上网行为管理系统有什么用?企业怎么使用上网审计软件

上网行为管理系统有什么用?企业怎么使用上网审计软件 上网行为管理系统有什么用?其实上网行为管理这个词,应该很多人都有听说过吧?但是很大一部分人都不知道它到底是啥意思有啥作用,其实它的意思就如同字面的意思一样,主要是对公司的上网网络进行一些限制管理,能有效的防止员工乱使用网络和做一些违规的事情。 上网行为管理系统的功能非常多,因为在企业办公中,存在大部分员工都存在浪费时间的情况,所以严加管控局域网上网行为管理,可以避免许多浪费工作时间的行为。今天就带大家来了解一款备受好评、功能强大的软件——安企神软件,下面是安企神上网行为管理系统主要作用: 1、能够有效管理用户上网: 通过权限控制有效管理用户的上网行为管理。如:对于内网员工的访问行为,系统可以通过内置的URL库,关键字过滤等方式进行管控;对于采用ssl方式加密的网页,如钓鱼网站等,...

 326 |  0 |  0 设计相关

奈我何 | 2023-12-18 | 后端相关设计相关

高并发系统设计的15个建议

前言 记得很久之前,去面试过 字节跳动 。被三面的面试官问了一道场景设计题目: 如何设计一个高并发系统 。当时我回答得比较粗糙,最近回想起来,所以整理了设计高并发系统的15个锦囊,相信大家看完会有帮助的。 如何理解高并发系统 所谓设计 高并发 系统,就是设计一个系统,保证它 整体可用 的同时,能够 处理很高的并发用户请求 ,能够承受 很大的流量冲击 。 我们要设计高并发的系统,那就需要处理好一些常见的系统瓶颈问题,如 内存不足、磁盘空间不足,连接数不够,网络宽带不够 等等,以应对突发的流量洪峰。 1. 分而治之,横向扩展 如果你 只部署一个应用,只部署一台服务器 ,那抗住的流量请求是非常有限的。并且,单体的应用,有单点的风险,如果它挂了,那服务就不可用了。 因此,设计一个高并发系统,我们可以 分而治之,横向扩展 。也就是说,采用分布式部署的方式,部署多台...

 408 |  0 |  0 后端相关设计相关

流苏 | 2023-12-18 | 后端相关设计相关

红包系统如何设计?

1. 引言 当我那天拿着手机,正在和朋友们的微信群里畅聊着八卦新闻和即将到来的周末计划时,忽然一条带着喜意的消息扑面而来,消息正中间赫然写着八个大字: 恭喜发财,大吉大利 。 抢红包!!相信大部分人对此都不陌生,自 2015 年春节以来,微信就新增了各类型抢红包功能,吸引了数以亿万级的用户参与体验,今天,我们就来聊一聊这个奇妙有趣的红包系统。 2. 概要设计 2.1 系统特点 抢红包系统从功能拆分,可以分为包红包、发红包、抢红包和拆红包 4 个功能。 对于系统特性来说,抢红包系统和秒杀系统类似。 每次发红包都是一次商品秒杀流程,...

 623 |  0 |  0 后端相关设计相关

I'm Yours | 2023-11-12 | 设计相关

2023 年互联网就业怎样?

2023年计算机行业找工作地狱难度; 1 简历基本没人看; 2 已读未回; 3 简历都没看直接告诉你不合适; 4 能[约面](https://www.zhihu.com/search?q=%E7%BA%A6%E9%9D%A2&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A2927703418%7D)的很少 2022年9月从上家公司辞职,当时想着疫情有几年没回过老家了,所以回老家舒服的待了一个月,然后11月来北京刷新了下简历基本上没人主动联系,当时就感觉可能不太好找也没放在心上。就这样呆到2023年1月底。 从2023年2月开始重新温习java体系相关的、大数据相关的、实时计算等相关的东西,期间顺便花了2周半的时间痛苦艰难的刷leetcode算法题150道,从中午睡起来开始刷到晚上10点左右。这期间基本没有主动投递简历几乎也没有接到招呼(除了一些低端的外包会主动联系)。这期间内...

 450 |  0 |  1 设计相关

iron Man | 2023-07-10 | 设计相关

实战总结|复杂系统设计原则与案例

本文主要讲述了应对复杂性的一些原则和经验,通过实际案例解构设计思想,个人认为好的设计是体现在「职责分离」、「抽象分层」和「变化扩展」上,在类的结构设计上尤其要花心思去想,如「变与不变分离」、「配置域与执行域分离」、「查询与命令分离」。 一、复杂是软件的本质属性 1.1 复杂是软件的本质属性 正如Brooks所言,软件复杂性是软件固有的属性,这种固有的复杂性主要由4个方面的原因造成的: 问题域的复杂性 管理开发过程的复杂性 随处可变的灵活性 描绘离散系统行为的问题 上面每一个方面都有极大的挑战,以「问题域的复杂性」为例,现在我们的大型系统中,动不动就几十个应用,组合在一起就是一个复杂的系统,而每个人只负责其中一小部分,想要了解系统全部的运行状况是很难的,哪怕一个子系统,它包含的业务规则就巨多,因此说软件复杂是它的本质属性。 1.2 认知复杂度是影响软件复杂性的重要因素 影响软件复杂度的因素有很多,其中「认知复杂度」占据着很重要的困素。一提到复杂性,我们脑海里会浮出各种各样的印象:应用数多、代码行数超过百万级、业务规则复杂等,...

 605 |  0 |  0 设计相关

念旧。 | 2023-06-14 | 设计相关

聊聊复杂业务系统的通用架构设计法则

一、什么是复杂系统 我们经常提到复杂系统,那么到底什么是复杂系统。我们看下维基的定义:复杂系统(英语:complex system),又称复合系统,是指由许多可能相互作用的组成成分所组成的系统。强调了两点: 由点组成 点之间有各种关联 两点的规模和复杂性直接决定了系统的复杂程度。比如就拿我们的电商系统举例,分成很多部分,商品、库存、采购、订单、物流、财务,这个只是大的分类,还有针对 C 端的营销、会员、购买、售后等体系,针对 B 端的商家入驻、管理等体系。各个部分、体系之间有着千丝万缕的联系,可谓之复杂系统了。当然了,远远不止这些,随着业务复杂性的不断提升,整个系统的复杂性也会愈来愈复杂。 二、什么是架构 生活中我们经常谈及 “架构”,那么到底什么是 “架构”,Robert ...

 487 |  0 |  0 设计相关

雪千寻 | 2023-05-23 | 设计相关

聊聊消息中心的设计与实现逻辑

一、业务背景 微服务的架构体系中,会存在很多基础服务,提供一些大部分服务都可能需要的能力,比如文件管理、MQ队列、缓存机制、消息中心等等,这些服务需要提供各种可以复用的方法或者接口,以便其他业务服务可以快速调用;下面来看看消息通知的原理: 这里的消息不同于MQ队列,是指业务侧的通知机制,例如短信、邮件、系统消息等,在业务层面的需求很多,通常会封装单独的消息中心提供通知机制; 从流程上面看,消息通知是典型的生产-消费模式,业务侧不断的生产消息,消息中心在接收之后进行消费,把通知推送到相应的渠道中,很显然这种逻辑具备很高的复用性。 二、消息通知 1、流程管理 消息通知的流程设计,在各个业务线中通过消息中心提供的接口方法,将不同场景下的消息内容提交到消息中心,消息中心进行统一维护管理,并根据消息的来源和去向,适配相应的推送逻辑: ![图片](https://static.developers.pub/9da34307afd...

 652 |  1 |  0 设计相关

柚香 | 2023-05-19 | 设计相关

Seata-go TCC 设计与实现

本文主要介绍 seata-go 中 TCC 的设计思路、异常处理以及在实战中的使用。 Seata 是一款开源的分布式事务解决方案,致力于为现代化微服务架构下的分布式事务提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 等多种事务模式,帮助用户解决不同场景下的业务问题。同时,Seata 还支持多语言编程,并且提供了简易的 API 接口、丰富的文档以及快速上手的 samples 示例项目,也能快速帮助开发者入门并上手 Seata 的使用。 Seata-go 是 Seata 多语言生态中 golang 语言的实现方案,它致力于帮助 golang 开发者也能使用 Seata 的能力来解决分布式事务场景的问题。Seata-go 复用了 Seata TC 的能力,client 的功能和 Seata 保持一致。目前 Seata-go 已经支持了 TCC 和 AT 模式,XA 模式正在测试中,预计会在 5 月份发版。Saga 模式正在设计和规划中,后面也会和 Seata 的 Saga 功能保持一致。 本文主要从以下几个角度,介绍 Seata-g...

 455 |  0 |  0 设计相关

观云 | 2023-05-18 | 设计相关

分享一例有意思的灰度设计缺陷,浅谈灰度方案的设计

灰度很重要,灰度的策略也需要结合实际情况进行灵活的调整,本文跟大家分享了一个前些时间发现的灰度设计bug。 一、案例分享 跟大家分享一个前些时间发现的灰度设计bug,这个bug蛮有意思,看似完美方案,但因为未考虑到一些技术特性,导致存在缺陷。为更通顺的说明,先进行一些名词介绍。 灰度发布:灰度发布是指在黑与白之间,能够平滑过渡的一种方式。AB-test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。(引用Wiki百科) 安全生产环境:(简称SPE)为保障线上稳定性提供灰度流量生产环境。发布从预发到生产环境前,需要经过SPE进行流量验证。 1.1 案例简述 同一个应用,需要消费同一个topic消息两次,因不同环境的配置不一致,导致消息存在消费遗漏。 1.2 案例背景 需求的主要修改的点是将历史各异的结算模型改成统一结算模型,新老模型相差较大。在notify消...

 1514 |  0 |  0 设计相关

大牛猫 | 2023-05-17 | 后端相关设计相关

通用的支付系统该如何设计?

支付永远是一个公司的核心领域,因为这是一个有交易属性公司的命脉。那么,支付系统到底长什么样,又是怎么运行交互的呢?抛开带有支付牌照的金融公司的支付架构,下述链路和系统组成基本上符合绝大多数支付场景。其实整体可以看成是交易核心+支付核心 两个大系统。交易系统关联了业务场景和底层支付,而支付系统完成了调用支付工具到对账清算等一系列相关操作。下面我们就来一起看下各个系统的核心组成和交互。 1. 支付系统总览 核心系统交互 业务图谱 2. 核心系统解析 交易核心 交易核心把公司的业务系统和底层支付关联起来,让业务系统专注于业务,不比关心底层支付。 交易核心 ![图片](https://static.developers.pub/80c2b2ed6d16...

 567 |  1 |  0 后端相关设计相关

一纸荒年 | 2023-04-14 | 设计相关

浅谈编辑器中的交互组件设计

背景 数据大屏是字节跳动数据平台自研的大屏搭建发布工具,无需代码快速进行数据可视化大屏报表的搭建发布工具。其中,编辑器是搭建功能的载体,也是用户操作最为密集的地方。因此,用户在配置时使用的交互组件自然也是最直观影响用户体感的部分。 然而初期编辑器中交互组件的表现并不尽如人意,有较多用户反馈在进行配置时不顺手,甚至在一些配置部分发现了反直觉的交互。在经过组内同学的讨论之后,从开发者和用户两方面分别梳理了一些痛点: 开发者 1. 组件的实现过于追求抽象所有组件的共性,可读性和维护性受到了影响 2. 组件的功能细节没有做到位 用户 1. 组件在一些 case 上的表现是反直觉的 2. 组件不符合用户/设计师的使用习惯 紧接着对这些痛点逐条分析,意识到了一个核心的问题: 作为编辑器场景下的交互组件,不能顺延通用组件的设计研发思路 。展开来说,编辑器作为对用户生产力赋能的工具,效率一定是主旋律。交互组件作为编辑器的重要部分,从功能设计和实现上都应该以提供效率为目标,具体表现在 1. 在宏观上需要定义交互准则,且交互准则是基于提升效率和统一组件风格 2...

 458 |  0 |  0 设计相关

流苏 | 2023-03-22 | 设计相关

谈谈架构设计

在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。在不同的书籍上, 不同的作者, 对于架构的定义也不统一, 角度不同, 定义不同。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义, 因为概念是人认识这个世界的基础和用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅,本文根据相关资料进行总结。 一、架构是什么 Linux 有架构,MySQL 有架构,JVM 也有架构,使用 Java 开发、MySQL 存储、跑在 Linux 上的业务系统也有架构,应该关注哪一个?想要清楚以上问题需要梳理几个有关系又相似的概念:系统与子系统、模块与组建、框架与架构。 一)、系统与子系统 系统:泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能独立完成的工作能力的群体,关键词: 关联:系统是由一群有关联的个体组成的,没有关联的个体堆在一起不能成为一个系统。例如,把一个发动机和一台 PC 放在一起不能称之为一个系统,把发动机、底盘、轮胎、车架组合起来才能成为一台汽车。 规则:系统内的个体需要按...

 698 |  1 |  0 设计相关