3.5 KiB
3.5 KiB
Case-Study
Ausgangslage
- Freie Software in bezug auf open sourcecode.
Um einen ersten Anhaltspunkt zu haben, haben wir ein Mindmap gezeichnet in welchem wir unsere ersten Ideen erfassten.
Vision
Die Vision wurde anhand eines Mindmaps erstmals grob umfasst:
Vision - Artikel
Vision - Warenkorb
Vision - Abgaben
Varianten
C# und SQL Server
Laravel und MySQL
Django und MariaDB
Kriterien
- Freie Software
- Cross Plattform nutzbar
- Lesbarkeit des Codes
- Einfachheit des Setups
- Ohne spezielle Tools nutzbar
- Vorkenntnisse Lernfaktor
Vergleich
Variante | Erreichte Punktzahl |
ASP.NET und SQL Server | 141 |
PHP und MySQL | 161 |
Django und MariaDB | 196 |
Auswahl
Kosten
Laravel Webshop
Sprache | Codezeilen |
---|---|
PHP | 8679 |
Total | 8679 |
Django Webshop
Sprache | Codezeilen |
---|---|
Python | 1460 |
SQL | 4639 |
Total | 6099 |
Vorgehen
Currencies - App
- Wurde in Django als eigenen App entwickelt und sollte daher problemloos in
andere Applikationen eingebunden werden können.
- Die Quelle der Währungen ist die Schweizerische Nationalbank mit der URL:
https://www.snb.ch | resp: https://www.snb.ch/selector/de/mmr/exfeed/rss
Currencies - Quelle
Currencies - Parsing
- Das Konvertieren des XML's wurde mit Python eigener Module gemacht.
- für das Herunterladen des XML's wurde das Modul 'urllib' verwendet (1)
- für das Parsen über die einzelnen items/nodes das Modul xml.etree.ElementTree. (2)
(1) https://docs.python.org/2/library/urllib.html (2) https://docs.python.org/2/library/xml.etree.elementtree.html
Currencies - Ablauf
Infrastruktur
Andreas erzählt wie die infrastruktur aufgebaut ist.
Programmierung
vieleicht zwei Schwierigkeiten
Programmierung - Hürde #1
- Django hat ein modul das die Forms speziell handelt so dass man mit wehnig Code
Einen HTML Button oder ein Feld erzeugen kann.
- Die schwierigkeit war nun heraus zu finden wie man dem Feld ein von der DB stammenden
default wert mitgeben konnte.
- Es stellte sich heraus dass das Feld ein Key: Value paar benötigte um zu wissen wohin es
den wert schreiben soll….
Note: hier den code higlighter einfügen: amount_form = CartForm( initial={'amount_form': cart_position.amount} )