《Java工程师修炼之道》GitBook上线:https://rowkey-books.gitbook.io/pragmatic-java-engineer/
如何应对在线故障
线上运行的Java应用突然没有响应、响应缓慢,进程突然消失,遇到这些情况应该如何应对呢?
来自公司内部分享
Java应用性能调优之调优准备
实际的开发工作中,有时候会遇到程序突然变得响应缓慢或者进程消失的情况。这时候就需要对程序进行问题排查和调优,找出产生问题的根源,并进行优化。
架构设计与原则(2018修订版)
之前的《谈谈架构》的最新修订版。
来自公司内部分享
如何进行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:源于英特尔和谷歌的目标管理利器》几本书。总体来看很多管理的理论其实日常自己也在实践,不过这些书的确让自己形成了自己的管理体系,能够有序有法的进行一些管理实践。本文从通用管理和技术管理两部分总结其中最让自己感到受用的几点心得。
响应式微服务架构-分布式系统设计原则
O’Reilly的电子书《Reactive Microservices Architecture》讲述了微服务/分布式系统的一些设计原则,本文是笔者阅读完此书后的理解。书籍地址:https://info.lightbend.com/COLL-20XX-Reactive-Microservices-Architecture-RES-LP.html。
微服务的十个反模式和陷阱
O’Reilly的电子书《Microservices AntiPatterns and Pitfalls》讲述了在微服务设计实现时十种最常见的反模式和陷阱。本文基于此书,将这十个点列出。书籍地址:https://www.oreilly.com/programming/free/microservices-antipatterns-and-pitfalls.csp,更全的反模式和陷阱可见作者的视频:http://oreil.ly/29GVuDG
Java后端技术概览
一个合格的Java后端工程师需要掌握哪些技能呢?扫描下面的二维码可以看到Java后端技术概览图。
架构简明指南
最新版本可见:https://github.com/superhj1987/pragmatic-java-engineer/blob/master/book/appendix/arch-usage.md
之前的《谈谈架构》讲述了架构的概念、原则等等,这里择出其中的设计原则部分供大家随手参考。
《Clean Architecture》一书中对于软件架构目的的解释:
The goal of software architecture is to miminize the human resources required to build and maintain the required system.
即:软件架构的目的就是将构建和维护系统需要的人力成本降到最低。
因此,可以得出架构设计的关键思维就是判断和取舍(程序设计的关键思维是逻辑和实现),即如何选择技术、组合技术使得需要的人力资源最少。
需要注意的一点是,脱离业务谈架构是不合理的,技术架构及其演进都是业务目标驱动的。
如何学习后端技术?
学习后端技术和学习其他的技术并没有什么大的不同。因此,题目换做如何学习技术也是讲的通的。概括来讲,有以下几点建议:
- 扎实的计算机基础知识
- 知其然更要知其所以然
- 动手实践、频繁练习
- 持续学习
- 计算机思维
- 自我总结
- 学会规划