Wpis z mikrobloga

@bonus:

JavaScript does not have an authoritative style guide. Instead there are several popular ones.


Nieważne czy są popularne czy nie, ale indent 2 spacjowy jest idiotyczny, nigdy nie zaakceptuję czegoś poniżej 3 spacji. Również nie widziałem jeszcze kodu w JS który by nie używał średników.
  • Odpowiedz
@bonus: Wiesz czemu jądro Linuxa używa 8 spacji?

Rationale: The whole idea behind indentation is to clearly define where a block of control starts and ends. Especially when you've been looking at your screen for 20 straight hours, you'll find it a lot easier to see how the indentation works if you have large indentations.


Now, some people will claim that having 8-character indentations makesthe code move too far to
  • Odpowiedz
@Ginden: @MirkoStats:

Albo używać io.js (fork node.js który niedługo i tak będzie wspólnym repo z node). Jeśli chodzi o samego babel.js w node, to podczas developmentu zamiast osobnego skryptu buildującego, sam node może Ci transpilować kod podczas uruchomienia. require("babel/register"); w pliku wejściowym i możesz sobie pisać w es6. Osobiście polecam opcję io.js do developmentu.

Minusem es6 w tym momencie jest w konieczność transpilowania do es5 dla npm (teoretycznie
  • Odpowiedz
@regis3: no to coś źle robię :D Odpalam skrypt z babel-node - działa ok. Pobrałem iojs v4.0.0 na silniku 4.4.63.26 i nie działają najprostsze skrypty es6 :D
próbowałem nawet z flagą --es_staging

let {prop: g} = {a: 21, prop: "asd"};
SyntaxError: Unexpected token {
  • Odpowiedz
@MirkoStats: destructuring objects nie jest jeszcze wspierane w v8. Standardowo uruchamiasz io.js z --use_strict mode (let, class, const).

Jeśli potrzebujesz niemal wszystkich featursów es6 (w sumie destructuring to jedna z najlepszych zmian) to pozostaje babel.js :)
  • Odpowiedz
@MirkoStats: działa.

require('babel/register');
require('app.js');

Masz wtedy aplikacje napisaną w es6 (app.js) bez zależności w postaci babel. Na node uruchamiasz ją przy użyciu tego wrappera, a za pomocą iojs bez (jeśli
  • Odpowiedz