最近的 Java 项目之感想

2017-11-16 09:29:52 +08:00
 assad

最近接了两个小活,都是 Web 项目,客户指定 JAVA

基本采用的 SSM 以及 Srping Boot,总体感觉。

JAVA 的写法,还是太啰嗦,一堆 set,get,一个类里面,净是 get,set 了

持久层的 mybatis,感觉基本就是手写 SQL 了,因为项目较小,没有复杂的表连接操作,所以感觉使用 mybatis 是有点用错了。把 sql 写到一个 xml 文件里,项目 SQL 非常多的话,可读性就差的很了。我真想说,挫,挫,挫。不会写 sql 的,就完犊子了。

部署,因为很不喜欢 Tomcat,但是 Java 的开发人员选用了 Tomcat。客户提供的运行环境是 Windows,部署就花了半天,不是这个问题,就是哪个问题。JDK 版本不一致,JVM 内存不足无法启动,启动时间及其慢。我想,这要是 PHP 或者 Python,那是分分钟的事啊。Java 部署怎么这么难。写项目的这个哥们还是个 5 年经验的。

然后因为最初写项目的哥们要离职,交接项目,新来的哥们是个 6 年经验的。结果前面那哥们的项目,git 上 down 下来,愣愣是折腾了大半天,才把项目跑起来。我就想,至于么,别人的项目代码,别人想要跑起来,也不至于折腾这么长时间啊。

最后,项目预上线,客户不停提出修改页面啊什么的

每次修改完,都要重新部署。我的个哥,痛苦异常。就是改了模板上一个简单的标签,得,重新部署。

难道不痛苦么?好痛苦啊。我对 JAVA 一直没好感,严谨导致啰嗦。各种规则,各种乱七八糟的玩意。

哎,人生苦短,我用 Python。还有我的 PHP。

一家之言,大家轻喷。

16510 次点击
所在节点    程序员
142 条回复
Kaho
2017-11-16 09:37:43 +08:00
PHP no.1
ququzone
2017-11-16 09:41:05 +08:00
1. 如果吐槽 getter/setter, 请用 lombok
2. 如果用了 Spring Boot,内部已经封装好了 tomcat/jetty,不用关心这个
3. 如果环境问题,用 Docker
基于上面几点,你吐槽跑偏了
assad
2017-11-16 09:44:38 +08:00
@ququzone 我不是 JAVA 的。关键,你说的这些,并不是每个 JAVAer 都知道的,大部分人,似乎还不是你这样开发方式。
因为我司最近一直在招聘 JAVA,你说的这些我都多多少少作为面试题,我面试了大概 50 来个人吧,问过,没几个人个回答上来
jason2017
2017-11-16 09:45:07 +08:00
见过太多所谓的 5、6 年经验的,不过是 1 年经验干了 5、6。
另外,每个语言都有适用的场景。
既然客户指定了用 java,你还想拿钱,就不要抱怨那么了。
喜欢用 Python,PHP 那就去找 Python 和 PHP 活来接啊。
assad
2017-11-16 09:45:41 +08:00
@jason2017 我所说了,客户指定 JAVA
assad
2017-11-16 09:46:10 +08:00
@jason2017 再是,我这里说的 5,6 年,基本都是 5,6 年,实打实。所以我也在怀疑他们的能力
assad
2017-11-16 09:46:40 +08:00
@jason2017 我只是在说我的感想,并非抱怨。
e9e499d78f
2017-11-16 09:48:00 +08:00
下次 java 项目转给我,给你提成
DeadLion
2017-11-16 09:49:02 +08:00
我觉得是 java 从业人员多,水平参差不齐,工作年龄真不能代表什么。
anynices
2017-11-16 09:50:30 +08:00
Get/Set 麻烦 Lombok 可以解决
MyBatis SQL 可以写在 Mapper 中,并非必须 xml
嫌重新部署麻烦,可以脚本,或者上持续集成工具
odirus
2017-11-16 09:50:42 +08:00
从大学开始用 php 在做外包,以前一位师兄吐槽 Java 很难用、臃肿,所以一直不太敢深入接触 Java。。。。。过了很久,当我再次深入学习之后,被迫完成大量项目之后,

发现 Java 太好用了,特别适合大型、多人协作、长时间开发、长时间更新支持的软件了,如果是用 PHP 或者 Python 的话,我一直都害怕某个对象预期的属性是 undefined (特别是我手上的有些项目都持续交付开发三四年了)
Mogugugugu
2017-11-16 09:52:05 +08:00
表示 单表 从来不手写 SQL
Grubber
2017-11-16 09:52:47 +08:00
Spring Boot 使用内置服务器的话,加上 Gradle 部署就一条命令的事
tscat
2017-11-16 09:53:07 +08:00
不喜欢 tomcat,那也只需要配一次啊。。。
qinxi
2017-11-16 09:53:11 +08:00

1: lombok
2:jpa
3:跑不起来 这个锅 JAVA 不背
6:换 HR/技术面试官
7:Jenkins git hooks / 上传包然后脚本自己处理
8: 既然接了活就别 BB ,牛逼就直接违约不干了
p2pCoder
2017-11-16 09:54:27 +08:00
如果你项目简单,业务并发量低,可以不用 mybatsi 手写 sql,使用一些纯 orm 映射就可以了
像我一直做得 p2p,数据库是 mysql,必须手写 sql
jason2017
2017-11-16 09:56:32 +08:00
@assad 你所说的 set/get,基本上都是实体类会出现的东西,这些又不是逻辑累,完全不许要去看,知道字段就行了。另外 MyBatis 的问题,如果你使用了 MyBatis 代码自动生成工具,自动生成 xml、mapper、实体类、甚至 service 层,基本上效率会比你手写 sql 快很多倍。
还有 jdk 版本、tomcat 容器报错这些问题,无非就那几种问题,任何一个有实打实的几年经验的 javaer 都能很快定位到问题。
yuanfnadi
2017-11-16 09:57:11 +08:00
lombok +springboot + java.
在构建镜像里面自动构建。然后提取出来放在 java 镜像里面。
然后镜像自动发布。爽歪歪。


FROM gradle:4.0.1-alpine as build
MAINTAINER FandiYuan <georgeyuan@diamondyuan.com>

ADD ./ /tmp/

RUN cd /tmp && \
gradle build

FROM java:8-jre-alpine

COPY --from=build /tmp/build/libs/diamond-yuan-fast-airport-0.01.jar /

ENTRYPOINT ["java", "-server", "-jar", "/diamond-yuan-fast-airport-0.01.jar"]
skycitygalaxy
2017-11-16 09:58:25 +08:00
学新语言遇到问题,
大牛:解决问题。
菜鸟:语言太垃圾,还是我熟悉的 xxx 更好。
大牛给菜鸟说:你这样就能解决问题。
菜鸟:不行,不是每个人都能学会这样,还是我已经学会的 xxx 更好。
强行比喻一波哈,讲道理每个语言都是自洽的,不存在说这个语言只有问题没有解决方案。
donyee
2017-11-16 10:00:40 +08:00
改个页面也不用重新部署吧,直接替换 jsp、class 文件,重启 tomcat 就可以

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/406805

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX