V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lueffy
V2EX  ›  Java

身为一个半路出身的 Java 程序员 如何规范代码

  •  
  •   lueffy · 2018-06-21 14:19:00 +08:00 · 4630 次点击
    这是一个创建于 2349 天前的主题,其中的信息可能已经有所发展或是发生改变。

    转行 Java,刚工作几个月,目前所在项目组是刚组的 Java 团队,所以没有人带 做的第一个项目就是一个班主任管理系统,主要是查,现在也上线了。 现在在做一个外教招聘系统,业务比较简单,后台的部分前后端都自己写 那么问题来了,虽然东西写出来能用,但是我总觉的心虚,总是觉得自己“不正规” 开发软件用的是 idea 装了阿里规范的插件,如果有提示我不规范的地方,我会立马改正 但是总是觉得自己还是有不规范的地方,具体我不知道,因为我如果知道我就改了

    我的问题是,我怎么才能知道自己的代码是否规范,在没有指导,没有 code review 的情况下? 多读一些源码? 如果可以的话,还是比较希望有那种教程式的源码,因为一般代码,虽然有些地方好,但如果经验不足,你也不知道它好,更不知道好在哪里

    总之,身为一个半路出身的 Java 程序员,怎么才能让自己的代码规范起来呢?有什么推荐的书籍或者教程吗?

    26 条回复    2018-06-22 10:28:19 +08:00
    lueffy
        1
    lueffy  
    OP
       2018-06-21 14:24:57 +08:00
    举个栗子吧
    ORM 接数据,我都是 Java bean 和 数据库字段一模一样 (是用逆向工程生成的实体类)
    但是新来的一个三年经验的小伙伴说这样不规范,如果数据库表有变动,就会有问题,应该用 VO 去映射表中的字段 balabala
    然而其实我不是很懂
    之前听一个朋友说他们公司都会有相关的规范,那么这些规范,或者惯例,我上哪儿去学习?
    jswh
        2
    jswh  
       2018-06-21 14:28:41 +08:00
    做好 DRY, 做好 UT,距离干净的代码就走了一半。实在要看书,看看 clean code 吧
    yogogo
        3
    yogogo  
       2018-06-21 14:35:12 +08:00
    偶尔看看 github 上面的代码,还有看书~
    xiao7117
        4
    xiao7117  
       2018-06-21 14:35:33 +08:00
    推荐:《重构-改善既有代码的设计》
    Raymon111111
        5
    Raymon111111  
       2018-06-21 14:36:56 +08:00
    看看组里别的代码怎么写的

    不知道怎么是规范的话, 和组里其他人保持一致也是好的
    ren2881971
        6
    ren2881971  
       2018-06-21 14:40:30 +08:00
    写好有效注释先。。
    x7395759
        7
    x7395759  
       2018-06-21 14:58:51 +08:00
    代码规范并不是代码的格式规范,更多的是思想的规范,所以这不是一个一蹴而就的过程,需要在编写代码的不断的学习,记录,练习,进而成为一种习惯。
    xiaowangge
        8
    xiaowangge  
       2018-06-21 15:12:55 +08:00   ❤️ 1
    《唯品会 Java 开发手册》 1.0 版

    https://vipshop.github.io/vjtools/#/standard/
    blenderal
        9
    blenderal  
       2018-06-21 15:13:36 +08:00   ❤️ 1
    去考个阿里巴巴编码规范证书考一遍大致就知道那些规范了
    yazoox
        10
    yazoox  
       2018-06-21 17:04:20 +08:00
    用 lint,机器比人靠谱。
    多报几次错,多 fix 几个 bug,你就知道该如何“规范”代码了。
    shanshuiwen
        11
    shanshuiwen  
       2018-06-21 17:40:20 +08:00
    ide 装个阿里巴巴规范插件,有事没事扫一扫、看一看
    shanshuiwen
        12
    shanshuiwen  
       2018-06-21 17:41:01 +08:00
    写得多了,自然就规范了
    hitmanx
        13
    hitmanx  
       2018-06-21 19:23:16 +08:00   ❤️ 1
    我的理解,你说的更多的是“代码质量”而不是“代码规范”。

    这个靠个人提高就比较难了,需要多看别人的代码还得经常去思考,但是很多情况下你不熟悉这个项目并且接触不到作者的话,基本只能看到代码是写成什么样,但是很难知道代码为什么要写成这个样,是有什么样的想法和背景在里面,哪些又是预留给未来扩展用的。

    相对来说,如果你的项目,有牛人给你 code review 的话会进步快很多,因为你能从中学到东西,看到自己看不出的问题,学到更好的设计方法。自己看自己的代码很难看出问题,但是在别人尤其是有经验的开发者看来可能处处都是问题
    nl101531
        14
    nl101531  
       2018-06-21 19:40:28 +08:00 via Android
    阿里 Java 开发手册啊
    AltairT
        15
    AltairT  
       2018-06-21 19:40:53 +08:00 via iPhone
    我能说我自学时觉得应该是从数据库查询是返回 bean,然后根据情况决定到页面是否用再转换成 vo。

    结果来的这家公司用的 spring,springmvc 加 jdbc 封装,前台是 jq jsp,好多地方都是查出二维数组,有的封装成 bean 更多是从数组拿值然后放到 jsp 页面……
    mentalkiller
        16
    mentalkiller  
       2018-06-21 20:18:21 +08:00
    阿里有一个 java 代码规范,可以搜索下,还是比较权威的
    MoHen9
        17
    MoHen9  
       2018-06-21 20:31:26 +08:00 via Android
    谷歌不是有个 Java 代码规范吗?我觉得非常好,为什么不找来看看呢?
    acupmvp
        18
    acupmvp  
       2018-06-21 20:47:00 +08:00
    不必过于追求代码规范,将业务写清楚,代码写工整,可读性强即可。
    你可以参考下我之前发的内容。应该可以开阔一些思路。
    arthasgxy
        19
    arthasgxy  
       2018-06-21 21:11:27 +08:00
    搞数据的,我来说一下我的情况,权当听个笑话吧。

    我因为上学的时候英语没听过课,所以可以说是个英语盲,会的英语单词不超过 3、5 十个的那种。
    当然我也用不到 java,主要是用 python 和 sql,常用拼音来写变量 /字段,老大开玩笑说我拉低全组逼格,所以说起规范,可能我的规范是 0。

    但现实是,别人实现不了的功能我能实现,同样的地方我不容易出错别人写就会出问题。(当然这话有点拽,但很多次证明至少我还是有些料的,这里就不细说了)
    我的理解,写东西之前先多想想,哪怕再小的功能,用笔在本子上写写画画,拆解功能,再想想有什么可能出现的问题,记下来。比什么都管用。
    最后当自己写的代码出问题的时候,修完再去多想想自己为什么会出问题,以后怎么来避免。
    laudukang
        20
    laudukang  
       2018-06-21 21:32:35 +08:00
    wdlth
        21
    wdlth  
       2018-06-21 22:40:42 +08:00   ❤️ 1
    装上 SpotBugs, PMD, SonarLint,规范标记可以打到你怀疑人生。
    jerrry
        22
    jerrry  
       2018-06-21 22:45:58 +08:00 via Android
    @arthasgxy 学好英语跟写好代码不冲突
    fuchaofather
        23
    fuchaofather  
       2018-06-22 09:54:03 +08:00
    可以参考阿里巴巴的规范. https://github.com/alibaba/p3c?spm=a2c4e.11153940.blogcont69327.9.49d74b623wPqPA

    国内用这个规范的应该不少,
    specita
        24
    specita  
       2018-06-22 09:57:26 +08:00
    idea 装个 阿里的规范 插件
    thinkmore
        25
    thinkmore  
       2018-06-22 10:17:14 +08:00   ❤️ 1
    其实你这是不自信。

    首先相信自己,其次你通过规约软件提醒你不符合规范的都改了,这很好,然后看看别人写的代码,学习写的好的地方。
    有空看看你常用工具包的源码,看看大神怎么写的,比如 guava、commons 等。
    Sirormy
        26
    Sirormy  
       2018-06-22 10:28:19 +08:00
    当然是看规范咯
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5609 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 03:20 · PVG 11:20 · LAX 19:20 · JFK 22:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.