-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
140 lines (104 loc) · 4.38 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
Einführung in das Webframework Mojolicious in der Programmiersprache Perl
Projekt-URL: https://github.com/bedivere/mojolicious-tutorial
Einleitung
==========
Dies ist ein einfaches Hands-On-Tutorial für moderne Webprogrammierung in Perl
am Beispiel des Mojolcious-Frameworks. Das Tutorial richtet sich an Programmierer,
die zumindest mal von Webprogrammierung, relationalen Datenbanken und Perl gehört
haben.
Im Tutorial soll in etwa einer Stunde allgemein etwas zu Perl, Webentwicklung,
MVC-Konzept und unsere Arbeitsumgebung gesagt werden. Das ist zugegebenermaßen
keine sehr lange Zeit, deswegen sind Vorkenntnisse wie unten beschrieben
unumgänglich.
Anschließend soll an einem kleinen Beispiel eine Webanwendung in Perl mit
Mojolicious auf Grundlage einer SQLite-Datenbank erstellt werden. Das füllt den
rest des Tages aus (5 bis 7 Stunden).
Während dieses Praktischen Teiles wird neben der eigentlichen Webprogrammierung
auch immer wieder das Programmieren in Perl angesprochen, allerdings kann das
wegen der geringen Zeit doch nur oberflächlich erfolgen.
Für den ersten theoretischen Teil sind hübbsche bunte Folien vorgesehen (doc/slides).
Der zweite Teil ist praktischer Natur und findet dann als live-Demo im Texteditor der
Wahl sowie im Kommandozeilenprogramm aka Terminalemulator der Wahl statt.
Am Ende des praktischen Teiles steht eine Webanwendung, die sich vorrangig
auf die Umsetzung der zugrundeliegenden Funktionen bezieht. Ästethische Ansprüche
sowie weiterführenden belangen von Usability oder lustige Effekte mittels Javascript/
JQuery und Ajax werden hier ausgeklammert.
Die Webanwendung, die im praktischen Teil erstellt wird, befasst sich inhaltlich mit
dem Thema Prüfungsverwaltung. Es sollen in einer relationalen Datenbank Listen
von Professoren, Studierenden und Prüfungen gepflegt werden, die in geeignerter Weise
verknüpft sind:
- Ein Professor hat mehrere Prüfungen auszugestalten
- Ein Studierender nimmt an mehreren Prüfungen teil
- Eine Prüfung wird von genau einem Professor durchgeführt
- An einer Prüfung nehmen mehrere Studierende teil
Eine genauere Beschreibung der Inhalte des Datenmodells hinter dieser Aufgabe ist
dem Datenschema unter "src/Schema.sql" zu entnehmen.
Vorraussetzungen:
=================
Perl >= 5.16.1
http://perldoc.perl.org
http://metacpan.org
http://www.perl-community.de/bat/content/view/home
http://perl-tutorial.org/
Mojolicious >= 3.52
http://mojolicio.us/
DBI >= 1.662
http://dbi.perl.org/
DBIx::Class >= 0.08203
http://www.dbix-class.org/
DBD::SQLite >= 1.37
https://metacpan.org/module/DBD::SQLite
SQLite >= 3.7.14.1
http://sqlite.org/
Empfehlungen:
=============
Strawberryperl
Perl für Windows-Benutzer
http://strawberryperl.com
Enthält bereits:
Perl, DBI, DBD::SQLite, cpanminus
cpanminus
https://metacpan.org/module/App::cpanminus
PerlTidy
https://metacpan.org/module/perltidy
Quellcode-Filter zum nachträglichen Formatieren von Perl-Code
gemäß der Empfehlungen aus dem Buch "Perl Best Practices" von
Damian Conway
Padre
http://padre-ide.de/blog/
Perl-IDE für verschiedene Plattformen
Moose, Mouse, Moo, Mo
https://metacpan.org/module/Moose
https://metacpan.org/module/Mouse
https://metacpan.org/module/Moo
https://metacpan.org/module/Mo
Falls jemand richtige Objektorientierung in Perl machen will
Je mehr Buchstaben, desto mehr Features, aber eben mit Performance-Einbußen
Starman
https://metacpan.org/module/Starman
Hochperformanter preforking Webserver in Perl
Zielgruppenbeschreibung:
========================
Bei der Zielgruppe für dieses Tutorials sollten folgende Wissens- und Kenntnisse
vorrausgesetzt werden könne, um dem Tutorial gut folgen zu können:
+ Ausgezeichnete Kenntnisse:
- Umgang mit dem Computer
- Umgang mit dem Betriebssystem seiner Wahl
- Umgang mit einem Texteditor für Programmieraufgaben (Syntaxhighlighting!)
- Umgang mit der Konsole/dem Terminalemulator seiner Wahl
- Umgang mit einem Webbrowser
+ Gute Kenntnisse:
- Programmierung allgemein
- Objektorientiertes Programmieren
- Imparatives Programmieren
- Webprogrammierung Allgemein
- HTML, CSS
+ Grundkenntnisse:
- MVC
- Perl
- Reguläre Ausdrücke
- Relationale Datenbanken
- Objektrelationale Mapper für relationale Datenbanken
- SQL
- Funktionales Programmieren
- Javascript/JQuery