代码覆盖率是什么?代码覆盖率一定要达到100%吗…… 其实近几年,从软件质量联盟组织(CISQ)的报告就能看出软件质量带来的各类问题,2022年,美国软件公司因软件质量不佳至少损失了2.41万亿美元,还额外累积了约1.5万亿美元的技术债务。这恰好印证了,不良代码的部署、为了加快进度而忽略测试等行为,...
Redis 脑裂问题是指,在 Redis 哨兵模式或集群模式中,由于网络原因,导致主节点(Master)与哨兵(Sentinel)和从节点(Slave)的通讯中断,此时哨兵就会误以为主节点已宕机,就会在从节点中选举出一个新的主节点,此时 Redis 的集群中就出现了两个主节点的问题,就是 Redis...
山东人宋江,义薄云天,热情好客。聚义厅人来客往,天下英豪络绎不绝。 时间一久,接待工作就变得常态化了,为此,及时雨宋公明专门安排了自己的弟弟宋清,掌管设宴席,相当于接待办主任,排名七十六,星号地俊。 手足骨肉,喊亲弟弟做这些琐碎但细致的事,足见宋江多么重视请客吃饭。 七十一回,说到梁山好汉排了座次,...
数据埋点是一种常用的数据采集方法,方便产品/运营系统性的统计分析复杂的用户数据。我们在App端所设置的自定义事件,就是通过数据埋点的方式,实现对用户行为的追踪,以及记录行为发生的具体细节。在网站日益成熟后,管理者可通过统计分析数据来获取网站使用情况。如何全面、完整地统计网站的访问情况和运行情况需要产...
搜索应该是我们日常使用最多的一项功能了。在产品设计中,搜索也是非常重要的,但其逻辑又相对比较复杂。这篇文章,作者带我们来梳理一下搜索的产品逻辑。 搜索场景无处不在,主要包括搜索引擎的搜索、平台商品搜索、平台文章搜索,还有一些数据库的简单搜索。但万变不离其宗,接下来主要介绍一下以商品 / 文章类搜索等...
云原生应有的大的关注点有四个:微服务、容器、CI/CD以及DevOps,本文详细介绍一些使用 CI/CD 促进微服务开发的实践。 一、什么是持续集成、交付和部署 CI/CD 包含几个整体流程: 持续集成: 开发人员频繁地将代码合并到主分支,所有的构建和测试都会每天自动执行,以确保主分支代码每天都是可...
任何系统都少不了用户登录模块。一个安全、方便的登录模块可以成为系统与用户交互的良好开端。本文结合笔者的实际工作经验,以及相关知识的学习,旨在对登录模块的一般原理和设计方法进行一个系统性的阐述和总结,希望能够抛砖引玉,进一步深化自己对这一模块的认知。 一、生活中的登录场景 我们日常生活中已经习惯了这样...
前言 Asp.Net Core 提供了内置的网站国际化(全球化与本地化)支持,微软还内置了基于 resx 资源字符串的国际化服务组件。可以在入门教程中找到相关内容。 但是内置实现方式有一个明显缺陷,resx 资源是要静态编译到程序集中的,无法在网站运行中临时编辑,灵活性较差。幸好我找到了一个基于数据...
前言 .NET 官方有一个用来管理国际化资源的扩展包Microsoft.Extensions.Localization,ASP.NET Core也用这个来实现国际化功能。但是这个包的翻译数据是使用resx资源文件来管理的,这就意味着无法动态管理。虽然官方有在文档中提供了一些第三方管理方案,但是都不太...
1、引言 说到DDD领域驱动设计,都有点蹭热点的感觉。这几年后端圈子逢人必提架构,提架构必提DDD,感觉DDD的中文翻译不像是“领域驱动设计”而是“对对对”,但是笔者作为一名研发大头兵在写代码的时候经常有种感觉“道理我都懂,但是我还是迷糊”的感觉,总是深感落地困难,在经历了多个DDD项目落地实践之后...