Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Η/Υ, ΕΜΠ
Παράδειγμα για την εργασία στο μάθημα Τεχνολογία Λογισμικού, Χειμερινό εξάμηνο 2019 (softeng19b).
Η υποχρεωτική κοινή δομή των φακέλων του repository (που θα πρέπει να ακολουθηθεί και στη δική σας εργασία, ανεξάρτητα του αν θα χρησιμοποιήσετε τις τεχνολογίες του παραδείγματος ή όχι) περιγράφεται στο έγγραφο των παραδοτέων (βλ. moodle μαθήματος).
Η δομή των φακέλων στο συγκεκριμένο παράδειγμα είναι η εξής:
- Στον φάκελο
back-end
περιέχεται ο κώδικας του back-end. - Στον φάκελο
cli-client
περιέχεται ο κώδικας του command line application. - Στον φάκελο
data-model
περιέχεται ο κοινός κώδικας που ορίζει το data-model της εφαρμογής (π.χ. η κλάση ATLRecordForSpecificDay, χρησιμοποιείται σε όλα σημεία του κώδικα που πρέπει να γίνει διαχείριση τέτοιων ActualTotalLoad records. Todata-model
, δηλαδή, είναι ένα ξεχωριστό software project, το οποίο περιέχει μια βιβλιοθήκη κώδικα (software library). Η βιβλιοθήκη αυτή (επανα)χρησιμοποιείται απ' όλα τα άλλα software projects του repository. - Στον φάκελο
rest-api-client
περιέχεται ο κοινός κώδικας που ενθυλακώνει τις client λειτουργίες του Rest API. Και εδώ έχουμε περίπτωση βιβλιοθήκης, η οποία επαναχρησιμοποιείται από τοcli-client
(για να εκτελεί την επικοινωνία με τοback-end
) και από το ίδιο τοback-end
, ως test dependency για την υλοποίηση των functional tests.
-
Εγκατάσταση του Open JDK 11 από εδώ. Για τους linux/macos χρήστες, προτείνετε η χρήση του sdkman για την εγκατάστασή του. Δεν απαιτείται η "χειροκίνητη" εγκατάσταση άλλου λογισμικού (π.χ. Gradle).
-
Για την εκτέλεση του back-end:
cd back-end
./gradlew apprun
Το REST API base URL είναι το https://localhost:8765/energy/api
, όπως απαιτείται από την εργασία.
- Για την εκτέλεση του cli app:
cd cli-client
./gradlew installDist
./build/install/energy_TEAM/bin/energy_TEAM -h
./build/install/energy_TEAM/bin/energy_TEAM ActualTotalLoad -h
Κατά την ανάπτυξη του cli app, μπορείτε να χρησιμοποιείτε:
./gradlew run -Pargs="ActualTotalLoad -h"
Χρησιμοποιήστε τον editor / IDE της προτίμησής σας για να επεκτείνετε τον κώδικα του παραδείγματος (αν και όπως επιθυμείτε).
Περισσότερα στο σχετικό φροντιστήριο...