Τι κάνει ένας προγραμματιστής ιστού και πότε τον χρειάζεστε
Ο προγραμματιστής ιστού είναι ο επαγγελματίας που μετατρέπει μια ανάγκη σε λειτουργική ιστοσελίδα ή διαδικτυακή εφαρμογή. Δεν περιορίζεται στην εμφάνιση: υλοποιεί συμπεριφορές, χειρίζεται δεδομένα, συνδέει υπηρεσίες και φροντίζει ώστε η λύση να παραμένει αξιοποιήσιμη σε πραγματικές συνθήκες. Μια απλή σελίδα παρουσίασης και ένα σύστημα κρατήσεων μπορεί να μοιάζουν στον επισκέπτη, αλλά έχουν εντελώς διαφορετικές τεχνικές απαιτήσεις. Η αξία του προγραμματιστή φαίνεται ιδιαίτερα όταν κάτι πρέπει να λειτουργεί αξιόπιστα πίσω από την οθόνη.
Ποιες εργασίες αναλαμβάνει στην πράξη
Η καθημερινή εργασία ξεκινά συνήθως από ερωτήσεις: ποιος θα χρησιμοποιήσει τον ιστότοπο, ποια ενέργεια θέλουμε να ολοκληρώνει και ποια δεδομένα χρειάζονται; Με βάση τις απαντήσεις, ο προγραμματιστής οργανώνει τη δομή, γράφει κώδικα, ελέγχει σφάλματα και αναπτύσσει λειτουργίες. Μπορεί να φτιάξει φόρμες, αναζήτηση, προσωπικούς λογαριασμούς, συνδέσεις με συστήματα πληρωμών ή εργαλεία διαχείρισης περιεχομένου. Δεν σημαίνει ότι κάθε έργο απαιτεί όλα αυτά. Σημαίνει ότι κάθε λειτουργία πρέπει να προκύπτει από συγκεκριμένη ανάγκη και να μπορεί να ελεγχθεί.
Ο επαγγελματίας συνεργάζεται συχνά με σχεδιαστή, συντάκτη περιεχομένου και υπεύθυνο προώθησης. Για παράδειγμα, ένας σωστά σχεδιασμένος κατάλογος προϊόντων χρειάζεται ταυτόχρονα ευανάγνωστη διάταξη, καθαρά στοιχεία προϊόντων και ασφαλή τρόπο ενημέρωσής τους. Όταν οι ρόλοι είναι σαφείς, μειώνονται οι παρεξηγήσεις και οι επαναλαμβανόμενες αλλαγές.
Η πλευρά που βλέπει ο επισκέπτης
Το εμφανές μέρος μιας εφαρμογής ονομάζεται διεπαφή. Εκεί ο προγραμματιστής χρησιμοποιεί συνήθως HTML (Γλώσσα Σήμανσης Υπερκειμένου, HyperText Markup Language) για το περιεχόμενο, CSS (Διαδοχικά Φύλλα Στυλ, Cascading Style Sheets) για την παρουσίαση και JavaScript για την αλληλεπίδραση. Αυτή είναι η βασική διάκριση που παρουσιάζει και η τεκμηρίωση MDN (Δίκτυο Προγραμματιστών Mozilla, Mozilla Developer Network). Μια φόρμα πρέπει όχι μόνο να φαίνεται σωστή αλλά και να εξηγεί τα λάθη καταχώρισης, να ανταποκρίνεται στο πληκτρολόγιο και να χρησιμοποιείται άνετα από κινητό.
Ο σχεδιασμός για διαφορετικά πλάτη οθόνης δεν είναι απλή σμίκρυνση του υπολογιστή. Αλλάζουν οι προτεραιότητες, οι αποστάσεις αφής, η σειρά των πληροφοριών και συχνά ο τρόπος πλοήγησης. Γι' αυτό ο έλεγχος σε πραγματικές συσκευές συμπληρώνει την προεπισκόπηση του προγράμματος περιήγησης.
Η πλευρά του διακομιστή και των δεδομένων
Όταν ένας επισκέπτης στέλνει μια αίτηση ή αναζητά διαθέσιμα προϊόντα, κάποια εργασία πραγματοποιείται στον διακομιστή. Εκεί εφαρμόζονται επιχειρησιακοί κανόνες, ελέγχονται δικαιώματα και γίνεται ανάκτηση ή αποθήκευση πληροφοριών. Μια βάση δεδομένων μπορεί να περιέχει καταλόγους, λογαριασμούς και καταχωρίσεις, αλλά ο τρόπος πρόσβασης έχει μεγαλύτερη σημασία από το όνομά της. Τα κρίσιμα δεδομένα δεν πρέπει να βασίζονται μόνο σε ελέγχους που γίνονται στο πρόγραμμα περιήγησης.
Ο προγραμματιστής ορίζει επίσης πώς ανταλλάσσουν πληροφορίες δύο συστήματα. Μια σύνδεση μπορεί να εξυπηρετεί αποθέματα, μηνύματα ή επιβεβαίωση παραγγελιών. Κάθε τέτοια εξάρτηση χρειάζεται πρόβλεψη για καθυστέρηση, αποτυχία σύνδεσης και μη έγκυρη απάντηση. Η αξιόπιστη λειτουργία προκύπτει από αυτές τις λιγότερο ορατές αποφάσεις.
Διαφορά από σχεδιαστή ιστοσελίδων και διαχειριστή
Ο σχεδιαστής δίνει έμφαση στην οπτική ιεραρχία, στη χρήση χρωμάτων, στη σαφήνεια και στην εμπειρία πλοήγησης. Ο προγραμματιστής υλοποιεί τις λειτουργίες και τους κανόνες τους. Ο διαχειριστής περιεχομένου ενημερώνει κείμενα, εικόνες και καταχωρίσεις, ενώ ο τεχνικός συντηρητής επιβλέπει την καλή λειτουργία. Στην πράξη ένας άνθρωπος μπορεί να καλύπτει περισσότερους ρόλους, όχι όμως χωρίς όρια χρόνου και εξειδίκευσης.
Ένας webmaster, για παράδειγμα, συνήθως αναλαμβάνει συνολικότερη λειτουργική επιμέλεια. Ένα σύστημα όπως το WordPress διευκολύνει τη διαχείριση, αλλά δεν υποκαθιστά τον τεχνικό σχεδιασμό όταν χρειάζεται ιδιαίτερη λειτουργικότητα.
Τι πρέπει να ξέρει ένας ικανός επαγγελματίας
Η γνώση γλώσσας προγραμματισμού είναι απαραίτητη αλλά όχι αρκετή. Χρειάζεται να μπορεί να αναλύει απαιτήσεις, να διαβάζει τεκμηρίωση, να εντοπίζει αιτίες σφαλμάτων και να συνεννοείται με μη τεχνικούς συνεργάτες. Η σωστή χρήση ελέγχου εκδόσεων επιτρέπει να καταγράφονται οι αλλαγές και να ανακτάται προηγούμενη σταθερή κατάσταση. Οι αυτοματοποιημένες δοκιμές βοηθούν όταν μια νέα λειτουργία κινδυνεύει να επηρεάσει κάποια παλιά.
Σημαντικό κομμάτι είναι και η προσβασιμότητα. Τα κατανοητά πεδία, οι ετικέτες και η πλοήγηση με πληκτρολόγιο δεν είναι αισθητικές λεπτομέρειες. Το ίδιο ισχύει για την ταχύτητα και την ασφάλεια: μια εντυπωσιακή σελίδα που αργεί ή εμφανίζει προσωπικά δεδομένα στον λάθος χρήστη δεν έχει εκπληρώσει τον σκοπό της.
Πώς οργανώνεται ένα νέο έργο
Η υλοποίηση μπορεί να ξεκινήσει με ένα σύντομο έγγραφο που περιγράφει το κοινό, τις βασικές ενέργειες και τα δεδομένα. Ακολουθεί ένα λειτουργικό πρωτότυπο για να ελεγχθεί η διαδρομή του χρήστη πριν προστεθούν δευτερεύουσες δυνατότητες. Στη συνέχεια εφαρμόζονται διαδοχικά ο κώδικας, οι δοκιμές και η δημοσίευση. Η παρακολούθηση δεν σταματά την ημέρα της παράδοσης, επειδή τα πραγματικά δεδομένα και οι μελλοντικές αλλαγές δημιουργούν νέα σενάρια.
Μια χρήσιμη σειρά προτεραιοτήτων είναι: πρώτα η βασική ενέργεια του επισκέπτη, μετά η ασφάλεια των δεδομένων, στη συνέχεια οι συνδέσεις με άλλες υπηρεσίες και τέλος οι προαιρετικές ευκολίες. Αυτή η σειρά δεν είναι απόλυτη, αλλά βοηθά να μην χαθεί ο σκοπός μέσα σε μια μεγάλη λίστα δυνατοτήτων.
Πώς αξιολογείτε μια προσφορά συνεργασίας
Ζητήστε γραπτή περιγραφή των παραδοτέων, σαφείς εξαιρέσεις, κριτήρια αποδοχής και ποιος έχει πρόσβαση στον κώδικα και στη βάση δεδομένων. Δείτε πώς θα διορθώνονται τα σφάλματα, ποιος θα λαμβάνει αντίγραφα ασφαλείας και πώς θα ενημερώνονται οι εξαρτήσεις. Ρωτήστε αν οι αλλαγές τιμολογούνται χωριστά και ποιος εγκρίνει μια νέα λειτουργία. Ένα χαμηλό αρχικό κόστος χωρίς σαφές πλαίσιο συντήρησης ενδέχεται να αποδειχθεί ακριβότερο.
Για έναν μικρό ιστότοπο παρουσίασης ίσως αρκεί προσαρμογή υπάρχουσας πλατφόρμας. Αν χρειάζονται ειδικοί κανόνες καταχωρίσεων ή ανταλλαγή δεδομένων, η τεχνική ανάλυση προηγείται της επιλογής πλατφόρμας. Καλό σημάδι είναι ο επαγγελματίας που εξηγεί γιατί δεν χρειάζεται μια περιττή δυνατότητα.
Συνηθισμένες παρεξηγήσεις
Δεν είναι υποχρεωτικό να γραφτεί κάθε ιστοσελίδα από την αρχή. Το να χρησιμοποιούνται υπάρχουσες βιβλιοθήκες μπορεί να είναι συνετή επιλογή, εφόσον ελέγχεται η συντήρηση και η καταλληλότητά τους. Δεν είναι επίσης σωστό να θεωρούμε ότι ο προγραμματιστής εγγυάται μόνος του την κατάταξη στις αναζητήσεις. Η βελτιστοποίηση για μηχανές αναζήτησης συνδυάζει τεχνική προσβασιμότητα, περιεχόμενο και πραγματική χρησιμότητα.
Τέλος, μια εφαρμογή δεν ολοκληρώνεται επειδή «ανοίγει» στον υπολογιστή του δημιουργού της. Χρειάζεται να δοκιμαστεί με λανθασμένα δεδομένα, αργή σύνδεση, κινητά, διαφορετικούς χρήστες και αποτυχίες εξωτερικών υπηρεσιών. Εκεί ξεχωρίζει η δοκιμασμένη λύση από την απλή επίδειξη.
Τι να συμφωνήσετε πριν αρχίσετε
Περιγράψτε με μια πρόταση τι πρέπει να πετυχαίνει ο επισκέπτης και συγκεντρώστε τρία πραγματικά παραδείγματα χρήσης. Ζητήστε μια λίστα με αναγκαίες και προαιρετικές λειτουργίες, μαζί με τον τρόπο που θα δοκιμαστεί καθεμία. Ορίστε υπεύθυνο για περιεχόμενο, ελέγχους, ενημερώσεις και υποστήριξη μετά την παράδοση. Έτσι θα μπορείτε να συγκρίνετε προτάσεις σε κοινή βάση και να κρίνετε αν ο προγραμματιστής ιστού καλύπτει τις ανάγκες σας, αντί να επιλέγετε με μοναδικό κριτήριο την τεχνολογία που χρησιμοποιεί.
Ερωτήσεις που αποκαλύπτουν το επίπεδο συνεργασίας
Ποιος θα κατέχει τον τελικό κώδικα; Αυτό πρέπει να ορίζεται στην προσφορά και να διαχωρίζεται από άδειες εξωτερικών προϊόντων. Η πρόσβαση σε αρχεία και δεδομένα είναι πρακτικό ζήτημα συνέχειας, όχι μόνο νομική λεπτομέρεια. Χρειάζεται να ξέρετε τι μπορείτε να παραλάβετε όταν αλλάξει ο συνεργάτης σας.
Πώς θα ξέρω ότι ένα αίτημα υλοποιήθηκε σωστά; Ορίστε δοκιμαστικές περιπτώσεις με συγκεκριμένα δεδομένα και αναμενόμενο αποτέλεσμα. Για μια φόρμα, για παράδειγμα, ελέγξτε αποστολή, υποχρεωτικά πεδία, λανθασμένη διεύθυνση και επιβεβαίωση λήψης. Η αόριστη διαβεβαίωση «δουλεύει» δεν αντικαθιστά τον έλεγχο.
Χρειάζεται πάντα ειδική κατασκευή; Όχι. Αξιολογήστε πρώτα έτοιμες λύσεις που καλύπτουν τις βασικές ανάγκες με ασφαλή συντήρηση. Ειδικός κώδικας δικαιολογείται όταν υπάρχει σαφής διαφορά που δεν εξυπηρετείται επαρκώς από ήδη διαθέσιμο σύστημα. Το ζητούμενο είναι η κατάλληλη λύση, όχι η μεγαλύτερη ποσότητα προγραμματισμού.