最近的 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。

一家之言,大家轻喷。

16610 次点击
所在节点    程序员
142 条回复
vankid
2017-11-16 10:19:17 +08:00
五十个没几个答的上来,不至于吧
assad
2017-11-16 10:19:19 +08:00
@happypy1 哥们,我不想黑任何语言
assad
2017-11-16 10:19:55 +08:00
@vankid 我地处西安,面试的基本都是 3-5 年的,没几个让我满意的啊
nicevar
2017-11-16 10:20:57 +08:00
@assad 我就说一下自动部署吧,你配置一个 jenkins 配合 git,开发的时候用一个分支 dev,提交测试通过后由项目负责人合并到 master 或者 product 分支,jenkins 自动监测这个分支,有更新的时候自动部署,
至于 set/get 上面有人已经说了,用 lombok 就好了
另外不想手写 sql,java 有 querydsl 可以用,也能混用,很方便,看文档也就是半天的事
如果能力太差真的没法救
ZiLong
2017-11-16 10:22:56 +08:00
Java 确实有很多问题,比如那些设计模式也是因为 Java 的坑,自己来填。Java 的好处是生态完善,基本上你能想到的问题,都有成熟的工具和解决方案,而 PHP 或者 Python 就不一定有,或者并没有经过生产环境检验,或者门槛太高。Java 确实非常啰嗦,但是从另一方面说,什么都是非常简单直接的,如果你英文好点,就像读文章一样。是的,Java 也有很多自己的问题,但是绝不是你上面说的那些,What really matters is not what you do but how~~你的 how 弄错了
odirus
2017-11-16 10:23:17 +08:00
@assad 楼主,如果有人发表了你认为不合适的回复,直接无视即可

大家都没必要发起语言之间的战争,如果每个帖子都是在认真分析、提供帮助(而不是撕逼),那我们才能一起成长得更快嘛。

我会在 V2 了解到很多新知识,包括工具、原理以及其他的行业资讯。
owenliang
2017-11-16 10:25:46 +08:00
我保持喷 JAVA WEB 一万年。
mosliu
2017-11-16 10:34:42 +08:00
1.Lombok 啊
2.结构简单,没什么复杂逻辑的话,直接 jpa 感觉很方便啊
3.部署,项目小,直接内置的 tomcat 还是 jetty 来着,资源文件目录等配置好,不要打 war 包,核心 java 打成 jar 包,然后改模板的话 替换相应文件就好吧? 重启都不用吧? 怕不好交付用 docker 啊。。


自己拿 spring boot 做过小项目,感觉还挺舒服的。。

当然 写的时候不如 nodejs 快了,但是因为对 node 熟悉度还是不够,稍微上点规模的东西,感觉还是操起 java 来写着舒心。
BBCCBB
2017-11-16 10:36:06 +08:00
get,set 用 lombok,

mybatis 你可以简单的用注解, 复杂的再 xml 啊, 而且 mybatis 有那么多好用的单表 sql 自动生成,注入的工具

说到底感觉还是楼主你对这些东西不了解, 只浮于表面能用的程度. 语言虽然只是一个工具,但是用熟一个工具也能事半功倍
kutata
2017-11-16 10:42:51 +08:00
+1,写惯 node.js 的突然想需要去开发原生 android 结合 openCV 做一个图像处理的库,对 java 的认知为零,上网学一下输出个 HelloWorld, 首先要写个类,然后 main 方法,要运行还得 javac -d . HelloWorld.java && java HelloWorld,Excuse me?? 然后 Java 庞大的工程目录结构我就不说什么了,不过现在差不多写好核心了。恩,已经准备好辞职了。
iyangyuan
2017-11-16 10:46:45 +08:00
楼主说的这些问题,几乎不存在,很明显是自己不懂乱吐槽
jatesun
2017-11-16 10:46:48 +08:00
mybatis 可以支持自动生成相关,controller、service、dao 层都可以用泛型,父类解决大部分问题。另外,二楼说的很对
woscaizi
2017-11-16 10:50:56 +08:00
小项目可以不用 mybatis 吧
spring-data-jpa
安逸
tusik
2017-11-16 10:52:07 +08:00
@assad
既然都自动生成了谁还会去看 get,set 的内容啊,直接拿来用就行了
Amayadream
2017-11-16 10:53:44 +08:00
1.不喜欢 getter/setter 可以使用 lombok
2.小项目 SQL 简单可以用 spring-data-jpa, 或者基于 mybatis 开发的 mybatis-plus 等, 完全可以不写 SQL
3.spring boot 使用了嵌入的 Tomcat, 完全不需要单独安装
4.maven 项目换人跑不起来说明项目本身有问题啊, 是不是过多的硬编码配置约定
5.手动部署肯定麻烦啊, 用 Jenkins
assad
2017-11-16 10:56:38 +08:00
@iyangyuan 当然啦,熟悉了一门语言,怎么都觉得这个语言没啥问题,但是你要再去熟悉其他语言,总有不适应的,或者感觉不方便的。不过,感觉 Java 开发小的 Web 项目,大炮打蚊子,大材小用!
Tuisku
2017-11-16 10:59:31 +08:00
Java 适合按照代码行数算工资的公司, 净是 GET/SET 方法

public void setBlablabla(xxx xxx){
this.blablabla = xxx;
}

public blablabla getBlablabla(){
return this.blablabla;
}

六行工资入手, 轻轻松松月入百万哈哈哈哈哈哈

相比之下 C# 就比较惨了

public blablabla blablabla { get; set; }

难怪都说 C#没 Java 好
Amayadream
2017-11-16 11:00:33 +08:00
以前遗留的老项目, 什么新特性新框架新技术都用不上, 像 lz 说的五六年经验这么水的, 维护起来确实是要了人命
Doodlister
2017-11-16 11:00:49 +08:00
没有复杂的表连接有 mybatis generator。而且,我以为写 SQL 是程序员的基本功。
assad
2017-11-16 11:02:05 +08:00
@Amayadream MyBatis-plus,这个玩意舒服了,看上去

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

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

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

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

© 2021 V2EX