Přejít k navigační liště

Zdroják » Databáze » Kompletní průvodce po CouchDB – I

Kompletní průvodce po CouchDB – I

Články Databáze

Dokumentově orientovaná databáze CouchDB, vyvíjená pod křídly Apache Foundation, nabízí některé zajímavé možnosti. Kromě obvyklých NoSQL vymožeností, jako je snadná replikovatelnost a vysoká rychlost operací, ji můžete využít, ve spojení s frameworkem CouchApp, i pro běh webových aplikací přímo v ní samotné.

Nálepky:

Předmluva k českému překladu CouchDB – The Definitive Guide: Rozhodli jsme se čtenářům přiblížit tuto databázi poněkud uceleněji, než jak jsme o ní psali do této doby, tedy po jednotlivých článcích. Stěží bychom k tomu našli vhodnější materiál, než je kniha od autorů této databáze. Jsme si vědomi toho, že v knize popisovaná verze 0.10 byla před nedávnem nahrazena verzí 1.0, v níž je řada věcí řešena jinak, ovšem došli jsme k rozhodnutí, že to v tomto případě není zásadní překážkou; jednak se budeme snažit při překladu postupovat volněji a na případné změny upozornit v textu, ale mnohem důležitější pro nás je, že text srozumitelně přibližuje principy práce s CouchDB. Doufáme, že v podobě „překladu na pokračování“ bude i snadno stravitelný. Pohodlně se usaďte, relaxujte, a – příjemné čtení. – redakce

Předmluva

Damien Katz, autor CouchDB

Jako autorovi CouchDB mi připadla čest napsat předmluvu. Tato kniha vznikala dlouho. Pracoval jsem na CouchDB od roku 2005 – v té době byla pouhou vizí v mé hlavě a jen moje žena Laura věřila, že to někdy bude fungovat.

Teď už žije projekt vlastním životem a kód běží doslova na miliónech strojů. Už to nezastavím, ani kdybych chtěl.

Skvělou analogii použil J. Chris, když přirovnal CouchDB ke kameni, který jsme vytlačili na kopec. Po čase se začal pohybovat rychleji a bylo snazší ho tlačit, a teď se pohybuje tak rychle, že má člověk dojem, že dole vletí do vesnice a rozmačká nějaké nešťastné vesničany. Nebo tak něco. Hele, pamatujete se na „Příběhy utrženého kamene“ s Robertem Wagnerem v Saturday Night Live? Skvělé časy.

No, takže my se teď snažíme ten kámen nějak bezpečně ukočírovat. Kvůli těm vesničanům. A víte co? Ta analogie s kamenem není vlastně moc dobrá. Pojďme radši dál.

Důvodem, proč jsme psali tuhle knihu, je, že CouchDB představuje hodně odlišný způsob ukládání dat. Způsob, který není výrazně lepší nebo horší než ty, co tu už byly – je to prostě jen jiný nástroj, jiný způsob přemýšlení o věcech. Chybí v něm některé vlastnosti, které jste možná používali, ale přináší i schopnosti, co jste možná nikdy neviděli. Někdy to perfektně sedne k vašemu problému; někdy je to prostě hrůza.

A někdy zjistíte, že o problému přemýšlíte špatně. Že se jen potřebujete podívat z jiného úhlu.

Tato kniha vám pomůže porozumět CouchDB a jejímu úhlu pohledu, a taky tomu, jak a kdy můžete CouchDB použít pro řešení problémů, kterým čelíte.

Jinak se jednoho dne stane utrženým kamenem, co nefunguje a co způsobí katastrofu, které jste mohli předejít.

A já pak předvedu svou světoznámou imitaci Charltona Hestona, budu se válet na zemi, tlouct rukama do prachu a řvát: „Vy blázni! Vy jste to vyhodili do povětří! Mizerové! K čertu s váma všema!“ Nebo tak nějak.

Úvod

Děkujeme, že jste si koupili tuto knihu! Pokud jste ji dostali darem, gratulujeme! Pokud jste ji, na druhou stranu, stáhli a nezaplatili, tak, dobrá, máme radost i z toho. Tato kniha je k dispozici pod volnou licencí, a je to důležité, protože chceme, aby sloužila jako dokumentace – a dokumentace by měla být zdarma.

Proč platit za knihu zdarma? No, třeba máte rádi to příjemné teplé chvění, které způsobuje tištěná kniha, když ji držíte v rukou a sedáte si s ní k šálku kávy na svůj gauč (v originále se objevuje několik hříček, založených na tom, že couch = gauč – pozn. překl.) Na gauč… chápete? Ale hloupé fóry stranou: ať už jsou vaše důvody jakékoli, tím, že jste si knihu koupili, jste nám pomohli, takže můžeme věnovat další čas vylepšování této knihy a CouchDB samotné. Takže díky!

Vzali jsme nejlepší a nejaktuálnější materiály o CouchDB, které jsou k dispozici, dali je dohromady a zjistili, že tudy cesta nevede. CouchDB se rychle vyvíjí a během psaní knihy se posunula. Mohli jsme na to reagovat a udržovat knihu neustále aktuální, ale taky jsme potřebovali někde nakreslit čáru, za niž nepůjdeme, jinak bychom knihu nikdy nevydali.

V čase psaní této knihy byla aktuální verze CouchDB 0.10.1, ale možná jste už viděli i 0.10.2, nebo 0.11.0, možná i 1.0 (dnes je aktuální verze 1.0.2 – pozn. překl.) Ačkoli máme představu o tom, jak by mohly další verze vypadat, nevíme to stoprocentně a nechceme se pouštět do divokých předpovědí. CouchDB je komunitní projekt, takže je na vás, na našich čtenářích, abyste nám pomohli jej nasměrovat a formovat.

Je pozitivní, že mnozí lidé úspěšně fungují s CouchDB 0.10 v produkčním nasazení, a i s touto verzí máte slušné běhové prostředí pro skutečné projekty. Další verze CouchDB by měly některé věci zjednodušit, ale základní principy zůstanou stejné. Takže pokud se naučíte právě tyto základní principy, pomůže vám to pochopit a ocenit další vývoj a usnadní vám to vytváření vlastních řešení.

Psaní otevřené knihy je zábavné. Jsme rádi, že O’Reilly podpořil naše rozhodnutí ve všech směrech. Nejlepší věc – kromě toho, že jsme dali komunitě kolem CouchDB přístup k materiálu – byla možnost komentování, kterou jsme implementovali na webu této knihy. Tato funkce umožňuje každému okomentovat libovolný odstavec textu jedním kliknutím. Použili jsme k tomu jednoduchý JavaScript a Google Groups. Výsledek byl úžasný. K dnešnímu dni poslalo 866 lidí více než 1100 připomínek. Připomínky sahaly od malých překlepů až k hlubokým technickým diskusím. Zpětná vazba, kterou jsme obdrželi k první kapitole, vedla k tomu, že jsme ji kompletně přepsali tak, abychom se ujistili, že věci, které jsme chtěli objasnit, jsme doopravdy objasnili. Tímto způsobem jsme mohli jasně formulovat to, co jsme chtěli říct, způsobem, který byl čtenářům pochopitelný.

Úhrnem je tedy kniha mnohem lepší, a to díky pomoci stovek dobrovolníků, kteří si dali tu práci a poslali nám své připomínky. Vnímáme obrovskou hodnotu tohoto modelu práce, a chceme ji uchovat. Nové funkce CouchDB tak mohou být obsaženy v knize, aniž bychom dělali reprint každého čtvrt roku. Vydavatelský průmysl není na něco takového zatím připraven, ale my chceme pokračovat ve vydávání dalších verzí a naslouchat i nadále připomínkám čtenářů. Ještě nevíme, jak přesně to uděláme, ale až budeme vědět, dáme informaci na web hned jak se to dozvíme. Slibujeme! Takže se čas od času podívejte na http://book­s.couchdb.org/re­lax a budete v obraze.

Než vás necháme ponořit do obsahu, chceme se ujistit, že jste připraveni. CouchDB je napsaná v Erlangu, ale k tomu, abyste ji použili, nepotřebujete Erlang znát. CouchDB taky intenzivně využívá webové technologie jako HTTP nebo JavaScript, a určitá zkušenost s nimi vám pomůže při čtení knihy. Pokud jste někdy udělali nějaký web – jednoduchý nebo složitý -, měli byste být připraveni číst.

Jestli jste zkušení autoři webů nebo systémoví architekti, bude pro vás úvod do CouchDB velmi snadný, protože bude popisovat věci, které znáte – jediné, co se budete muset naučit, je způsob, jakým  dává CouchDB věci dohromady. Ke konci knihy ale trochu zvýšíme náročnost a naučíme vás, jak pohodlně vytvářet rozsáhlé systémy s CouchDB tak snadno jako malý osobní web.

Pokud jste začátečník, nemějte strach – jak se budeme dostávat k dalším částem knihy, budete schopni sledovat výklad i těch obtížnějších částí.

A teď se pohodlně opřete, relaxujte a užijte si jízdu kouzelným světem CouchDB.

Poděkování

J. Chris

Chtěl bych poděkovat všem, co přispívají do CouchDB, lidem co posílají patche a zbytku komunity. Nedokázal bych to bez své ženy Amy, která mi pomáhá vidět věci v odstupu; bez trpělivosti a podpory mých spoluautorů a lidí z O’Reilly; ani bez pomoci lidí z mailových diskusí, co nám pomohli srovnat detaily obsahu. A jedno zvolání pro editora, který byl úžasný!

Jan

Chtěl bych poděkovat komunitě kolem CouchDB. Speciální poděkování patří mnoha skvělým lidem, co mě zvali na konference, co mě nechali přespávat na svých gaučích (záměrná slovní hříčka), a co se starali o to, aby prezentace CouchDB byla zábavná. Je jich příliš mnoho na to, abych je vyjmenoval, ale všichni v Dublinu, Portlandu, Lisabonu, Londýně, Curychu, San Franciscu, Mountain View, Dortmundu, Stockholmu, Hamburgu, Frankfurtu, Salt Lake City, Blacksburgu, San Diegu a Amsterdamu – a vy víte, kdo jste – díky!

Rodině, přátelům a spolupracovníkům: díky za podporu a trpělivost za poslední rok. V nejbližší době ode mne neuslyšíte „Musím odejít brzy, dělám na té knížce“, slibuju!

Anno, věřilas mi; bez tebe bych to nedokázal.

Noah

Chtěl bych poděkovat nakladatelství O’Reilly za jejich nadšení pro CouchDB a za to, že chápou, jak důležitá je svobodná dokumentace. A samozřejmě musím poděkovat Janovi a J. Chrisovi za skvělou spolupráci. Ale speciální díky patří celé komunitě kolem CouchDB, díky které bylo vše zábavnější a mělo to smysl. Bez vás, lidi, by nic z toho nebylo. A jestliže to čtete, tak mám na mysli vás!

Část I – Úvod

Kapitola 1: Proč CouchDB?

Apache CouchDB je jeden z nových databázových systémů. Tato kapitola vám vysvětlí, proč je potřeba nová databáze, a přiblíží motivaci, která stála za vznikem CouchDB.

Coby vývojáři CouchDB jsme přirozeně nadšenými uživateli CouchDB. V této kapitole se s vámi podělíme o důvody, kvůli nimž jsme nadšení. Ukážeme vám, jak je bezschémový dokumentový model v CouchDB výhodný pro běžné aplikace, jak je zabudovaný dotazovací stroj mocným nástrojem pro zpracování dat a jak návrh CouchDB pomáhá modularitě a škálovatelnosti.

Relax

Pokud bychom měli popsat CouchDB jedním slovem, bude to relaxace. Je součástí oficiálního loga, a když budete spouštět CouchDB, uvidíte toto:

Apache CouchDB has started. Time to relax.

Proč je relaxace tak důležitá? Během posledních pěti let se produktivita vývojářů zdvojnásobila. Hlavní důvod tohoto zrychlení jsou výkonnější nástroje a jejich snazší použití. Vezměme jako příklad Ruby on Rails. Je to neskutečně komplexní framework, ale je velmi snadné ho používat. Rails má úspěch, protože základní návrh je zaměřený na snadné použití. To je jeden z důvodů, proč je použití CouchDB odpočinkem: učení CouchDB a pochopení jejích základních principů připadá přirozené většině lidí, kteří něco na webu dělali. A navíc je poměrně snadné vysvětlit vše netechnicky zaměřeným lidem.

Dostat se z bodu, v němž tvůrčí lidé zkoušejí vytvořit specializované řešení na míru problému, bylo hlavním požadavkem a jednou z věcí, na které se CouchDB zaměřuje. Zjistili jsme, že existující nástroje jsou příliš těžkopádné při vývoji nebo v produkčním nasazení, a rozhodli jsme se zaměřit především na to, aby CouchDB byla snadno, a pokud možno i radostně, použitelná. Kapitoly 3 a 4 ukážou třeba intuitivní návrh REST API.

Další odpočinkovou oblastí pro uživatele CouchDB je produkční nasazení. Pokud máte živou běžící aplikaci, CouchDB vám zase půjde z cesty, aby nezpůsobovala těžkosti. Její vnitřní architektura je odolná vůči chybám, a případné chyby se odehrávají v řízeném prostředí a jsou správně ošetřeny. Jednoduchý problém neprobublává skrz celý server, ale je izolován tam, kde vznikne.

Základní principy CouchDB jsou jednoduché (ale mocné) a snadno pochopitelné. Tým správců (pokud máte tým; pokud ne, tak vy) se nemusí bát nepředvídatelného chování a nevystopovatelných chyb. Pokud se něco pokazí, snadno zjistíte, co se pokazilo a kde – ale takové situace nastávají zřídka.

CouchDB je rovněž navržena tak, aby se se ctí vypořádala s proměnnou zátěží. Kupříkladu pokud zaznamenáte náhlé zvýšení návštěvnosti, CouchDB bez problémů absorbuje velké množství současných požadavků a nezhavaruje. Možná zaberou jednotlivé požadavky o něco víc času, ale nakonec budou všechny zodpovězeny. Jakmile nápor pomine, bude CouchDB odpovídat zase normální rychlostí.

Třetí pohodovou oblastí je zvětšování a zmenšování „železa“, na němž aplikace běží. Říká se tomu taky škálování. CouchDB klade na programátora některá omezení a na první pohled se může zdát neflexibilní. Ve skutečnosti zůstaly některé funkce neimplementované záměrně, zkrátka proto, že kdyby je CouchDB implementovala, mohli by programátoři vytvářet aplikace, které by měly problém se škálováním. Celé problematice škálování je věnována část IV: „Nasazení CouchDB“.

Ve stručnosti: CouchDB vám nedovolí dělat věci, které by vám později způsobily problémy. Někdy to znamená i to, že se musíte odnaučit „dobré zvyky“, které jste si navykli v předchozí práci s jinými databázemi. V kapitone 24 naleznete seznam běžných úloh a jejich řešení v CouchDB.

Odlišný způsob vytváření datového modelu

Věříme, že CouchDB změní zásadně způsob, jakým vytváříte dokumentově orientované aplikace. CouchDB kombinuje intuitivní model datového úložiště se silným dotazovacím aparátem způsobem, který je tak snadný, že se pravděpodobně budete ptát sami sebe: „Proč něco takového někdo neudělal už dávno?

Django možná je navržené pro web, ale CouchDB je postavené na webu. Nikdy jsem ještě neviděl software, který by tak kompletně absorboval filosofii webu a HTTP. Vedle CouchDB vypadá Django zastarale úplně stejně, jako vypadá ASP vedle Djanga.

—Jacob Kaplan-Moss, Django developer

Návrh CouchDB vychází silně z architektury webu a jeho konceptu zdrojů, metod a reprezentace. Spojuje je s mocnými způsoby dotazování, mapování, kombinování a filtrování dat. Přidejte odolnost proti chybám, extrémní škálovatelnost, inkrementální replikaci, a máte CouchDB jako skvělý nástroj pro dokumentové databáze.

Lepší řešení pro běžné aplikace

Píšeme software proto, abychom usnadnili svůj život, nebo životy dalších lidí. Obvykle to zahrnuje získání nějakých informací – kontaktů, faktur, dokladů – a jejich zpracování počítačovým programem. CouchDB je pro takové použití skvělá, protože její podstata je založená právě na přirozeném modelu samostatných dokumentů, které se nějak vyvíjejí.

Samostatná data

Faktura obsahuje veškeré informace o jedné transakci – prodejce, kupující, datum a seznam prodaných věcí či služeb. Jak ukazuje obrázek 1, na těchto papírech nejsou žádné abstraktní reference, odkazy, co by ukazovaly na jiné kousky papíru, kde by bylo napsané jméno a adresa prodejce. Účetní mají rádi, když jsou věci takto jednoduché a když mají vše podstatné na jednom místě. A programátoři taky, když mají tu možnost.

Obrázek 1 – Samostatné dokumenty

Ovšem reference jsou přesně ten způsob, jakým modelujeme data v relačních databázích! Každá faktura je uložená v tabulce jako řádek údajů, z nichž se některé odkazují na jiné řádky v jiných tabulkách – jeden řádek informace o prodejci, jeden pro zákazníka, jeden řádek pro každou účtovanou položku, a spousta řádků, co popisují detaily položek, výrobce, a tak dál…

Výše napsané není snižování hodnoty relačního modelu, který je široce přijatelný a extrémně použitelný z řady důvodů. Je to jen ilustrace skutečnosti, že někdy relační datový model neodpovídá způsobu, jakým se data vyskytují v reálném světě.

Pojďme se podívat na jednoduchou databázi kontaktů, abychom si ukázali odlišný způsob modelování dat, takový, který je bližší svému reálnému předobrazu, totiž hromádce vizitek. Stejně jako v příkladu s fakturami i vizitky obsahují veškeré důležité informace pohromadě. Nazýváme to „samostatná“ data, a je to důležitý koncept pro dokumentové databáze, jako je právě CouchDB.

Syntaxe a sémantika

Většina vizitek obsahuje zhruba totéž – něčí identitu, zaměstnání a nějaké kontaktní informace. Ačkoli se přesná forma těchto informací může vizitku od vizitky lišit, ta hlavní informace, kterou vizitka nese, zůstává stejná, a my jsme schopni kousek papíru s takovými informacemi správně rozpoznat jako vizitku. V tomto slova smyslu můžeme nazvat vizitku dokumentem z reálného světa.

Janova vizitka může obsahovat telefonní číslo, ale ne fax, zatímco vizitka J. Chrise obsahuje jak telefon, tak fax. Jan skutečnost, že nemá fax, nepotřebuje na vizitce explicitně sdělovat nějakým hloupým nápisem „Fax: Nemám“. Namísto toho skutečnost, že číslo faxu není uvedené, implikuje, že fax nemá.

Vidíme, že reálné dokumenty takového typu, jako jsou například vizitky, mají tendenci být si sémanticky podobné – tedy obsahem informací – ale jsou velmi rozdílné co do syntaxe, tedy v tom, jak jsou data přesně zapsána. Coby lidé se dokážeme s těmito rozdíly bez problémů vypořádat.

Tradiční relační databáze požadují, abyste model budoucích dat připravili na začátku práce. Bezschémový design CouchDB vám dává možnost sbírat data až ve chvíli, kdy je máte, stejně jako v reálném světě. Podíváme se později blíž na to, jak navrhovat aplikace, které jsou založeny na takovém paradigmatu ukládání dat.

Stavební bloky pro velké systémy

CouchDB je úložný systém, který je použitelný sám o sobě. Můžete vytvořit mnoho aplikací jen za použití metod, které nabízí CouchDB. Ale CouchDB je navržená s ohledem na větší možnosti. Její části mohou být použité jako stavební bloky, které řeší problémy s úložištěm u velkých a komplexních systémů.

Kdekoli potřebujete systém, který je šíleně rychlý, ale kde není tak důležitá spolehlivost (například logování), nebo naopak takový, kde ukládáte data kvůli spolehlivosti na dvě či více míst, i za cenu snížení výkonu, můžete použít CouchDB.

V systému je spousta nastavení, kterými ho můžete vyladit tak, že bude pracovat lépe v jednom směru, ale ovlivníte tím jiné oblasti. Příkladem může být CAP teorém, o němž budeme hovořit v další kapitole. Z obrázků 2 a 3 získáte představu o tom, co ovlivňuje úložiště.

Snížením latence u daného systému (a to neplatí jen u úložiště) ovlivníte schopnosti vyřizovat konkurenční požadavky a datovou propustnost.

figure/2

Obrázek 2 – Propustnost, latence a konkurenční požadavky

figure/3

Obrázek 3 – Škálování: Požadavky na čtení, na zápis a množství dat.

Když chcete škálovat, narazíte na tři problémy, s nimiž se musíte vypořádat: škálování požadavků na čtení, požadavků na zápis a na data.Mnoho dalších atributů, jako je spolehlivost či jednoduchost, závisí na těchto třech faktorech. Můžete nakreslit spoustu takových grafů, které budou ukazovat závislost nějakých vlastností na jiných atributech.

CouchDB je velmi flexibilní a umožňuje vám vybudovat systém, který bude ušit na míru konkrétnímu problému. Tím neříkáme, že CouchDB je univerzální řešení na všechny problémy – CouchDB není stříbrná kulka – ale v oblasti ukládání dat vám může prokázat mnohé služby.

Replikace CouchDB

Jedním z těchto stavebních bloků je schopnost replikace. Základní funkcí je synchronizace dvou či více databází. Může to znít jako samozřejmost, ale snadnost replikace je klíčem k tomu, že lze právě pomocí ní řešit řadu problémů, jako jsou: spolehlivá synchronizace dat mezi různými stroji (redundantní úložiště); distribuované ukládání dat v clusteru CouchDB instancí, který zvyšuje propustnost pro dotazy (load balancing) nebo distribuce dat mezi fyzicky vzdálenými lokacemi, jako např. mezi pobočkami v New Yorku a Tokiu.

Replikace používá u CouchDB stejné REST API jako používají ostatní klienti. HTTP je všudypřítomný a vývojáři mu rozumí. Replikace fungují inkrementálně. V případě, že se při replikaci něco pokazí, např. spadne síťové spojení, dokáže databáze navázat při další replikaci tam, kde předchozí pokus skončil. Při synchronizaci se přenášejí pouze data, která se změnila.

Základním předpokladem, který CouchDB činí, je, že věci se mohou pokazit, viz třeba přerušené síťové spojení, a je navržená tak, aby dokázala chybu opravit, namísto předpokladů, že vše bude vždy fungovat dobře. Inkrementální návrh replikačního systému tento princip velmi dobře ilustruje. Myšlenky, skryté za prostým „věci se mohou pokazit“, jsou vyjádřené ve známých Omylech distribuovaných výpočetních systémů:

  1. Síť je spolehlivá.
  2. Zdržení je nulové.
  3. Přenosová rychlost je neomezená.
  4. Síť je bezpečná.
  5. Topologie se nemění.
  6. Je jen jeden administrátor.
  7. Náklady na přenos jsou nulové.
  8. Síť je homogenní.

Existující nástroje se často pokouší skrýt skutečnost, že tu je nějaká síť a že výše uvedené věci v daném systému mohou nastat. Obvykle to vede k fatálním chybovým scénářům, když se něco z toho pokazí. Naproti tomu CouchDB nezakrývá, že funguje na síti; jen se snaží korektně vyřídit vzniklé chyby a dát vám vědět v případě, že se od vás očekává nějaká akce.

Lokální data jsou král

CouchDB si bere pár lekcí ze zkušeností s webem, ale je jedna věc, kterou lze, oproti webu, vylepšit: latence. Kdykoli musíte čekat na to, až aplikace odpoví nebo až prohlížeč vykreslí stránku, pravděpodobně čekáte kvůli tomu, že síťové spojení není tak rychlé, jak byste potřebovali. Čekat místo milisekund několik sekund dokáže velmi výrazně ovlivnit uživatelský prožitek, a tím i spokojenost uživatelů.

Co děláte, když jste offline? Může se to stát kdykoli – váš poskytovatel připojení má problém, nebo na svém iPhonu, iPadu či Blackberry nemáte „ani čárku“ – a žádné připojení rovná se nemožnost dostat se ke svým datům.

CouchDB dokáže takovou situaci vyřešit, a ukazuje to opět důležitost škálování. Tentokrát „škálování dolů“. Představte si CouchDB instalovanou v telefonech a dalších mobilních zařízeních tak, že se synchronizuje s centrální CouchDB kdykoli je online. Synchronizace není vázána omezeními, kladenými na uživatelské rozhraní, jako třeba rychlost odpovědi. Je snazší vyladit aplikaci pro rychlé připojení a větší latenci než pro pomalé spojení a velmi malé zpoždění. Mobilní aplikace mohou v takovém případě použít lokální CouchDB pro přístup k datům, a protože k tomu není zapotřebí žádné síťové připojení, bude zpoždění minimální.

Ale lze opravdu CouchDB použít v telefonu? Jazyk Erlang, v němž je CouchDB napsaná, byl navržen pro běh na zařízeních řádově menších a méně výkonných, než jsou dnešní telefony…

Co dál?

V další kapitole prozkoumáme distribuovanou podstatu CouchDB. Snad jsme vás těmito střípky dostatečně navnadili. 

Komentáře

Subscribe
Upozornit na
guest
18 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Ladislav Thon

Silver bullet se do češtiny tradičně překládá jako stříbrná kulka.

Jo a CouchDB na Androidu zabírá po spuštění nějakých 8 MB (když jsem se naposled koukal), což je docela impresivní. Ale měl jsem nějaké problémy s replikací oproti jiné verzi na notebooku (už aby vyšla 1.2 s novým replikátorem… ale jelikož ještě není venku ani 1.1, čert ví kdy se dočkáme).

Radek

Definitivní průvodce? Taky bych chtěl jednou napsat software (a k němu průvodce), kde by se dalo říct, že toto už je to definitivní. Nelze tu nic přidat ani ubrat ;-)

František Kučera

Mně se spíš líbí skromnější názvy – jako když někdo napíše „Stručný úvod do XYZ“ a má to tisíc stránek :-)

Twiguard

Moc pekny clanek, tesim se na pokracovani.
O CouchDB jsem se uz zajimal a neco uz i vyzousel, ale tento clanek me opravdu navnadil a asi se zacnu zajimat trochu vice.
Knizku si urcite prectu. =)

Filip Jirsák

Nebude ten seriál náhodou vycházet i v nějakém formátu vhodném pro e-knihy? Nebo-li neudělá za mne tu konverzi redakce? :-) Myslím, by se to v tomto případě hodilo.

Filip Jirsák

Díky.

VM

Díky za zajímavé téma, ale přece jen by se hodilo méně marketingových frází o tom jak je XXX skvělé a dobře se používá, a místo toho bych uvítal více faktů – co to umí, jak to funguje apod.

Čelo

Tak že bychom si počkali na dvojku? :)

pepca

Však to byl úvod. Ten je vždy takový.

Siro

tesim sa na dalsi diel,kedy bude? je to super!!! dakujem za clanok

Mintaka

Pozastavil bych se nad citátem od Jacoba Kaplana-Mosse.

Předpokládám, že tady: http://jacobian.org/writing/of-the-web/
je jeho zdroj.

Ono to vyznívá, jako by CouchDB mělo tak dobrý návrh a filozofii, že by mohlo nahradit celý framework Django.
CouchDB by mohl být alternativou pro datovou vrstvu, ale že by měl zastoupit celý aparát frameworku, to asi ne. Nebo snad někdo plánuje/realizuje nad CouchDB framework, který pokryje mapování URL, šablony, aplikační logiku, mechanismy pro lokalizaci, cache mechanismy, …?

Mohl by k tomu citátu dát někdo couchoidní výklad?
Nejlépe i s ohledem na vývoj, který od roku 2007 CouchDB, Django a infrastruktura kolem nich prodělala.

K tématu Django a CouchDB jsem našel:
http://mikeal.github.com/couchquery/
https://github.com/benoitc/couchdbkit
http://lethain.com/an-introduction-to-using-couchdb-with-django/
http://code.google.com/p/couchdb-python/

Mintaka

V tom srovnání mi právě chybí ten protipól pro CouchDB. Když k webu ASP vs Django tak k webu ?? vs CouchDB.

nikdo

Ad „2. Zdržení je nulové.“
Myslím, že vhodnější výraz by byl „zpoždění“. Použil bych jej i namísto dále použitého „latence“, případně – pokud je někdo příznivcem anglicismů to aspoň sjednotit.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.