• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ANGEL333node.js - Evented I/O for V8 JavaScript
    MARYO
    MARYO --- ---
    Screencast apiary demo—by apiary.io
    http://docs.screencast.apiary.io/
    MARYO
    MARYO --- ---
    AREX: Aha, pochopil jsem to špatně. Namockovat server je určitě dobrá myšlenka.
    http://apiary.io/ znáš?
    AREX
    AREX --- ---
    MARYO: No jelikož uživatelské rozhraní bude spíš jednoduší, tak testy UI mě momentálně tolik netrápí. Tedy ani Cucumber bych do toho zatím tolik nemotal, ale časem na něj taky dojde řada počítám.

    Nicméně tak nějak se mi líbí ta představa, že klient nebude závislý na serverové implementaci. Chtěl bych totiž celkové workflow nastavit tak, že se napíše specifikace v BDD stylu pro server. Pak zatímco jeden developer bude bouchat serverovou implementaci podle toho, tak další člověk si vezme tu specifikaci a pomocí mocku bude vyvíjet klienta aniž by musel čekat, až bude implementace serveru připravena.

    Z mojí zkušenosti vím, že moc dobře nefunguje, když vývojáři serveru musejí být s implementací napřed a pak při chybách se k tomu vracet a dělat fixy. Navíc počítám, že mocky by se psali do separatního souboru, takže jakmile by server měl svojí implementaci, mocky by se odstavili a testy by proběhly proti tomu. Nahlášené bugy serveru se pak budou fixovat a klientský vývojář si zase zapne mocky a může pokračovat nerušeně dál.
    MARYO
    MARYO --- ---
    AREX: Já bych se snažil naopak nemockovat dokud to jde. Živej server asi ne, ale prostě nějaká testovací instance s testovacíma datama. Pak se na ty testy můžeš víc spolehnout. Klidně to pod tim fantomem spouštět můžeš (ale pokud to nemá žádnej grafickej výstup, pak se budou testy blbě debugovat, v seleniu vidíš, jak si to pěkně kliká). Jako commit hook si to můžeš nastavit taky, jen s tim bude ňáká práce to všechno nastavit. Commitneš, nahrajou se testovací data, spustěj testy a na konci to pošle report nebo se to prostě nedeployne na stage serveru když to neprojde.

    Na psaní těch testů bych použil něco jako CUCUMBER. Přijde mi to na to dělaný.
    AREX
    AREX --- ---
    Zdravím. Když už jste tu nakousli TDD/BDD ... Zajímalo by mne, jakým způsobem preferujete psát testy klientské strany. Mám NodeJS server, pro něj píšu separatní testy. Přijde mi tedy trochu zbytečný, aby klientské testy běhaly proti živému serveru. Navíc se mi líbí myšlenka, že můžu PhantomJS pověsit jako git pre-commit hook a nechat proběhnout testy. Jakmile by to bylo závislé na spuštěném serveru, bude to o kus obtížnější a déle to bude asi trvat.

    Na druhou stranu psát k vlastním testům ještě jednotlivé mocky/stuby je přeci jen trochu náročnější než rovnou přímé testy. A pak je to taky ten aspekt, že ani testy nedokážou pokrýt úplně vše a občas je potřeba si tu aplikaci taky zobrazit. Nejlépe ve spolupráci s LiveReload. To znamená, že server stejně bude muset být spuštěný.

    Jaký na to máte názor ?
    3108
    3108 --- ---
    EDMAN_DORT: inak moj tip, ze najlepsie sa naucis s Node pracovat prostrednictvom TDD/BDD : )

    http://visionmedia.github.io/mocha/ + potom nejake Assertions libs etc. daju sa v tom robit jak backend, tak frontend testy, unit aj end2end .

    odporucam si to preluskat, hlavne od ludi zo https://github.com/saucelabs
    EDMAN_DORT
    EDMAN_DORT --- ---
    3108: Jo diky, podivam se na to.
    3108
    3108 --- ---
    EDMAN_DORT: ja som si ten nodejs spravil ked som zacinal, bolo vtedy tak, ze free 48hod, tak som to vyklikal a dostal som este reward nejakych ich $5 ich internej meny za kazdy splneny kurz. Inak co sa tyka topicov je to celkom v pohode, vysvetlia zaklady. za 500CZK mi to pride pre node JS prehnane, ale je tam napriklad Backbone, ktory je super spracovany.

    Inak ak ta to zaujima trening zadar ma teraz aj 10gen

    https://education.10gen.com/courses/10gen/M101JS/2013_August/about 4FREE
    EDMAN_DORT
    EDMAN_DORT --- ---
    Zdravím, pouštím se pomalu do světa nodejs a baví mě to :D. Někoho by třeba mohlo zajímat, že na http://codeschool.com/ je celkem hezký úvodní online kurz. Stojí to cca 500 kč za měsíc, ale třeba pro mne je tam za ty peníze užitečného víc.
    ALMAD
    ALMAD --- ---
    3108: Dik. Kdybys vedel, dej vedet...ono cim vetsi konkurence, tim lip ;)
    3108
    3108 --- ---
    ALMAD: tazko povedat, pokial nevyroluju nejake specs, mozno ten nativny pristup k levelDB, mozno to bude vyhodne ako andorid backend pri vyuziti Google Cloud Messaging, mozno bude nizka latencia pri volani Google APIs aplikaciou.

    Ked som videl ako idu extendovat appscripts a JS integracia do Google Docs, tak s nodeJS backendom tam vyrobis uz slusne ERP :D

    Ale teraz vazne, neviem to osobne porovnat s nicim lebo som nezazil hostovanie nodejs appky, po blogoch si ludia chvalia to NodeJitsu, rovnako ako Joynet ci heroku.

    Asi bude appengine iba alternativa, a mozno este k tomu aj drahsia.
    ALMAD
    ALMAD --- ---
    3108: Vyhody proti jinym platformam?
    3108
    3108 --- ---
    Dnes boli na googleioePrague nejake rumours, ze AppEngine mozno ako dalsiu platformu bude supportovat NodeJS
    ANGEL333
    ANGEL333 --- ---
    ALMAD: jestli to chapu dobre, tak je na obojim, ale kod pise jen v nodu..
    ALMAD
    ALMAD --- ---
    3108: ah. Takze si na klientu a ne v nodu ;)
    3108
    3108 --- ---
    ALMAD: uz je to vyriesene v podstate. otazka smerovala nato ci riesit veci cez objekty, alebo classy.

    a spravne riesenie bolo cez classy, ze si spravis page object pattern, to znamena nasetujes do premennych hodnoty z DOMu, to znamena class names, ids, element names, selectors. nasledne vytvoris cez funckie, ktorymi volas dom a robis akcie na stranke, cize automatizujes preliezane, a nato nalepis mocha v spojeni bud s 'assert', 'should' alebo nieco dalsie. Klucovy ale bol ten page object pattern, a to ci ho implementovat cez object, alebo normalne class defintion a prototypovanie funkcii. kedze chces napriklad pri teste urobit n instancii a pustit ich zaroven (simulujes napriklad 3 browsery naraz, alebo 4 procesove vlakna. )

    express nebol potrebny lebo v postate ziaden webserver nebol nevyhnutny.
    ALMAD
    ALMAD --- ---
    3108: IMHO to co chces je vzit neco co ti usnadni routovani v aplikaci (Express?) a neco, co ti usnadni psani tech testu (mocha?).

    Muzes to chtit reimplementovat z cvicnych duvodu a mozna jsem nepochopil co chces, ale tohle mi z toho vypadlo ;)
    3108
    3108 --- ---
    Zdravim, riesite tu este niekto node.js? je tu nejak mrtvo, psoledny prispevok z 2.4.2012...

    Potreboval by som poradit. chcem si spravit v ramci Q&A projektu maly tool na automatizovane testovanie, kde vyuzijem #node.js, #webdriverJS #mocha ako test runner a reporter. Otazka je teraz, ako by ste mi odporucili osetrit page object pattern, ci spravit file page.js, kde si spravil class archetype pomocou triedy, teda function classname(){class properties: ""}, a na jednotlive funckne kroky urobit funkcie. napriklad bavme sa o google search. ze spravim funkciu na vyhladanie v searchbare, porovnanie getTtitle(result) so zadanym var querryString; a podobne. s tym ze var webdriverjs = require("webdriverjs"); bude v tejto page.js, a potom budem objekt page volat z test.js, ktory bude spustat mocha test.js -ten bude obsahovat nieco na styl var testPage = new Object(); a nad testPage.desiredmethod(argument) budem vykonavat jednotlive test stepy/testcases.

    Alebo druha varianta je, spravit page.js kde urobim notaciu var page = new Object(); page.title = null; page.url = ""; pageLoadTme: function() {}. a pod.

    nasledne v teste urobim var page = require("page"); a budem robit volat funkcie cez page.LoadTime etc.

    Nie som JavaScriptovy clovek, skorej Javista a teraz je premna celkom zmena implementacia objektoveho modelu cez vytvaranie prototypov, alebo cez genericky var variablename = new Object();

    som s tym dost stuck. Keby niekto vedel poradit, poslat linky, pripadne nejake hinty. piste sem, alebo do posty. DIK!
    GDY
    GDY --- ---
    POLOVI
    POLOVI --- ---
    mel bych dotaz na nekoho kdo pouziva spine.js pripadne neco nad commonJS
    priklady ze spine pouzivaji pro vytvoreni aplikace neco takoveho:
    var jQuery = require("jqueryify");
    var exports = this;
    jQuery(function(){
    var App = require("index");
    exports.app = new App({el: $("#article")}); 
    });
    

    ma to exports.app vubec nejakou funkci? je to nejak dosazitelne odsud v jinem souboru aplikace? jedine co se mi povedlo je vytvorit exports.app = new App uvnitr require('index') takze je pak dosazitelna pres require('index').app ale z toho spine.js hlavniho index.html nejak nevim jak bych to dostal.

    Rad bych nejak rozumne sdilel instanci modelu Session nejlip dosazitenou prave pres treba app.session protoze ji pouzivaji pak vsechny modely a controllery
    Kliknutím sem můžete změnit nastavení reklam