Here we work on our Computer Networks Project.
Προτάσεις-Συμβάσεις:
Η εκφώνηση μας ζητάει να παραδώσουμε 2 αρχεία, ένα για τον client και ένα για τον relay_node. Θα δώσω προτεραιότητα στον client και μετά θα προχωρήσω στον node, οπότε προτείνω να κοιτάξεις εσύ πρώτα τον node ώστε να υπάρξει κάποιου είδους παραληλοποίηση εργασίας.
Έχουμε ένα master branch εκεί πέρα θα ανεβάζουμε τον κώδικα μας αφού τελειώσουμε το αρχείο (client.c, relay_node.c) που μας έχει ανατεθεί και σιγουρευτούμε ότι δουλεύει.
Εν τω μεταξύ, μπορούμε να ανεβάζουμε ότι αρχείο θέλουμε στο branch του κάθε ενός, στο τέλος ορισμένα από αυτά θα γίνουν pull στο master.
Τα προσωπικά branches, πιστεύω, φαίνονται από όλους, οπότε μπορούμε να τα σκεφτόμαστε ως περιοχή του κάθε ενός μας, αλλά ταυτόχρονα μπορούμε να δανειζόμαστε μεταξύ μας κώδικα, ας μην υπάρξουν περιορισμοί.
Προτείνω επίσης να τηρήσουμε κάποια στυλ κώδικα και τρόπους ονομασίας που θα είναι κοινά και στα δύο τελικά αρχεία.
-ονόματα μεταβλητών και πινάκων θα αρχίζουν με μικρό γράμμα και για χωρισμό λέξεων θα χρησιμοποιείτε Κεφαλαίο. πχ char bufferedDildo
-ονόματα συναρτήσεων ακολουθούν τον ίδιο κανόνα με την διαφορά ότι αρχίζουν με Κεφαλαίο πχ int InsertInAss()
-struct definitions θα είναι όλα μικρά, αλλά θα ακολουθηθούν από ένα typedef όλα Κεφαλαία με κατάληξη _S για τον ίδιο το Size και ένα typedef όλα Κεφαλαία με κατάληξη _Τ για τον pointer to Type πχ struct sockaddr { ... } typedef struct sockaddr SOCKADDR_S typedef struct *sockaddr SOCKADDR_T για δηλώσεις μετά: SOCKADDR_S sock; SOCKADDR_T ptrSock;
Σημειώσεις: -Για κάθε μας commit, καλό θα ήταν αν συμπληρώναμε έστω τον τίτλο της φόρμας που μας δίνει το github για να έχουμε ένα ιστορικά αλλαγών. Δεν θα με ένοιαζε να χρησιμοποιήσουμε και το Zed Developers Notepad, χωρίς όμως αυτό να αντικαταστήσει τις σημειώσεις στο github. Γενικώς, το github, μας δίνει το changelog intergrated και με ωραία οργάνωση, οπότε κρίμα θα είναι να το αγνοήσουμε.
-Μετά από έρευνα ανακάλυψα πως το socket library των windows είναι διαφορετικό απο των linux και ΔΕΝ υποστηρίζεται από το MinGW (για το cygwin δεν είμαι σίγουρος), οπότε αν υπάρχει θέμα θα γίνετε το compile στα μηχανήματα της σχολής κάθε φορά.