@MirkoStats: DRY - słyszałeś kiedyś? XD ten kod można skrócić spokojnie o ponad połowę + w JS używamy 2 spacji zamiast 4 w tabie i nie robimy entera po każdej linije, fatalnie czyta się ten kod
@MirkoStats: Wcale, że nie, bo biblioteka może mieć defaultowe wartości, np. brak podania page zwraca stronę = 1. Naprawdę, to jest znacznie wygodniejsze, zwłaszcza dzięki faktowi, że można zrobić:
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
@MirkoStats: Ogólnie to radzę wykorzystywać obiekty. Np. masz metodę
WykopAPI.prototype.buryLink = function (param1, param2, callback) { Nie lepiej zrobić WykopAPI.prototype.buryLink = function ({id, reason}, callback) {
@MirkoStats: Wyobraź sobie, że do API dochodzi dodatkowy wymagany parametr na np. stream/index Nie dość, że ludzie stary kod przestanie działać, to aktualizacja biblioteki będzie wymagała przepisania kodu, by działał z nową wersją.
@MirkoStats: No i jeszcze dochodzi fakt, że do obiektu nie trzeba pamiętać kolejności parametrów, do zwykłych argumentów - trzeba. W przypadku tylko np. strony jest to intuicyjne, jeśli masz już 3 parametry to trochę gorzej. Czy sygnatura funkcji to function(entryId, commentId) czy function(commentId, entryId)?
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.
@maciej-jantarski: Spoko :) Kwestia uznania, ale mimo wszystko ja biorę przykład od najlepszyh i w sumie bardziej mi odpowiada 2 spaces ze względu na callback hell itp smaczki JS
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
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
Naprawdę, to jest znacznie wygodniejsze, zwłaszcza dzięki faktowi, że można zrobić:
var id = 3;var page=1;wtedy wystarczy npm install wykop-api i już masz w swoim folderze (oczywiście dotyczy to nodejs)
@bonus: Można prosić źródło?
Np. masz metodę
WykopAPI.prototype.buryLink = function (param1, param2, callback) {Nie lepiej zrobić
WykopAPI.prototype.buryLink = function ({id, reason}, callback) {Nie dość, że ludzie stary kod przestanie działać, to aktualizacja biblioteki będzie wymagała przepisania kodu, by działał z nową wersją.
W przypadku tylko np. strony jest to intuicyjne, jeśli masz już 3 parametry to trochę gorzej. Czy sygnatura funkcji to
function(entryId, commentId)czyfunction(commentId, entryId)?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.
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
I czemu w ogóle tyle whitespaceów to ma?
Jeśli potrzebujesz niemal wszystkich featursów es6 (w sumie destructuring to jedna z najlepszych zmian) to pozostaje babel.js :)
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