Upload
jan-kodera
View
980
Download
2
Embed Size (px)
DESCRIPTION
Jak vybrat technologie pro startup.
Citation preview
Kdo jsem?
Jan KoderaSpoluzakladatel Abakowiki.cz
[email protected]://www.abakowiki.czhttp://twitter.com/jankodera
Výběr vhodných technologií pro startup v prostředí cloudu
Obsah přednášky
• Definice startupu• Výběr úložiště (SQL nebo NoSQL)• Výběr backendu aneb co na server• Jak naložit s frontendem
Definice startupu
Je to vize produktu na který ještě nemátezákazníka. Produkt vyvinete a pak hledáte
zákazníka
Roman Staněk
Výběr úložiště
Máme k dispozici• key-valued databáze• dokumentově orientované• relační databáze• grafové• sloupcově orientované
Tak kterou vybrat?
NoSQL - key-value,document oriented
• výhodyo extrémně rychlé na čtení a zápiso dobře škálovatelnéo bez nutnosti vytvářet schéma
• nevýhodyo veškerá logika na aplikační úrovnio vysoká redundance dat
Vhodné spíše jako cache.
NoSQL – column family
• Výhodyo schémao škálovatelnéo map reduce
• Nevýhody• na jednom serveru nebudou lepší než relační• Různé API (MapReduce,Thrift )
Zlaté pravidlo
Vždy se řiďte zlatým pravidlem
Neřešte problém který nemáte.
Pokud nemáte speciální architekturu, tak použijte relační DB.
Co na server?
• java - Google,Sun,Apache Foundation– Google App Engine,Glassfish,Apache Tomcat
• python – Google– Google App Engine
• ruby - 37signals• php - Yahoo,Facebook
– Apache Tomcat
• .NET – Microsoft– Microsoft Azure, MS Server 2008
Co na server?
Co takhle Javu?• je rychlá• má spoustu knihoven• plno problémů dobře dokumentovaných• JVM• na českých technických univerzitách se v javě učí
programovat skoro každý student (povinně)
Co na server?
A nemá Java nějaké nevýhody?• Java je ukecaná• nemůžete upravovat onfly, musíte kompilovat• musíte všechno typovat• často mraky XML konfigurace
Naštěstí se blýská na lepší časy• Play Framework
o scafoldingo žádné xml konfiguraceo automaticky generované testyo MVCo automatický deployment
A frontend nic?
Jestliže výběr aplikačního prostředí byl problém, tak tohle je výzva
Jedna platforma - HTML/CSS/JS ale tolik různýchimplementací• IE• Opera• Chrome• Safari• Firefox
Jak z toho ven?
Použít frameworky jak na CSS, tak na JavaScript
JavaScript frameworky• JQuery• Prototype• GWT• YUI Libs
Který je ten pravý?
Zdánlivá odbočka
Stát se v něčem expert znamená věnovat se té oblasti nejméně10 000 hodin.
Což jsou aspoň 3 roky, učení.
Ideálně kdyby jeden jazyk mohl obsáhnout vše.
Java má tuto vlastnost
Backend -• dobré MVC frameworky (Spring,Struts,Play)• fulltextové vyhledávaní Lucene• ORM - Hibernate• Hadoop,HBase - MapReduce• a mraky dalších knihoven
Vynikající IDE - Eclipse,Netbeans• debugger• profilování aplikace• nápověda
Java má tuto vlastnost
Frontend • Google Web Toolkit
o nepíšete javascript ale programujete v Javěo podpora IDE - debugger, nápověda, generování kóduo optimalizace JavaScriptuo lehce integrovatelné různé JS knihovny