lueffy
V2EX  ›  Java

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

  •  
  •   lueffy · Jun 21, 2018 · 5517 views
    This topic created in 2918 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

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

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

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

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

    国内用这个规范的应该不少,
    specita
        24
    specita  
       Jun 22, 2018
    idea 装个 阿里的规范 插件
    thinkmore
        25
    thinkmore  
       Jun 22, 2018   ❤️ 1
    其实你这是不自信。

    首先相信自己,其次你通过规约软件提醒你不符合规范的都改了,这很好,然后看看别人写的代码,学习写的好的地方。
    有空看看你常用工具包的源码,看看大神怎么写的,比如 guava、commons 等。
    Sirormy
        26
    Sirormy  
       Jun 22, 2018
    当然是看规范咯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4128 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 132ms · UTC 04:12 · PVG 12:12 · LAX 21:12 · JFK 00:12
    ♥ Do have faith in what you're doing.