Προγραμματισμός

Έργα Java ανοιχτού κώδικα: GitHub

Εάν είστε περίεργοι για το GitHub τότε αυτό το σύντομο σεμινάριο στο Έργα Java ανοιχτού κώδικα η σειρά είναι για εσάς. Λάβετε μια επισκόπηση του αποθετηρίου πηγαίου κώδικα που έχει αλλάξει τον τρόπο λειτουργίας πολλών προγραμματιστών, τόσο μεμονωμένα όσο και συνεργατικά. Στη συνέχεια, δοκιμάστε το GitHub μόνοι σας, χρησιμοποιώντας κοινές εντολές Git για διακλάδωση και δέσμευση του δικού σας έργου ανοιχτού κώδικα.

Το GitHub είναι ένας ιστότοπος κοινωνικής κωδικοποίησης και μια υπηρεσία φιλοξενίας πηγαίου κώδικα που χρησιμοποιεί το Git ως σύστημα ελέγχου έκδοσης. Ξεκίνησε το 2008, το GitHub διαθέτει ήδη 1,7 εκατομμύρια άτομα που φιλοξενούν σχεδόν 3 εκατομμύρια αποθετήρια. Όπως τα περισσότερα κοινωνικά δίκτυα, το GitHub επιτρέπει στους χρήστες να δημιουργούν και να παρακολουθούν ροές που σχετίζονται με τα έργα του άλλου. Επεκτείνει επίσης το κοινωνικό παράδειγμα για να συμπεριλάβει γραφήματα δικτύου που δείχνουν τη χρήση αποθετηρίου. Μπορείτε να σκεφτείτε το GitHub ως κοινωνικό δίκτυο, α λα Facebook, αλλά μόνο για προγραμματιστές λογισμικού.

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

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

Ακολουθήστε την ιστορία στο JavaWorld

  • Γιατί οι προγραμματιστές επιλέγουν το Git για έλεγχο έκδοσης
  • Καθώς το πιρούνι γίνεται κανόνας, ετοιμαστείτε για το GitHub
  • Το GitHub παίρνει 100 εκατομμύρια επενδύσεις

Η κοινωνική κωδικοποίηση με το GitHub επιτρέπει στους προγραμματιστές να μαθαίνουν ο ένας από τον άλλο με έναν νέο τρόπο, ενώ αποθηκεύουν και ενημερώνουν τον κώδικα χρησιμοποιώντας ένα δημοφιλές, καλά εξοπλισμένο σύστημα ελέγχου έκδοσης. Σε αυτήν την έκδοση του Έργα Java ανοιχτού κώδικα Θα σας βοηθήσω να ξεκινήσετε με το GitHub. Πρώτα θα δώσω μια επισκόπηση της πλατφόρμας και μετά θα παρουσιάσω ορισμένα βασικά στοιχεία του Git, συμπεριλαμβανομένων των επιλογών γραμμής εντολών που θα χρησιμοποιείτε συχνά στο GitHub. Τέλος, θα περάσω ένα απλό διαφορά-προς την-διαπράττω παράδειγμα που δείχνει την καθημερινή ισχύ αυτού του κατανεμημένου αποθετηρίου κώδικα.

Ξεκινήστε με το GitHub

Οι λογαριασμοί GitHub διατίθενται σε διάφορες γεύσεις, ομαδοποιημένοι ανά ατομικό ή εμπορικό λογαριασμό και από δημόσιο ή ιδιωτικό αποθετήριο. Οι προγραμματιστές ανοιχτού κώδικα επιτρέπονται απεριόριστα δημόσια αποθετήρια ή με μια μικρή χρέωση μπορούν να επιλέξουν να φιλοξενήσουν μεταξύ πέντε και 20 ιδιωτικών αποθετηρίων. Οι εμπορικοί προγραμματιστές πληρώνουν περισσότερα (περίπου διπλάσιο από τους προγραμματιστές ανοιχτού κώδικα από αυτό το γράψιμο) και μπορούν να κλιμακώσουν έως και 125 ιδιωτικά αποθετήρια. Ανατρέξτε στην αρχική σελίδα του GitHub για μια πλήρη λίστα σχεδίων και τιμών.

Θα χρειαστείτε έναν λογαριασμό GitHub για να ακολουθήσετε αυτό το άρθρο. Μεταβείτε στον ιστότοπο του GitHub και κάντε κλικ στο σύνδεσμο Εγγραφή και Τιμολόγηση στο επάνω μέρος της σελίδας. Κάντε κλικ στην επιλογή "Δημιουργία δωρεάν λογαριασμού" και ολοκληρώστε τη διαδικασία δημιουργίας λογαριασμού.

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

Git: Ένα αστάρι

Πρέπει να είστε τουλάχιστον κάπως εξοικειωμένοι με το Git για να χρησιμοποιήσετε αποτελεσματικά το GitHub. Ένα σημείο ενδιαφέροντος για τους περισσότερους geeks είναι ότι το Git σχεδιάστηκε και αναπτύχθηκε από τον Linus Torvalds, τον ιδρυτή του Linux. Σε αυτήν την ενότητα δίνω μια επισκόπηση του Git και περιγράφω πώς λειτουργεί. Προς το τέλος του άρθρου παρουσιάζω μια ανασκόπηση μερικών από τις πιο δημοφιλείς εντολές που θα σας βοηθήσουν να γίνετε παραγωγικοί γρήγορα. Αυτό δεν είναι καθόλου εξαντλητικό σεμινάριο, αλλά θα σας βοηθήσει να ξεκινήσετε.

Όταν οι προγραμματιστές λογισμικού σκέφτονται ένα σύστημα ελέγχου έκδοσης (VCS), τείνουμε να σκεφτόμαστε ένα κεντρικό αποθετήριο που θα χρησιμοποιήσουμε για να κατεβάσουμε τον πηγαίο κώδικα, να κάνουμε αλλαγές τοπικά και στη συνέχεια να υποβάλουμε αυτές τις αλλαγές πίσω στο κεντρικό αποθετήριο. Το Git είναι λίγο διαφορετικό. Είναι ένα διανεμημένος έλεγχος έκδοσης σύστημα, που σημαίνει ότι δεν είναι πραγματικά ένα κεντρικό αποθετήριο, αλλά μάλλον πολλαπλοί κλώνοι αποθετηρίων. Επομένως, το "κύριο αποθετήριο" υπάρχει κάπου (όπως στο GitHub), αλλά δουλεύουμε τοπικά σε αποθετήρια κλώνων.

Η κατανεμημένη αρχιτεκτονική του Git παρέχει ένα σημαντικό όφελος έναντι των μη διανεμημένων συστημάτων ελέγχου έκδοσης, καθώς οι προγραμματιστές μπορούν τοπικά να κάνουν check-in και check-out code, να δημιουργήσουν υποκαταστήματα και πολλά άλλα. Για μια σημαντική αλλαγή σε ένα παραδοσιακό VCS θα δημιουργήσετε έναν προσωπικό κλάδο και θα ελέγξετε τον κωδικό σε αυτόν τον κλάδο. Όταν τελειώσατε με τις αλλαγές σας, θα συγχωνεύσετε αυτόν τον κλάδο στον κύριο κλάδο.

Κατανεμημένος έλεγχος έκδοσης

Το Git αλλάζει το παράδειγμα VC επειδή μπορείτε να εργαστείτε τοπικά και να συγχωνεύσετε όλες τις αλλαγές σας σε μια μοναδική δέσμευση (μπορείτε να διατηρήσετε το τοπικό σας ιστορικό όταν συγχωνεύσετε ή μπορείτε να συνδυάσετε όλες τις αλλαγές σε ένα check-in). Έτσι, το κεντρικό αποθετήριο δεν είναι γεμάτο με κλαδιά και δεκάδες ιστορικές σημειώσεις, αλλά μόνο πληροφορίες σχετικά με τις αλλαγές χαρακτηριστικών που έχουν γίνει. Ουσιαστικά, το Git χρησιμοποιεί κλάδους όπως είχαν σκοπό: να αναπτύξει ένα νέο σύνολο λειτουργιών, να διατηρήσει μια κυκλοφορία ή να διορθώσει σφάλματα που σχετίζονται με μια κυκλοφορία.

Όταν εγκαθιστάτε το Git στον τοπικό υπολογιστή σας και "κλωνοποιείτε" ένα αποθετήριο, λαμβάνετε ολόκληρο το αποθετήριο, συμπεριλαμβανομένων των ιστορικών πληροφοριών για όλο τον πηγαίο κώδικα στο έργο. Στη συνέχεια εργάζεστε ενάντια στο τοπικό αποθετήριο, προσθέτοντας νέα αρχεία, αφαιρώντας αρχεία και αλλάζοντας αρχεία σε περιβάλλον σταδιοποίησης μέχρι να τα δεσμεύσετε πραγματικά στο τοπικό αποθετήριο. Το Git διατηρεί πληροφορίες εκδόσεων για όλες τις αλλαγές σας και μπορείτε εύκολα να επιστρέψετε σε οποιοδήποτε σημείο του ιστορικού σας. Τέλος, όταν είστε έτοιμοι, μπορείτε να συγχρονίσετε το τοπικό αποθετήριο σας με ένα απομακρυσμένο.

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

Δείτε τους πόρους εάν χρειάζεστε μια πληρέστερη εισαγωγή σεμιναρίων στο Git. Θα επικεντρωθώ στο GitHub για το υπόλοιπο αυτού του άρθρου.

Κοινωνική κωδικοποίηση με το GitHub

Αφού δημιουργήσετε έναν λογαριασμό GitHub, μπορείτε να ξεκινήσετε να παρακολουθείτε τη δουλειά άλλων προγραμματιστών λογισμικού ή να παρακολουθείτε έργα που σας ενδιαφέρουν. Μπορείτε να βρείτε άτομα ή έργα που πρέπει να ακολουθήσετε αναζητώντας τα απευθείας. ή, αν αναζητάτε ιδέες, μπορείτε να χρησιμοποιήσετε τη λειτουργία "Εξερεύνηση" του GitHub για να βρείτε έργα με βάση το ενδιαφέρον σας. Η Εξερεύνηση του GitHub εμφανίζει δημοφιλή αποθετήρια καθώς και επιλεγμένα. Εκτός από αυτά, μπορείτε να εξερευνήσετε όλα τα αποθετήρια κάνοντας κλικ στο κουμπί "Χώροι αποθήκευσης" στη γραμμή εργαλείων. Εάν θέλετε να αναζητήσετε έργα με κωδικοποίηση σε μια συγκεκριμένη γλώσσα προγραμματισμού, μπορείτε να κάνετε κλικ στο "Γλώσσες" στη γραμμή εργαλείων και, στη συνέχεια, επιλέξτε τη γλώσσα που θέλετε να εξερευνήσετε. Το Σχήμα 1 δείχνει τα αποθετήρια Java που παρακολουθούνται περισσότερο (δηλαδή, τάσεις) κατά τη στιγμή αυτής της γραφής.

Το Storm ήταν το αποθετήριο Java με την μεγαλύτερη παρακολούθηση στο GitHub τη στιγμή που έλεγξα. Μόλις βρείτε ένα έργο που σας ενδιαφέρει, κάντε κλικ σε αυτό και θα δείτε μια επιλογή "Παρακολούθηση", όπως φαίνεται στο Σχήμα 2.

Εάν κάνετε κλικ στο "Παρακολούθηση", τότε θα εγγραφείτε για να παρακολουθήσετε το έργο και θα μπορείτε να δείτε αλλαγές που έγιναν στην αρχική σελίδα του GitHub. Το Σχήμα 3 δείχνει την αρχική σελίδα του GitHub, η οποία περιέχει μια λίστα με ενημερώσεις σε διάφορα έργα του Spring.

Η παρακολούθηση μεμονωμένων προγραμματιστών λειτουργεί με τον ίδιο τρόπο όπως η παρακολούθηση έργων. Για παράδειγμα, αποφάσισα πρόσφατα να ακολουθήσω τον φίλο μου Tom Akehurst, όπως φαίνεται στο σχήμα 4.

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

Χρήση του GitHub για ενημερώσεις και συντήρηση έργων

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

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

Ρύθμιση ενός αποθετηρίου GitHub

Υποθέτοντας ότι έχετε δημιουργήσει λογαριασμό, συνδεθείτε και θα δείτε κάτι παρόμοιο με αυτό που φαίνεται στο Σχήμα 5. Κάντε κλικ στο "Δημιουργία αποθετηρίου" και θα σας καθοδηγήσει στη διαδικασία. Αρχικά, θα κάνετε κλικ στο πρώτο στοιχείο στη γραμμή εργαλείων πάνω δεξιά, "Δημιουργία νέας φήμης".

Κάντε κλικ σε αυτόν τον σύνδεσμο και δώστε στο αποθετήριο σας ένα όνομα και περιγραφή. Δημιούργησα ένα νέο αποθετήριο για να φιλοξενήσω τα βοηθητικά προγράμματα GeekCap μου, το οποίο είναι ένα σύνολο βοηθητικών κλάσεων που περιλαμβάνουν αλγόριθμους ταξινόμησης και μια λίστα επανακατάταξης, μια τάξη που εξάγει εύκολα εικονίδια από το Java Look-and-Feel Graphics Repository, ZIP Utilities και περισσότερο. Αν και δεν είναι το πιο ωραίο έργο, το συμπεριέλαβα επειδή τα περισσότερα από τα άλλα έργα μου χρησιμοποιούν ένα ή περισσότερα από αυτά τα βοηθητικά προγράμματα, οπότε είναι καλό να τα αποθηκεύετε σε προσιτό μέρος. Ονόμασα το έργο μου geek-util και του έδωσε μια περιγραφή: "Geekcap Utilities: χρήσιμες τάξεις που χρησιμοποιούνται από άλλα έργα Geekcap.com."

Μόλις δημιουργηθεί το έργο σας, θα πρέπει να δείτε μια οθόνη όπως αυτή που φαίνεται στο Σχήμα 6.

Εικόνα 6. Δημιουργήθηκε αποθετήριο (κάντε κλικ για μεγέθυνση)

Το στιγμιότυπο οθόνης στο Σχήμα 6 δείχνει μια λίστα με το τι μπορείτε να κάνετε με το νέο σας αποθετήριο, καθώς και ένα παράδειγμα δημιουργίας ενός ΔΙΑΒΑΣΤΕ αρχείο και να το σπρώξετε στο αποθετήριο σας. Έχω ένα υπάρχον έργο Maven που πρέπει να προσθέσω για πρώτη φορά, οπότε ξεκινώ προσθέτοντας το δικό μου pom.xml αρχείο και μου src Ευρετήριο. Ακολουθούν οι εντολές Git που εισήγαγα για την αρχική ώθηση του έργου στο αποθετήριο:

Λίστα 1. Εντολές Git για δημιουργία αποθετηρίου

git init git add src git add pom.xml git commit -m 'Αρχική δέσμευση' git remote add origin //github.com/geekcap/geek-util.git git push -u origin master

Εδώ είναι σημαντική η εξοικείωση με το Git εάν θέλετε να χρησιμοποιήσετε το GitHub. Ευτυχώς, οι κύριες εντολές Git είναι σχετικά διαισθητικές:

  • git init δημιουργεί ένα κενό αποθετήριο Git. Συγκεκριμένα, δημιουργεί το .git κατάλογο, τον οποίο σκατά εντολή θα αναγνωρίσει ως αποθετήριο.
  • git add προσθέτει αρχεία στο αποθετήριο. σε αυτήν την περίπτωση πρόσθεσα το δικό μου pom.xml και το δικό μου src Ευρετήριο.
  • git δεσμεύω δεσμεύει αλλαγές στο αποθετήριο. Το μόνο που έκανα ήταν να προσθέσω το pom.xml αρχείο και src Ευρετήριο. Θα χρησιμοποιούσατε επίσης αυτήν την εντολή μετά την τροποποίηση του περιεχομένου ενός αρχείου ή τη διαγραφή αρχείων μέσω του git rm εντολή.
  • git απομακρυσμένη προσθήκη προέλευσης προσθέτει το καθορισμένο URL ως διακομιστή προέλευσης για το αποθετήριο Git. Όπως είδατε στο Σχήμα 6, το διακομιστής προέλευσης δημιουργείται στο GitHub για εσάς και η διεύθυνση URL παρέχεται στην τεκμηρίωση εγκατάστασης.
  • σκατά ανεβάζει όλες τις δεσμευμένες αλλαγές στον καθορισμένο διακομιστή. Σε αυτήν την περίπτωση έχω ωθήσει την αρχική δέσμευση που περιέχει το pom.xml και src κατάλογο στον διακομιστή προέλευσης, τον οποίο είχα ορίσει προηγουμένως.

Μπορείτε να χρησιμοποιήσετε το Git από το IDE ή από τη γραμμή εντολών. Απλώς τυχαίνει να είμαι πρεσβύτερος της γραμμής εντολών. Εκτελεί βοήθεια εμφανίζει τις πιο κοινές εντολές, οι οποίες συνοψίζονται στη Λίστα 2.