草庐IT

数据结构与算法:线性排序比较

一、概述三种时间复杂度是O(n)的线性排序算法:桶排序、计数排序、基数排序。二、相似点这三种排序算法都利用了桶的概念,但对桶的使用方法上有明显差异:基数排序:根据键值的每位数字来分配桶;计数排序:每个桶只存储单一键值;桶排序:每个桶存储一定范围的数值;三、适用场景桶排序比较适合用在外部排序中。所谓的外部排序就是数据存储在外部磁盘中,数据量比较大,内存有限,无法将数据全部加载到内存中。计数排序只能用在数据范围不大的场景中,如果数据范围k比要排序的数据n大很多,就不适合用计数排序了。而且,计数排序只能给非负整数排序,如果要排序的数据是其他类型的,要将其在不改变相对大小的情况下,转化为非负整数。基数

一文弄清混合云架构模式

当我们在说云架构的时候,通常指的并不是云平台的自身架构,而是基于云平台的软件系统基础架构。云平台的自身架构满足了很多通用层面的需求,例如对象存储,弹性主机,虚拟网络等等,只有云服务厂商的工程师才会涉及。对于一般企业中的工程师而言,鉴于云服务的各种优势,基于云平台构建软件系统才是工作的内容之一,尤其是面向混合云的基础架构才是云架构的关键要素。无论是公有云和私有云的融合,还是多个公有云的混合环境,其基础架构模式分为两种:分布式部署模式和冗余部署模式。在决定合适的架构时需要考虑的5个相关方面:变更的敏捷性、规模的伸缩性、网络拓扑选择、安全性和可靠性。分布式部署模式当我们需要利用云服务的某些特性、属性

我像“小马过河”一样升级了我的开源系统

前言我在升级之前做了比较充分的准备工作,深入研究了GoFrameV2新特性才决定升级的,并且总结了一篇文章:#​​站在开发者的角度理解框架的设计思想​​。区别于官方文档,我是站在开发者的角度,总结分享了V2版本相比于V1版本的优势,实践了我的有着130多个接口的#​​开源电商项目的升级踩坑之旅​​,希望对大家有帮助。目前开源电商系统V2版正在开发中,欢迎Star:https://github.com/wangzhongyang007/goframe-shop-v2基于Gin+Gorm+VUE的集五福营销裂变项目也在脱敏中,后面会开源出来供大家学习使用。先说结论我决定用我的开源项目#​​开源电商

数据结构与算法:线性排序比较

一、概述三种时间复杂度是O(n)的线性排序算法:桶排序、计数排序、基数排序。二、相似点这三种排序算法都利用了桶的概念,但对桶的使用方法上有明显差异:基数排序:根据键值的每位数字来分配桶;计数排序:每个桶只存储单一键值;桶排序:每个桶存储一定范围的数值;三、适用场景桶排序比较适合用在外部排序中。所谓的外部排序就是数据存储在外部磁盘中,数据量比较大,内存有限,无法将数据全部加载到内存中。计数排序只能用在数据范围不大的场景中,如果数据范围k比要排序的数据n大很多,就不适合用计数排序了。而且,计数排序只能给非负整数排序,如果要排序的数据是其他类型的,要将其在不改变相对大小的情况下,转化为非负整数。基数

一文弄清混合云架构模式

当我们在说云架构的时候,通常指的并不是云平台的自身架构,而是基于云平台的软件系统基础架构。云平台的自身架构满足了很多通用层面的需求,例如对象存储,弹性主机,虚拟网络等等,只有云服务厂商的工程师才会涉及。对于一般企业中的工程师而言,鉴于云服务的各种优势,基于云平台构建软件系统才是工作的内容之一,尤其是面向混合云的基础架构才是云架构的关键要素。无论是公有云和私有云的融合,还是多个公有云的混合环境,其基础架构模式分为两种:分布式部署模式和冗余部署模式。在决定合适的架构时需要考虑的5个相关方面:变更的敏捷性、规模的伸缩性、网络拓扑选择、安全性和可靠性。分布式部署模式当我们需要利用云服务的某些特性、属性

我像“小马过河”一样升级了我的开源系统

前言我在升级之前做了比较充分的准备工作,深入研究了GoFrameV2新特性才决定升级的,并且总结了一篇文章:#​​站在开发者的角度理解框架的设计思想​​。区别于官方文档,我是站在开发者的角度,总结分享了V2版本相比于V1版本的优势,实践了我的有着130多个接口的#​​开源电商项目的升级踩坑之旅​​,希望对大家有帮助。目前开源电商系统V2版正在开发中,欢迎Star:https://github.com/wangzhongyang007/goframe-shop-v2基于Gin+Gorm+VUE的集五福营销裂变项目也在脱敏中,后面会开源出来供大家学习使用。先说结论我决定用我的开源项目#​​开源电商

聊聊凤凰项目--团队合作与沟通

《凤凰项目》一书中的团队合作和沟通部分提供了许多实用的方法和技巧,这些方法和技巧可以帮助团队更好地协作和管理任务,提高整个团队的工作效率和质量。本文将对其中一些重要的方法进行总结,并阐述如何在工作中使用这些方法。三问法和五个为什么方法三问法被描述为一种反复提问的方法,通过不断提问来找到问题的本质和根本原因。书中举了一个例子,一个系统的测试不通过,我们可以通过三问法来找到问题的本质:问题是什么?系统测试不通过。为什么会发生这个问题?因为代码中存在错误。怎么解决这个问题?修改代码中的错误。五个为什么也被描述为一种深入问题本质的方法。与三问法不同的是,五个为什么需要反复提问五个为什么来逐步深入问题的

R Markdown 语法新手指南

你可能已经了解过轻量级标记语言Markdown。如果你是第一次接触这个概念,请参考我们的 ​​Markdown指南​​。概括来讲,它是一种用于创建纯文本文档的简单又高效的语言。然而,Markdown在制作详细的报告或技术文件方面可能还不够完善。受益于 ​​knitr​​ 和Pandoc等软件包,交互式文件格式RMarkdown 早在2014年就出现了。它将纯文本与内嵌的R代码相结合,可以制作动态文件。你可以使用 ​​各种IDE​​ 和扩展来创建RMarkdown文档,官方IDE为 RStudio。因此,在这篇文章中,我们将重点介绍使用RStudio学习RMarkdown语法。?(假如你没有了解

聊聊凤凰项目--团队合作与沟通

《凤凰项目》一书中的团队合作和沟通部分提供了许多实用的方法和技巧,这些方法和技巧可以帮助团队更好地协作和管理任务,提高整个团队的工作效率和质量。本文将对其中一些重要的方法进行总结,并阐述如何在工作中使用这些方法。三问法和五个为什么方法三问法被描述为一种反复提问的方法,通过不断提问来找到问题的本质和根本原因。书中举了一个例子,一个系统的测试不通过,我们可以通过三问法来找到问题的本质:问题是什么?系统测试不通过。为什么会发生这个问题?因为代码中存在错误。怎么解决这个问题?修改代码中的错误。五个为什么也被描述为一种深入问题本质的方法。与三问法不同的是,五个为什么需要反复提问五个为什么来逐步深入问题的

R Markdown 语法新手指南

你可能已经了解过轻量级标记语言Markdown。如果你是第一次接触这个概念,请参考我们的 ​​Markdown指南​​。概括来讲,它是一种用于创建纯文本文档的简单又高效的语言。然而,Markdown在制作详细的报告或技术文件方面可能还不够完善。受益于 ​​knitr​​ 和Pandoc等软件包,交互式文件格式RMarkdown 早在2014年就出现了。它将纯文本与内嵌的R代码相结合,可以制作动态文件。你可以使用 ​​各种IDE​​ 和扩展来创建RMarkdown文档,官方IDE为 RStudio。因此,在这篇文章中,我们将重点介绍使用RStudio学习RMarkdown语法。?(假如你没有了解