大年初一--北京国子监
北京国子监是元、明、清三朝最高学府和教育管理机构,坐落于东城区国子监街(旧称成贤街)。国子监东侧即为国内第二大的孔庙。
Read more…面向对象的设计原则-SOLID
单一职责原则(Single responsibility principle,SRP) 简介 就一个类而言,应该仅有一个引起它变化的原因。
Read more…敏捷软件开发原则
我们最优先要做的是通过连续不断的及早的交付有价值的软件使客户满意 《Product-Development Practices That Work: How Internet Companies Build Software》论文分析了对于公司构建高质量产品方面有帮助的软件开发实践, 发现尽早交付具有部分功能的系统和系统质量之间具有很强的相关性, 论文指出 初期交付的系统中所包含的功能越少, 最终交付的系统质量就会越高.
Read more…敏捷软件开发宣言
由于看到众多团队陷入了不断增长的过程的泥潭,一批业界专家概括出了一些可以让软件开发团队具有快速工作、响应变化能力的价值观和原则,这些专家称自己为敏捷(Agile)联盟,并创造出了一份价值观声明,也就是敏捷联盟宣言。
Read more…设计的臭味—软件腐化的气味
设计不是一组和代码分离的UML图, UML图也许描绘了设计的一部分, 但是它不是设计.
Read more…缓存常见问题
Redis 一个比较常见的场景就是作为应用的缓存,合理的利用缓存可以提升系统性能,使用过程中比较常见的问题有:缓存穿透、 缓存雪崩、 热点key问题。
Read more…开启goroutine前确保goroutine可以退出
golang 可以通过 goroutine 来实现高并发,并且创建 goroutine 的开销很小,可以很轻松的创建成千上万的 goroutine。但有个问题需要注意,在创建 goroutine 之前,必须要清楚创建的 goroutine 将如何退出,否则 goroutine 将常驻内存,可能会导致内存泄漏等问题。
Read more…热点账户处理
互联网交易中,当某一商家交易量大的时候,商家对应的账户更新的比较频繁,该商家对应的账户记录会变成热点行,该商家的账户就是热点账户。通常热点账户会导致各种系统问题,对数据库也会造成很大压力。
Read more…golang 语言机制之内存剖析
《Golang 语言机制之逃逸分析》中介绍了编译器逃逸分析的基础知识,除了共享变量这种情况之外,还有其他情况也会导致变量逃逸。
Read more…golang语言机制之逃逸分析
Golang 中逃逸是只栈空间的变量逃逸到了堆空间,逃逸分析是编译器通过静态代码分析决定程序中变量存储位置的过程。代码中没有任何的关键词或者函数可以决定变量放置在栈空间还是堆空间,只能让编译器通过代码来决定变量值的存储位置。
Read more…