首页 > 其他分享 >入职第一天,看了公司代码,牛马沉默了。。

入职第一天,看了公司代码,牛马沉默了。。

时间:2024-08-15 14:17:43浏览次数:10  
标签:入职 第一天 配置文件 代码 配置 jar value pom 牛马

作者:小红帽的大灰狼
来源:juejin.cn/post/7371986999164928010

入职第一天就干活的,就问还有谁,搬来一台N手电脑,第一分钟开机,第二分钟派活,第三分钟干活,巴适。。。

打开代码发现问题不断

1.读取配置文件居然读取两个配置文件,一个读一点,不清楚为什么不能一个配置文件进行配置

一边获取WEB-INF下的配置文件,一边用外部配置文件进行覆盖,有人可能会问既然覆盖,那可以全在外部配置啊,问的好,如果全用外部配置,咱们代码获取属性有的加上了项目前缀(上面的两个put),有的没加,这样配置文件就显得很乱不可取,所以形成了分开配置的局面,如果接受混乱,就写在外部配置,不能全写在内部配置,因为

prop_c.setProperty(key, value);

value获取外部配置为空的时候会抛出异常,properties底层集合用的是hashTable

public synchronized V put(K key, V value) {
    // Make sure the value is not null
    if (value == null) {
        throw new NullPointerException();
    }
}

2.很多参数写死在代码里,如果有改动,工作量会变得异常庞大,举例权限方面伪代码

role.haveRole("ADMIN_USE")

3.日志打印居然sout和log混合双打

先不说双打的事,对于上图这个,应该输出包括堆栈信息,不然定位问题很麻烦,有人可能会说e.getMessage()最好,可是生产问题看多了发现还是打堆栈好;

还有如果不是定向返回信息,仅仅是记录日志,完全没必要catch多个异常,一个Exception足够了,不知道原作者这么写的意思是啥;还是就是打印日志要用logger,用sout打印在控制台,那我日志文件干啥;

4.提交的代码没有技术经理把关,下发生产包是个人就可以发导致生产环境代码和本地代码或者数据库数据出现不一致的现象,数据库数据的同步是生产最容易忘记执行的一个事情;比如我的这家公司上传文件模板变化了,但是没同步,导致出问题时开发环境复现问题真是麻烦;

5.随意更改生产数据库,出不出问题全靠开发的职业素养;

6.Maven依赖的问题,Maven引pom,而pom里面却是另一个pom文件,没有生成的jar供引入,是的,我们可以在dependency里加上

<type>pom</type>

来解决这个问题,但是公司内的,而且实际也是引入这个pom里面的jar的,我实在不知道这么做的用意是什么,有谁知道;求教

Spring Boot 基础就不介绍了,推荐看这个实战项目:

https://github.com/javastacks/spring-boot-best-practice

以上这些都是我最近一家公司出现的问题,除了默默接受还能怎么办;

那有什么优点呢:

  • 不用太怎么写文档
  • 束缚很小
  • 学到了js的全局调用怎么写的

解决之道

怎么解决这些问题呢,首先对于现有的新项目或升级的项目来说,spring的application.xml/yml 完全可以写我们的配置,开发环境没必要整外部文件,如果是生产环境我们可以在脚本或启动命令添加

nohup java -Dfile.encoding=UTF-8 -Dspring.config.location=server/src/main/config/application.properties -jar xxx.jar &

来告诉jar包引哪里的配置文件;也可以加上动态配置,都很棒的,其次就是规范代码,养成良好的规范,跟着节奏,不要另辟蹊径;老老实实的,如果原项目上迭代,不要动源代码,追加即可,没有时间去重构的

更多文章推荐:

1.Spring Boot 3.x 教程,太全了!

2.2,000+ 道 Java面试题及答案整理(2024最新版)

3.免费获取 IDEA 激活码的 7 种方式(2024最新版)

觉得不错,别忘了随手点赞+转发哦!

标签:入职,第一天,配置文件,代码,配置,jar,value,pom,牛马
From: https://www.cnblogs.com/javastack/p/18360798

相关文章

  • CCNA Security第一天.1
    为什么我们需要安全?网络结构攻击技术资产价值1.巨大的财务损失2.病毒是最大的威胁,其次是源自于内部的攻击3.接近10%的企业遭受了dns攻击,4.27%的企业曾遭受targetedattack5.68%的企业拥有自己的信息安全策略cia安全模型1.confidentiality私密性防止物理和逻辑访问我们......
  • 4.第一天(第四部分):Using IPS Device Manager
    idm初始化ids,通过https,进行连接。https://202.100.12.101设置jave分配内存-Xmx256m证书的3个test1.办法者是否可信2.时间是否有效3.url的主机名和生猪里边的cn是否匹配rdep思科私有用来传输configsdee用来传输事件告警证书是自签名的sdee由icsa研发,促进了整合的第三......
  • 3.第一天(第三部分):Getting Started with the IPS Command-Line Interface
    初始化ips清空配置erasecurrent-config擦除配置reset重启默认用户名和密码都是cisco,第一次login的时候提示你修改密码。登录方式sshconnectiontelnet默认不允许cli界面helpconft模式:#conftservicemodeservicehost(配置模式)showsettings查看系统自带配......
  • 2.第一天(第二部分):Explaining Intrusion Prevention
    入侵防御系统cisco在入侵检测方面使用了一种混合技术ips技术不成熟ips的性能和具体的包类型和大小有关系command接口有ip,有路由能力,网关主机通过这个接口进行网管。montor接口没有ip,网络不课件,接受数据,发送rooot杂合模式和在线模式更好的对atomicattack攻击进行防御,以前......
  • 实习第一天,不小心透露了,我是拆迁户
    2018年6月,大三暑假进行时上班之前,我提前跟家里人打过招呼了。我说我已经拿到了实习的offer,明天就过去上班,离家里很近,月薪3500,我骑自行车过去就行。家里人就说挺好的,让我骑个电瓶车,这样会快点,嘱咐我好好干。这是我第一次正式上班,我还觉得挺神奇的,没想到我都要上班了。大学以前......
  • HBase学习的第一天--hbase的简介和搭建
    HBase架构与基础命令一、了解HBase1.1 HBase概述HBase是基于Hadoop中HDFS做存储的数据库HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,用于存储海量的结构化或者半结构化,非结构化的数据(底层是字节数组做存储的)HBase是Hadoop的生态系统之一,是建立在Hadoop......
  • 猴子吃桃子问题:有一堆桃子,猴子第一天吃了其中的一半,并多吃了一个! 以后每天猴子都吃其
    1publicclassexercise02{2publicstaticvoidmain(String[]args){34/*5猴子吃桃子问题:有一堆桃子,猴子第一天吃了其中的一半,并多吃了一个!6以后每天猴子都吃其中的一半,然后再多吃一个。当到第10天时,7想再吃时(即还没吃......
  • 框架学习第一天
    目前技术的总体架构1.框架的概念:本质为java代码规范了一系类规范2.使用框架的好处如何更好的理解框架呢,如下图spring框架概念springframework和spring学习1.springframework学习springioc概念springioc作用,组件的本质就是可以复用的java对象......
  • 并发编程(第一天)
    进程与线程进程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO的当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。......
  • 策略模式揭秘:如何让飞书、企业微信、钉钉的入职与生日祝福更智能?
    继上一篇飞书、企业微信、钉钉如何精准推送入职与生日祝福背后的数据魔法之后,今天在此基础上分享下策略模式。策略模式是一种行为型设计模式,在工作中使用的频次非常高。生日祝福,入职周年祝福等,每一种都是一种不同的策略。不了解背景的人可以先去看看入职周年祝福与生日......