最近的 Java 项目之感想

2017 年 11 月 16 日
 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。

一家之言,大家轻喷。

19392 次点击
所在节点    程序员
142 条回复
sampeng
2017 年 11 月 16 日
原先我也是这么想,后来想去解决这个问题,发现除了 mybatis 和 tomcat。用 kotlin 就能完美解决语法啰嗦问题,java 也有非常成熟的热部署解决方案,自己网上一搜就有,曾经我在用热部署,我旁边 5 年工作经验的哥们吭哧吭哧的修改,重启,修改重启。。我简单算了一下,我一天最少要比他多写 2 个小时代码。。。
mybatis 也有编辑器插件自动生成,tomcat 就不是很了解了,这个确实得经验,无解。

如果所谓 down 下来跑不起来的,八成是配了大量本地的各种路径。。。。5 年还是 n 年经验有毛线关系,就是不了解不学习不进步而已。。。吃枣药丸
incompatible
2017 年 11 月 16 日
@NeinChn 说到对自己负责对别人负责对团队负,actually 在一个团队里是否不使用 Lombok 并不是个人的选择,而是整个组织的意志。这就好比团队里到底用 maven 还是 gradle 还是手撸 ant 管理依赖一样,并非我 prefer 某一种就可以强奸其他人,而是在大家达成共识后才会选用其中一种。假设某天我加入了你们团队、大家都不用 Lombok 且我也没有能力通过我的理论说服任何一个人使用 Lombok,那么我自然不会在代码中搞出一片红。

你个人觉得使用 lombok 无必要,但你要正视许多规模不小的组织中这玩意儿用的非常广泛的事实。“居然有人使用 lombok ?”这种反问实在是有点大惊小怪了。
print1024
2017 年 11 月 16 日
试试 SpringBoot+SpringData JPA
nl101531
2017 年 11 月 16 日
mybatis 的优势就是 sql 分离,很容易做优化,你这个是原型不对,都不需要考虑性能的项目就直接 ORM 就好了
maomaomao001
2017 年 11 月 16 日
用 docker 自动化部署啊
sagaxu
2017 年 11 月 16 日
@NeinChn 你太低估工程师的学习能力了,就 Lombook 这个具体例子,用过的自然懂,没用过的不用 10 分钟也懂了。
@0Kelvin kotlin 就是坐拥 Java 生态的 C#
tonitech
2017 年 11 月 16 日
Mybatis 可以用注解,简化 get set,Lombook 自动生成代码非常方便的,而且 get set 用起来其实很爽,小项目你只要用面向对象的思想去写根本无需自己再写入 sql 的方法。
本地的开发环境可以用 idea,安装个 jrebel 热部署,不需要重新编译啊,节约很多时间。
另外前后端如果做分离了,前端采用调用接口的方式,其实改界面根本就不需要改服务端啊。
NeinChn
2017 年 11 月 16 日
@incompatible
这正是因为我所处的环境中,没有人使用 lombok.所以我才好奇....
我呆过的公司也都算规模尚可,TMD 吧...
举个例子,如果有人在生产环境中还拿 System.out.println 来输出信息,我肯定会觉得很惊讶(当然例子不太恰当,一个是绝对错误的操作,lombok 最多算可有可无的操作)

嘛,可能阿里用 lombok,至于广不广泛,这个也没具体数据,并不清楚
不过跟团队保持一致就好了,这个我很认同,反正在这种事情上没必要特立独行
NeinChn
2017 年 11 月 16 日
@sagaxu 这和低估别人能力没关系
确实挺烦人的,IDE 装了插件确实就能正常开发了
然而有些版本如果不加额外处理,mvn compile 会有异常,还要去 Stack Overflow 找为什么
很有可能你需要在 mvn 的 plugin 里先加上 lombok 的 plugin,IDE 还要加一份
当然我很久没用了,不知道现在还是不是这样
还是 @incompatible 说的那样,团队都在用,那就用
没人用,那就不要麻烦别人,不要引入额外的东西,大家一起别用...
sagaxu
2017 年 11 月 16 日
@NeinChn 我觉得团队里需要不断的有人去推一些新东西,学习成本或者额外的配置都不是障碍,惰性和固步自封才是真正的阻力。我尝试推过很多东西,用 vue 代替 jquery 操作 dom,用 java 注解代替 xml 配置,用 coffeescript 代替 js(失败告终),用 lombok 代替 getter/setter,用 spring data jpa 代替简单的手写 crud 等等。大部分推广都被接受,甚至还有人问我为何不早点用,很多我推过的东西成了后续项目的标配。偶尔也有特别顽固的同事,还在坚持手写 servlet,连 spring 都不用,我们不可能因为照顾他而停止更新技术模板。
mikulch
2017 年 11 月 16 日
java 是挺麻烦的。折腾环境搞半天。
面向环境编程,有个屌意思啊。
NeinChn
2017 年 11 月 16 日
@sagaxu
我觉得精力可以放在能够提升自己竞争力的东西上
例如多试试其他几种中间件,对比中间件有什么优劣,那么多架构上的东西可以探究
从简单的地方出发,也可以看看这些到底是怎么实现的...
只是用一下 lombok,spring data 对个人而言,我是觉得不算什么竞争力
这些都是该自己去了解去看源代码的,如果能了解他们是怎么实现的,那还是有意义的
而且重点不是用不用,而是知道什么时候应该用什么,前面我们也讨论了那么多为什么要用 lombok 不用 lombok
核心在于,这个东西是不是真的合适,到底应该用在什么场景,能不能自行判断,而不是老大说啥就是啥,这才是能力的体现
Lonely
2017 年 11 月 17 日
明显就是个无脑黑,还狡辩
evolify
2017 年 11 月 17 日
我想知道,楼主是用记事本写代码的么?就算你瞧不起 lombok,不是还有 ide 帮你搞定 get/set 么?至于 mybatis 麻烦,既然你也知道 springboot,没用过 jpa ?部署麻烦?就算你不会 docker,不是可以打包个 jar 就直接跑了么?
keenkiller
2017 年 11 月 17 日
lombok 确实会引入某些奇怪的 bug,不过大部分时候还是很靠谱的
swim2sun
2017 年 11 月 17 日
@mikulch Java 的开发环境除了 JDK, maven 还需要什么? java 能有今天的地位,就是因为当年主打跨平台, 实在不明白你的黑点
Zz0Zz
2017 年 11 月 17 日
@xgfan 对,我们现在的项目基本都不怎么写 sql 了,直接自动生成,复杂的才考虑写
sutra
2017 年 11 月 17 日
估计遇到了半吊子程序员。
Sypher
2017 年 11 月 17 日
楼上该说的都说了,部署方面用热部署确实省很多时间。
dakingHR
2017 年 11 月 17 日
Java
1、精通 JAVA 语言编程,具有企业级 Web 应用系统的开发经验;
2、具备良好的面向对象编程能力,熟悉流行的开源技术;
3、熟练掌握 MySql、Oracle 等数据库,sql 语言;
4、精通 B/S 架构开发,熟悉并在实际开发项目中使用 SSH 架构;
5、熟悉 J2EE 规范,熟悉各种常用设计模式;
6、熟悉主流框架 Spring3,Stuts2/SprigMVC,Hibernate3/Mybatis ;熟悉 Dubbo+zookeeper 框架开发;
7、具备良好的沟通能力。
待遇:1700-4500 $,8h/天,月休 4
有意跳槽请联系 Q:2129461425

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

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

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

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

© 2021 V2EX