灵魂拷问之是否适合 Java 开发

2021-03-24 21:10:50 +08:00
 fxjson
写习惯了 php,go 这种轻量级语言,代码一运行就跑起来了,即使有错误也很容易定位错误位置,多次尝试搞 java,真的要吐了,不说 ssm 搭建,就用 springboot,下载依赖的 jar 包要好长时间,然后配置 mybatis,写个 service+mapper,都恶心到我了,不知道是不是自己本心的抵触,反正怎么写怎么不开心,怀疑自己是不是不适合搞 java
8170 次点击
所在节点    Java
72 条回复
ghouleztt
2021-03-25 09:44:56 +08:00
我 Java 的最近在尝试 go,被 go 的包管理整的一头包
jorneyr
2021-03-25 09:47:45 +08:00
以前写 Java Hello World 的时候一个文件就可以编译运行,现在写项目还得先 IDE 里面创建个项目,修改 build.gradle 等,太麻烦了,但是用 Java Hello World 的思维写大点的项目肯定是不可以的。
LLaMA2
2021-03-25 09:49:23 +08:00
一千个人写出来的 java 代码都是一样的,可是一百个人写出的 php 都不一祥,这是一个 java 程序员的主观感受,不知道阁下是否同意
WispZhan
2021-03-25 10:00:48 +08:00
@ye4tar 那可不一定,凡是不要太绝对。

代码写得💩️的人,写啥编程语言的代码都💩️。 因为他对自己的代码没有要求。
Oktfolio
2021-03-25 10:05:12 +08:00
@diggzhang 这个和 Java 有什么关系?...
Oktfolio
2021-03-25 10:09:34 +08:00
go vendor, go dep, go mod......还要被墙......VS Code 开发环境都没法正常搭起来......依赖竟然是从 GitHub 拉的......
panlatent
2021-03-25 10:14:07 +08:00
要学, 但也不一定非得是 Java, C#也行, 但是岗位相对较少. 目前 PHP 的主要应用场景还是 Web, 其他领域的配套不太行, 做起事来阻力重重. 而且动态语言也有其固有的问题. 在现代 IDE 的帮助下, 编译型语言编码体验可能比动态语言还要舒服一些. go 的话, 我觉得优势在于语法和并发简单, 写点工具堪比脚本语言, 但是语法相对简单, 又没有泛型, 就算等泛型出来了加上配套又不知何年何月. 感觉把本来复杂的东西用 go 写, 对人的心智负担比较大.

作为 PHPer 学习 c / go / java or c# 我觉得都是很有必要的.
reed2020
2021-03-25 10:20:36 +08:00
Java 入门的,学 Go 的时候简直受不了依赖管理和表达能力。。
zjsxwc
2021-03-25 10:27:03 +08:00
Carlgao
2021-03-25 10:29:23 +08:00
用 go 的包管理必配代理啊 这个代理配一下香的很 地址: https://goproxy.io/zh/
RipL
2021-03-25 10:32:39 +08:00
go 不香么
yaphets666
2021-03-25 10:53:45 +08:00
@ila 本 java 初学者的理解,一切都是为了抽象.设计 java 这门语言的人,经验非常老道.在学习过程中,能感觉到这门语言处处在为抽象提供便利.
覆写和重载就是为抽象提供便利.
想象一下,在继承中,通过覆写和重载为子类实现多样,定制化的方法...
FantaMole
2021-03-25 10:55:50 +08:00
沉下心来搞就好了,说这么多都是借口。你重新学一门语言,自己又没有到一通百通的境界的话,碰到一堆问题是必然的。说真心不喜欢 Java,有我不喜欢吗。我上大学的时候,我那老师讲的 Java 课给我听麻了,一学期的课下来看了一学期小说,最后考试还挂科了。然后我再也不想碰 Java 了

我知道面向对象是什么意思,还是靠我大二暑假自学的 python 搞懂的。之后四年,包括参加工作的两年,除了为了补考,再也没看过 Java 相关。这期间我写过 Node.js 和 PHP 的商业代码,偶尔也会学着写点 Golang 玩玩,就是 Java,一看到之后就犯恶心,就看着都难受那种

但是后来,公司要转技术栈,要么滚要么转,给一个月缓冲,自己下班想办法去学。一个月后直接分配任务。还不是写了。到现在,隔两天还要学习一两个小时 Spring 源码或者 JVM,也乐在其中了。

说到底,无非是你用 PHP 写的各种顺手,用 Java 各种毛病,然后心里有了落差而已,然后把这种落差带来的挫败感归咎到 Java 不好。我只能说放平心态,你想突然用脚写字,还要求写得跟手一样快,这是不可能的

我给个方法吧,既然你写 PHP,Laravel 学过吧,核心的 IOC 就算没看过源码,大致原理应该是懂得差不多了吧。Spring 这个框架也差不多,思路是一样的,以此去对比学习 Spring Boot 的一次请求流程

你已经有工程基础了,就没必要学什么从零开始了,不如去 github 上找一个开箱即用的 Spring Boot 开源框架,简单到只要用 IDEA 打开,改一下配置,然后就能跑起来的那种。学着去写一个简单接口,整个业务分层还是 MVC 那一套,你会发现其实花的时间也不会太多,就能写 CRUD 的业务代码了,然后再深入去了解 Java,了解 Spring

哦,另外,mybatis 确实就是这么恶心,Java 的 ORM 框架也确实没几个好用的。虽然跟 yii 的 active record 或者 Eloquent 比还是差远了,但 mybatis-plus 能有效缓解恶心程度

Every cloud has a silver lining,慢慢来
no1xsyzy
2021-03-25 11:00:58 +08:00
你体会到痛苦就是工程化本身。
不是工程化带来的副作用,只是你如何看待的问题。
有些人喜欢语法糖越多越好,甚至自己随手写语法糖,那就是 Haskell Lisp 写起来。
cdh1075
2021-03-25 11:02:44 +08:00
开出租车的人都能花 10 万块钱买个车,你就不能花 100 块钱给自己拉条快点的网?
yeqizhang
2021-03-25 11:03:19 +08:00
@ye4tar js 有这个感受,看别人写的前端代码,看吐了
lancelock
2021-03-25 11:04:45 +08:00
纳了闷了,java 要下 jar 包,难道你 go 不要下依赖吗?有啥区别?如果你配了 goproxy,那你就不会给 maven 配个 mirror 吗

还有 service 、mapper 这些,也没人强迫你这么写,你要愿意把所有逻辑都写在 controller 里也没人拦着你。

而且 spring mybatis 也不是 java 的一切,你要用不惯也不是没有替代品,谁要你自己局限这些里面
jitongxi
2021-03-25 11:09:21 +08:00
现在还好了. springboot 这些都可以内置 Tomcat undertow 这些 web 容器了, 对于运行环境就一个 jre,然后 java -jar 运行完事

以前的 springmvc, 那是真的累死人,到处 xml

maven 包下载慢,可以给 maven 配置加代理的.

语法方面 java 被 kotlin 秒杀的不行了,香的一批
252748371
2021-03-25 11:23:45 +08:00
java go 都会,还是 java 写得爽,go 说实话除了省内存不觉得比 java 好在哪
zzzmh
2021-03-25 11:37:38 +08:00
关于 maven 慢,配置一下阿里云镜像,速度起飞
关于 mybatis 不方便,用 mybatis plus ,和 mybatis plus generator,一键生成 bean service mapper
另外说下我的理解,为什么 java 看起来比其他复杂?
1. java 大部分时候只负责写接口 传入返回 json
2. java 大部分时候需要考虑多人协同开发和可读性问题,也就是第一个人写完,离职了,下一个人读前者写的代码,可以快速上手,或者多人合作的时候,可以分别自己写自己的模块

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

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

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

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

© 2021 V2EX