在项目上我们经常会遇到一些导入导出的场景,常见的有 Excel 的导入导出,以及 PDF 的导出。 这一期的技术方案总结一下相关的技术方案和实现。 Excel 的导出和导入 我们先放开脑洞枚举一下有哪些导入导出的方案。 Excel 的导出方案有: 前端导出,直接在前端导出所有的数据,甚至后端可以复用分页的查询数据接口。 由具体的领域微服务实现同步导出。 由 BFF 通过领域 […]
在项目上我们经常会遇到一些导入导出的场景,常见的有 Excel 的导入导出,以及 PDF 的导出。 这一期的技术方案总结一下相关的技术方案和实现。 Excel 的导出和导入 我们先放开脑洞枚举一下有哪些导入导出的方案。 Excel 的导出方案有: 前端导出,直接在前端导出所有的数据,甚至后端可以复用分页的查询数据接口。 由具体的领域微服务实现同步导出。 由 BFF 通过领域 […]
单元测试推广的难题 前几天被一些朋友问到怎么提高测试覆盖率,并同时有人表示在国内推广单元测试几乎不可能。 诚然在国内的项目中,推广单元测试非常困难。 其实这里面有一个误区,如果单元测试不能起到助力开发团队作用,而是一种政治任务,那么很难推广。 我所在的海外和国内的项目都还保持不错的测试覆盖率,所以我是这样回复这个问题的: 提高测试覆盖率需要设计足够好的测试策略,让单元测试或 […]
问题分析 在应用项目中,我们总会遇到很多字典项的数据,比如类型、状态等。这些数据一般是有限个可选值,在前端可能作为 Select 控件存在,用于录入、搜索等场景。 这类数据的一般作为配置存在,怎么设计才能让前后端维护方式最低呢? 我们在团队上做了很多讨论,结合过完项目的经验把潜在方案整理如下。 方案枚举 假定我们经过简单的头脑风暴,可以枚举出下面的方案,再来分析其优缺点: […]
很多文章都在讨论认证和鉴权等相关话题,我自己几年前也写过几篇类似的文章,但在实际工作中,我们常常会忽略一部分设计。我们需要思考的是,用户在完成认证并获取访问凭证后,应该在哪里验证其访问权限。 这类问题尤其是在微服务场景下非常突出,如果没有统一的方案或者约定,会造成不同的开发人员在不同服务使用不同的策略实现。 微服务下有哪些鉴权类型? 权限检查点设计一个要点是,不能一刀切,需 […]
问题 假设,业务上需要生成订单编号,其要求为: 不能太长,固定 10 位。 生成规则为:“订单类型字母缩写” + “年月日” + 步长为 1 的递增序列。 单号每天重新开始。 性能要求一般,日均单量一万左右,订单均匀分布,并发不高。 经过分析,考虑如下特点: 不能使用 UUID,因为过长且有顺序问题。 不能直接使用数据库的自增 ID 主键,可以考虑通过自增主键进行复合处理。 […]
这是一份微博后端架构师李尔摩斯的ppt,主要介绍了微博话题服务高性能降级设计。核心内容是通过抛弃非核心业务和模块,减轻服务自身压力,避免故障扩散,保证核心业务稳定运行。技术上利用LUA脚本定时读取配置文件刷新到共享内存,Nginx获取共享内存配置快速应用新的降级规则。 介绍了微博话题服务高性能降级设计的需求和目标 阐述了三种降级方式:抛弃非核心业务、抛弃非核心模块、抛弃高耦 […]
这篇文章是软件架构编年史(译)的一部分,这部编年史由一系列关于软件架构的文章组成。在这一系列文章中,我将写下我对软件架构的学习和思考,以及我是如何运用这些知识的。如果你阅读了这个系列中之前的文章,本篇文章的的内容将更有意义。 创建可维护的应用始终是构建应用的真正的长期挑战。 不久以前,我还为一家公司工作过,其核心业务应用是拥有数千家公司客户的 SaaS 平台。 […]
原文:https://herbertograca.com/2017/08/03/layered-architecture/ 这篇文章是软件架构编年史(译)的一部分,这部编年史由一系列关于软件架构的文章组成。在这一系列文章中,我将写下我对软件架构的学习和思考,以及我是如何运用这些知识的。如果你阅读了这个系列中之前的文章,本篇文章的的内容将更有意义。 分层是一种常见的根据系统中 […]
这篇文章是软件架构编年史(译)的一部分,这部编年史由一系列关于软件架构的文章组成。在这一系列文章中,我将写下我对软件架构的学习和思考,以及我是如何运用这些知识的。如果你阅读了这个系列中之前的文章,本篇文章的的内容将更有意义。 混沌初开,单体始现... 默认的架构风格就是构建一个单体。我的意思是,最开始应用程序就只有一个文件,然后应用程序开始由多个文件组成,从 […]
原文:https://herbertograca.com/2017/07/28/architectural-styles-vs-architectural-patterns-vs-design-patterns/ 这篇文章是软件架构编年史(译)的一部分,这部编年史由一系列关于软件架构的文章组成。在这一系列文章中,我将写下我对软件架构的学习和思考,以及我是如何运用这些知识的。 […]
原文:https://herbertograca.com/2017/07/10/programming-language-evolution/ 这篇文章是软件架构编年史(译)的一部分,这部编年史由一系列关于软件架构的文章组成。在这一系列文章中,我将写下我对软件架构的学习和思考,以及我是如何运用这些知识的。如果你阅读了这个系列中之前的文章,本篇文章的的内容将更有意义。 编程语 […]
原文:https://herbertograca.com/2017/07/05/software-architecture-premises/ 这篇文章是软件架构编年史(译)的一部分,这部编年史由一系列关于软件架构的文章组成。在这一系列文章中,我将写下我对软件架构的学习和思考,以及我是如何运用这些知识的。如果你阅读了这个系列中之前的文章,本篇文章的的内容将更有意义。 在这篇 […]
原文:https://herbertograca.com/2017/07/03/the-software-architecture-chronicles/ 译者:最早看到的是作者的这篇文章(译文),其中的那副信息图可谓集软件架构之大成。后来发现这是作者学习和思考软件架构发展史的系列文章之一。“以史为鉴,可以知兴替”,阅读历史就是学习的过程。翻译也不例外,我也是通过阅读和翻译 […]
四色建模法来源于Peter Coad的 《Java Modeling In Color With UML》,中文版:《彩色UML建模》(末尾处有书籍领取方式,仅用于学习)。 Peter Coad和Mark Mayfield奠定了4种架构型(一种形式,所有的东西都或多或少地遵守)的早期工作。 4种架构型 Archetype: 时刻时段 MomentInterval:一个时刻或 […]
Tech 导读 面对高并发调用的调用场景,针对不同的业务场景,处理方式往往各有不同,本文针对实际的业务场景,通过实际业务场景分析,调用量分析,最终采用合理的技术方案,完成实际的业务场景。 01 前言 在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索之旅开始了! 物流合约中心是京 […]
BeanUtils (1) BigDecimal (1) CDC (1) ETL (1) github (1) heap (1) LLaMa (1) MAT (5) MDM (1) Sora (1) TCP (1) 业务图 (1) 企业应用 (1) 停机迁移 (1) 内存泄露 (4) 协议 (1) 可用性 (1) 基础设施层 (1) 堆内存 (1) 堆外存 (1) 大事记 (1) 实时协作 (1) 对象转换 (1) 应用架构 (1) 异常 (3) 技术规范 (1) 技术选型 (4) 提示工程 (1) 数据交换 (1) 数据共享 (1) 数据双写 (1) 日期 (1) 时间 (1) 时间线 (1) 术语 (1) 架构方案 (14) 流程图 (1) 精度 (1) 线程模型 (1) 经验分享 (1) 网络编程 (2) 解耦 (1) 软件复杂性 (1) 软件工程 (1) 重构 (4) 重试 (1) 隔离级别 (1) 集群扩容 (1) 领域层 (3) 领域模型 (1)
COPYRIGHT © 2014-2024 verysu.com . ALL RIGHTS RESERVED.
Theme Kratos Made By Seaton Jiang