《Effective Java》让我们了解到Java的优势,再配置《阿里巴巴Java规约》,做有职业素养的程序员~

简介: 《Effective Java》让我们了解到Java的优势,再配置《阿里巴巴Java规约》,做有职业素养的程序员~

image.png

最近看了一本工具书,是 Effective Java 中文版(第2版)

我用时两个多星期,分别在早起、晚上和周末的时候把这本书细细过了一遍。觉得很有意思。在我的感觉来看,这个是Java语言的《原则》的书。同样的这就说明我看的工具书很少哈哈哈。

这本书不适合入门的时候看,而是使用了Java半年以上、较为熟悉Java生态了之后,去翻看比较合适。我觉得里面提到的很多原则在编程时都应该尽可能遵守。

很多Java规则,读这书之前并不知道的,但可能你一直就是这么做了,也许你会惊讶。

其实这些都是IDE(集成开发环境,Java常用的是IEDA)在无形的帮助我们养成良好的习惯而努力。因为他会通过各种警告提示我们。如果你有很好的信任IDE的话,你将养成了不少好习惯。

对于书中的 78 条规则,这里就不细讲了,因为这里是读书笔记而不是技术分享。

今天想说的是根据这些Java开发规则而想到的一些七七八八的个人的想法。

首先,使用 Java 的人,绝大多数都是程序员,就是所谓的软件工程师。我们在公司里,从事的是代码生产工作,也就是说,我们做的是一项非常严谨的工程,这里的严谨的工程,我们首先是工程师。我的意思是相对的,是相对于科学研究和所谓极客精神。科学研究是不太考虑成本的,是可以试错的。而极客精神,是带有个人主义色彩的,是探究到底的精神。而在我认为的工作中,这些都不是最重要的,最重要的是严谨和规范的工程。

基于这个指导思想,在《Effective Java》里,反复唠叨的是要严格规范写法,要写文档、能够不用复杂的东西就不用。

这里有几个词,严谨和规范就意味着约束和要求,「没有规矩不成方圆」,我们生产的是商业代码,是要经过多人之手的。在这种约束下,个人必须遵从集体,组织的约定是首要的,个人的代码风格必须遵从组织的代码风格,代码注释、命名、通用写法都必须有强一致性。因为只有这样,这项工程的可维护性才高,生命力才够顽强。

还有「工程」一词,这个意味着稳定和成本。什么意思呢?就是在工程里,不允许出现比较激进的东西,必须是被广泛使用了的,有使用基础和较为广泛的使用生态的技术,才能够被引进到工程里面来,因为这意味着维护这个工程的成本比较低,我们不做研究,因为大多数时候的工程代码,都是效率优先。因此常常有「拿来主义」。这个再正常不过了,国内的Java生态,常常就是阿里巴巴有什么开源了什么,其他中小型厂商就看一看能不能为己所用,如果有用、成本不高、能够解决问题的,就直接用起来了。不少厂商也会开源各种各样的组件,然后相互抄袭和借鉴,其实是蛮好的事情。

甚至我觉得,对于一个五年工作经验以下的开发者,都不太需要考虑创新,一板一眼地学习,根据规范来就好了。

二八定律在哪里都可以套用。这个感觉也有点奇怪,这二八定律难道是万精油?到哪都可以扯上两句,容易形成诡辩了。

这一点是在工作过程中感受的,和书中所看到的也类似吧。大概就是20%的技术可以解决80%的需求,因为对于同一类的工程,需求都是类似的,则20%的技术积累就可以了。这样常常导致一个开发者容易陷入自我满足的状态,感觉没有成长性了,大部分事情都可以解决,没有自我学习的动力了。那没办法噢。学习这种事情,就是靠自己的。

这本书的确是一本工具书,不是Java开发者的话也是看不懂。而后面引申出来的想法,大概是可以在工程领域通用的。书翻来翻去都是那样,甚至越学越窄,而思想则越思考越多,并且还挺通用的。这个真是有意思的事情。

相关文章
|
1月前
|
Java 程序员
JAVA程序员的进阶之路:掌握URL与URLConnection,轻松玩转网络资源!
在Java编程中,网络资源的获取与处理至关重要。本文介绍了如何使用URL与URLConnection高效、准确地获取网络资源。首先,通过`java.net.URL`类定位网络资源;其次,利用`URLConnection`类实现资源的读取与写入。文章还提供了最佳实践,包括异常处理、连接池、超时设置和请求头与响应头的合理配置,帮助Java程序员提升技能,应对复杂网络编程场景。
58 9
|
25天前
|
SQL 存储 Java
面向 Java 程序员的 SQLite 替代品
SQLite 是轻量级数据库,适用于小微型应用,但其对外部数据源支持较弱、无存储过程等问题影响了开发效率。esProc SPL 是一个纯 Java 开发的免费开源工具,支持标准 JDBC 接口,提供丰富的数据源访问、强大的流程控制和高效的数据处理能力,尤其适合 Java 和安卓开发。SPL 代码简洁易懂,支持热切换,可大幅提高开发效率。
|
1月前
|
SQL Java 程序员
倍增 Java 程序员的开发效率
应用计算困境:Java 作为主流开发语言,在数据处理方面存在复杂度高的问题,而 SQL 虽然简洁但受限于数据库架构。SPL(Structured Process Language)是一种纯 Java 开发的数据处理语言,结合了 Java 的架构灵活性和 SQL 的简洁性。SPL 提供简洁的语法、完善的计算能力、高效的 IDE、大数据支持、与 Java 应用无缝集成以及开放性和热切换特性,能够大幅提升开发效率和性能。
|
1月前
|
Java 数据库连接 数据库
如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面
本文介绍了如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面。通过合理配置初始连接数、最大连接数和空闲连接超时时间,确保系统性能和稳定性。文章还探讨了同步阻塞、异步回调和信号量等并发控制策略,并提供了异常处理的最佳实践。最后,给出了一个简单的连接池示例代码,并推荐使用成熟的连接池框架(如HikariCP、C3P0)以简化开发。
50 2
|
2月前
|
IDE Java 程序员
C++ 程序员的 Java 指南
一个 C++ 程序员自己总结的 Java 学习中应该注意的点。
24 5
|
1月前
|
缓存 监控 Java
Java 线程池在高并发场景下有哪些优势和潜在问题?
Java 线程池在高并发场景下有哪些优势和潜在问题?
|
2月前
|
安全 Java 数据安全/隐私保护
如何配置 Java 安全管理器来避免访问控制异常
配置Java安全管理器以防止访问控制异常,需在启动JVM时通过 `-Djava.security.manager` 参数启用,并设置安全策略文件,定义权限规则,限制代码执行操作,确保应用安全。
128 1
|
2月前
|
Java BI 调度
Java Spring的定时任务的配置和使用
遵循上述步骤,你就可以在Spring应用中轻松地配置和使用定时任务,满足各种定时处理需求。
154 1
|
2月前
|
移动开发 Java 大数据
深入探索Java语言的核心优势与现代应用实践
【10月更文挑战第10天】深入探索Java语言的核心优势与现代应用实践
85 4
|
2月前
|
消息中间件 分布式计算 Java
大数据-73 Kafka 高级特性 稳定性-事务 相关配置 事务操作Java 幂等性 仅一次发送
大数据-73 Kafka 高级特性 稳定性-事务 相关配置 事务操作Java 幂等性 仅一次发送
33 2