Skip to content

Instantly share code, notes, and snippets.

@suissa
Created December 13, 2014 14:38
Show Gist options
  • Save suissa/b49452298441ed3d3c9c to your computer and use it in GitHub Desktop.
Save suissa/b49452298441ed3d3c9c to your computer and use it in GitHub Desktop.
comma-first por que usar?

{<10>} Bom se você acompanha meus códigos já deve ter pego algo assim:

var mongoose = require('mongoose')
  , Schema = mongoose.Schema
  , ClassSchema = { title: { type: String, default: '' }
    , description: { type: String, default: '' }
    , video: { type: String, default: '' }
    , content: { type: String, default: '' }
    , duration: { type: String, default: '' }
    , order: { type: Number, default: 0 }
    }
  , StudentSchema = { type: Schema.Types.ObjectId, ref: 'User' }
  , CourseSchema = new Schema({ id: { type: Number, min: 0 },
    , name: { type: String, default: '' }
    , slug: { type: String, default: '' }
    , video: { type: String, default: '' }
    , created_at: { type: Date, default: Date.now }
    , updated_at: { type: Date, default: Date.now }
    , tags: [{ type: String, default: '' }]
    , classes: [ ClassSchema ]
    , students: [ StudentSchema ]
  });

Ai você se pergunta, por que raios você escreve dessa forma tio Suissa?

{<11>}

Porque sim Zequinha!

{<12>}

Bom EU uso 2 espaços como identação e para esse tipo de identação o uso de comma-first facilita na leitura visual de erros.

Vamos ver a definição de variáveis normais:

var a = "América", 
  b = "Brasil", 
  c = "Chile", 
  d = "Dinamarca", 
  e = "Eritréia", 
  f = "Finlândia", 
  g = "Groêlandia", 
  h = "Haiti";

Nesse caso o início da coluna das variáveis não fica alinhada, vamos ver com comma-first:

var a = "América"
  , b = "Brasil"
  , c = "Chile"
  , d = "Dinamarca"
  , e = "Eritréia"
  , f = "Finlândia"
  , g = "Groêlandia"
  , h = "Haiti"
  ;

Dae você se pergunta.

Bah mas só por isso mano? Vá tomar no seu cú!

Oxiiii, calma tem mais coisa. ;)

Vamos ver do jeito normal quando acontece um erro:

var a = "América", 
  b = "Brasil", 
  c = "Chile"
  d = "Dinamarca", 
  e = "Eritréia", 
  f = "Finlândia", 
  g = "Groêlandia", 
  h = "Haiti";

E aí achou o erro? Pois é se fossem muitas variáveis passaria desercebido.

  c = "Chile"

A partir dessa linha todas as outras variáveis serão globais e isso não acusará NENHUM ERRO!

Então vamos ver como fica com comma-first:

var a = "América"
  , b = "Brasil"
  c = "Chile"
  , d = "Dinamarca"
  , e = "Eritréia"
  , f = "Finlândia"
  , g = "Groêlandia"
  , h = "Haiti"
  ;

{<15>}

Mas e com objeto como fica essa bagaça?

Bom vamos ver um exempo de um objeto e um array no formato normal:

var o = { 
  a : "América", 
  b : "Brasil", 
  c : "Chile", 
  d : "Dinamarca", 
  e : "Eritréia", 
  f : "Finlândia", 
  g : "Groêlandia", 
  h : "Haiti"
  },
  a = [ 
    [ "América", "Brasil" ], 
    [ "Chile", "Dinamarca" ], 
    [ "Eritréia", "Finlândia" ], 
    [ "Groêlandia"], 
    [ "Haiti" ]
  ];

E agora com comma-first:

var o = 
  { a : "América"
  , b : "Brasil"
  , c : "Chile"
  , d : "Dinamarca"
  , e : "Eritréia"
  , f : "Finlândia"
  , g : "Groêlandia"
  , h : "Haiti"
  },
  a = 
  [ [ "América", "Brasil" ]
  , [ "Chile", "Dinamarca" ]
  , [ "Eritréia", "Finlândia" ]
  , [ "Groêlandia"]
  , [ "Haiti" ]
  ];

Erros na forma normal:

var o = { 
  a : "América", 
  b : "Brasil", 
  c : "Chile", 
  d : "Dinamarca"
  e : "Eritréia", 
  f : "Finlândia", 
  g : "Groêlandia", 
  h : "Haiti"
  },
  a = [ 
    [ "América", "Brasil" ], 
    [ "Chile", "Dinamarca" ], 
    [ "Eritréia", "Finlândia" ]
    [ "Groêlandia"], 
    [ "Haiti" ]
  ];

Erros com comma-first:


var o = 
  { a : "América"
  , b : "Brasil"
  , c : "Chile"
  d : "Dinamarca"
  , e : "Eritréia"
  , f : "Finlândia"
  , g : "Groêlandia"
  , h : "Haiti"
  },
  a = 
  [ [ "América", "Brasil" ]
  , [ "Chile", "Dinamarca" ]
  [ "Eritréia", "Finlândia" ]
  , [ "Groêlandia"]
  , [ "Haiti" ]
  ];

{<18>}

Cloncluíndo que eu acho interessante para minha forma de programar com 2 espaços e comma-first, agora se você vai usar ou não é problema seu, falei porque eu uso, o título é meio chamariz. :p

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment