Μετάβαση στο κύριο περιεχόμενο

Οδηγός προγραμματιστή

Αυτά είναι πράγματα που μόνο ένας προγραμματιστής που σκοπεύει να συνεργαστεί με ERDDAP Σ Java Τα μαθήματα πρέπει να ξέρουν.

Λήψη του πηγαίου κώδικα

 

  • Μέσω πηγαίου κώδικα στο GitHub Ο πηγαίος κώδικας για τις πρόσφατες δημόσιες εκδόσεις και εκδόσεις στην ανάπτυξη είναι επίσης διαθέσιμος μέσω GitHub . Παρακαλώ διαβάστε το Wiki για αυτό το έργο. Αν θέλετε να τροποποιήσετε τον πηγαίο κώδικα (και ενδεχομένως οι αλλαγές να έχουν ενσωματωθεί στο πρότυπο ERDDAP™ διανομή) , αυτή είναι η συνιστώμενη προσέγγιση.

** ERDDAP™ εξαρτήσεις**

ERDDAP™ χρησιμοποιεί Maven για να φορτώσει εξαρτήσεις κώδικα, καθώς και κάποια στατικά αρχεία αναφοράς (WEB-INF/ref) . Αυτό γίνεται για να αποφευχθεί η αποθήκευση πολλών μεγάλων αρχείων στο χώρο αποθήκευσης. Μπορείτε να χρησιμοποιήσετε mvn μεταγλώττιση και αυτό θα φέρει τις εξαρτήσεις και τα αρχεία ref. Μπορείτε επίσης να χρησιμοποιήσετε Συσκευασία mvn για να δημιουργήσει ένα αρχείο πολέμου. Μπορείτε να κατεβάσετε χειροκίνητα τα αρχεία ref:

ΣΗΜΕΙΩΣΗ: Από προεπιλογή Maven θα cache στατική αναφορά και δοκιμή αρχείο δεδομένων λήψεις και να εξαγάγετε τους μόνο όταν μια νέα έκδοση έχει κατεβάσει. Για να παραλείψετε τη λήψη εντελώς, μπορείτε να ορίσετε το skipResourceΚατεβάστε ή/και skipTestResourceΚατεβάστε ιδιότητες στο Maven (Π.χ. mvn -DskipResourceDownload πακέτο ) . Για να αναγκάσει την εξαγωγή, σετ -Ddownload. unpack=αλήθεια και -Ddownload. unpack Όταν Changed= false .

  • ERDDAP™ και οι υποσυντάκτες του έχουν πολύ φιλελεύθερη, ανοιχτή πηγή Άδειες , ώστε να μπορείτε να χρησιμοποιήσετε και να τροποποιήσετε τον πηγαίο κώδικα για οποιοδήποτε σκοπό, για κερδοσκοπικό ή μη κερδοσκοπικό. Σημειώστε ότι ERDDAP™ και πολλοί υποσυντάκτες έχουν άδειες που απαιτούν να αναγνωρίζετε την πηγή του κώδικα που χρησιμοποιείτε. Βλέπεις; Πιστώσεις . Είτε απαιτείται είτε όχι, είναι απλώς καλή μορφή η αναγνώριση όλων αυτών των συντελεστών.

  • Χρήση του κώδικα για άλλα έργα

Ενώ είστε ευπρόσδεκτοι να χρησιμοποιήσετε μέρη του ERDDAP™ Κωδικός για άλλα έργα, να ειδοποιηθεί ότι ο κώδικας μπορεί και θα αλλάξει. Δεν υποσχόμαστε να υποστηρίξουμε άλλες χρήσεις του κώδικα μας. Git και GitHub θα είναι οι κύριες λύσεις σας για την αντιμετώπιση αυτού -- Git σας επιτρέπει να συγχωνεύσετε τις αλλαγές μας στις αλλαγές σας. Για πολλές περιπτώσεις όπου μπορεί να μπείτε στον πειρασμό να χρησιμοποιήσετε μέρη του ERDDAP™ στο έργο σας, πιστεύουμε ότι θα το βρείτε πολύ πιο εύκολο να εγκαταστήσετε και να χρησιμοποιήσετε ERDDAP™ Όπως είναι, και στη συνέχεια να γράψετε άλλες υπηρεσίες που χρησιμοποιούν ERDDAP Οι υπηρεσίες του. Μπορείτε να στήσετε το δικό σας ERDDAP™ εγκατάσταση σε μια ή δύο ώρες. Μπορείτε να στήσετε το δικό σας ERDDAP™ εγκατάσταση με γυαλισμένο τρόπο σε λίγες ημέρες (ανάλογα με τον αριθμό και την πολυπλοκότητα των συνόλων δεδομένων σας) . Αλλά hacking μέρη του ERDDAP™ για το δικό σας έργο είναι πιθανό να πάρει εβδομάδες (και μήνες για να πιάσει λεπτότητες) και θα χάσετε τη δυνατότητα να ενσωματώσετε αλλαγές και διορθώσεις σφαλμάτων από τις επόμενες ERDDAP™ Απελευθερώνει. Εμείς (Προφανώς.) νομίζω ότι υπάρχουν πολλά οφέλη στη χρήση ERDDAP™ Όπως είναι και να κάνει σας ERDDAP™ εγκατάσταση προσβάσιμη στο κοινό. Ωστόσο, σε ορισμένες περιπτώσεις, μπορεί να μην θέλετε να κάνετε ERDDAP™ εγκατάσταση προσβάσιμη στο κοινό. Στη συνέχεια, η υπηρεσία σας μπορεί να έχει πρόσβαση και να χρησιμοποιεί το ιδιωτικό σας ERDDAP™ και οι πελάτες σας δεν χρειάζεται να γνωρίζουν για ERDDAP™ .

Στα μισά του δρόμου

Ή, υπάρχει μια άλλη προσέγγιση την οποία μπορεί να βρείτε χρήσιμη, η οποία είναι στη μέση μεταξύ της μελέτης σε ERDDAP Κωδικός και χρήση ERDDAP™ ως αυτόνομη υπηρεσία ιστού: Στην τάξη EDD, υπάρχει μια στατική μέθοδος που σας επιτρέπει να κάνετε μια περίπτωση ενός συνόλου δεδομένων (με βάση τις προδιαγραφές datasets.xml ) : «ένα από το σύνολο δεδομένων Xml (συμβολοσειρά tDatasetID) «Επιστρέφει μια περίπτωση ενός πίνακα EDD ή EDDGrid Σύστημα δεδομένων. Λαμβάνοντας υπόψη αυτή την περίπτωση, μπορείτε να καλέσετε - 'makeNewFileForDapQuery (Χρήστης συμβολοσειρώνDapQuery, dir συμβολοσειρών, αρχείο συμβολοσειρώνName, αρχείο συμβολοσειρών ΤύποςName) `για να πείτε στην περίπτωση να κάνει ένα αρχείο δεδομένων, ενός συγκεκριμένου τύπου αρχείων, με τα αποτελέσματα από ένα ερώτημα χρήστη. Έτσι, αυτός είναι ένας απλός τρόπος χρήσης ERDDAP Μέθοδοι για να ζητήσει δεδομένα και να πάρει ένα αρχείο σε απάντηση, ακριβώς όπως ένας πελάτης θα χρησιμοποιήσει το ERDDAP™ εφαρμογή ιστού. Αλλά αυτή η προσέγγιση λειτουργεί μέσα σας Java πρόγραμμα και παρακάμπτει την ανάγκη για έναν διακομιστή εφαρμογών όπως Tomcat. Χρησιμοποιούμε αυτή την προσέγγιση για πολλές από τις δοκιμές μονάδας του EDDTable και EDDGrid υποκλάσεις, έτσι μπορείτε να δείτε παραδείγματα αυτού στον πηγαίο κώδικα για όλες αυτές τις τάξεις.

Αναπτυξιακό περιβάλλον

  • Υπάρχουν ρυθμίσεις για Τζέτι. και Ντόκερ στο GitHub, αν και οι κυκλοφορίες αναμένεται να τρέχουν στο Tomcat.

  • Προαιρετικό : Set ERDDAP™ στην Tomcat\ Από ERDDAP™ προορίζεται κυρίως να είναι ένα σέρβις τρέχει σε Tomcat, σας συνιστούμε έντονα να ακολουθήσετε το πρότυπο οδηγίες εγκατάστασης να εγκαταστήσει Tomcat, και στη συνέχεια να εγκαταστήσει ERDDAP™ στον κατάλογο εφαρμογών του Tomcat. Μεταξύ άλλων, ERDDAP™ σχεδιάστηκε για να εγκατασταθεί στη δομή καταλόγου Tomcat και αναμένει Tomcat να παρέχει κάποια αρχεία .jar.

  • ERDDAP™ δεν απαιτεί συγκεκριμένη IDE (Ο Chris χρησιμοποιεί κυρίως Visual Studio Code, ο Bob χρησιμοποίησε το EditPlus) . Δεν χρησιμοποιούμε Eclipse, Ant, κ.λπ.; ούτε προσφέρουμε ERDDAP - που σχετίζονται με την υποστήριξη τους. Το έργο χρησιμοποιεί την Μέιβεν.

  • Χρησιμοποιούμε ένα αρχείο παρτίδας που διαγράφει όλα τα αρχεία .class στο δέντρο πηγής για να εξασφαλίσει ότι έχουμε μια καθαρή μεταγλώττιση (με javac) .

  • Προς το παρόν χρησιμοποιούμε το javac jdk-21.0.3+9 του Adetium για τη συλλογή του gov.noaa.pfeg.coastwatch.TestAllAll (Έχει συνδέσμους με μερικά μαθήματα που δεν θα συντασσόντουσαν διαφορετικά.) και κάνε τις εξετάσεις. Για λόγους ασφαλείας, είναι σχεδόν πάντα καλύτερο να χρησιμοποιήσετε τις τελευταίες εκδόσεις του Java 21 και Tomcat 10.

    • Όταν τρέχουμε javac ή java, ο τρέχων κατάλογος είναι tomcat/webapps/erdap/WEB-INF .

    • Το τζάβακ και το τζάβα είναι Κατηγορίες;./.././lib/servlet-api.jar;lib/*

    • Οπότε η γραμμή εντολών του Τζάβακ θα είναι σαν... UTF-8-cp κατηγορίες;./.././lib/servlet-api.jar;lib/* τάξεις/gov/noaa/pfel/coastwatch/TestAll.java

    • Και η γραμμή εντολών του java θα είναι σαν... Κλάσεις «java-cp;./.././lib/servlet-api.jar;lib/* -Xmx4000M -Xms4000M Κατηγορίες/gov/noaa/pfel/coastwatch/TestAll Προαιρετικό: μπορείτε να προσθέσετε -verbose:gc`, που λέει Java για την εκτύπωση στατιστικών συλλογής απορριμμάτων.

    • Αν γίνει δοκιμή Όλες οι μεταγλωττίσεις, τα πάντα ERDDAP™ οι ανάγκες έχουν συγκεντρωθεί. Μερικές τάξεις έχουν συνταχθεί που δεν χρειάζονται για ERDDAP™ . Αν η κατάρτιση TestAll επιτύχει αλλά δεν συγκεντρώσει κάποια τάξη, αυτή η τάξη δεν χρειάζεται. (Υπάρχουν κάποια ημιτελή/άχρηστα μαθήματα.)

  • Σε λίγες περιπτώσεις, χρησιμοποιούμε τον πηγαίο κώδικα 3ου μέρους αντί για αρχεία .jar (κυρίως για DODS ) και έχουν τροποποιηθεί ελαφρά για να αποφευχθεί η δημιουργία προβλημάτων Java 21. Έχουμε κάνει συχνά άλλες μικρές τροποποιήσεις (κυρίως για DODS ) για άλλους λόγους.

  • Οι περισσότερες κατηγορίες έχουν μεθόδους δοκιμών στο σχετικό αρχείο src/test τους. Μπορείτε να εκτελέσετε τις εξετάσεις JUNIT με το Δοκιμή mvn Διοίκηση. Αυτό θα κατεβάσει πολλά αρχεία zip των δεδομένων στα οποία βασίζονται οι δοκιμές από την τελευταία κυκλοφορία του ERDDAP /erddap Δοκιμή .\   ΣΗΜΕΙΩΣΗ: Maven caches downloads αλλά θα unzip τα αρχεία που έχουν ληφθεί σε κάθε εκτέλεση, η οποία παίρνει χρόνο. Για να παραλείψετε τη λήψη και αποσυμπίεση αρχείων δεδομένων δοκιμών, μπορείτε να καθορίσετε το skipTestResourceΚατεβάστε ιδιοκτησία στην Maven (Π.χ. mvn -DskipTestResourceDownload πακέτο ) .

Σημαντικές Κλάσεις

Αν θέλετε να δείτε τον πηγαίο κώδικα και να προσπαθήσετε να βρείτε τον τρόπο ERDDAP™ Δουλεύει, παρακαλώ.

  • Ο κωδικός έχει Java Συζητήσεις του Ευρωπαϊκού Κοινοβουλίου Java Οι γιατροί δεν έχουν δημιουργηθεί. Μπορείτε ελεύθερα να τα δημιουργήσετε.

  • Οι πιο σημαντικές τάξεις (συμπεριλαμβανομένων των κατωτέρω αναφερόμενων) είναι εντός της Gov/noaa/pfel/erddap.

  • Η ERDDAP™ η τάξη έχει τις μεθόδους υψηλότερου επιπέδου. Εκτείνεται HttpServlet.

  • ERDDAP™ εγκρίνει αιτήσεις σε περιπτώσεις υποκατηγοριών EDDGrid ή EDDTable, τα οποία αντιπροσωπεύουν μεμονωμένα σύνολα δεδομένων.

  • Το EDStatic έχει τις περισσότερες στατικές πληροφορίες και ρυθμίσεις (π.χ. από τα αρχεία setup.xml και message.xml) και προσφέρει στατικές υπηρεσίες (π.χ. αποστολή ηλεκτρονικού ταχυδρομείου) .

  • EDDGrid και EDDTable υποκλάσεις αναλύουν το αίτημα, να πάρει τα δεδομένα από την υποκατηγορία-ειδικές μεθόδους, στη συνέχεια, διαμορφώνουν τα δεδομένα για την απάντηση.

  • EDDGrid υποκλάσεις ωθούν τα δεδομένα στο GridDataAccessor (το εσωτερικό δοχείο δεδομένων για τα πλέγματα δεδομένα) .

  • Οι υποκλάσεις EDDTable ωθούν τα δεδομένα στις υποκλάσεις TableWriter, οι οποίες γράφουν δεδομένα σε έναν συγκεκριμένο τύπο αρχείου on-the-fly.

  • Άλλες κατηγορίες (π.χ., τάξεις χαμηλού επιπέδου) είναι επίσης σημαντικά, αλλά είναι λιγότερο πιθανό ότι θα εργαστείτε για να τα αλλάξετε.  

Συνεισφορές κώδικα

  • Θέματα GitHub Αν θέλετε να συνεισφέρετε αλλά δεν έχετε ένα έργο, δείτε τη λίστα των Θέματα GitHub , πολλά από τα οποία είναι έργα που μπορείτε να αναλάβετε. Αν θέλετε να εργαστείτε πάνω σε ένα ζήτημα, παρακαλούμε να το αναθέσετε στον εαυτό σας για να υποδείξει σε άλλους ότι εργάζεστε πάνω σε αυτό. Το θέμα GitHub είναι το καλύτερο μέρος για να συζητήσουμε οποιεσδήποτε ερωτήσεις για το πώς να προχωρήσουμε με την εργασία σε αυτό το θέμα.

  • Εάν η αλλαγή που θα θέλατε να κάνετε είναι μια από τις παρακάτω κοινές περιπτώσεις, παρακαλούμε δημιουργήστε ένα Θέμα GitHub υποδεικνύοντας την αλλαγή που σκοπεύετε να κάνετε. Στη συνέχεια, μόλις ολοκληρωθεί η αλλαγή, κάντε μια αίτηση έλξης για να ζητήσετε τη συγχώνευση. Οι κοινές αλλαγές περιλαμβάνουν:

    • Θέλεις να γράψεις μια άλλη υποκατηγορία του EDDGrid ή EDDTable για να χειριστεί έναν άλλο τύπο πηγής δεδομένων. Εάν ναι, σας συνιστούμε να βρείτε την πλησιέστερη υπάρχουσα υποκατηγορία και να χρησιμοποιήσετε αυτόν τον κωδικό ως σημείο εκκίνησης.

    • Θέλετε να γράψετε μια άλλη μέθοδο saveAs_FileType_. Εάν ναι, σας συνιστούμε να βρείτε την πλησιέστερη υπάρχουσα μέθοδο αποθήκευσηςAs_FileType_ in EDDGrid ή EDDTable και χρησιμοποιήστε αυτόν τον κωδικό ως σημείο εκκίνησης.

Αυτές οι καταστάσεις έχουν το πλεονέκτημα ότι ο κώδικας που γράφετε είναι αυτοτελής. Δεν χρειάζεται να ξέρεις όλες τις λεπτομέρειες. ERDDAP Είναι εσωτερικά. Και θα είναι εύκολο για εμάς να ενσωματώσουμε τον κωδικό σας σε ERDDAP . Σημειώστε ότι αν υποβάλετε κώδικα, η άδεια θα χρειαστεί συμβατό με το ERDDAP™ άδεια (π.χ., Απάτσι , BSD , ή ΜΙΤ-Χ ) . Θα καταγράψουμε τη συνεισφορά σας στο Πιστώσεις .

  • Εάν έχετε ένα χαρακτηριστικό που δεν καλύπτεται παραπάνω που θα θέλατε να προσθέσετε ERDDAP , συνιστάται να δημιουργήσετε πρώτα ένα νήμα συζήτησης στο Συζήτηση GitHub . Για σημαντικά χαρακτηριστικά/αλλαγές, το Τεχνικό Συμβούλιο θα τα συζητήσει και θα αποφασίσει εάν θα εγκρίνει την προσθήκη του στο ERDDAP™ .

Κρίνοντας τις Συνεισφορές του Κώδικα σας

Εάν θέλετε να υποβάλετε κωδικό ή άλλες αλλαγές που πρέπει να συμπεριληφθούν στο ERDDAP Αυτό είναι υπέροχο. Η συνεισφορά σας πρέπει να πληροί ορισμένα κριτήρια για να γίνει αποδεκτή. Εάν ακολουθήσετε τις παρακάτω κατευθυντήριες γραμμές, αυξάνετε σημαντικά τις πιθανότητες αποδοχής της συνεισφοράς σας.  

  • Η ERDDAP™ Διαχείριση του έργου από NATD ( NOAA Διορισμένος τεχνικός διευθυντής) με εισαγωγή από τεχνικό συμβούλιο. Από το 2007 (η αρχή της ERDDAP ) μέχρι το 2022, ήταν ο Μπομπ Σάιμονς. (επίσης ο Ιδρυτής-Επικεφαλής) . Ξεκινώντας τον Ιανουάριο του 2023, αυτός είναι ο Κρις Τζον. Βασικά, η NATD είναι υπεύθυνη για ERDDAP , έτσι έχει την τελική λέξη για τις αποφάσεις σχετικά με ERDDAP™ κώδικα, ιδίως σχετικά με το σχεδιασμό και το αν μια δεδομένη αίτηση έλξης θα γίνει αποδεκτή ή όχι. Πρέπει να γίνει έτσι εν μέρει για λόγους αποδοτικότητας. (Λειτουργεί τέλεια για Linus Torvalds και Linux) και εν μέρει για λόγους ασφαλείας: Κάποιος πρέπει να πει στους ανθρώπους της ασφάλειας ΤΠ ότι αναλαμβάνει την ευθύνη για την ασφάλεια και την ακεραιότητα του κώδικα.  

  • Το NATD δεν εγγυάται ότι θα δεχτεί τον κωδικό σας. Αν ένα έργο δεν λειτουργήσει τόσο καλά όπως ελπίζαμε και αν δεν μπορεί να διασωθεί, το NATD δεν θα συμπεριλάβει το έργο στο ERDDAP™ κατανομή. Σε παρακαλώ μην αισθάνεσαι άσχημα. Μερικές φορές τα έργα δεν πάνε τόσο καλά όσο ήλπιζα. Συμβαίνει σε όλους τους προγραμματιστές λογισμικού. Αν ακολουθήσετε τις παρακάτω οδηγίες, αυξάνετε σημαντικά τις πιθανότητες επιτυχίας σας.  

  • Είναι καλύτερα αν οι αλλαγές είναι γενικού ενδιαφέροντος και χρησιμότητας. Εάν ο κώδικας είναι συγκεκριμένος για την οργάνωσή σας, είναι πιθανώς καλύτερο να διατηρήσει ένα ξεχωριστό κλάδο της ERDDAP™ για τη χρήση σας. Το αξίωμα το κάνει αυτό. Ευτυχώς, το Git το κάνει εύκολο. Το NATD θέλει να διατηρήσει ένα σταθερό όραμα για ERDDAP , δεν επιτρέπουν να γίνει ένα έργο νεροχύτη κουζίνα όπου ο καθένας προσθέτει ένα προσαρμοσμένο χαρακτηριστικό για το έργο τους.  

  • Ακολουθήστε το Java Συμβάσεις κώδικα. Γενικά, ο κωδικός σας πρέπει να είναι καλής ποιότητας και να ακολουθεί το αρχικό Java Συμβάσεις κώδικα : put . class αρχεία στην κατάλληλη θέση στη δομή καταλόγου, δίνουν . class αρχεία ένα κατάλληλο όνομα, περιλαμβάνουν σωστή Java Σχόλια Doc, περιλαμβάνουν //στοιχεία στην αρχή κάθε παραγράφου του κώδικα, περίπτωση με 4 κενά (χωρίς καρτέλα) , αποφύγετε τις γραμμές > 80 χαρακτήρες, κ.λπ. Οι συμβάσεις αλλάζουν και ο πηγαίος κώδικας δεν είναι πάντα πλήρως ενημερωμένος. Όταν υπάρχει αμφιβολία, ταιριάζει με τον κώδικα με τις συμβάσεις και δεν υπάρχει κώδικας.

  • Χρήση περιγραφικών κατηγοριών, μεθόδων και μεταβλητών ονομάτων. Αυτό κάνει τον κώδικα πιο εύκολο για τους άλλους να διαβάσουν.  

  • Αποφύγετε τον φανταχτερό κώδικα. Μακροπρόθεσμα, εσείς ή άλλοι άνθρωποι θα πρέπει να υπολογίσετε τον κώδικα για να τον διατηρήσετε. Γι 'αυτό παρακαλώ χρησιμοποιήστε απλές μεθόδους κωδικοποίησης που είναι έτσι ευκολότερη για τους άλλους (συμπεριλαμβανομένου και εσένα στο μέλλον) για να καταλάβω. Προφανώς, αν υπάρχει ένα πραγματικό πλεονέκτημα στη χρήση κάποια φανταχτερή Java χαρακτηριστικό προγραμματισμού, να το χρησιμοποιήσετε, αλλά να τεκμηριώσετε εκτενώς τι κάνατε, γιατί, και πώς λειτουργεί.  

  • Συνεργαστείτε με το Τεχνικό Συμβούλιο πριν ξεκινήσετε. Αν ελπίζεις να τραβήξεις τις αλλαγές του κώδικα σου ERDDAP™ , Το Τεχνικό Συμβούλιο θα θέλει σίγουρα να μιλήσει για το τι πρόκειται να κάνετε και πώς πρόκειται να το κάνετε πριν κάνετε οποιεσδήποτε αλλαγές στον κώδικα. Με αυτόν τον τρόπο, μπορούμε να αποφύγουμε τις αλλαγές που η NATD, στο τέλος, δεν δέχεται. Όταν κάνετε τη δουλειά, το NATD και το Τεχνικό Συμβούλιο είναι πρόθυμοι να απαντήσουν ερωτήσεις για να σας βοηθήσει να καταλάβω τον υπάρχοντα κώδικα και (γενικά) πώς να αντιμετωπίσει το έργο σας.  

  • Εργασία ανεξάρτητα (Όσο το δυνατόν περισσότερο) Αφού ξεκινήσεις. Σε αντίθεση με τα παραπάνω "Εργαστείτε με το Τεχνικό Συμβούλιο", αφού ξεκινήσετε το έργο, η NATD σας ενθαρρύνει να εργαστείτε όσο το δυνατόν πιο ανεξάρτητα. Αν η NATD πρέπει να σας πει σχεδόν τα πάντα και να απαντήσει σε πολλές ερωτήσεις (Ειδικά αυτά που θα μπορούσατε να έχετε απαντήσει διαβάζοντας την τεκμηρίωση ή τον κώδικα) , τότε οι προσπάθειές σας δεν είναι μια εξοικονόμηση χρόνου για το NATD και s/he θα μπορούσε επίσης να κάνει τη δουλειά τους. Είναι το Μυθικός Άνθρωπος Μήνας Πρόβλημα. Φυσικά, πρέπει να επικοινωνούμε. Θα ήταν υπέροχο να βλέπετε περιοδικά το έργο σας σε εξέλιξη για να βεβαιωθείτε ότι το έργο είναι σε καλό δρόμο. Αλλά όσο περισσότερο μπορείς να δουλέψεις ανεξάρτητα (μετά τη σύμφωνη γνώμη του τεχνικού συμβουλίου σχετικά με το έργο και τη γενική προσέγγιση) Το καλύτερο.  

  • Αποφύγετε τα έντομα. Εάν ένα σφάλμα δεν πιαστεί πριν από την απελευθέρωση, προκαλεί προβλήματα στους χρήστες (στην καλύτερη περίπτωση) , επιστρέφει λάθος πληροφορίες (Στη χειρότερη περίπτωση) , είναι ένα blot για ERDDAP Η φήμη του, και θα επιμείνει στο ξεπερασμένο ERDDAP™ εγκαταστάσεις για χρόνια. Δούλεψε πολύ σκληρά για να αποφύγεις τα έντομα. Μέρος αυτού είναι να γράφεις καθαρό κώδικα. (Έτσι είναι πιο εύκολο να δείτε τα προβλήματα) . Μέρος αυτού είναι οι δοκιμές μονάδων γραφής. Μέρος αυτού είναι μια συνεχής στάση αποφυγής σφαλμάτων όταν γράφετε κώδικα. Μην κάνεις το NATD να μετανιώσει προσθέτοντας τον κωδικό σου ERDDAP™ .  

  • Γράψτε μια δοκιμή μονάδας ή δοκιμές. Για νέο κωδικό, θα πρέπει να γράψετε τις δοκιμές Junit σε ένα αρχείο δοκιμής. Παρακαλώ γράψτε τουλάχιστον μία μεμονωμένη μέθοδο δοκιμών που ελέγχει εξονυχιστικά τον κωδικό που γράφετε και προσθέστε τον στο αρχείο δοκιμών JUNIT της τάξης, έτσι ώστε να εκτελείται αυτόματα. Μονάδα (και σχετικά) δοκιμές είναι ένας από τους καλύτερους τρόπους για να πιάσει σφάλματα, αρχικά, και μακροπρόθεσμα (καθώς άλλα πράγματα αλλάζουν ERDDAP™ ) . Όπως είπε ο Μπομπ, "Τα τεστ με αφήνουν να κοιμάμαι τη νύχτα."  

  • Κάντε εύκολο για το NATD να καταλάβει και να αποδεχθεί τις αλλαγές στο αίτημα έλξης σας. Μέρος αυτού είναι η εγγραφή μιας μεθόδου δοκιμής μονάδας (α) . Μέρος αυτού είναι ο περιορισμός των αλλαγών σας σε ένα τμήμα του κώδικα (ή μία κλάση) Εάν είναι δυνατόν. Το NATD δεν θα δεχτεί καμία αίτηση έλξης με εκατοντάδες αλλαγές σε όλο τον κώδικα. Η NATD λέει στους ανθρώπους της ασφάλειας πληροφορικής ότι αναλαμβάνει την ευθύνη για την ασφάλεια και την ακεραιότητα του κώδικα. Εάν υπάρχουν πάρα πολλές αλλαγές ή είναι πάρα πολύ δύσκολο να καταλάβω, τότε είναι πάρα πολύ δύσκολο να επαληθευτεί οι αλλαγές είναι σωστές και δεν εισάγει σφάλματα ή θέματα ασφάλειας.  

  • Κράτα το απλό. Ένα καλό γενικό θέμα για τον κώδικα σας είναι: Κρατήστε το απλό. Απλός κώδικας είναι εύκολος για τους άλλους (συμπεριλαμβανομένου και εσένα στο μέλλον) να διαβάσει και να διατηρήσει. Είναι εύκολο για το NATD να καταλάβει και έτσι να δεχτεί.  

  • Υπέθεσε μακροχρόνια ευθύνη για τον κώδικά σου. Μακροπρόθεσμα, είναι καλύτερα να αναλάβετε τη συνεχιζόμενη ευθύνη για τη διατήρηση του κώδικα σας και να απαντήσετε σε ερωτήσεις σχετικά με αυτό. (Π.χ. ERDDAP™ Ομάδα Google) . Όπως σημειώνουν ορισμένοι συγγραφείς, ο κώδικας αποτελεί υποχρέωση καθώς και περιουσιακό στοιχείο. Αν ένα έντομο ανακαλυφθεί στο μέλλον, είναι καλύτερα να το διορθώσεις γιατί κανείς δεν ξέρει τον κώδικα σου καλύτερα από σένα. (Επίσης, έτσι ώστε να υπάρχει κίνητρο για την αποφυγή σφαλμάτων στην πρώτη θέση) . Η NATD δεν ζητά μια σταθερή δέσμευση για την παροχή συνεχούς συντήρησης. Το NATD λέει ότι η συντήρηση θα εκτιμηθεί πολύ.