S křížkem po funusu ale přece! V tomto článku bych chtěl
několika větami okomentovat :lednovou přednášku":http://www.java.cz/detail.do?…
Jakuba Podlešáka Java API
pro RESTful web services. Po obyčejném blogování se mi už pekelně
stýskalo. Od půlky prosince totiž nedělám nic jiného než že se snažím
přivést k životu naše kontaktní
čočky.
REST
REST chápu jako soubor pravidel pro manipulaci s daty po síti
(zpravidla pomocí HTTP protokolu). V RESTu se pracuje se resourci –
zdroji. Každý zdroj má svoji unikátní adresu. Pomocí volání adresy
zdroje s ním lze provádět operace. Od prostého načtení po
vytvoření, modifikaci až po smazání. Kromě zavolání zdroje pomocí
adresy (URL) lze do těla požadavku zabalit další data – například
pro vytvoření nového zdroje. Data mohou být v různé formě –
např XML, JSON, plain text…
REST naopak nedefinuje autentizaci a autorizaci uživatelů. REST je
bezstavový.
Jak je to s tou stavovostí RESTu?
A právě o stavovosti RESTu bych se chtěl zamyslet. Na
přednášce proběhla vášnivá debata na téma stavovost RESTu. Padly zde
názory, že když pracuju s webovou aplikací používající REST a
uložím nový zdroj, tak se přece musí jednat o stavové chování.
Vždyť se přece změnil stav aplikace.
Výše uvedený názor je nesmysl. Se stavovostí RESTu je to stejně
jako se stavostí HTTP protokolu – je nestavový. Uvedu na
jednoduchém příkladu. Tím příkladem jsou sessions.
Příklad se sessions
Sessions fungují tak, že server přibalí do odpovědi klienta unikátní
idenfikátor, který označuje session id. Toto cookies se pak přenáší při
další komunikaci mezi serverem a klientem. Klient session id přibaluje buď
do:
A naprosto stejně to funguje i s RESTem. Když budeme mít
resource na adrese http://vavru.cz/eshop/vytvorit-kosik/
,
může odpověď vypada například takto –
http://vavru.cz/eshop/kosik/wsdei9012309a/
. Dostali
jsme zpět adresu na nově vytvořený košík. Když pak klient chce
s tím to košíkem (každý klient má svůj košík) musí uvést celou
adresu košíku. Takže pro přidání nové položky bychom mohli použít
například takovýhle odkaz –
http://vavru.cz/eshop/kosik/wsdei9012309a/pridat-produkt/
a v těle požadavku specifikovat o jaký produkt se jedná a
například počet kusů.
Zdá se vám to jednoduché?
Mně taky. Proto nechápu tolik případů nepochopení ze strany
posluchačů. Možná jsem to celé jenom špatně pochopil a chyba je na mé
straně. V tom případě prosím nějakého zkušeného RESTovače, aby
mě například pomocí komentáře přivedl na správnou cestu.
Celý článek 28. February 2008
Snad nikdy v životě jsem
nestrávil tolik času prací u počítače jako poslední tři týdny.
V tomto krátkém čase jsem vdechnul život eshopu
VaseCocky.cz – najdete ho na adrese www.vasecocky.cz.
Nemějte strach, že tohle bude nějaký PR článek. Žádné
vyjmenovávání úžasných vlastností eshopu, velkých slev apod. Pouze chci
popsat jaké ty poslední tři týdny byly. Jednoduše co obnášelo vytvoření
a zprovoznění našeho ehopu.
Myslím, že lze těžko nalézt článek, který se by se více hodil na
osobní blog, než je právě tento.
Proč kontaktní čočky?
Nikdy v životě jsem nebyl klasickým zaměstnancem. Jako kontaktor
jsem posledních 6 let pracoval převážně pro dvě firmy, ale měl jsem
i svoje menší soukromé projekty. Nemám rád nedostatek
motivace. Životní styl, kdy člověk chodí do nějaké práce, tam
8 hodin něco dělá, a poté se sebere a jede domů. Vidím to všude
kolem sebe. Je tu hodně lidí, kteří svoji práci nemají rádi. Píšu to,
protože když jste někde zaměstnaný často časem zjistíte, že vlastně
stačí, když toho budete dělat o mnoho méně – že to vlastně
stačí. A když je nějaký problém, tak jej stačí vhodně okomentovat
a poslat odpovědnost za problém o dům dál. Opět jsou to věci, které
jsem viděl kolem sebe.
Léta jsem se snažil pracovat nejlépe jak jsem uměl. Snad jsem se za tu
dobu i něco naučil. A teď od 1. ledna 2008 přišel přelom.
V nové práci teď používám jenom Javu – všechny ostatní moje
stávající znalosti zde přímo neuplatním. Mluvím např. o – PHP,
ActionScript, AJAX, XHTML, CSS, C#. Nechtělo se mi tyhle znalosti zahodit.
Chtěl jsem je dále využívat. A nejlépe tak, že tentokrát nebudu nic
programovat pro zákazníky, nýbrž pro sebe.
Již velmi záhy co jsem začal programovat, jsem chtěl mít svojí firmu
– software faktory. Dělat weby na zakázku. Postupně jsem tuto myšlenku
opustil. Jedna věc je totiž dělat skvělé weby, a zcela jiná
(důležitější), je nalézt zákazníky. A právě kvůli tomu jsem si
na konec rozmyslel risk v podobě založení firmy, najmutí alespoň
jednoho zaměstnance, kanceláří.
Na podzim jsem na setkání spolužáků ze střední školy vedl
debatu s Martinem Bláhou na téma založení vlastní
firmy. Martin už sice vlastní firmu na vedení účetnictví, ale rád by se
vrhnul i do nečeho jiného.
Netrvalo to ani tři týdny a už jsme měli založenou firmu – její
jméno je Maternia (webová prezentace se
připravuje). V tuto chvíli jsme ještě vůbec netušili co vlastně
budeme dělat. Pouze jsme věřili svým schopnostem. Věřili jsme tomu, že
jsme schopni se v téhle republice v něčem prosadit. No vlastně
naše slova byla ještě mnohem odvážnější :)
V říjnu, listopadu a prosinci jsme učinili několik schůzek, abychom
vymysleli, co vlastně bude Maternia dělat. Během prvních schůzek jsme si
ujasnili hrubý záměr firmy – chceme něco prodávat na
internetu. Toto rozhodnutí mělo tyto základní důvody:
- Já umím udělat internetový obchod na míru (což považujeme za velkou
konkurenční výhodu proti polovičatým univerzálním shopům)
- Umím zajistit všechno ostatní co s tím souvicí – domény,
hosting, reklama…
- Martin a jeho účetní firma nám může hravě vést účetnictví
Ohromnou výhodou je, že základní věci si umíme udělat sami.
Dostali jsme se do momentu, kdy jsme už jistě věděli, že chceme něco
prodávat na internetu, ale ještě jsme něvědeli co.
Padlo spousta nápadů (ty jsou součástí firemního knowhow a nemůžu je
prozrazovat :)). Vítězem se nakonec staly kontaktní čočky.
Po analýze internetového trhu s kontaktními čočkami jsme jednoduše
věřili, že jsme schopni udělat internetový obchod, který bude mít spoustu
předností oproti stávajícím eshopům.
V podstatě se dá říci, že zde nebyl žádný internetový
obchod s kontaktními čočkami, který by vytvořili
profesionálové. Kdyby jsme byly v jiném článku, tak bych
uvedl výčet chyb, které mám na mysli. Ale v tomto kontextu by to nebylo
fair.
Proč Vaše kontaktní čočky?
Název Vaše kontaktní čočky se nám zdál jako
nejlepší z ještě volných domén. To byste nevěřili pro jaké
všechny varianty slovního spojení kontaktní čočky jsou
obsazené domény. Úplně pro všechny varianty :). Koupili jsme tedy www.vasecocky.cz, variantu s pomlčkou
www.vase-cocky.cz a také dvě delší varianty
www.vase-kontaktni-cocky.cz a
www.vasekontaktnicocky.cz.
Pár slov o našem eshopu
Chtěli jsme vytvořit eshop, kde by skvěle nakupovalo. Soustředili jsme se
zejména na:
- Jednoduchý a přehledný design stránek
- Méně je často více. Proto na stránky nedáváme zbytečné prvky. Při
procesu odeslání objednávky dokonce není zobrazen ani sloupec menu
s kategoriemi, protože v té chvílí je nepodstatný. Design má na
svědomí skvělý grafik Abe.
- Jasnou navigaci a ovládání
- Přehledné hlavní a pomocné menu, vhodné nadpisy, vhodné titulky
stránek, vhodné url – to všechno jsou věci, kterým jsme věnovali
velkou pozornost.
- Intuitivní práci s nákupním košíkem
- Košík jsme navrhovali s ohledem na intuitivnost ovládání. Proto
jsme použili stejně velké písmo jako v ostatním textu (stávající
eshopy často používají nečitelné pidipísmo). V košíku lze
přidávat (klonovat produkty), odebírat produkty, měnit parametry a
množství produktu pomocí AJAXu. Je to velmi rychlé. O výsledku všech
těchto akcích je nakupující upozorněn barevnou hláškou.
- Citlivé použití AJAXu
- Doufáme, že dobrým příkladem je právě popsaná funkce košíku. Dále
na stránkách máme Srovnání produktů. Poslední AJAXovou featurou,
o které se chci zmínit, je zjišťování aktuálního stavu dané
varianty produktu na skladě. Lze ji nalézt na stránce s detailem
produktu (např zde – Precision UV
(6 čoček)).
- Co nejpříjemnější proces odeslání objednávky
- Proč by se měl zákazník před odesláním objednávky zaregistrovat?
Tuto povinnou registraci najdete na většině eshopů. V našem eshopu nic
jako registrace neexistuje. Během objednávky je nutno zadat jenom údaje,
které jsou skutečně potřeba. Při osobním odběru zboží je to pouze
jméno zákazníka a jeho telefonní číslo (abychom ho mohli upozornit že si
může objednávku vyzvednout). I pokud se jedná o jiný druh
doručení, při kterém je potřeba vyplnit adresu. Například nevyžadujeme
vyplnění e-mailu. Pouze zákazníka upozorníme, že když ho vyplní bude mu
zřízen přístup do klientské sekce, kde bude moci sledovat aktuální stav
svých objednávek.
Co mi zabralo nejvíce času
Není nad to, když si člověk může projít naprosto všemi cykly tvorby
webu:
- analýza trhu a zvolení podnikatelského záměru
- návrh fungování webu
- implementace webu
- testování webu
- provoz webu a reklama
Nejvíce času mi zabral druhý bod – návrh fungování
webu. Pročetl jsem snad desítky článků na téma přístupnosti.
Například i bakalářskou práci Martina Snížka Postup
tvorby obchodně úspěšného webu.
Samotná implementace byla ta nejzábavnější část práce na projektu.
S dnešními nástroji (Eclipse IDE počínaje a Zend Frameworkem konče)
je to opravdu radost.
Pečlivě jsme se věnovali i uživatelskému testování. Měli jsme
asi 10 testerů. Byly to lidé z rodiny nebo přátelé. Hodně
z nich jsou potencionální zákazníci (nosí kontaktní čočky).
Web je nyní již v provozu a všechen svůj volný čas teď věnuju
propagaci. Seznamuju se s reklamními systémy, registruju web do
katalogů, do agregátorů zboží.
Na čem je to celé postavené
Eshop je postaven od nuly. Použili jsme:
Závěr
Těžko v souvislosti s naším webem hovořit o nějakém
závěru. Ty bude možné udělat až po nějaké větší době provozu.
V tuto chvílí nejsme ani týden po releasu.
PS: Objednávky už chodí :)
Celý článek 10. February 2008
Po delší době se ozývám s dalším článkem. Možná jste si
všimli menší frekvence nových článku na blogu. Rozhodně to nebude tím,
že bych zlenivěl nebo že by mě to prostě přestalo bavit. Důvodů je
několik:
- Nástup do Avedye je
pro mě pořádný kotrmelec. Poprvé v životě jsem javista „na
plný úvazek“ a dává mi to teď na začátku hodně zabrat.
V Avedyi jsou skvělí kolegové a práce je náročná – a proto ji
mám rád.
- Věc, která mi zabírá poslední měsíc všechen volný čas je
internetový business, který se chystáme s kolegou z naší firmy
rozjet již za pár dní. Jak jste si mohli všimnout v CV založil jsem
s kamarádem firmičku s názvem Maternia. Rád bych
se rozepsal o našem podnikání, ale nechci to dělat v tomhle
článku. Tato naše nová „zábava“ stála už tým
o velikosti 5 lidí měsíc života.
Zajímavé odkazy
Už jsem toho o sobě navykládal dost. A teď už ke slibovaným
linkům, které jsou tentokrát vyjíměčně zajímavé:
- Kolega Honza Šmuk spustil nový web Boulder2ME. Web umožňuje pomocí
appletu nadefinovat vlastní mapy do této hry a pak si je stáhnout přímo do
mobilního telefonu jako JAD a případně JAR soubor.
- Velezajímavým dílem je bakalářská práce Martina Snížka
s názvem TVORBA OBCHODNĚ ÚSPĚŠNÉHO WEBU, na kterou
můžete najít odkaz ke stažení v článku Postup
tvorby obchodně úspěšného webu. I když není obsah práce
z mého mateřské oboru s velkým zájmem jsem si ji na jeden zátah
přečetl. Nezabere to ani dvě hodinky. Při jejím čtení jsem zjistil, že
jsem při rozjíždění našeho nového internetového businessu nepostupoval
uplně špatně. Našel jsem tam i spoustu užitečných rad. Pokud jste
v situaci že přemýšlíte o rozjetí webové stránky a pro vás
z nějakého důvodu důležitý její obchodní výsledek je tato práce
z rodiny MUST READ.
- Proběhla druhá akce pod hlavičkou Czech PHP User Group Shrnutí
konference zima 2008. Navíc se připravuje akce třetí – Třetí
a poslední konference php frameworky.
- Pěknou úvahu napsal Ronnie v článku Proč si vybrat Zend Framework a proč
nevytvářet vlastní framework.
Závěr
Podle analýzy návštěvnosti jsem si všimnul že jste si všimli
obráceného pořadí zobrazených článků. Nejstarší články jednoduše
byly zobrazeny jako první. I jal jsem se vyzkoumat
příčinu…Používám snad nejrozšířenější bloggerský CMS
WordPress a nechtělo se mi věřit v nějaký bug na jeho straně. Spíš
jsem věřil v útok hackera :) Jaké je rozuzlení? Český hosting
nasadil do produkce novou verzi MySQL, která správně nepracovala
s klauzulí GROUP BY.
Celý článek 3. February 2008