事情是这样的:我在 Monash 的 Information Technology 念 Master,我们 Java 课让我们做一个 CLI 的猜数字小游戏。我做了之后给 tutor 发了源码,tutor 的第一句话是「 Too many Java coding standard violations 」。
我想了半天,我代码除了没按照 BlueJ 的 class template 来写之外,好像没有别的「违反标准」的行为吧……
我的代码风格如下(应该能说明一些问题?):
其实我也不太确定是不是真的有「违反标准」,就来 V2EX 问问各位「真正的」 Java 程序员,平时写代码是不是严格使用「制表键来缩进」等等这类比较「呆板」(我找不到一个中性的形容词,总之就是这么个意思吧?)的标准……
1
hyb1996 2021-08-18 21:28:48 +08:00 via Android
coding standard,coding style ?
|
3
Cbdy 2021-08-18 21:54:46 +08:00 via Android
代码质量差,没有用面向对象吧,和缩进应该没有太大关系,况且 Java 主流也是用空格缩进
|
4
Astrian OP @Cbdy 文档里要求抽象的类一个是游戏(主菜单),一个玩家资料,以及一个随机数生成器,其他的除了游戏流程有点太长我同样抽象成一个 static 类了。应该也没有别的能抽象了?
|
5
levelworm 2021-08-18 22:00:47 +08:00 via Android
你们作业里应该有相关的 standard,没有的话找他要就行了。
|
7
namelosw 2021-08-18 22:06:17 +08:00
你看你左侧的文件树有很多 M,先把那些都修了。
Java 建议下载个 Intellij,标黄的地方都修了就行,很多地方按 Alt-Enter 可以自动修。 我理解的 standard violation 一般指这些。 另外 Java 的社区标准大括号不换行。设计上的代码露出太少看不出来问题。 |
10
Astrian OP @namelosw M 是指 Modified,VS Code 内置的 Git Diff 检查器的功能
|
11
namelosw 2021-08-18 23:08:30 +08:00
@Astrian 好吧,我 VSC 用的太少了。不过还是可以试试 Intellij IDEA,我记得里面 Scala 里面用到的 inspection 是社区标准,Java 应该也类似。
|
12
charlie21 2021-08-18 23:50:16 +08:00
能教点有用的吗,一小时六十刀是 tutor 普遍价格吧,让你教我什么叫 Java code conventions ?
|
13
Ehend 2021-08-19 00:02:48 +08:00 via Android
不知道你老师 1 给模板没
|
14
Rheinmetal 2021-08-19 07:38:03 +08:00
大括号之类用代码格式化工具一键格式化呗
至于其他问题 靠 ci 和 git hook 自动化工具做不了的 code reveiw 看 流程正规的团队都有自己的标准 为什么不问问老师 coding standard 包括什么? @charlie21 业务写多了的话 就会感觉就是故意挑毛病 增加工作量 能用就行呗 事情这么多 java101 水平的东西也挑不出来太多毛病 只能讲大括号咯 还有不够 oo ? 标准格式之类对完全不懂的学生还是有点用的 老司机就... |
15
Rheinmetal 2021-08-19 07:57:13 +08:00 1
这玩意类似驾校教练教你的过考试用用各种奇怪技巧 真上路大部分用不上 或者是另一套
tutor 不一定有你懂开发 很可能是没做过业界项目的硕博 做人肉 ide 照本宣科一下 除了 py 大部分语言都没有强制的缩进 括号之类的规范 不如去问他把老师的要求搞来 应付一下格式得了 想卷的话整个 linter/ Prettifier 的 vsc 插件或者基于现有插件的规则配置出来 解放下一届 人家也是好心 毕竟 master of it 是给跨专业人开的 一下子上 ide 怕接受不了 新手上路有人指点会很高兴 老司机开车旁边有人指点你就难受了 虽然 lz 只是迷惑一下(内心 os 你们 java 还整通用规范么 这么死板) 好不容易是个作业可以放飞自我二挡起步 然后有人跟你说 二挡起步 伤车费油 只能特殊场合用 只会觉得话多 我还要你教么 |
16
Rheinmetal 2021-08-19 08:02:19 +08:00
LZ 现在是网课么 体验如何?
|
17
Astrian OP @Rheinmetal 哈哈哈哈哈哈哈哈好的 我今天去 <del>argue 一下</del> 问问格式
现在是在国内上网课,目前来说还行吧,相对比较 free,比如上课摸个鱼… 因为学的都是网络结构基础和学过的编程语言。 哦 python 还是要听一听的… |
18
cslive 2021-08-19 09:22:46 +08:00
我感觉这是在说你没有按模板写注释吧,类注释,方法注释,行注释
|
20
rpman 2021-08-19 09:55:22 +08:00
这代码质量确实太差了点
但关于 standard, 你不问 tutor 问 V2EX 是几个意思呢? 咱又没拿 tutor 工资 |
21
Astrian OP @rpman 嘛,只是在发邮件问 tutor 之前先确认一下是不是有什么奇奇怪怪的标准罢了,免得贻笑大方。其实也不是啥吐槽啦(((
|
22
zxCoder 2021-08-19 10:17:40 +08:00
让 IDEA 提示就行了,哪里不对改哪里,IDEA 的基本就是标准
|
25
zakokun 2021-08-19 14:25:18 +08:00
用学生邮箱申请 jetbrains 的免费许可,直接用 idea 开发得了,一键格式化基本保证格式标准了,然后再去考虑一下代码结构上的优化
|
26
x940727 2021-08-19 15:53:22 +08:00
Java 一般是空格缩进的,我觉得是没有合规的包和注释风格吧?
|
27
liangchen1ce 2021-08-19 17:15:53 +08:00
可以参考 Google Java Style Guide: https://google.github.io/styleguide/javaguide.html 。
好久不写 Java 了,但是 lz 代码里的 import,是不是可以避免 import *,只 import 需要的函数? |
28
Jafee 2021-08-19 19:05:17 +08:00
截图是怎么截的啊? 很好看。
|
31
Astrian OP @liangchen1ce 确实只 import 需要的就可以,不过我们上课的话表述两种都行,没有刻意说过只能 import 必须依赖
|
32
astkaasa 2021-08-20 11:36:27 +08:00
|