Θερινό Σχολείο, 14 – 20 Ιουλίου 2014

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Από τη C στη C++ Hy240b project 2014 Phase 1.
Advertisements

Κληρονομικότητα. Εισαγωγή  Κληρονομικότητα (Inheritance) καλείται ο μηχανισμός με τον οποίο μία νέα κλάση που ονομάζεται παράγωγη (derived class) δημιουργείται.
Η πλατφόρμα moodle και η χρήση ψηφ. εκπαιδευτικού υλικού
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Λειτουργικό Σύστημα ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ENOTHTA B.1.3 (1)
Διευκρινήσεις κώδικα Hy240b project 2014 phase 1.
Joomla.
• Php • Joomla • Joomla Module • Παρουσίαση του συστήματος μας.
POINTERS, AGGREGATION, COMPOSITION. POINTERS TO OBJECTS.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Βάσεις Δεδομένων 1 T.Manavis– N.Kyritsis.
Εργαστήριο Λειτουργικών Συστημάτων Φροντιστήριο 2– Εισαγωγή στη Bash Ντίρλης Νικόλαος.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
 Αυδίκου Χριστίνα  Γιουμούκης Παναγιώτης  Κιντσάκης Θάνος  Πάπιστας Γιάννης.
Δ.Π.Θ. Συνδέοντας έγγραφα - 1 Συνδέοντας έγγραφα Μια σύνδεση στο Web (link) αποτελείται από δύο μέρη : Aυτό που βλέπουμε στη σελίδα και λέγεται άγκυρα.
Το Δίκτυο Ηλεκτρονικής Μάθησης για την Τάξη
Torque Game Engine - #02 Κώστας Καρπούζης (kkarpou)
AJAX Asynchronous JavaScript and XML Θ. Βαρβαρίγου Καθηγ. ΕΜΠ Τηλ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Συλλογές.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου.
Στο λειτουργικό σύστημα Windows, υπάρχουν εικονίδια (icons) τα οποία αναπαριστούν τις διάφορες οντότητες (φυλαγμένες πληροφορίες, προγράμματα που κάνουν.
ΕΡΩΤΗΜΑΤΑ ΕΠΙΛΟΓΗΣ ΜΕ ΣΥΖΕΥΞΗ ΠΙΝΑΚΩΝ
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
1 Ολυμπιάδα Πληροφορικής Μάθημα 7. 2 Στόχοι μαθήματος Δημιουργία συναρτήσεων από το χρήστη Δομή προγράμματος με συναρτήσεις Συναρτήσεις και παράμετροι.
PHP/MYSQL ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΕΠΟΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ-ΜΗΧΑΝΗΣ ΤΥΡΟΛΟΓΟΥ ΓΛΥΚΕΡΙΑ ΑΜ 875 ΡΙΖΟΥ ΔΕΣΠΟΙΝΑ ΑΜ 816.
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Διασύνδεση Java Εφαρμογών με ΒΔ Π. Φιτσιλής 1.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Ποιότητα Λογισμικού Ενότητα 2: Παραμετρικοί έλεγχοι στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Οριζόντιο Έργο Υποστήριξης Σχολείων, Εκπαιδευτικών και Μαθητών στο Δρόμο για το ΨΗΦΙΑΚΟ ΣΧΟΛΕΙΟ, νέες υπηρεσίες Πανελλήνιου Σχολικού Δικτύου και Στήριξη.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
Tomcat Θ. Βαρβαρίγου Καθηγήτρια ΕΜΠ Τηλ
Υπερφόρτωση Τελεστών (Συνέχεια) Αντικειμενοστραφής Προγραμματισμός.
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Διδακτική Πληροφορικής
Αρχιτεκτονική Open eClass Θερινό Σχολείο, 14 – 20 Ιουλίου 2014 Γιώργος Φουρτούνης Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
Παρουσίαση Θερινού Σχολείου Αριστεία ΕΛ/ΛΑΚ ΤΕΙ Αθήνας.
Σενάριο Εργαστηρίου Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας Κατερίνα Γεωργούλη Δημοσθένης Νικούδης ΤΕΙ Αθήνας Κύκλος Εκπαίδευσης «Συστήματα Ηλεκτρονικής Μάθησης.
COSMOS Cultivate Resilient Smart Objects for Sustainable City Applications COSMOS-Minimal Planner Functionalities; Dependencies, instructions and code.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
ΔΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙΔΩΝ Ένας Συνοπτικός Οδηγός Καμήλαλη Δέσποινα Μαθηματικός, MSc Πληροφορικής, Υποψήφια Διδάκτωρ Χαροκοπείου Πανεπιστημίου Αθηνών.
Μάθημα 1 ΔΙΑΔΙΚΤΥΟ Διευθύνσεις και Πρωτόκολλα. Διευθύνσεις Πως αποκωδικοποιούνται οι διευθύνσεις: Πρωτόκολλο://server.domain.
ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Ενότητα 12 : Η χρήση της MySQL στο Ηλεκτρονικό εμπόριο (ΙΙI) Ιωάννης Τσούλος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Ενότητα 7 : Χρήση Πινάκων στο Ηλεκτρονικό εμπόριο (I) Ιωάννης Τσούλος
Τα καινοτόμα χαρακτηριστικά του Διαδικτύου και η ευρεία του αποδοχή από τις νεαρές ηλικίες καλλιέργησαν την ιδέα της αξιοποίησής του ως ένα εργαλείο στην.
Πανεπιστήμιο Πελοποννήσου
Διευθύνσεις και Πρωτόκολλα στο διαδίκτυο
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Εργαστηριακό σεμινάριο Χειμερινό εξάμηνο
Η πλατφόρμα Βασίλης Γαργανουράκης Υπεύθυνος 2ου ΕΚΦΕ Ηρακλείου
Θερινό Σχολείο, 14 – 20 Ιουλίου 2014
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Java DataBase Connectivity
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ενισχυτική διδασκαλία
Θερινό Σχολείο, 14 – 20 Ιουλίου 2014
Εργασία στο μάθημα «Προγραμματισμός ΙΙ»
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ενότητα 2 : Το σύστημα βάσεων δεδομένων MySQL (II) Ιωάννης Τσούλος
Web Services στη C# Εργαστήριο 3
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Server-side vs Client-side
Συγγραφέας: Ζαγκότας Στεφανος Επιβλέπων Καθηγητής: Ούτσιος Ευάγγελος
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ερωτήματα Επιλογής σε ACCESS
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μεταγράφημα παρουσίασης:

Θερινό Σχολείο, 14 – 20 Ιουλίου 2014 slim Δημοσθένης Νικούδης Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

Τι είναι framework Μια δομή/καλούπι που μας βοηθάει να οργανώσουμε τον κώδικα μας Συνήθως παρέχει βιβλιοθήκες για συχνά tasks όπως templating, routing, request handling κτλ. Είναι ένα επίπεδο πιο πάνω από μια απλή βιβλιοθήκη – μας ορίζει πως πρέπει να γραφτεί γενικότερα ο κώδικας αντί να παρέχει απλά συναρτήσεις προς χρήση Ουσιαστικά είναι ένα script, το οποίο φορτώνει τα δικά μας script με έναν συγκεκριμένο τρόπο και μας παρέχει κλάσεις Να πω με συντομία τι είναι templating, τι είναι routing - Request handling: πχ. το πώς θα χειριστώ τις διαφορές ανάμεσα σε POST, PUT ή πως θα πάρω τις παραμέτρους από το καθένα

Γιατί framework; Σωστά δομημένος κώδικας από την αρχή – αναγκαζόμαστε να αναλύσουμε και να χωρίσουμε τον κώδικα μας από την αρχή Καλύτερη επικοινωνία με άλλους developers – οποιοσδήποτε ξέρει το framework μπορεί να καταλάβει τον κώδικα μας και να συνεισφέρει Γρηγορότερη ανάπτυξη – μπορούμε να εστιάσουμε στην εφαρμογή μας - Η επικοινωνία είναι το μεγαλύτερο εμπόδιο για συνεισφορά σε ΕΛΛΑΚ. Όταν βλέπουμε μια εφαρμογή της οποίας τον κώδικα δε τον καταλαβαίνουμε αμέσως μας κάνει put off από το να συνεισφέρουμε - Μπορούμε να εστιάσουμε στην εφαρμογή μας: Δε χρειάζεται να αναλωνόμαστε σε περιφερειακά πράγματα όπως το πώς θα εξασφαλίσουμε ότι ο χρήστης δε μπαίνει σε resources που δεν έχει πρόσβαση

Slim Micro-framework Object oriented Πολύ απλό στη χρήση Παρέχει τα ελάχιστα δυνατά features που μπορεί να παρέχει ένα framework Ελάχιστο overhead σε σχέση με την «ελεύθερη» PHP Object oriented Πολύ απλό στη χρήση

Παράδειγμα Slim Routing με μια παράμετρο Τι θα τυπώσει αν ονομάσουμε το αρχείο index.php και καλέσουμε /index.php/hello/george ? - Το παράδειγμα όπως είναι ΔΕΝ θα δουλέψει γιατί δεν έχουμε κάνει include το library Να πω για το htaccess και το mod_rewrite λίγα πράγματα Να πω ότι κυρίως θα χρησιμοποιήσουμε το routing module για να φτιάξουμε τους πόρους μας Χρήσιμα links: http://www.slimframework.com/

URL rewriting Το path /index.php/hello/george δεν είναι «όμορφο» mod_rewrite στον Apache HttpRewriteModule στον Nginx

Παράδειγμα mod_rewrite RewriteEngine On # Some hosts may require you to use the `RewriteBase` directive. # If you need to use the `RewriteBase` directive, it should be the # absolute physical path to the directory that contains this htaccess file. # RewriteBase /modules/rest/ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [QSA,L] Τοποθετείται είτε απευθείας στο config του server είτε στο .htaccess - Να πω τι είναι το .htaccess – ειδικό αρχείο που μας επιτρέπει να κάνουμε override το configuration του server για ένα συγκεκριμένο directory

Πως θα το χρησιμοποιήσουμε Θα προσθέσουμε το Slim framework στα includes του openClass Φάκελος /includes Θα δημιουργήσουμε ένα νέο module στο openClass Φάκελος /modules/rest/ Μέσα στο module θα φτιάξουμε ένα index.php το οποίο θα φορτώνει το Slim και θα αρχικοποιεί το routing για τους πόρους “rest” είναι το όνομα του νέου module Η ιδέα είναι ο φάκελος /modules/rest να έχει μέσα τους RESTful πόρους με τα κατάλληλα paths - Να αναφέρω ότι τα πρώτα έχουν γίνει ήδη από εμάς προς διευκόλυνση Χρήσιμα links: http://docs.slimframework.com/#Routing-Overview

Υπάρχουσα υποδομή Το rest module έχει δημιουργηθεί, με ένα βασικό index.php που χειρίζεται την αυθεντικοποίηση Επίσης έχει δημιουργηθεί το αρχείο courses.php που περιέχει τη δομή των συναρτήσεων που θα χειριστούν τον πόρο /courses Η υποδομή έχει δημιουργηθεί για τη διευκόλυνση των ασκήσεων και για να αποτελέσει την αφετηρία για τη δημιουργία άλλων πόρων

Άσκηση 1 Θα δημιουργήσουμε τον πόρο GET /courses που θα επιστρέφει έναν πίνακα με μαθήματα Τα δεδομένα θα πρέπει να επιστρέφονται σε μορφή JSON Τα πεδία που θα επιστρέφονται για κάθε μάθημα είναι: code, lang, title, keywords, visible Ο πίνακας με τα μαθήματα θα είναι αρχικά σταθερός και «hardcoded» μέσα στο GetCourses. Ακολουθεί ο πίνακας των μαθημάτων.

Άσκηση 1 (Πίνακας μαθημάτων) code lang title keywords visible 1001 el Μαθηματικά I math, sci 1 1002 Αλγοριθμική alg, progr 2001 Λειτουργικά Συστήματα I os 2002 Αντικειμενοστραφής Προγραμματισμός progr

Σύνδεση με βάση δεδομένων Το openClass εφόσον έχει εγκατασταθεί σωστά παρέχει έναν wrapper για σύνδεση με τη βάση δεδομένων Εξασφαλίζει ότι θα γίνει μόνο μια σύνδεση με τη βάση Η ανάκτηση της σύνδεσης με την κλήση Database::get() Η κύρια κλήση για εκτέλεση ερωτημάτων είναι: Database::get()->queryFunc($sql, $callback, $argument1, $argument2, …, $argumentN); Τα openClass σαν σύστημα ανοίγει ήδη σύνδεση με τη βάση χρησιμοποιώντας τη βιβλιοθήκη PDO Στη συνέχεια κάνει encapsulate αυτή τη σύνδεση σε ένα object που ονομάζεται Database και μας επιτρέπει να ανακτούμε την ίδια σύνδεση και να τη χρησιμοποιούμε όποτε θέλουμε για να τρέξουμε queries Ίσως χρειαστεί να πω δύο λόγια τα prepared statements όταν εξηγήσω τι είναι τα arguments Reference μεθόδων της κλάσης Database: https://github.com/maellak/openeclass/blob/master/modules/db/database.php

Άσκηση 2 Θέλουμε να επεκτείνουμε την άσκηση 1, ώστε ο πίνακας των μαθημάτων να μην είναι «hardcoded» αλλά να ανακτάται από τη βάση Το output θα πρέπει να περιέχει τα πεδία της προηγούμενης άσκησης και τα εξής επιπλέον: prof_names, public_code

Σας ευχαριστώ πολύ Ερωτήσεις; Σας ευχαριστώ πολύ Ερωτήσεις; Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας