V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Node.js
Express
PPA for Ubuntu
ppa:chris-lea/node.js
V2EX  ›  Node.js

语言规范是驼峰写法, SQL 规范是下划线写法,大家在项目中怎么权衡这两种写法的?

  •  
  •   scarlex · 319 天前 · 4478 次点击
    这是一个创建于 319 天前的主题,其中的信息可能已经有所发展或是发生改变。

    作为一个强迫症患者,想两方面都满足...

    我目前找到的这些方法:

    • 用 sequelizejs 这类 ORM ,在 ORM 内部实现驼峰与下划线之间的转换
    • 在语言内部用驼峰写法,然后涉及到下换线的地方都用 data['user_id'] 的形式

    我个人是倾向于第二种方式的,不知道大家会怎么权衡?

    41 回复  |  直到 2016-11-13 14:25:03 +08:00
        1
    blakejia   319 天前
    弱弱的问一句。为啥你的主题背景是全黑色的呢
        2
    codeface   319 天前
    @blakejia node.js 下的节点都是这样的
        3
    isCyan   319 天前
    @blakejia 这是 Node.js 节点的主题吧
        4
    pktangyue   319 天前   ♥ 2
    语言规范是驼峰写法, python 表示不服
        5
    yangff   319 天前
    综合一下,
    Fuck_Variable_1
        6
    scarlex   319 天前
    @pktangyue 所以我发到了 Node.js 节点...
        7
    ksco   319 天前
    @scarlex 这表情的背景好违和啊
        8
    scarlex   319 天前
    @ksco V2EX plus 提供的表情在 Node.js 节点下都好违和
        9
    Tuisku   319 天前
    我感觉 语言规范什么的 都是为了让代码看起来更舒服更顺眼 所以我选择看起来更直观我看着也顺眼的“(大)驼峰式”
    e.g. : UserName

    因为总感觉“小驼峰式”看起来很奇怪 => userName
        10
    tabris17   319 天前
    我司要求数据库命名用驼峰法,找谁评理去?
        11
    DoraJDJ   319 天前
    写惯了 Java ,现在变量命名都在用驼峰写法。

    9 楼说的大驼峰式估计是 C# 带出来的吧
        12
    scarlex   319 天前
    @Tuisku
    但这种形式的话,在 SQL 里面查询就要带上引号拉, SELECt "UserName" FROM Users;
    这也是我纠结的一部分。
        13
    scarlex   319 天前
    @tabris17 用了驼峰基本上都会用上 ORM 吧?
        14
    tabris17   319 天前
    @scarlex 我们后端是 Python , PEP8 规范,下划线命名好嘛!!!!
        15
    morning   319 天前
    推荐一个带转换的 ORM , https://github.com/XadillaX/Toshihiko
        16
    murmur   319 天前
    mybatis 一句配置完美解决
        17
    sampeng   319 天前
    团队用什么就用什么,没什么好纠结的。
    个人?那还不够你牛逼的。。随便搞。。反正只有自己看
        18
    scarlex   319 天前
    @tabris17 咦, python 后端的话数据库用下划线命名很自然啊...还驼峰就搞不懂了
        19
    lonenol   319 天前
    各种实体类转 SQL 语句,table 转实体类的工具都能自动转换吧
        20
    billlee   318 天前
    因为我喜欢用长名字,所以都用驼峰法,下划线太占地方了
        21
    scnace   318 天前 via Android
    下划线 lint 不会报错?
        22
    scarlex   318 天前
    @scnace 可以设置 linter 的规则啊...
        23
    smallpath   318 天前 via Android
    node 直接搭配 mongodb 和 redis 吧,全驼峰不用管 mysql 下划线了,自动转驼峰其实挺烦人的,比如 vue 的组件名称
        24
    Tuisku   318 天前 via Android
    @DoraJDJ 不是 C#带出来的,从入门编程开始我就感觉大驼峰顺眼 😂 所以不管什么语言我一般都这么命名。话说我写.Net 的时候 ReSharper 还一直提示我把大驼峰改成小驼峰,讨人嫌弃哈哈。
        25
    ke1e   318 天前 via Android
    这就是我不喜欢 django 的原因,作为 Python 框架居然用着驼峰命名法
        26
    dexterzzz   318 天前
    写好的驼峰看起来很舒服
        27
    RihcardLu   318 天前
    如果是数据库字段变量就下划线,其他驼峰。
        28
    onlyice   318 天前 via Android
    @ke1e Django 哪里用到了驼峰?想不出来
        29
    misaka19000   318 天前
    数据库习惯表名小写,字段大写+下划线
        30
    poorcai   318 天前 via Android
    我感觉驼峰写法好看,个人见解
        31
    Trim21   318 天前 via Android
    驼峰写起来舒服啊。。。小写字母后面的基本靠自动补全,下划线明明还要打下划线。。。
        32
    forestyuan   318 天前
    如果是工作中的代码,肯定要按公司的规定来。如果是个人项目,喜欢怎么写就怎么写,我现在还用老掉牙的匈牙利命名法呢。
        33
    plqws   318 天前
    @Tuisku Resharper 应该是推荐用大驼峰的,估计是你记错了。。
        34
    tabris17   318 天前 via iPhone
    @scarlex 我们的 dba 牛逼呗,不符合命名规范不让上线哦
        35
    Warder   318 天前
    前端如果对后台返回的数据中变量格式不爽的话,可以用 humps ,。
    > humps - Underscore-to-camelCase converter (and vice versa) for strings and object keys in JavaScript.
        36
    Lpl   318 天前
    @ksco 因为这个表情不是透明的 233
        37
    breakeryang   318 天前
    不清楚是你们用什么样的技术栈, 但是:
    1. sql 一般不区分大小写
    2. 开发语言里不宜嵌入另一种语言, 如字段名不应该在开发语言中出现
    3. 推荐 ORM 自动转换
        38
    Mistwave   318 天前 via iPhone
    @Tuisku Haskell 严格区分两种驼峰式😂😂😂
        39
    solee   317 天前
    js 写数据传递都是下划线,当然参数命名都是驼峰。规范这个东西只要有个自己遵守的标准就行吧~
        40
    gam2046   317 天前
    @Tuisku @DoraJDJ 我觉得这个是有原因的, Java 里没有 Property 的概念,属性都是用 Getter/Setter 方法实现的,那么命名的时候都有个动词, getUserName/setUserName ,我觉得这样显然小驼峰比大驼峰好看多了。至于微软系的,完全没有必要弄个 GetUserName 的方法去设置属性,而单独的用 UserName = "xxxx",比小驼峰好看多了。 Java 的方法名和老太太的裹脚布一样,又臭又长,我第一个看 Structs 的类名都蒙了, xxxxAndxxxxx 这个鬼名字都来了,都可以直接当作文档来看。通常 Java 方法名都是以一个动词开头然后接着名词,而 C#一类的几乎就是直接一个名词,或直接一个动词就没了。
        41
    tudou527   317 天前
    参考 Java 引入 DO 层,这个问题就很好解决了。
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1854 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.7.5 · 78ms · UTC 10:53 · PVG 18:53 · LAX 03:53 · JFK 06:53
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1