ΓΟΜΖ. Γηδάζθνληεο: Π. Αγγειάηνο, Γ. Εήλδξνο Δπηκέιεηα δηαθαλεηώλ: Γ. Εήλδξνο. Σρνιή Ζιεθηξνιόγσλ Μεραληθώλ θαη Μεραληθώλ Υπνινγηζηώλ



Σχετικά έγγραφα
ΔΟΜΗ. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΔΟΜΗΣΗ ΚΩΔΙΚΑ. Μαθαίνω παίζοντας

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην ζαο

DOM. Γηδάζθνληεο: Π. Αγγειάηνο, Γ. Εήλδξνο Δπηκέιεηα δηαθαλεηώλ: Π. Αγγειάηνο. Σρνιή Ζιεθηξνιόγωλ Μεραληθώλ θαη Μεραληθώλ Υπνινγηζηώλ

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

Οργάνωση και Δομή Παρουσιάσεων

Εγκατάσταση του πακέτου XAMPP. Β Τεχνική Σχολή Λεμεςοφ Σχολική χρονιά Άριςτοσ Παςιάσ

Constructors and Destructors in C++

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KARNAUGH

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

Η αξρή ζύλδεζεο Client-Server

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

Άσκηση 1 - Μοπυοποίηση Κειμένου

Α Ο Κ Η Α Μ Α Ζ Η Η Ρ Η ( S E A R C H )

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ

Η επιζκόπηζη ηης έμμιζθης ενηολής ζηην Αλλοδαπή. Καηεξίλα Γαιαλνπνύινπ, Intellectual Property Manager, Microsoft Ειιάο Α.Ε.

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

Τ ξ ε ύ ο ξ π ς ξ σ ξ ο ί ξ σ _ Ι ε ο α μ ε ι κ ό π

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ

Η/Υ A ΤΑΞΕΩΣ ΑΕ Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

ΙΣΤΟΡΙΑ ΤΟΥ ΑΡΧΑΙΟΥ ΚΟΣΜΟΥ

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

ISO/IEC 27001:2005 Certificate No: IS Aegate Ltd 2011 All rights reserved

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

(Ενδεικηικές Απανηήζεις) ΘΔΜΑ Α. Α1. Βιέπε απόδεημε Σει. 262, ζρνιηθνύ βηβιίνπ. Α2. Βιέπε νξηζκό Σει. 141, ζρνιηθνύ βηβιίνπ

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ. G. Mitsou

Ενδεικτικά Θέματα Στατιστικής ΙΙ

Δξγαιεία Καηαζθεπέο 1 Σάμε Δ Δ.Κ.Φ.Δ. ΥΑΝΗΩΝ ΠΡΩΣΟΒΑΘΜΗΑ ΔΚΠΑΗΓΔΤΖ. ΔΝΟΣΖΣΑ 2 ε : ΤΛΗΚΑ ΩΜΑΣΑ ΔΡΓΑΛΔΗΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Ογθνκεηξηθό δνρείν

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

Φςζική Πποζαναηολιζμού Γ Λςκείος. Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο

Τν εθπαηδεπηηθό πιηθό ηεο Φξνληηζηεξηαθήο Δθπαίδεπζεο Τζηάξα δηαλέκεηαη δωξεάλ απνθιεηζηηθά από ηνλ ψεθηαθό ηόπν ηνπ schooltime.gr

ΜΑΘΗΜΑΤΙΚΑ ΘΔΤΙΚΗΣ ΚΑΙ ΤΔΦΝΟΛΟΓΙΚΗΣ ΚΑΤΔΥΘΥΝΣΗΣ Β ΛΥΚΔΙΟΥ ΤΔΣΤ(1) ΣΤΑ ΓΙΑΝΥΣΜΑΤΑ

γηα ηνλ Άξε Κσλζηαληηλίδε

1 Είζοδορ ζηο Σύζηημα ΣΔΕΔ ή BPMS

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο


Κεθάλαιο 7. Πξνζθνξά ηνπ θιάδνπ Μ. ΨΥΛΛΑΚΗ

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

ΔΡΓΑΙΑ 1. Γιαδικησακά πληροθοριακά σζηήμαηα. Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές. ηέθανος Κονηοβάς ΑΔΜ :283. Πάζτος Βαζίλειος ΑΔΜ :288

x x x x tan(2 x) x 2 2x x 1

f '(x)g(x)h(x) g'(x)f (x)h(x) h'(x) f (x)g(x)

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο.

Injection Attacks. Protocol Host FilePath. field1=valuex&field2=valuey. Query String. Web server HTTP GET.

Κεθάιαην 20. Ελαχιστοποίηση του κόστους

MySQL Εργαστήριο #5 Ενεργοποιητές (συνέχεια)

T A E K W O N D O. Δ. ΠπθαξΨο. ΔπΫθνπξνο ΘαζεγεηΪο ΑζιεηηθΪο ΦπζηθνζεξαπεΫαο ΡΔΦΑΑ - ΑΞΘ

Σρήκα Α. Γξάθνπκε ηα ζηνηρεία ηνπ Πξνκεζεπηή θαη παηάκε Δηζαγσγή. Σρήκα Β1

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

ΥΡΙΣΟΤΓΔΝΝΙΑΣΙΚΔ ΚΑΣΑΚΔΤΔ

Ηλεκηπονικά Απσεία και Διεπαθέρ

α) ηε κεηαηόπηζε x όηαλ ην ζώκα έρεη κέγηζην ξπζκό κεηαβνιήο ζέζεο δ) ην κέγηζην ξπζκό κεηαβνιήο ηεο ηαρύηεηαο

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γευηέρα 11 Ηουνίου 2018 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

Κάλνληαο θιηθ κε ην πνληίθη ζηνλ ινγαξηαζκό πνπ ζέινπκε θιείλεη ην παξάζπξν πνπ κόιηο είρε αλνίμεη. Παηώληαο Παξνπζίαζε (βειάθη Νν 3) παξνπζηάδνληαη

ΔΠΙΣΡΟΠΗ ΓΙΑΓΩΝΙΜΩΝ 74 ος ΠΑΝΔΛΛΗΝΙΟ ΜΑΘΗΣΙΚΟ ΓΙΑΓΩΝΙΜΟ ΣΑ ΜΑΘΗΜΑΣΙΚΑ Ο ΘΑΛΗ 19 Οκηωβρίοσ Δνδεικηικές λύζεις

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

Πως να δημιουργήσετε ένα Cross-Over καλώδιο

ΠΛΗ36. Άσκηση 1. Άσκηση 2. Οη δηεπζύλζεηο ησλ 4 σλ ππνδηθηύσλ είλαη νη αθόινπζεο. Υπνδίθηπν Α: /27 Υπνδίθηπν Β:

ΜΑΘΗΜΑ / ΤΑΞΗ : ΗΛΕΚΤΡΟΛΟΓΙΑ/Γ ΛΥΚΕΙΟΥ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08/09/2014

Χαξαθηήξεο δηαηξεηόηεηαο ΜΚΓ ΔΚΠ Αλάιπζε αξηζκνύ ζε γηλόκελν πξώησλ παξαγόλησλ

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Γ Γυμνασίου ΥΟΛΕΙΟ..

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ. Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ

ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ Ρέππα Μαξγαξίηα

1. Η απιή αξκνληθή ηαιάλησζε πνπ εθηειεί έλα κηθξό ζώκα κάδαο m = 1 kg έρεη πιάηνο Α = 20 cm θαη

Διαδικαζία μεηαθοράς δεδομένων Εκκαθαριζηικής για ηο Eιδικό ζημείωμα περαίωζης Φ.Π.Α

3ο Δπαναληπηικό διαγώνιζμα ζηα Μαθημαηικά καηεύθσνζης ηης Γ Λσκείοσ Θέμα A Α1. Έζησ f κηα ζπλερήο ζπλάξηεζε ζ έλα δηάζηεκα

ΜΕΛΕΣΗ E.O.K. ΜΕ ΑΙΘΗΣΗΡΑ ΘΕΗ

ΣΡΑΠΕΖΑ ΘΕΜΑΣΩΝ Α ΛΤΚΕΙΟΤ

ΜΗΧΑΝΟΛΟΓΙΚΟ ΣΧΔΓΙΟ ΙΙ

ΔΙΑΓΩΝΙΣΜΑ ΦΥΣΙΚΗΣ Α ΛΥΚΕΙΟΥ

Βιομησανικόρ ζσεδιαζμόρ πποϊόνηων από ανακςκλωμένερ ζςζκεςαζίερ

Λεκηική έκθραζη, κριηική, οικειόηηηα και ηύπος δεζμού ζηις ζηενές διαπροζωπικές ζτέζεις

Γ ΣΑΞΖ ΔΝΗΑΗΟΤ ΛΤΚΔΗΟΤ ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΘΔΣΗΚΩΝ ΚΑΗ ΟΗΚΟΝΟΜΗΚΩΝ ΠΟΤΓΩΝ ΤΝΑΡΣΖΔΗ ΟΡΗΑ ΤΝΔΥΔΗΑ (έως Θ.Bolzano) ΘΔΜΑ Α

Master Class 3. Ο Ν.Ζανταρίδης προτείνει θέματα Μαθηματικών Γ Λσκειοσ ΘΕΜΑ 1.

Transcript:

ΓΟΜΖ Γηδάζθνληεο: Π. Αγγειάηνο, Γ. Εήλδξνο Δπηκέιεηα δηαθαλεηώλ: Γ. Εήλδξνο Σρνιή Ζιεθηξνιόγσλ Μεραληθώλ θαη Μεραληθώλ Υπνινγηζηώλ

Σηόρνο ηεο ώξαο Γόκεζε θώδηθα Σπλεξγαζία ζε νκάδεο Φσξηζκόο ζε αξρεία Σηπι θώδηθα Front-end θαη back-end Τν πξόηππν MVC

Τίπνηα δελ γίλεηαη από έλαλ Facebook: 4 ηδξπηέο 1700 άηνκα ζήκεξα Google: 2 ηδξπηέο 23000 άηνκα ζήκεξα Microsoft: 2 ηδξπηέο Apple: 3 ηδξπηέο YouTube: 3 ηδξπηέο πξέπεη λα κάζνπκε λα ζπλεξγαδόκαζηε!

Γόκεζε θώδηθα Καζαξόηεξνο θώδηθαο γηα εκάο Δπεμεξγαζία κεηά από έλα κήλα ή έλα ρξόλν Καζαξόηεξνο θώδηθαο γηα ηνπο άιινπο Κη άιινη δηαβάδνπλ ηνλ θώδηθά ζαο Πξέπεη λα ηνλ θαηαιάβνπλ Πξέπεη λα ηνλ αιιάμνπλ Πξέπεη λα ηνλ μαλαθαηαιάβνπκε ρξεηαδόκαζηε κία θνηλή ζπληζηακέλε

Γόκεζε θώδηθα Πιενλεθηήκαηα νξζήο δόκεζεο: Maintainability Ο θώδηθαο κπνξεί λα αιιάμεη εύθνια Δίλαη πξνζαξκόζηκνο Δίλαη επεθηάζηκνο Δίλαη επαλάγλσζηνο Δθθξάδεη ηελ ζθέςε καο

Programs must be written for people to read, and only incidentally for machines to execute.

Σηπι θώδηθα Τν ζηπι θώδηθα νξίδεη ηελ κνξθή ηνπ θώδηθα Πνύ έρεη θελά θαη πνύ όρη Πόζα θελά έρεη Πόηε γίλεηαη indentation Πόηε γίλνληαη αιιαγέο γξακκώλ θ.ό.θ.

Γύν δηαθνξεηηθά ζηπι if ( isset( $foo[ bar ] ) ) { dosomething(); } else { dosomethingelse(); } θελό { δίπια ζην if if(isset($foo[ bar ])) { DoSomething(); } else { θάησ από ην if { DoSomethingElse(); } απνπζία θελνύ

Σηπι θώδηθα Αζπλέπεηα: if ( $a ) { dosomething(); } else { dosomethingelse(); }

Σηπι θώδηθα Γελ έρεη ζεκαζία πνην ζηπι ρξεζηκνπνηείηε Γελ έρεη ζεκαζία αλ έρεηε πνιιά θελά ή ιίγα Δηαιέμηε έλα ζηπι θαη θξαηήζηε ην Μία νκάδα Έλα ζηπι Έλα ινγηζκηθό Έλα ζηπι Σπλέπεηα! Οηηδήπνηε άιιν είλαη αληηπαξαγσγηθό

Σηπι θώδηθα Αλ δηαθσλείηε ζην ζηπι... Πην ζεκαληηθό λα γξάθεηε ζην ίδην ζηπι κε ηνπο ζπλαδέιθνπο ζαο Παξά λα γξάθεηε ζε δηαθνξεηηθά ζηπι ζηελ ίδηα νκάδα Σε έλα ήδε ππάξρνλ project, ρξεζηκνπνίεζε ην ζηπι πνπ βιέπεηο ήδε

Σηπι θώδηθα Υπάξρνπλ έηνηκεο πξνηάζεηο Mozilla Google θαη άιιεο. Αλαδεηήζηε γηα Coding Style Βξείηε κία πνπ ζαο ηαηξηάδεη

Σπλεξγαζία ζε νκάδεο Απαηηείηαη θαηακεξηζκόο εξγαζηώλ Απηό ζεκαίλεη ζσζηή δόκεζε Φσξηζκόο ζε αξρεία Όινη πξέπεη λα ζπκθσλήζνπκε: Τη είδνπο θώδηθα γξάθνπκε πνύ; Πνύ ζα γξαθεί ν θώδηθαο... PHP, γηα ηελ ζύλδεζε ζηε βάζε δεδνκέλσλ; HTML, γηα ηελ θόξκα δεκηνπξγίαο ινγαξηαζκνύ; SQL, γηα ηελ δεκηνπξγία ινγαξηαζκνύ; Κάζε πξάγκα πξέπεη λα έρεη κία ζέζε

Φσξηζκόο ζε αξρεία Πξώηε ηδέα: Αληί λα έρσ έλα κεγάιν αξρείν, έρσ πνιιά κηθξόηεξα Δπθνιόηεξε ζπλεξγαζία Ο θαζέλαο δνπιεύεη ζηα αξρεία πνπ ηνλ αθνξνύλ

Σπλαξηήζεηο Δπαλαρξεζηκνπνίεζε θώδηθα Σπρλά κπνξνύλ λα ρξεζηκνπνηεζνύλ ζε αξρεία

Front-end θαη back-end Ζ πξώηε κεγάιε ηδέα! Front-end: Κώδηθαο πνπ αλαθέξεηαη ζηελ δηεπαθή ρξήζηε PHP πνπ παξάγεη άκεζα HTML Σηαηηθό HTML CSS Javascript Δηθόλεο θ.ό.θ.

Front-end θαη back-end Back-end: Κώδηθαο πνπ επεμεξγάδεηαη ηα δεδνκέλα PHP πνπ δελ παξάγεη HTML Σπλαξηήζεηο επεμεξγαζίαο δεδνκέλσλ Σπλαξηήζεηο απνζήθεπζεο δεδνκέλσλ SQL

Front-end Back-end

Front-end θαη back-end Φσξίδνπκε ζε μερσξηζηά αξρεία Τν front-end Τν back-end Σην front-end δελ ππάξρεη SQL Σην back-end δελ ππάξρεη HTML/CSS Τν front-end πεξηγξάθεη ηελ παξαγσγή ηεο δηεπαθήο ρξήζηε Τν back-end πεξηγξάθεη ηελ επεμεξγαζία, απνζήθεπζε, αλάθηεζε δεδνκέλσλ

Front-end θαη back-end Αο ηα ρσξίζνπκε! Τν back-end ζπρλά αλαθέξεηαη θαη σο models Σπρλό θαηλόκελν ζε web εθαξκνγέο: Φάθεινο models πνπ πεξηέρεη ηνλ back-end θώδηθα

Decoupling Κάζε ηκήκα θώδηθα γλσξίδεη κόλν όζα ρξεηάδεηαη λα γλσξίδεη Κάζε είδνπο «γλώζε» ππάξρεη κόλν ζε έλα ζεκείν ηνπ θώδηθά καο Front-end γλσξίδεη: Όηη ρξεζηκνπνηνύκε HTML Πνηα έθδνζε ηεο HTML ρξεζηκνπνηνύκε Back-end γλσξίδεη: Όηη ρξεζηκνπνηνύκε MySQL Πνηα έθδνζε ηεο MySQL ρξεζηκνπνηνύκε Πνην είλαη ην ζρήκα καο

Decoupling Front-end δελ γλσξίδεη: Αλ ρξεζηκνπνηνύκε αξρεία ή βάζε δεδνκέλσλ γηα απνζήθεπζε Αλ απνζεθεύσ ην όλνκαηεπώλπκν σο όλνκα + επώλπκν Αλ ηα δεδνκέλα πξνέξρνληαη από αλάθηεζε ή από ππνινγηζκό Back-end δελ γλσξίδεη: Όηη παξάγνπκε HTML Αλ ρξεζηκνπνηνύκε XHTML 1.0 Strict ή όρη Όηη ν ρξήζηεο είλαη άλζξσπνο θαη όρη αξάρλε

<h2>τι είπαν οι άλλοι</h2> <ol> <?php front-end $res = mysql_query( "SELECT username, text FROM }?> </ol> shouts CROSS JOIN users ON shouts.userid = users.userid ORDER BY created DESC; ); while ( $row = mysql_fetch_array( $res ) ) {?><li><strong><?php echo $row[ 'username' ];?>:</strong> <span><?php echo $row[ 'text' ];?></span></li><?php front-end back-end

Σαιάηα από ηνλ Chiot's Run

<h2>τι είπαν οι άλλοι</h2> <ol> <?php front-end $res = mysql_query( "SELECT username, text FROM }?> </ol> shouts CROSS JOIN users ON shouts.userid = users.userid ORDER BY created DESC; ); while ( $row = mysql_fetch_array( $res ) ) {?><li><strong><?php echo $row[ 'username' ];?>:</strong> <span><?php echo $row[ 'text' ];?></span></li><?php front-end back-end

Πώο ζα ρσξίζνπκε απηό ηνλ θώδηθα; Τν HTML ζην front-end Ζ SQL ζην back-end

models/shouts.php: $res = mysql_query( "SELECT username, text FROM shouts CROSS JOIN users ON shouts.userid = users.userid ORDER BY created DESC; ); back-end

<h2>τι είπαν οι άλλοι</h2> έιιεηςε δηαθάλεηαο αλαθνξάο <ol> <?php include models/shouts.php ; while ( $row = mysql_fetch_array( $res ) ) {?><li><strong><?php echo $row[ 'username' ];?>:</strong> back-end <span><?php echo $row[ 'text' ]; back-end?></span></li><?php }?> </ol> front-end?

<h2>τι είπαν οι άλλοι</h2> <ol> <?php include models/shouts.php ; $shouts = GetShouts();?> </ol> foreach ( $shouts as $shout ) {?><li><strong><?php echo $shout[ 0 ];?>:</strong> <span><?php echo $shout[ 1 ];?></span></li><?php } δηεπαθή (API) front-end/back-end

models/shouts.php: function GetShouts() { $rows = array(); $res = mysql_query( "SELECT username, text FROM shouts CROSS JOIN users ON shouts.userid = users.userid ORDER BY created DESC; ); while ( $row = myql_fetch_array( $res ) ) { $rows[] = array( $row[ username ], $row[ text ] ); } return $rows; }

Front-end θαη back-end Back-end πνπ δεη ζηνλ θάθειν models : Δκπεξηέρεη όιε ηελ ινγηθή επηθνηλσλίαο κε ηελ βάζε Απνζήθεπζε Αλάθηεζε Δπεμεξγαζία Δελ γλσξίδεη γηα ηνλ ηξόπν ρξήζεο ησλ δεδνκέλσλ Δελ γλσξίδεη από πνύ πξνήιζαλ ηα δεδνκέλα

Front-end θαη back-end Front-end: Δκπεξηέρεη όιε ηελ ινγηθή δηεπαθήο ρξήζηε Παξαγσγή HTML CSS/JS Δελ γλσξίδεη γηα ηνλ ηξόπν απνζήθεπζεο ησλ δεδνκέλσλ Δελ γλσξίδεη πώο αλαθηνύληαη ηα δεδνκέλα

Σπλεξγαζία ζε νκάδεο Σε κία νκάδα ν θάζε πξνγξακκαηηζηήο επηιέγεη αλ ζα αζρνιεζεί κε ην back-end ή ην front-end Ταρύηεξε αλάπηπμε Γελ γξάθεηαη ην ίδην πξάγκα 2 θνξέο

if ( isset( $_SESSION[ 'username' ] ) && isset( $_POST[ 'shout' ] ) ) { $shout = $_POST[ 'shout' ]; mysql_query( "INSERT INTO shouts SET back-end text = '". $shout. "', userid = ". $_SESSION[ 'userid' ]. ", created = NOW(); ); header( 'Location: index.php' ); } else {?>Πρέπει να έτεις κάνει είζοδο.<?php } front-end front-end front-end

models/shouts.php: function SaveShout( $userid, $text ) { mysql_query( "INSERT INTO shouts SET text = $text', userid = $userid, created = NOW(); ); }

if ( isset( $_SESSION[ 'username' ] ) && isset( $_POST[ 'shout' ] ) ) { include models/shouts.php ; SaveShout( $_SESSION[ userid ], $_POST[ shout ] ); header( 'Location: index.php' ); } else {?>Πρέπει να έτεις κάνει είζοδο.<?php }

Τη είλαη front-end θαη ηη back-end? Δκθάληζε κελύκαηνο ζθάικαηνο (Γελ έρεηο θάλεη login) Αλάγλσζε δεδνκέλσλ GET Αλάγλσζε δεδνκέλσλ POST Πξνζζήθε εγγξαθήο ζηε βάζε δεδνκέλσλ Δκθάληζε θνπκπηνύ πνπ απνζεθεύεη Φξήζε mysql_fetch_array γηα αλάγλσζε δεδνκέλσλ Δύξεζε κέζνπ όξνπ βαζκνινγηώλ καζεηώλ Φξσκαηηζκόο γξακκάησλ δηεπαθήο κε θόθθηλν ρξώκα

MVC Model-View-Controller Καιόο ν δηαρσξηζκόο Front-end / Back-end Back-end = Model Όκσο ζην Front-end καο κπιέθνπκε δύν πξάγκαηα Τελ παξαγσγή ηεο δηεπαθήο (View) Τελ ζπιινγή δεδνκέλσλ θαη ηηο απαξαίηεηεο θιήζεηο (Controller)

Views Απνθιεηζηηθά ππεύζπλα γηα ηελ παξαγσγή δηεπαθήο Κπξίσο HTML θώδηθαο Μόλν ε απαξαίηεηε PHP π.ρ. foreach γηα παξαγσγή επαλαιακβαλόκελσλ ηκεκάησλ Πξόζβαζε ζε ζπγθεθξηκέλεο νλνκαζκέλεο κεηαβιεηέο Λέγνληαη θαη «Templates» ή πξόηππα

Controllers Απνθαζίδνπλ πνην view θαη πνην model ζα θιεζεί Παίξλνπλ ηα δεδνκέλα από ηνλ ρξήζηε Γίλνπλ ηα δεδνκέλα ηνπ ρξήζηε ζην ζσζηό model Γίλνπλ ηα δεδνκέλα ηνπ ρξήζηε θαη ηνπ model ζην view Σηέιλνπλ πίζσ ηα δεδνκέλα ζηνλ ρξήζηε Τν «ιεπηόηεξν» ηκήκα Τν πξώην θαη ηειεπηαίν πξάγκαηα πνπ ηξέρεη Έρεη ηνλ έιεγρν (controller = ειεγθηήο)

Views Controller Models

if ( isset( $_SESSION[ 'username' ] ) && isset( $_POST[ 'shout' ] ) ) { include models/models/shouts.php ; Controller SaveShout( $_SESSION[ userid ], $_POST[ shout ] ); Controller header( 'Location: index.php' ); } else {?>Πρέπει να έτεις κάνει είζοδο.<?php } Controller View

if ( isset( $_GET[ 'username' ] ) ) { $res = mysql_query( SELECT userid FROM users WHERE model username =. $_GET[ username ]. LIMIT 1; ) ); if ( mysql_num_rows( $res ) == 1 ) {?>Username already taken :-( <input type= text value= /><?php } else {?><input type= text value= <?php echo $_GET[ username ];?> /><?php view } } else {?><input type= text value= /><?php } controller

1. Controller $exists = false; $username = ; if ( isset( $_GET[ 'username' ] ) ) { include models/user.php ; $exists = UsernameExists( $_GET[ username ] ); $username = $_GET[ username ]; } include views/register.php ;

2. Model function UsernameExists( $username ) { $res = mysql_query( SELECT userid FROM users WHERE username = $username LIMIT 1; ); return mysql_num_rows( $res ) == 1; }

2. View <?php if ( $exists ) {?>Το όνομα τρήζηη σπάρτει ήδη :-(<?php }?> <input type= text value= <?php echo $username;?> />

Σε πνην ηκήκα ηνπ MVC αλήθνπλ; Δκθάληζε κελύκαηνο ζθάικαηνο (Γελ έρεηο θάλεη login) Αλάγλσζε δεδνκέλσλ GET Αλάγλσζε δεδνκέλσλ POST Πξνζζήθε εγγξαθήο ζηε βάζε δεδνκέλσλ Δκθάληζε θνπκπηνύ πνπ απνζεθεύεη Φξήζε mysql_fetch_array γηα αλάγλσζε δεδνκέλσλ Δύξεζε κέζνπ όξνπ βαζκνινγηώλ καζεηώλ Φξσκαηηζκόο γξακκάησλ δηεπαθήο κε θόθθηλν ρξώκα Include ηνπ view Include ηνπ model

Σπγραξεηήξηα! Μπνξείηε λα δνκείηε ηνλ θώδηθά ζαο ζσζηά!

Τελ επόκελε θνξά... Δηζαγσγή ζηελ Javascript Πόζεο γιώζζεο πξνγξακκαηηζκνύ ζα ρξεηαζηνύκε πηα;