Comma-first - Por que usar?

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: '' }
    , slug: { type: String, default: '' }
    , content: { type: String, default: '' }
    , duration: { type: String, default: '' }
    , order: { type: Number, default: 0 }
    }
  , TeacherSchema = { 
      type: Schema.Types.ObjectId, ref: 'User' 
    }
  , StudentSchema = { 
      type: Schema.Types.ObjectId, ref: 'User'
    }
  , CourseSchema = new Schema({ 
      id: { type: Number, min: 0 }
    , teacher: TeacherSchema
    , 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?

Porque sim Zequinha!

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"
  ;

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" ]
  ];

Concluindo 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

Comentários

comments powered by Disqus