01 复杂度综述 1、什么是复杂度 软件设计的核心在于降低复杂性。–《软件设计的哲学》 业界对于复杂度并没有统一的定义,斯坦福教授John Ousterhout从认知负担和工作量方面给出了一个复杂度量公式 子模块的复杂度cp乘以该模块对应的开发时间权重值tp,累加后得到系统的整体复杂度C 这里的子模块复杂度cp是一个经验值…
4.1.1.6 兼容 我们在对老系统,老功能进行重构迭代的时候,一定要做好兼容,否则上线后会出现重大的线上问题,公司内外有大量因为没有做好兼容性,而导致资损的情况。兼容分为:向前兼容性和向后兼容性,需要好好的区分他们,如下是他们的定义:…
日志记录的重要性及结构化日志的引入 日志记录是应用程序故障排除和系统可观测性的核心部分,是支持系统稳定运行的三大支柱之一(其他两个支柱为指标和分布式追踪)。在生产环境中,日志文件作为问题诊断的重要依据,帮助开发者快速定位并解决问题。通常情况下,日志以人类可读的文本格式输出。 结构化日志…
分享一波超干的云原生面试题,内容涵盖K8S、Docker、DevOps、CI/CD,有需要的小伙伴欢迎自取: 夸克网盘地址:https://pan.quark.cn/s/28999d1ba262
1.为什么需要压缩json? 由于业务需要,存入redis中的缓存数据过大,占用了10+G的内存,内存作为重要资源,需要优化一下大对象缓存,采用gzip压缩存储,可以将 redis 的 kv 对大小缩小大约 7-8 倍,加快存储、读取速度 2.环境搭建 详建redis模块的docker目录 version: '3' services: redis:…
今天,Canonical 正式发布了 Ubuntu 24.10(代号 Oracular Oriole) 的测试版,为广大用户提供了一个提前体验即将发布的正式版本的机会。Ubuntu 24.10 的正式版预计将在 2024 年 10 月 10 日 发布。作为一年中的重要版本,测试版不仅展示了新功能,也为用户提供了反馈和调试的机会。 新版 Ubuntu 搭载…
如果你是 Vim 或 Neovim(下一代Vim) 用户,可能早已感受过其强大的文本编辑功能,但配置起来却总是有些麻烦。 幸运的是, LunarVim 这一项目为你提供了一个简化 Vim 配置的现代化解决方案,开箱即用,且高度灵活,能够满足从新手到资深开发者的各种需求。 LunarVim 是一个基于 Neovim 的IDE实现,旨在为开发者提供一个现代化的…