读书笔记-我曾走在崩溃的边缘
今天讲的这本书,《我曾走在崩溃的边缘:俞敏洪亲述新东方创业发展之路》,是俞敏洪老师写的一本自传性质的书,讲述了他从创立新东方以来的诸多经历和心路历程。今天就总结一下这本书的内容,并且讲一下自己的感悟。
今天讲的这本书,《我曾走在崩溃的边缘:俞敏洪亲述新东方创业发展之路》,是俞敏洪老师写的一本自传性质的书,讲述了他从创立新东方以来的诸多经历和心路历程。今天就总结一下这本书的内容,并且讲一下自己的感悟。
(最近把这篇文章重新整理了下,欢迎阅读最新版 https://lichuanyang.top/posts/45718/)
本文翻译自https://martinfowler.com/articles/patterns-of-distributed-systems/ ,原作者对目前各类企业级架构中使用的多种分布式系统进行了总结,从中提取出了一些通用的“模式”(pattern)。本文作为系列文章的第一篇,介绍了分布式系统的特点和一些常见问题。 建议好好阅读一下本文以及英文原文,对于分布式系统设计和分布式架构理念,会有非常大的帮助。
Redis作为当前使用非常广泛的内存数据库,在代码层面做了很多极致的优化,已获取更好的性能。其中重要的一部分,就是对于底层数据结构的使用。Redis会根据数据量、数据大小等来优化对于不同结构的使用,从而获得更佳的运行效率和内存占用。Redis的核心数据结构包括简单动态字符串、列表、字典、跳跃表、整数集合、压缩列表。
接下来,我们就依次讲讲这些数据结构。
众所周知,对于程序员来说,设计模式是一门极其重要的学科。不过,由于设计模式的涉及面太广,也有很多非常抽象的概念,还是很难掌握的。要学习设计模式,最好还是能结合实际。每次做需求,尤其是一些复杂的需求,或者嗅到了烂代码味道的时候,就可以翻一遍设计模式,看看有什么可以应用的模式。所以,我总结了这篇文章,以尽量短的语言描述主要的设计模式,可能是定义中的关键部分,也可能是典型的应用场景,或者只是个英文单词,目的在于帮助回忆起每个设计模式的作用和应用场景。
工作这些年来,一直在思考着程序员这个职业究竟是在做什么,随着经验增多,其实也一直在刷新着认知。现在写这篇文章,一方面是为了分享,另一方面也是想留下一份记录,过两年再回头来看看自己的认知又有了什么更新。
众所周知,对于mysql,使用批量操作,可以大幅度提升大数据量下操作的性能。不过,在java中使用mysql时,有些细节务必注意,否则就会导致batch操作不生效,也就享受不到批量操作的性能了。
之前一段时间,在尝试完善项目的单元测试,做起来才发现,其实自己对于单元测试该怎么写一直没有特别清晰的认识,因此查了一些资料, 查的过程中发现,其实每个人的看法都不尽相同。每阅读一篇文章,都是对自己认知的一次更新。本文就是结合前人的看法,和自己的实践经验,总结出一些我自己当前认知状态下认为正确的东西,分享给大家。估计也不会是最正确的,也欢迎大家留言讨论。
解释一下rocketMq里的messageQueue为什么要拆分成writeQueue和readQueue.
Clickhouse是Yandex开源的一个用于实时数据分析的数据库,一开始就用在yandex内部的多个数据分析业务上。要介绍clickhouse,还是需要先介绍一下yandex。Clickhouse为什么会出现,其实和yandex的业务关系非常大。Yandex是俄罗斯最大的搜索引擎,会有很多数据分析的业务,其中数据量最大的业务,就是Yandex.Metrica,这是一个和百度统计类似的网站数据分析服务,数据量也仅次于google analysis。自从Clickhouse开源后,在国内外的很多公司的线上业务都已经开始使用。 因此,写这篇clickhouse教程,对clickhouse做一个基础的介绍。