分类目录归档:开发

接雨水-题目-算法


"接雨水"问题是一个经典的算法问题,通常也称为Trapping Rain Water。这个问题描述如下:给定n个非负整数表示一系列宽度为1的墙,计算这些墙围成的容器能够容纳多少水。

解决这个问题的常见算法是利用双指针或者栈来进行处理。以下是一种基于双指针的解法:

  1. 使用两个指针left和right分别指向数组的两端。
  2. 初始化变量leftMax和rightMax为0,用来表示左侧和右侧的最大高度。
  3. 当left <= right时,进行循环:
  4. 如果height[left] < height[right],则判断当前height[left]是否小于等于leftMax,如果是,则可以...

Read more

logrus-开源日志框架


Logrus 是一个用于 Go 语言的开源日志库,它提供了丰富的功能和灵活的配置选项,使得在 Go 应用程序中记录日志变得简单而强大。Logrus 的特点包括:

  1. 结构化日志输出:Logrus 支持将日志以结构化的格式输出,方便进行日志的解析和分析。

  2. 日志级别:支持不同级别的日志记录,如 Debug、Info、Warning、Error 等,可以根据需要灵活设置输出级别。

  3. 钩子机制:Logrus 提供了钩子(hook)机制,可以将日志输出到多个目的地,如文件、标准输出、Syslog 等。

  4. 上下文字段:支持在日志中添加自定义的上下文字段,方便记录额外的信息。

  5. 格式化选...

Read more

Scalability-可扩展性-架构


可扩展性是指系统处理不断增加的工作量或适应增长的潜力的能力。在软件和系统领域,可扩展性通常指系统在工作负载或需求增加时能够如何适应和执行。

一般来说,可扩展性有两种类型:

  1. 纵向扩展:纵向扩展,也称为横向扩展,涉及增加系统内单个资源的容量,比如增加服务器的 CPU、内存或存储,以处理增加的负载。然而,单个资源的纵向扩展存在着限制。

  2. 横向扩展:横向扩展,也称为纵向扩展,涉及添加更多的资源实例(比如服务器)以将负载分散到多台机器上。这种方法允许系统通过横向添加更多资源来处理增加的负载。

在容器化应用程序和微服务的背景下,可扩展性通常是通过横向扩展来实现的。Kubernetes 或 ...

Read more