公司的java项目是如何一步步变烂的?

简介: 公司的java项目是如何一步步变烂的?

首先说一个现状,当你去一家公司就职,很大概率你会发现公司的项目就像是一个垃圾场,各种恶心的代码堆成山。


在那之前,你可能对这个公司的产品充满了各种幻想,如今,幻想破灭。


你要做的事情,就是去维护这些老项目。你一直在疑惑,为什么项目的代码这么烂。各种 if else嵌套,也几乎看不到任何设计模式。随便翻看几个类,就能看到大量的空指针隐患。


终于有一天,有一个新项目下来,老板任命你是负责人,于是你在心中窃喜,终于可以证明自己了。我一定要让代码显得优雅,跟烂代码说再见。


前几天各种顺利,你用了很多设计模式,也知道用抽象类来做业务抽象,方便系统扩展。


你越做越有劲,感觉自己真是个小天才。


由于项目是多人合作的,随着项目的迭代,很多新人开始不按照你的架构来开发代码。


原本应该老老实实继承你设计的抽象类,可是别人为了图方便,毫不犹豫地在controller里面加一个else if,你看完后几乎要炸毛。


赶紧重构!


可是,项目已经运营了,上线了,光是生产数据就有好几十万。


老板问你,你有把握吗?你敢动吗?


你陷入了沉思,最终没敢在项目上大动干戈,然后反手也加了一个else if。


慢慢的,有的新人甚至都不用你设计的通用dao,而是自己在service里面写起了jdbc…


因为需求一直在做,原始的精美设计开始变得越来越臃肿,逻辑变得复杂无比。


没有人敢去重构,也确实不可能重构了。


终于,你接受了这个事实。有一天,你逮住一个在service里面写jdbc的新人,质问他为什么不按照规范来写。


新人一脸无辜,这个项目又没有开发手册,就连个像样的业务文档都没有,我那知道什么代码该写在哪里啊?


也是,这是一个n手的项目,完全精通系统的人已经没有了,老员工一个个地辞职,懂业务的人也几乎没有了。每个新人都无比痛苦,只能靠搜代码来反推业务逻辑,能完成任务已经不错,也就别提代码是不是优雅了。


虽然知道了这个项目的弊病,但是你也懒得去整理项目的开发文档,因为你知道就算整理了,老板也不会给你涨工资,多一事不如少一事。


后来,你也辞职了,准备去下一个公司,继续去面对一个讨人厌的老项目。



相关文章
|
3月前
|
关系型数据库 MySQL Java
【MySQL+java+jpa】MySQL数据返回项目的感悟
【MySQL+java+jpa】MySQL数据返回项目的感悟
60 1
|
3月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
111 3
|
24天前
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
2天前
|
算法 搜索推荐 Java
【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题
本文探讨了如何将算法学习与实际项目相结合,以提升编程竞赛中的解题能力。通过《苍穹外卖》项目,介绍了订单配送路径规划(基于动态规划解决旅行商问题)和商品推荐系统(基于贪心算法)。这些实例不仅展示了算法在实际业务中的应用,还帮助读者更好地准备蓝桥杯等编程竞赛。结合具体代码实现和解析,文章详细说明了如何运用算法优化项目功能,提高解决问题的能力。
32 6
|
2天前
|
Java 数据库连接 数据库
【潜意识Java】深度分析黑马项目《苍穹外卖》在Java学习中的重要性
《苍穹外卖》项目对Java学习至关重要。它涵盖了用户管理、商品查询、订单处理等模块,涉及Spring Boot、MyBatis、Redis等技术栈。
23 4
|
20天前
|
存储 Java BI
java怎么统计每个项目下的每个类别的数据
通过本文,我们详细介绍了如何在Java中统计每个项目下的每个类别的数据,包括数据模型设计、数据存储和统计方法。通过定义 `Category`和 `Project`类,并使用 `ProjectManager`类进行管理,可以轻松实现项目和类别的数据统计。希望本文能够帮助您理解和实现类似的统计需求。
68 17
|
1月前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
148 26
|
2月前
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
83 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
2月前
|
Java
Java项目中高精度数值计算:为何BigDecimal优于Double
在Java项目开发中,涉及金额计算、面积计算等高精度数值操作时,应选择 `BigDecimal` 而非 `Double`。`BigDecimal` 提供任意精度的小数运算、多种舍入模式和良好的可读性,确保计算结果的准确性和可靠性。例如,在金额计算中,`BigDecimal` 可以精确到小数点后两位,而 `Double` 可能因精度问题导致结果不准确。
|
2月前
|
Java Android开发
Eclipse 创建 Java 项目
Eclipse 创建 Java 项目
57 4