• Nebyly nalezeny žádné výsledky

2016PetrProkop AbsolvováníindividuálníodbornépraxeIndividualProfessionalPracticeintheCompany VŠB–TechnickáuniverzitaOstravaFakultaelektrotechnikyainformatikyKatedrainformatiky

N/A
N/A
Protected

Academic year: 2022

Podíl "2016PetrProkop AbsolvováníindividuálníodbornépraxeIndividualProfessionalPracticeintheCompany VŠB–TechnickáuniverzitaOstravaFakultaelektrotechnikyainformatikyKatedrainformatiky"

Copied!
24
0
0

Načítání.... (zobrazit plný text nyní)

Fulltext

(1)

VŠB – Technická univerzita Ostrava Fakulta elektrotechniky a informatiky

Katedra informatiky

Absolvování individuální odborné praxe Individual Professional Practice in the

Company

(2)
(3)
(4)
(5)
(6)

Abstrakt

Tato práce souvisí s čiností ve firmě EVici webdesign s.r.o. a popisuje působení na praxi. Práce se zabývá popisem technologií, které jsem použil při vykonávání praxe, a systému UPgates, který jsem pomáhal vyvíjet. Práce se věnuje průběhu praxe zmíněním některých vypracovaných úkolu.

Závěrem této práce je zhodnocení celého působéní ve firmě, scházejících a získaných znalostí.

Klíčová slova: webová aplikace, PHP, Nette, JavaScript

Abstract

This work is related to the activity in the company EVici webdesign Ltd. and describes practice itself. Thesis describes the technologies, that had been used to finish tasks, and UPgates system, which I helped to develop. Thesis deals with the practice process by mentioning some task. The conclusion of this thesis is evaluation of entire process in the company, the missing and gained knowledge.

Key Words: web application, PHP, Nette, JavaScript

(7)

Obsah

Seznam použitých zkratek a symbolů 8

Seznam obrázků 9

1 Úvod 10

2 Seznámení s firmou EVici webdesign s.r.o. 11

2.1 UPgates . . . 11

3 Technické řešení 12 3.1 Použité technologie . . . 12

3.2 Nette . . . 12

3.3 jQuery . . . 13

3.4 AJAX . . . 13

4 Pracovní náplň 14 5 Řešení úkolů 15 5.1 Důležité úkoly . . . 15

5.2 Vyskakovací okno po načtení stránky uživatelem, příslušná administrace . . . 15

5.3 Patička zobrazující informaci o používání cookies, administrace . . . 16

5.4 Dynamické chování administrace složených částí systému . . . 17

5.5 Import dat pro PPL Parcelshop, DPD Parcelshop a Geis Point . . . 18

5.6 Úprava datagridu . . . 19

5.7 Ostatní . . . 20

6 Hodnocení 21 6.1 Použité znalosti . . . 21

6.2 Schazející znalosti a dovednosti . . . 21

7 Závěr 23

Reference 24

(8)

Seznam použitých zkratek a symbolů

PHP – PHP: Hypertext Preprocessor

SQL – Structured Query Language

AJAX – Asynchronous Javascript and XML

HTML – Hyper Text Markup Language

CSS – Cascading Style Sheet

XSS – Cross-Site Scripting

CSRF – Cross-Site Request Forgery

MVP – Model View Presenter

OOP – Objected Oriented Programing

8

(9)

Seznam obrázků

1 Diagram popisující MVP v Nette [3] . . . 13 2 Vyskakovací okno obsahující uživatelem vložený text . . . 15 3 Okno v administraci produktu obsahující dynamicky načítající se seznam benefitů 17 4 Třídní diagram popisující import poboček do systému . . . 19

(10)

1 Úvod

Individuální odbornou praxi jsem absolvoval ve firmě EVici webdesign s.r.o., tu přiblížím v násle- dující kapitole. V této firmě jsem pracoval jako programátor/vývojář webové aplikace. Pracoval jsem na projektu UPgates 2.1. Podílel jsem se na jeho úpravách a rozšiřování.

Tato práce se bude zabývat seznámením s firmou, použitými technologiemi a popisem ře- šených úkolů. Závěrem této práce bude zhodnocení celého průběhu praxe, nabytých znalostí a využitých znalostí z akademické půdy. Zmíněny budou také chybějících dovednosti.

Cestu odborné praxe jsem si vybral z důvodu získání pracovních zkušeností a zjištění před- stavy o fungování vývoje softwaru ve firmě. Výběr firmy jsem prováděl s úmyslem podílet se na vývoji webové aplikace. Firma Evici webdesign s.r.o. nabízela pozici programátora na projektu vyvíjeném v jazyce PHP a s použitím frameworku Nette. Jelikož jsem měl základní znalosti této technologie a chtěl se v ní zdokonalit, vybral jsem si pro vykonání praxe tuto firmu.

Na úvod ještě krátce rozeberu obsah kapitol v této práci. Kapitola 2 se bude zabývat bližším poznání firmy a také představením produktu UPgates, který je hlavní produkt firmy. Dále Kapi- tola 3 bude rozebírat použité technologie, které krátce představí. Kapitola s názvem „Pracovní náplň“ přiblíží pracovní postup ve firmě a popíše moji pracovní roli ve firmě. Dále v této práci rozeberu úkoly, které jsem řešil.

Na konci této práce bude hodnocení průběhu praxe. Zhodnotím také použití znalostí z akada- mické půdy a uvedu scházející znalosti. Celou práci uzavírá krátký závěr, ve kterém je provedeno celkové shrnutí.

10

(11)

2 Seznámení s firmou EVici webdesign s.r.o.

Firma EVici webdesign s.r.o. se od roku 2003 zabývá vývojem webových aplikací. Z počátku se jednalo o vývoj aplikací na míru. Poté firma začala s vývojem svého produktu pro konkrétní použití a nabízení produktu jako služby.

Firma sídlí v Centru podpory inovací Vysoké školy báňské v Ostravě. Firma není velká, celou firmu tvoří tým o pěti členech. Momentálně se firma věnuje pouze vývoji svého jediného produktu UPgates.

2.1 UPgates

UPgates [1] je produkt firmy EVici webdesign, který je určen k tvorbě internetových obchodů.

Systém je používán převážně pro tvorbu internetových obchodů samotnými zákazníky firmy.

Systém je tedy používán pro tvorbu e-shopového řešení bez nutnosti vyspělých technických znalostí. Z toho důvodu je při vývoji kladen důraz na srozumitelnost a nenáročnost administrace projektu. Jelikož je nad jedním řešením provozováno veliké množství odlišných obchodů, je také kladen důraz na univerzálnost systému. V této době se na systému UPgates pořád pracuje.

Systém UPgates můžeme z pohledu uživatele rozdělit na dvě části. Administrační část apli- kace a veřejně přístupná část (frontend). Administrační část umožňuje zákazníkovi pracovat s daty, nastavovat chování a vzhled přístupné části systému. Administrační rozhraní je pro všechny zákazníky stejné. Druhá část slouží k volnému přístupu pro návštěvníky systému vybu- dovaného pomocí systému UPgates. Tato část lze přizpůsobit každému zákazníkovi podle jeho potřeb. Přizpůsobuje se především grafika a použité komponenty.

(12)

3 Technické řešení

Tato kapitola se věnuje několika technologiím, které jsou spojeny s projektem UPgates. První podkapitola je oběcnější a popisuje celkový pohled na technologie spojené s projektem. Ostatní kapitoly se věnují konkrétním technologiím a jejich stručnému popisu.

3.1 Použité technologie

Na straně serveru je pro vývoj webové aplikace UPgates použit skriptovací jazyk PHP. Grafické rozhraní je vytvořeno pomocí HTML, JavaScriptu, CSS. Celkově se tedy jedná o klient-server řešení.

Serverová část aplikace je převážně psána v jazyce PHP. Jedná se o dynamicky typovaný skriptovací jazyk, který využívá rysů objektově orientovaného programovaní. Mezi výhody to- hoto jazyka patří rozsáhlý soubor funkcí a usnadnění tvorby webových aplikací. Naopak jako nevýhodu můžeme zmínit nekonzistentnost jednotlivých funkcí z knihovny. Další nevýhodou je oslabení výkonů, protože není udržován kontext aplikace, ten se vytváří pro každý požadavek zvlášť.

Již na začátku byl původními programátory pro jednodušší vývoj zvolen framework Nette [2], jedná se o open source framework založený na PHP. Mezi mnohé výhody tohoto frameworku patří bezpečnost aplikace, framework napomáhá programátorovi v ošetřování vstupů a výstupů aplikace. Jedná se tedy o zamezení bezpečnostních útoků jako je Cross-site scripting (XSS) a Cross-site request forgery (CSRF). XSS je útok, při kterém útočník spustí škodlivý skript na straně klienta. Obrana před tímto útokem spočívá ve správném escapování znaků. CSRF útok přiměje uživatele navštívit stránku napadené aplikace a provést akci na této stánce, aniž by o tom uživatel věděl. Generováním a ověřováním autorizačního tokenu se lze před tímto útokem chránit.

Dalším typem útoku je SQL injection. Tento útok spočívá v provedení SQL dotazu spolu se škodlivým vstupem z aplikace. Tím může být dotaz rozšířen nechtěnou funkcí, která může zneužít či poškodit aplikaci. Pro ochranu před tímto útokem je použita databázová vrstva Dibi [4]. Jedná se o volitelnou vrstvu pro práci s databází ve frameworku Nette. Tato vrstva se mimo jiné stará o ověřování vstupních parametrů dotazu pomocí „předpřipravených dotazů“, tímto zabraňuje útoku SQL injection.

3.2 Nette

Nette je framework využívající Model-View-Presenter (MVP) architektury. MVP architektura rozděluje aplikaci na 3 části: Model, View a Presenter. Presenter slouží ke zpracování požadavků od uživatele, vykonání akce, získání dat z modelu a předání dat do view. View se stará o pre- zentaci dat uživateli. Framework Nette využívá šablonovací systém Latte, který umožňuje snáze tvořit pohledy. Model se stará o získávání dat z databáze (viz Obrázek 1).

12

(13)

Obrázek 1: Diagram popisující MVP v Nette [3]

3.3 jQuery

JQuery [5] je JavaScriptová knihovna, která se řídí heslem piš méně, dělej více. Umožnuje jedno- dušší práci s JavaScriptem. Díky tomu můžeme tvořit dynamické webové aplikace a jednodušše používat technologie jako je AJAX. Tato knihovna je velmi rozšířená, obsahuje rozsáhlou doku- mentaci a stále se vyvíjí.

3.4 AJAX

Asynchronous Javascript And Xml je technologie umožňující používat asynchronní komunikaci mezi klientem a serverem. Díky tomuto je možno měnit obsah stránek, aniž by bylo potřeba kompletní načtení stránky. Stránka se v porovnání s klasickou webovou aplikací jeví jako více interaktvní.

(14)

4 Pracovní náplň

Během praxe jsem se podílel na vývoji produktu UPgates. Většina mých úkolů byla zaměřena na rozšíření funkčnosti systému o další funkce. Některé úkoly byly také zaměřeny na úpravu již stávajících funkcí systému.

Úkoly jsem řešil postupně podle priority s jakou mně byly přiřazeny. Pro správu úkolů jsme používali doplněk do prohlížeče Streak pro Gmail a webový klient Gmail. V Gmailu jsme jed- notlivé úkoly přiřazovali určitým osobám a byla také zvolena priorita úkolů. Doplněk Streak pro Gmail je ve firmě používán pro snadnější správu úkolů, umožňuje vytvářet úkoly a lépe je udržovat a spravovat. Gmail se ve firmě pro úkoly používá i z důvodu rychlého vyřizování poža- davků od klientů. Jednotlivé emaily od klientů jsou přiřazeny pověřeným osobám, ty následně úkol vyřeší a většinou informují klienta o provedené úpravě.

Úkol jsem začínal konzultací s vedoucím praxe o podobě výsledku po dokončení úkolu. Podle složitosti úkolu jsem dále případně konzultoval s ostatními programátory návrh řešení úkolu.

Následovalo vyřešení přiděleného úkolu. Dokončením celého cyklu bylo předvedení výsledku vedoucímu.

Nejprve bych rozdělil své přidělené úkoly na dva rozdílné druhy. Prvním druhem úkolů bylo upravování stávající funkčnosti, jednalo se o grafické úpravy, opravy chyb nebo doplnění drobné funkcionality. Druhým druhem úkolů bylo vytváření nové funkcionality. Jednalo se o zásah do administrační i veřejné části systému. Tyto úkoly obnášely připravení databáze pro danou funkč- nost vytvořením požedovaných entit nebo atributů. Dále následovalo vytvoření administrace dané funkce. Musel jsem tedy vytvořit formuláře pro úpravu a nastavení funkce. Poté zbývalo implementovat funkcionalitu ve veřejné části webu.

Při úprávách databáze bylo potřeba vytvořit migraci, která upraví databázi do požadovaného stavu. Tato vytvořená migrace je poté spuštěna pro databáze všech projektů, jelikož databáze jednotlivých projektů jsou oddělené. Pro správu migrací se ve firmě používá nástroj Phinx [6].

14

(15)

5 Řešení úkolů

5.1 Důležité úkoly

V této kapitole vyberu ty nejpodstatnější úkoly, na kterých jsem pracoval. Jedná se o úkoly, které vytvářely nebo podstatným způsobem měnily funkčnost nějaké části aplikace. Jsou tedy vynechány převážně opravy chyb nebo drobné úpravy.

Podkapitoly zmiňují vybrané úkoly, poskytují popis úkolů a končí popisem časové náročnosti daného úkolu. Zde jsou vybrané úkoly:

• Vyskakovací okno po načtení stránky uživatelem, příslušná administrace

• Patička zobrazující informaci o používání cookies, administrace

• Dynamické chování administrace složených částí systému

• Import dat pro PPL Parcelshop, DPD Parcelshop a Geis Parcelshop

• Úprava datagridu

5.2 Vyskakovací okno po načtení stránky uživatelem, příslušná administrace

(16)

Zadání úkolu tedy znělo vyrobit vyskakovací okno v systému, které bude editovatelné. Hlavní obsah bude zadán buď jako html text, vybraný banner, předdefinovaný formulář pro sběr emailů nebo kontaktní formulář. Dále mělo být umožněno nastavovat datum, kdy se bude vyskakovací okno zobrazovat, nastavit opoždění zobrazení okna nebo interval opakovaného zobrazování okna.

Nejdříve jsem vytvořil požadované entity v databázi. Následně jsem vytvořil administra- tivní rozhraní pro požadovanou funkčnost v nastavení systému, tedy administraci. Jednalo se o vytvoření formuláře, který uživateli umožní nastavit požadované vlastnosti. Poté, co jsem měl požadovanou funkčnost připravenou v databázi a administrativní části aplikace, jsem začal s im- plementací funkce do veřejné části aplikace. Vložení funkce se provádí vytvořením komponenty v presenteru aplikace. Musel jsem tedy pro komponentu vytvořit vlastní presenter a šablonu.

Celý systém využívá hierarchické struktury šablon, má funkčnost byla požadováná na celém webu, proto se komponenta vytváří v BasePresenteru (hlavní presenter aplikace) a komponenta je vložena v šabloně @layout.phtml, jedná se o sdílenou šablonu pro všechny podstránky.

Poté co jsem měl vloženou komponentu na stránce, jsem musel dokončit hlavní funkčnost pomocí JavaScriptu. Díky JavaScriptu jsem ovládal zobrazení vyskakovacího uživateli pomocí za- daných parametrů (opoždění zobrazení, interval zobrazování, zobrazení pouze na hlavní stránce).

K zachování informace o posledním zobrazení je vytvořena cookie v prohlížeči návštěvníka webu.

Příklad použití je ukázán na Obrázku 2.

Tento úkol byl mým prvním úkolem ve firmě. Po celou dobu vývoje požadované funkce jsem se seznamoval s prostředím ve kterém pracuji, ať už se jednalo o strukturu databáze, vytváření migrací pro databáze, adresářovou strukturou projektu a rozdělení systému na administrační a veřejnou část. Úkol mi zabral přibližně čtyři pracovní dny.

5.3 Patička zobrazující informaci o používání cookies, administrace

Tento úkol vznikl požadavkem Evropské Unie [7] na informování návštěvníka webu o používání identifikace uživatelů pomocí cookies. Tato identifikace se používá především pro měření údajů návštěvnosti a dalších sledovaných statistik.

Úkol tedy obnášel vytvoření patičky informující o používání cookies. K tomu bylo potřeba vytvoření administrace, za účelem měnění popisku provozovateli webu.

Úkol jsem zahájil procházením již existujících řešení, kde jsem se inspiroval hlavně designově a udělal si představu, co vše bude potřeba administrovat a mít uloženo v databázi. Poté jsem vytvořil nové entity v databázi a začal tvořit administraci. Administrace se stala části již exis- tujícího formuláře pro hlavní nastavení systému.

V tomto případě bylo nutné zavést funkci pro všechny e-shopy zároveň, bez změny kterékoliv šablony. Po konzultaci se zkušenějšími kolegy mi byla navrhnuta možnost vložení celé patičky pomocí JavaScriptu. Vložení JavaScriptového kódu do šablony probíhá pomocí již připravené funkce vkládání různých JavaScriptů do stránky. Tento kus kódu se stará o kontrolu zobrazení a samotné zobrazení patičky.

16

(17)

Díky tomuto postupu nebylo nutné měnit šablony jednotlivých e-shopů, ale změna se pro- jevila u všech jednotně bez dalšího zásahu. Pro poskytovatele e-shopu tak znamenalo zapnutí funkce jen nastavení v administraci systému, kde bylo potřeba pouze zaškrtnout zda bude pa- tička aktivní. A upravit texty zobrazené v patičce.

Řešením tohoto úkolu jsem strávil přibližně dva pracovní dny.

5.4 Dynamické chování administrace složených částí systému

Obrázek 3: Okno v administraci produktu obsahující dynamicky načítající se seznam benefitů Důvodem k dodání určité dynamiky do formulářů v administraci aplikace byla především velikost formulářů pro důležité části aplikace. Jednalo se hlavně o administraci obsahu na stránce.

Formuláře, které se týkaly nastavení byly relativně krátké a přímočaré. U formulářu pro obsah to

(18)

s nastavením. Problém nastává, když se uživatel vrátí zpět do původního okna. Hodnoty, které jsou v tomto okně načteny, již nemusí být aktuální. Jedná se o nevýhodu aplikace, která je navržena jako klient-server řešení. Z toho důvodu je potřeba určité části formulářů donačítat asynchronně.

Úkolem tedy bylo při zobrazovaní seznamů s výběrem hodnot pro vyplnění k produktu, načíst seznam opětovně, pokud to bylo potřeba. Implementace této funkce probíhala JavaScriptovým kódem, a úpravou šablony pro aktivování funkce pro daný prvek. Elementu musela být přidána hodnota obsahující URL adresu obslužného signálu pro aktualizaci elementu. Změna byla nutná u všech selectboxů a vyskakovacích oken se seznamem pro výběr.

Framework Nette pro funkci částečného načítání stránky používá mechanismu nazývající snippety [8]. Tento mechanismus začíná označením kusu kódu v šabloně. Poté je pomocí AJAXu vytvořen požadavek na server. Znamená to požadavek na presenter a jeho konkrétní signál, který se stará o obsluhu asynchronního požadavku. V signálu presenteru můžeme pracovat s daty uloženými na serveru nebo v databázi, následně invalidujeme kus kódu, který chceme znovu vykreslit - snippet. Jako odpověď ze serveru příjde seznam invalidovaných snippetů a jejich obsah. Následně pomocí JavaScriptu nahradíme starý kus kódu kódem z odpovědi ze serveru.

Tímto se nám překreslí námi zvolená část aplikace.

Na Obrázku 3 je zobrazeno dynamicky načítané vyskakovací okno se seznamem pro výběr benefitů produktu. Okno je na obrázku ve stavu znovunačítání.

Tento úkol byl dlouhodobého rázu, jelikož nestačilo pouze vytvořit novou funkci, ale bylo potřeba upravit stávající šablony. Během řešení úkolu jsem se seznámil se snippety ve frameworku Nette. Tento úkol jsem řešil přibližně deset dní.

5.5 Import dat pro PPL Parcelshop, DPD Parcelshop a Geis Point

Služby PPL Parcelshop [9], DPD Parcelshop [10] a Geis Point [11] jsou výdejní místa daných dopravců. Tyto služby také poskytují API, které slouží k získání dat externím aplikacím či systémům.

Předmětem tohoto úkolu bylo získání dat z vyjmenovaných služeb a uložení dat do databáze k dalšímu použití. Jednalo se konkrétně o seznam poboček, včetně detailů jako adresa nebo otevírací hodiny.

V systému už byl zabudován import dat ze Zásilkovny a Uloženky, jednalo se tedy o roz- šíření funkčnosti o nové zdroje informací. Import dat je závislý na typu doprav v administraci systému. Při aktivování dynamických poboček pro vybraný druh dopravy se uloží do systémové databáze příznak pro projekt a typ dopravy. Při následném pravidelném importování dat jsou vybrány projekty, které mají dynamické pobočky. U těchto projektů se provedene naimportování požadovaných poboček do databáze.

Import vytvoří objekty obsluhující náhrání dat z požadované služby. Tyto objekty načtou data a import provede uložení výsledných dat do databáze. Každý objekt (viz Obrázek 4) je tak zodpovědný za provedení požadavku na adresu dané služby, zpracování dat z odpovědi serveru

18

(19)

Obrázek 4: Třídní diagram popisující import poboček do systému

a připravení hodnot pro společný formát. Tyto připravené hodnoty jsou následně uloženy do databáze.

Řešení toho úkolu mi zabralo přibližně dva dny.

5.6 Úprava datagridu

Celý systém administrace využívá pro zobrazování dat ve formě tabulky datagrid. Konkrétně

(20)

5.7 Ostatní

Úkolů, které jsem prováděl, bylo mnohem více. Pouze jsem se o nich v této práci nezmínil.

Jednalo se především o drobné úpravy funkčnosti nebo grafické úpravy. Řešil jsem i další větší úkoly, které mi zabraly více času, ale ty se podobaly některému z rozebraných úkolů.

Za krátkou zmínku stojí úkol, kdy bylo potřeba předělat funkci štítků pro univerzálnější použití. Produkty původně obsahovaly pouze tři předdefinované štítky. Mým úkolem bylo rozšířit chování na neomezené množství štítků. S tím také souviselo zobrazovaní seznamu štítků ve filtrování produktů a vytváření filtračních stránek.

Dalším druhem úkolů, který jsem vykonával, byly opravy stávajících chyb. Chyby byly roz- manité, jednalo se především o hraniční případy či neošetřené stavy.

20

(21)

6 Hodnocení

Přínosem z absolvování praxe pro mne bylo nabytí pracovních zkušeností a porovnání akade- mického a praktického pohledu na profesi programátor. Díky praxe jsem také poznal, jaké to je pracovat v týmu, kde jsou lidé zodpovědní za určité části vývoje. V neposlední řadě jsem byl konfrontován s uživaleli/zákazníky a musel s nimi jednat elektronickou poštou.

Také jsem zjistil důležitost přesného zadání zadané práce. Jelikož se jedná o první část vývoje softwaru, rozhoduje přesné zadání o rychlém a správném splnění úkolu. V případě špatného pochopení zadání se čas na splnění úkolu zvyšuje a určitý kus práce programátora může být zbytečný.

Také jsem se setkal se změnami požadavavků na již implementovanou funkci. V tomto případě je důležité, aby aplikace byla správně navržena a požadované změny byly možné provést bez větších potíží. Poznal jsem tedy úskalí změny implementace stávájící funkce s velkým zásahem do implementace. Jedná se o složitý úkol, při kterém může dojít k mnoha pochybením.

6.1 Použité znalosti

Uplatněných znalostí nabytých ve škole bylo několik, jednalo se především o znalosti z před- mětů zabývajících se databázemi. Využil jsme tedy znalosti z předmětů „Úvod do databázových systémů“ i navazujícího předmětu v této problematice „Databázové a informační systémy“.

Určitou část použitých znalostí také byla z předmětu věnovaným programování. Při učení se nového jazyku mi pomohla znalost jazyků ostatních. Neboť programovací jazyky mají občas podobné rysy. Dále také znalost OOP pro mne byla výhodou. Neboť celý framwork Nette, ve kterém jsem pracoval, tento přístup používá. Během absolvování praxe jsem také použil znalosti z předmětu „Vývoj informačních systémů“, tento předmět mě obohatil o přemýšlení o návrhu architektury komplexních aplikací. To byl klíčový prvek, který jsem využil také v praxi.

6.2 Schazející znalosti a dovednosti

Mezi chybějící znalosti bych zmínil programovací jazyk PHP a dále znalost frameworku Nette.

První bod pro mne nebylo příliš obtížné dohnat. Jedná se totiž o jazyk podobný jazykům, které jsem se již naučil na škole. Základní znalost jsem již měl před nástupem na praxi. Neznalost konkrétního frameworku pro mne byla složitější. Po určité době jsem ovšem ovládl základy a pokročilejší věci jsem řešil postupně.

(22)

Tento problém se projevoval především v jednání s vedoucím praxe. Jelikož při průběžné kontrole postupu vykonání úkolů jsem musel odhadovat čas, který budu potřebovat k dořešení úkolu. Časem se toto ovšem zlepšilo a díky zkušenostem jsem v pozdějších fázích odhadoval potřebný čas přesněji.

22

(23)

7 Závěr

Vykonáním úkolů na praxi jsem přispěl k rozšíření funkčnosti systému UPgates, který se používá jako služba pro tvorbu internetových obchodů. Úkoly, které jsem řešil, byly praktického zaměření a vždy byla v systému zanechána naimplementovaná funkce. Byl jsem zodpovědný za kompletní nasazení funkce do systému. Úkol tedy procházel od zadání, přes implementaci až po testovaní a nasazení na ostrou verzi. Při opravě chyb jsem také komunikoval s uživateli služby.

Díky praxi jsme získal zkušenosti a ověřil si důležitost obecných principů v problematice pro- gramovaní. Tyto principy jsou důležité pro rychlou adaptaci programátora na novou technologii.

V mém případě se jednalo především o používání jazyka PHP a frameworku Nette.

Další získanou zkušeností je přesnější časový odhad práce. Jak jsem zjistil, jedná se o vlast- nost, která přibývá časem. Je také závislá na dobré znalosti problému a technologie, se kterou je třeba pracovat.

(24)

Reference

[1] UPgates [online]. EVici webdesign s.r.o. [cit. 2016-04-20]. Dostupné z:

http://www.upgates.com/cz/

[2] Nette Framework [online]. Nette Foundation [cit. 2016-04-20]. Dostupné z:

https://nette.org/

[3] In: Vytvoření presenteru | Nette Framework [online]. Nette Foundation [cit. 2016-04-20].

Dostupné z: https://doc.nette.org/cs/0.9/quickstart/vytvoreni-presenteru

[4] Dibi [online]. Nette Foundation [cit. 2016-04-20]. Dostupné z: https://dibiphp.com/

[5] JQuery [online]. The jQuery Foundation [cit. 2016-04-20]. Dostupné z: https://jquery.com/

[6] Phinx [online]. [cit. 2016-04-20]. Dostupné z: https://phinx.org/

[7] Zákon o elektronických komunikacích a o změně některých souvisejících zákonů (zákon o elektronických komunikacích) [online]. [cit. 2016-04-20]. Dostupné z:

http://www.podnikatel.cz/zakony/zakon-o-elektronickych-komunikacich-a-o-zmene- nekterych-souvisejicich-zakonu-zakon-o-elektronickych-komunikacich/uplne/

[8] AJAX & snippety [online]. [cit. 2016-04-20]. Dostupné z: https://doc.nette.org/cs/2.3/ajax [9] PPL ParcelShop [online]. [cit. 2016-04-20]. Dostupné z: https://www.pplparcelshop.cz/

[10] DPD ParcelShop [online]. DPD [cit. 2016-04-20]. Dostupné z: http://pickup.dpd.cz/

[11] Geis Point [online]. [cit. 2016-04-20]. Dostupné z: http://www.geispoint.cz/

[12] Nextras/Datagrid [online]. Nextras community [cit. 2016-04-20]. Dostupné z:

https://nextras.org/datagrid/docs/master/

24

Odkazy

Související dokumenty

Druhou zásadní technologií, se kterou jsem se v průběhu praxe setkal, byl Entity Framework. O tom jsem rovněž předtím nic nevěděl a není se ani čemu divit, jelikož je

Bakalářská práce se zabývá popisem absolvování individuální odborné praxe ve firmě Versta s.r.o.. V první části jsou uvedeny základní informace o firmě, jejím

Tato bakalářská práce se zabývá popisem individuální odborné praxe vykonávané ve firmě BD SENSORS s.r.o.. Popisuje vznik a rozvoj firmy za posledních dvacet

Vlastním úsilím jsem se naučil základy PHP, jQuery, CSS a MySQL, které jsem potřeboval k vykonávání praxe ve firmě 3IT úspěšný eshop s.r.o. Studium na VŠB-TUO FEI mi

Na konci práce, budou rozebrané vědomosti, které jsem dosáhl při studiu a také vědomosti, které jsem neměl při vykonávání této individuální odborné bakalářské praxe..

e.Znalosti či dovednosti scházející studentovi v průběhu odborné praxe f.Dosažené výsledky v průběhu odborné praxe a její celkové zhodnocení. Seznam doporučené

 názvy kapitol: Sklenice grenadýny, Hotel Tichota, Obsluhoval jsem anglického krále, A hlavu jsem už nenašel, Kterak jsem se stal milionářem...

Jednu chvíli to byla živá bytost svíjející se v křečích, a pak už jen studená bílá škatule plná natrávených ručníků a s pěnou u pusy, protože mám dojem, že jsem tam