M.....s
M.....s
Moje SDK do API Wykopu takie piękne https://github.com/bnt44/wykop-api

Wrzucac na npm?
#programowanie #nodejs #naukaprogramowania #javascript
  • Najlepsze
  • Wszystkie komentarze
bonus
@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
G.....n
G.....n
@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ć:

var id = 3;
var page=1;
rbielawski
rbielawski
@moon_bluebird: node packet manager
M.....s
M.....s
@moon_bluebird: https://www.npmjs.com/
wtedy wystarczy npm install wykop-api i już masz w swoim folderze (oczywiście dotyczy to nodejs)
m.....i
m.....i
w JS używamy 2 spacji zamiast 4


@bonus: Można prosić źródło?
G.....n
G.....n
@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
G.....n
G.....n
@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) {
G.....n
G.....n
@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ą.
G.....n
G.....n
@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)?
G.....n
G.....n
@m4kb0l: Jeszcze nie, trzeba transpilować Babelem.
G.....n
G.....n
@MirkoStats: Masz pull requesta z Gulpem.
m.....i
m.....i
@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.
bonus
@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
regis3
@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
Nicarim
Nicarim
@MirkoStats ło jezuniu ale copy paste, ja bym w połowe strzelił sobie w głowe.
I czemu w ogóle tyle whitespaceów to ma?
Nicarim
Nicarim
@MirkoStats wołaj jak zrobisz nową wersje, chętnie przeglądne
regis3
@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 :)
regis3
@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