Marek Osvald 2011, v1.1

Slides:



Advertisements
Podobné prezentace
Webové rozhraní pro přístup k databázi JIS Václav Lederbuch
Advertisements

SoftPC SQL Prezentace nového SQL modulu Mzdy a personalistika
Přístup k databázím z WWW
Vyvíjejte webové aplikace nově a lépe
Úvod do platformy Java EE
Ing. Jan Mittner  Ing. Jan Mittner    KH  v případě zájmu vždy po cvičení.
Ing. Jan Mittner MySQL Workbench 2. Základy práce s databází 3. Subversion 2.
CSS a HTML 5. HTML 5 HTML5 je nová verze specifikace značkovacího jazyka HTML, která přináší podstatné změny v technologiích webových stránek. HTML5 umožňuje.
Aplikační a programové vybavení
Ing. Jan Mittner Rozšíření modelu 2. Vazba 1:n 3. Vazba m:n 2.
Skupinová politika Windows 200x - požadavky
Průvodce pro prostorové dotazy v systému PostGIS (plugin pro OpenJUMP) Vedoucí: Ing. Jan Růžička.Ph.D. Konzultant: Ing. Aleš Daněk Diplomová práce.
Uživatelská rozhraní Uživatelská rozhraní 9. cvičení.
„Programátor by měl být v prvé řadě líný.“. PIFovo Web API (API = Application Programming Interface)
T OOL FOR C OLLABORATIVE XML S CHEMA I NTEGRATION Jiří Meluzín.
PHP – vkládání souborů a html 5
● SWIG - Simplified Wrapper and Interface Generator ● + google a diskusní fóra ● nástroj zjednodušující (a sjednocující)
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
© 2012 ET NETERA a.s. Wicket – přehled technologie Martin Strejc
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Tvorba webových aplikací
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Caché Security. Jak vypadá zabezpečení dnes Jak bude vypadat a co by Caché měla umět v budoucnu Včera, dnes a zítra.
Lestes C++ compiler. Obsah 1. Úvod 2. Architektura 3. Implementace 4. Framework 5. Závěr.
Apache, PHP, MySQL Lukáš Masopust Web server Apache Aplikace schopná zpracovat HTTP požadavek Nejpoužívanější Web server Vytváří ho The Apache.
Jako intranet Bc. Jan Beneš. Intranet - obecná funkcionalita  sdílení dokumentů  diskusní fórum  databáze kontaktů  novinky a aktuality  firemní.
Vývoj aplikací pro SharePoint
Softwareová architektura
Úvod. školní: příprava na předmět Databázové systémy praktický: webové aplikace databázové systémy základy vývoje webových aplikací od návrhu databáze.
Aplikace VT v hospodářské praxi internetové technologie Ing. Roman Danel, Ph.D. VŠB – TU Ostrava.
Rozšíření jednouživatelské verze IS na víceuživatelskou Prezentace Diplomové práce Autor : Libor Tomášek Spoluautoři : Pobucký M., Drábek L. Vedoucí :
BAKALÁŘSKÁ PRÁCE Tomáš Janda
Seminář C++ 4. cvičení Objekty Ing. Jan Mikulka. Co je objekt ► obraz třídy i instance ► třída – definovaná za pomocí klíčového slova class ► instance.
Návrh a tvorba WWW Cvičení 7 PHP & Oracle - Bezpečnost.
Ing. Jan Mittner Životní cyklus požadavku 2. Moduly 3. Pluginy 4. Jak řešit komponenty typu menu 5. atd. 2.
IB111 Programování a algoritmizace
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Vývoj aplikací v jazyku Ruby Bakalářská práce Tomáš Kohout VTI.
Návrh a tvorba WWW Přednáška 13 Vývoj webových aplikací.
Aplikační role Vít Ochozka. K čemu nám slouží Omezit přístup k databázi AKORD jen prostřednictvím konkrétní aplikace Jiné aplikace – MS excel, MS access,
uložené procedury (stored procedures) triggery, sekvence, pohledy, funkce, parametrické dotazy (prepared statements) komplexní agregace a SQL dotazy jiné.
Metodologie OOHDM, jazyk Lua a tvorba webových aplikací
Ing. Jan Mittner Základy práce s formuláři 2. Více layoutů 3. Optimalizace práce s modely 2.
Metodika objektového přístupu při tvorbě překladačů. Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
Efektivní vývoj webů v ASP.NET 4.0 Tomáš Herceg Microsoft MVP Microsoft Student Partner
123.
Kreslítko Petr Diviš Zdeněk Papež. Úvod Desktopová („stand-alone“) aplikace Jednoduchý grafický editor  Tvorba a editace základních geometrických objektů.
IDEA Web Systém 5.0 Pavel Bezstarosti IDEA spol. s r.o
Akademie ZENU Ukázková aplikace. Tak o tomhle to nebude…
Distribuovaná simulace pomocí OOPN Ivan Schwarz. Motivace Význam distribuovaných aplikací Nutnost nástroje pro modelování, simulaci a prototypování distribuovaných.
Service layer. Service layer – úvod Problém  Vytvoření API aplikace  Odstínění bussiness logiky a transakčního chování od zbytku aplikace  Kam s aplikační.
IB111 Programování a algoritmizace
JavaScript úvod. Jazyky webového vývojáře Dynamická stránka  aktivně mění svůj obsah v reakci na činnost uživatele  zpracování na straně serveru (PHP,
Rezervační systém v prostředí XUL Zdeněk Novák, Petr Ondrejka.
INFORMAČNÍ SYSTÉM GEOLOGICKÝCH SBÍREK
GORDIC ® spol. s r. o. Prvotní spuštění aplikace Gordic DSO - ISDSlite Nástroje pro snadnou správu Datových zpráv z Informačního systému Datových schránek.
AS/400 (IBM iSeries) Úvod. Co vlastně je AS/400 (IBM i)? Aplikační systém 400 (AS/400) byl navržen jako počítač obecně použitelný v obchodním prostředí.
Redakční systém – Content management system (CMS), publikační systém – Správa obsahu webu – Jednoduché publikování textů – Modulárnost (instalace doplňků)
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY MVC vs MVP.
as4u advanced system for you
Dobývání znalostí z databází fulltext
Moduly class Customer < ActiveRecord::Base end
I18N - Lokalizace I18N – je standard pro lokalizaci aplikací do více jazykových prostředí Je možno jej využít i pro jeden jazyk (prostředí) Rails standardně.
Dobývání znalostí z databází znalosti
Ruby on Rails framework vývoj aplikací pro WWW
Databázové systémy a SQL
Vytvoření IS pro správu místností v prostředí WWW
RUBY.
Web Application Scanning
Transkript prezentace:

Marek Osvald 2011, v1.1

 , Rasmus Lerdorf  momentálně ve verzi 5.3.5, chystá se verze 6  není nikde kompletně definován → pouze jediný interpret, napsán v C (pod Windows navíc pouze 32bitový)

 „Based on my limited experience [...] all the PHP code I’ve seen in that experience has been messy, unmaintainable crap. Spaghetti SQL wrapped in spaghetti PHP wrapped in spaghetti HTML, replicated in slightly-varying form in dozens of places.“ – Tim Bray (Google)

 Hlavní argumenty proti PHP  podivné licence (různě licencované moduly)  cílená pomalost (Zend Accelerator)  3 zcela nekompatibilní verze (4.3, 4.4, 5.0)  špatná podpora znakových sad  špatná rekurze  nekonzistentní ▪ pojmenování funkcí (spojené × oddělené × camelCase, 2 × to) ▪ pořadí argumentů ▪ návratové hodnoty  (string)"false" == (int)0 → true  neobjektové frameworky (CakePHP, Symphony,...)

 1995, まつもとゆきひろ (Yukihiro Matsumoto)  momentálně ve verzi , chystá se verze 2.0  vlastnosti  VHLL - Very High-Level Language  skriptovací  objektově orientovaný  dynamicky typovaný (duck typing)  reflektivní  automatická správa paměti (garbage collector)

NON-DUCK TYPING (JAVA) public class Duck implements Bird { void walk() { } void quack() { } } public void foo(Duck duck) { duck.walk(); duck.quack(); } DUCK TYPING (RUBY) class Duck < Bird def walk end def quack end def foo(duck) duck.walk() duck.quack() end

 oficiální interpret (MRI) napsán v C  existují i jiné  YARV – C (pro verzi 2.0)  JRuby – Java  Rubinius – C++  IronRuby – C#/.NET  MacRuby – Objective-C  HotRuby - JavaScript

 vychází z Perlu a Pythonu v určitých ohledech se podobá Smalltalku a dalším jazykům  přebírá i některé prvky funkcionálního paradigmatu  plně objektově orientovaný 3.times() do puts(‘Hooray!\n‘) end  balíčkovací nástroj RubyGems (správa knihovních balíků) 

 2004, David Heinemeier Hansson  momentálně ve verzi  framework pro webové aplikace napsaný v Ruby  skládá se z několika základních knihoven (ActiveRecord, ActionPack, ActiveSupport, ActionMailer,...)

 vlastnosti  modulární návrh (i základní knihovny lze z frameworku vynechat)  MVC architektura  nezávislost na konkrétní DB (drivery)  migrace (verzování DB)  automatické routování (i bez mod_rewrite )  navrženo pro agilní metodiky, obzvláště TDD (Test Driven Development)  úzká integrace s verzovacím nástrojem Git

... <?php $connection = mysql_connect($server, $login, $pass); mysql_select_db($database); $result = mysql_fetch_array(„SELECT * FROM users WHERE id=$id“); mysql_close($connection); ?>

 MVC  Model – datová logika (připojení k DB, SQL, validace dat,...)  View – prezentační logika (kde v HTML se mají získaná data vypsat)  Controller – aplikační logika (co se má načíst z DB, ověření uživatele ze session,...)

 mapování adresy na příslušný controller a akci   root :to => „users#index“ match ‚/profile/:id‘ :to => „users#show“

class User < ActiveRecord::Base end User.all() # SELECT * FROM users User.find(1) # SELECT * FROM users WHERE id=1 User.find_by_name(‚Jan Novak‘) # SELECT * FROM users WHERE name=‚Jan Novak‘ User.count() # SELECT count(*) FROM users AS count

class User < ActiveRecord::Base belongs_to :user_group has_many :projects validate :name, :presence => true :uniqueness => true :length => end pepa = User.find_by_name(‚Josef Novák‘) pepovy_projekty = pepa.projects() pepova_skupina = pepa.user_group()

class UsersController < ApplicationController def index = User.all() end def show = User.find(params[:id]) end def = flash[:notice] = „Uzivatel uspesne smazan“ redirect_to ‚index‘ end

...

 hierarchické skládání layoutů  aplikace ▪ /app/views/layouts/application.html.erb  controlleru ▪ /app/views/layouts/users.html.erb  stránky ▪ /app/views/users/index.html.erb

 3 implicitní prostředí  development – znovunačítání veškerého kódu (pomalé, ale dobrá reakce na změny)  test – rozšíření debugovacích informací  production – pro ostrý provoz, zrychlené  další uživatelsky definovaná prostření

 skvělý ladící nástroj  načte celé vaše prostředí z Rails do řádkového interpretu Ruby  velice rychle umožní odhalit problém na aplikační nebo datové vrstvě  existují rozšíření i pro prezentační vrstvu (Webrat)

 základní testovací jednotka Test::Unit (poslední dobou se od ní spíše ustupuje)  Rspec require ‚user‘ describe „User“ it „shouldn‘t allow a user without name to be saved" do user = User.new(:name => nil, : => user.save.should be_false end

 Hal Furton: Ruby – kompendium znalostí pro začátečníky i profesionály  The Ruby Way 2nd Edition  Zoner Press/Addison Wesley

 Steven Holzner: Začínáme programovat v Ruby on Rails  Beginning Ruby on Rails  Computer Press/Wrox

 Ruby      Rails    