写点什么

ARTS 打卡第 6 周

作者:atom
  • 2023-09-24
    浙江
  • 本文字数:648 字

    阅读完需:约 2 分钟

概要

  • Algorithm 做一道算法题

  • Review 阅读一篇英文技术文章

  • Technique/Tips 学习一个技术技巧

  • Share 分享一个观点或思考

输出

[A] 146. LRU 缓存

  • 要求:函数 get 和 put 必须以 O(1) 的平均时间复杂度运行

  • 解题思路

  • 需要用到一个哈希表和一个双向链表。Java LinkedHashMap 是一种结合了哈希表与双向链表的数据结构,但本算法希望面试者自己实现。

  • 双向链表按照被使用的顺序存储了这些键值对,靠近头部的键值对是最近使用的,而靠近尾部的键值对是最久未使用的

  • 哈希表即为普通的哈希映射(HashMap),通过缓存数据的键映射到其在双向链表中的位置

  • 首先使用哈希表进行定位,找出缓存项在双向链表中的位置,随后将其移动到双向链表的头部,即可在 O(1)O(1)O(1) 的时间内完成 get 或者 put 操作

[R] An Introduction to Domain-Driven Design

  • 来源,完成复杂业务的领域建模需要三步:

  • analyze the domain

  • Define the bounded contexts

  • Define entities, aggregates, and service

[T] 云效的 CD 流程

云效支持主机和 Kubernetes 部署,同时支持自定义 Kubernetes 集群,满足了不同应用的部署需求。要能让云效访问到本地的 kubernetes 集群,除了要让 ApiServier 暴露公网 IP 或域名,还需要准确配置config

[S] 架构设计 VS DDD

  • 架构设计的目的是降低系统的复杂度

  • 没有完美的架构,所以我们应该追求的是最适合当下的架构,并随着时间推进和业务的变化不断演进

  • DDD 的目标是通过对业务和领域建模,让业务和代码保持一致的模型,在构建统一语言的基础上,有效防止代码的腐化

  • DDD 的战略设计通常被用于微服务的划分

用户头像

atom

关注

还未添加个人签名 2018-10-06 加入

还未添加个人简介

评论

发布
暂无评论
ARTS 打卡第 6 周_atom_InfoQ写作社区