该如何理解「 Java Coding Standard」?

2021-08-18 21:15:54 +08:00
 Astrian

事情是这样的:我在 Monash 的 Information Technology 念 Master,我们 Java 课让我们做一个 CLI 的猜数字小游戏。我做了之后给 tutor 发了源码,tutor 的第一句话是「 Too many Java coding standard violations 」。

我想了半天,我代码除了没按照 BlueJ 的 class template 来写之外,好像没有别的「违反标准」的行为吧……

我的代码风格如下(应该能说明一些问题?):

其实我也不太确定是不是真的有「违反标准」,就来 V2EX 问问各位「真正的」 Java 程序员,平时写代码是不是严格使用「制表键来缩进」等等这类比较「呆板」(我找不到一个中性的形容词,总之就是这么个意思吧?)的标准……

2236 次点击
所在节点    问与答
32 条回复
hyb1996
2021-08-18 21:28:48 +08:00
coding standard,coding style ?
Astrian
2021-08-18 21:29:37 +08:00
@hyb1996 对,我第一反应也是这样,是不是在说我大括号没换行以及空格缩进的问题 🤣
Cbdy
2021-08-18 21:54:46 +08:00
代码质量差,没有用面向对象吧,和缩进应该没有太大关系,况且 Java 主流也是用空格缩进
Astrian
2021-08-18 21:59:47 +08:00
@Cbdy 文档里要求抽象的类一个是游戏(主菜单),一个玩家资料,以及一个随机数生成器,其他的除了游戏流程有点太长我同样抽象成一个 static 类了。应该也没有别的能抽象了?
levelworm
2021-08-18 22:00:47 +08:00
你们作业里应该有相关的 standard,没有的话找他要就行了。
Astrian
2021-08-18 22:03:23 +08:00
@levelworm 肯定会问,只是先确认一下大家是不是有个共识性的语法标准
namelosw
2021-08-18 22:06:17 +08:00
你看你左侧的文件树有很多 M,先把那些都修了。

Java 建议下载个 Intellij,标黄的地方都修了就行,很多地方按 Alt-Enter 可以自动修。

我理解的 standard violation 一般指这些。

另外 Java 的社区标准大括号不换行。设计上的代码露出太少看不出来问题。
levelworm
2021-08-18 22:08:26 +08:00
@Astrian 看了下感觉还行啊,把编辑器自动标出的看看呗。
Cbdy
2021-08-18 22:13:54 +08:00
@Astrian 可以方便说一下题目的内容吗?我写个版本你看一下
Astrian
2021-08-18 22:36:50 +08:00
@namelosw M 是指 Modified,VS Code 内置的 Git Diff 检查器的功能
namelosw
2021-08-18 23:08:30 +08:00
@Astrian 好吧,我 VSC 用的太少了。不过还是可以试试 Intellij IDEA,我记得里面 Scala 里面用到的 inspection 是社区标准,Java 应该也类似。
charlie21
2021-08-18 23:50:16 +08:00
能教点有用的吗,一小时六十刀是 tutor 普遍价格吧,让你教我什么叫 Java code conventions ?
Ehend
2021-08-19 00:02:48 +08:00
不知道你老师 1 给模板没
Rheinmetal
2021-08-19 07:38:03 +08:00
大括号之类用代码格式化工具一键格式化呗
至于其他问题 靠 ci 和 git hook 自动化工具做不了的 code reveiw 看
流程正规的团队都有自己的标准

为什么不问问老师 coding standard 包括什么?

@charlie21 业务写多了的话 就会感觉就是故意挑毛病 增加工作量 能用就行呗 事情这么多
java101 水平的东西也挑不出来太多毛病 只能讲大括号咯 还有不够 oo ?
标准格式之类对完全不懂的学生还是有点用的 老司机就...
Rheinmetal
2021-08-19 07:57:13 +08:00
这玩意类似驾校教练教你的过考试用用各种奇怪技巧 真上路大部分用不上 或者是另一套
tutor 不一定有你懂开发 很可能是没做过业界项目的硕博 做人肉 ide 照本宣科一下
除了 py 大部分语言都没有强制的缩进 括号之类的规范
不如去问他把老师的要求搞来 应付一下格式得了
想卷的话整个 linter/ Prettifier 的 vsc 插件或者基于现有插件的规则配置出来 解放下一届

人家也是好心 毕竟 master of it 是给跨专业人开的 一下子上 ide 怕接受不了
新手上路有人指点会很高兴
老司机开车旁边有人指点你就难受了 虽然 lz 只是迷惑一下(内心 os 你们 java 还整通用规范么 这么死板)

好不容易是个作业可以放飞自我二挡起步 然后有人跟你说 二挡起步 伤车费油 只能特殊场合用 只会觉得话多 我还要你教么
Rheinmetal
2021-08-19 08:02:19 +08:00
LZ 现在是网课么 体验如何?
Astrian
2021-08-19 08:11:04 +08:00
@Rheinmetal 哈哈哈哈哈哈哈哈好的 我今天去 <del>argue 一下</del> 问问格式

现在是在国内上网课,目前来说还行吧,相对比较 free,比如上课摸个鱼… 因为学的都是网络结构基础和学过的编程语言。

哦 python 还是要听一听的…
cslive
2021-08-19 09:22:46 +08:00
我感觉这是在说你没有按模板写注释吧,类注释,方法注释,行注释
Astrian
2021-08-19 09:32:44 +08:00
@cslive 我待会重新看一下作业要求(挺长的……)

@Ehend 只有输出示例,模板是 BlueJ 默认给的
rpman
2021-08-19 09:55:22 +08:00
这代码质量确实太差了点
但关于 standard, 你不问 tutor 问 V2EX 是几个意思呢? 咱又没拿 tutor 工资

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

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

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

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

© 2021 V2EX