缓存这些事

最新版本可见:https://github.com/superhj1987/pragmatic-java-engineer/blob/master/book/chapter5-datastore/cache.md

缓存是为了弥补持久化存储服务如数据库的性能缓慢而出现的一种将数据存储在内存中,从而大大提高应用性能的服务。如缓存五分钟法则所讲:如果一个数据频繁被访问,那么就应该放内存中。这里的缓存就是一种读写效率都非常高的存储方案,能够应对高并发的访问请求,通常情况下也不需要持久化的保证。但相对其他存储来说,缓存一般是基于内存的,成本比较昂贵,因此不能滥用。

缓存可以分为:本地缓存和分布式缓存。

我的2018

此文是我在部门内的一次公开信(经过脱敏),想法来自于《原则》和《谷歌是如何运营公司的》两本书。极度求真、 极度透明的原则是一个想要做出大事业的公司应该具有的气度,而对所有同事能够客观地陈述自己的得与失,并欢迎吐槽,这不仅仅是真诚文化、极度透明原则的体现,也是对自己的一种压力和驱动。

Kotlin语法简明指南

Kotlin是Intellij IDEA的发明团队JetBrains带来的新一代JVM语言。虽然JVM上一次又一次出现新的语言叫嚣着取代Java,但时至今日,Java也开始吸纳其他语言的各种优势,其生命力依旧强盛,生态也越发强大。那么Kotlin的出现是又一次重蹈覆辙还是有其突破性的特性?

本文对其语法作了简要概括。

Java应用性能调优之调优准备

实际的开发工作中,有时候会遇到程序突然变得响应缓慢或者进程消失的情况。这时候就需要对程序进行问题排查和调优,找出产生问题的根源,并进行优化。

如何进行Java项目构建?

最新版本可见:https://github.com/superhj1987/pragmatic-java-engineer/blob/master/book/chapter2-project/build.md

对于一个完整的项目来说,一般都有很多的类、很多的包,如果是Web工程那么还有很多jsp、资源文件。这时候如果只用JDK自带的工具编译和运行,是非常困难的一件事前。再者,编译源代码只是软件开发过程的一个方面,更重要的是要把软件发布到生产环境中来产生商业价值。所以,代码编译之后,还有测试、分析代码质量、部署等步骤要做。整个过程进行自动化操作是很有必要的。

这时候就需要一个Java的工程/项目构建工具。这里所谓的项目构建就是指的完成工程发布流程需要的一系列步骤,包括编译、测试、打包、部署等等。虽然用Eclipse和Intellij这些IDE能解决这个问题,但是受限于这些IDE体积庞大且基本上都是GUI的,而后端应用的运行环境基本都是没有显示器的,所以很多时候还是需要一些专门做项目构建的工具来支持这些工作。

管理的一些要点

去年以及今年由于工作需要,参加了公司请的美国管理协会的《高价值经理人》及敏捷OKR绩效管理的培训课程,此外也阅读了《格鲁夫给管理人的第一课》、《架构即未来》、《技术管理之巅》、《OKR:源于英特尔和谷歌的目标管理利器》几本书。总体来看很多管理的理论其实日常自己也在实践,不过这些书的确让自己形成了自己的管理体系,能够有序有法的进行一些管理实践。本文从通用管理和技术管理两部分总结其中最让自己感到受用的几点心得。