1. Ορισμoί της έννοιας (code) «refactoring»
1.1 refactoring
<object-oriented, programming> Improving a computer program by reorganising its internal structure without altering its external behaviour.
When software developers add new features to a program, the code degrades because the original program was not designed with the extra features in mind.
This problem could be solved by either rewriting the existing code or working around the problems which arise when adding the new features. Redesigning a program is extra work, but not doing so would create a program which is more complicated than it needs to be. Refactoring is a collection of techniques which have been designed to provide an alternative to the two situations mentioned above.
The techniques enable programmers to restructure code so that the design of a program is clearer. It also allows programmers to extract reusable components, streamline a program, and make additions to the program easier to implement.
Refactoring is usually done by renaming methods, moving fields from one class to another and moving code into a separate method.
Although it is done using small and simple steps, refactoring a program will vastly improve its design and structure, making it easier to maintain and leading to more robust code.
"Refactoring, Reuse & Reality" by Bill Opdyke.
"Refactoring, a first example" by Martin Fowler.
(2001-05-02)
http://foldoc.org/index.cgi?query=refactoring&action=Search
1.2 “Refactoring is basically the object-oriented variant of restructuring” [Mens+Tourwe2004-ssr,p126] "The process of changing a system in such a way that it does not alter the external behavior of the code, yet improves its internal structure." [Fowler+Beck+1999-ride]
www.isr.uci.edu/~alspaugh/glossary.html
1.3 to refactor
- (computing) To re-write existing source code in order to improve its readability or structure without affecting its meaning or behaviour
The code works, but I must refactor it before it is production quality.
Retrieved from "http://en.wiktionary.org/wiki/refactor"
2. Ορολογική ανάλυση της λέξης refactoring ως σύμπλοκου όρου
re-factoring = determining component – Determined component (dD) =
προσδιορίζον συνθετικό – Προσδιοριζόμενο συνθετικό (πΠ)
Ανάλυση των συνθετικών
re = εκ νέου, πάλι, ξανά
factor {ουσιαστικό} = παράγοντας (αυτός που παράγει) ή συντελεστής (αυτός που συντελεί) (το δεύτερο είναι είδια έννοια του γένους coefficient)
factor {ρήμα} = συντελώ, είμαι παράγοντας, καθορίζω παράγοντα ή παράγοντες και (μαθηματικά) αναλύω σε παράγοντες (συνώνυμο: factorize)
factoring = ρηματικό ουσιαστικό (γερούνδιο) του ρήματος factor
Ώστε και χωρίς καμιά αναφορά στη συγκεκριμένη έννοια «(code) refactoring» που ορίζουν οι ορισμοί της παραγράφου 1 ο αγγλικός όρος refactoring ήδη μας οδηγεί στην έννοια «επανακαθορισμός παραγόντων». Με άλλα λόγια στη συγκεκριμένη πλέον έννοια έχουμε κατά κάποιο τρόπο (ή με διάφορους τρόπους) «επανακαθορισμό των παραγόντων ενός κώδικα» με σκοπό τη βελτίωσή του κτλ. κτλ. σύμφωνα με τους ορισμούς που αναφέρονται στην παράγραφο 1.
3. Εξέταση εξεύρεσης ελληνικού όρου αποτελούμενου από ήδη υπάρχουσα λέξη ή λέξεις, π.χ. με «οροποίηση» λέξης της γενικής γλώσσας ή με διαθεματικό δανεισμό (δανεισμό από άλλο θεματικό πεδίο)
Η «οροποίηση» γνωστής λέξης της ελληνικής γλώσσας αποτελεί σύμβαση που θα πρέπει να μην οδηγεί σε άλλη έννοια μέσα στο ίδιο θεματικό πεδίο πληροφορική. Παρακάτω παρατίθεται ένα πίνακας με λέξεις που θα μπορούσαν να επιλεγούν και να οροποιηθούν για να αποδώσουν την έννοια «refactoring». Δίπλα από καθεμιά από αυτές δίνεται η αντίστοιχή της αγγλική που χρησιμοποιείται ήδη είτε στο ίδιο πεδίο (πληροφορική) είτε στο συγγενές πεδίο (τηλεπικοινωνίες) είτε στο ευρύτερο πεδίο (ηλεκτρονική) [1].
αναδιάταξη | reordering |
αναδιάρθρωση | reconfiguration, restructuring |
αναδόμηση | restructuring, reconstruction |
ανακατασκευή | reconstruction |
αναμόρφωση | reform, reformation |
(επ)αναδιευθέτηση | rearrangement |
αναγωγή | reduction |
(επ)ανασύνταξη | redrafting |
(επ)ανασχεδιασμός | redesign, replan |
επαναμηχανίκευση | reengineering |
(επ)αναδημιουργία | remaking |
(επ)αναδιατύπωση | reformulation |
επαναμορφοτύπηση | reformatting |
(επ)αναδιαμόρφωση | remodulation |
επανασυναρμολόγηση | reassembling |
επανα(συγ)γραφή | rewriting, reauthoring |
επανασυνδυασμός | recombination |
ανασύνθεση | recomposition, reconstitution |
ανασχηματισμός | reshaping |
επαναμορφοποίηση | reshaping |
Κατά τον προτείνοντα, καμιά από τις παραπάνω λέξεις δεν μπορεί να χρησιμοποιηθεί κατά σύμβαση (δηλ. να οροποιηθεί) για να αποδοθεί η έννοια «(code) refactoring» χωρίς να δημιουργηθεί πρόβλημα αμφισημίας με όρους που χρησιμοποιούν ήδη τις παραπάνω αντιστοιχίες· όταν, μάλιστα, πολλές από αυτές – όπως οι αναδιάταξη, αναδόμηση, αναδιάρθωση, αναμόρφωση – κυριολεκτικά εξεταζόμενες θα κάλυπταν επιμέρους διεργασίες της έννοιας «(code) refactoring» και όχι το σύνολό της.
4. Πρόταση ελληνικού νεολογισμού
Σε περιπτώσεις όπως η προκείμενη, ενδείκνυται ο νεολογισμός. Δηλαδή μια σύμβαση τέτοιου τύπου που να μην προκαλεί σύγχυση με ήδη υπάρχουσες και ονοματοδοτημένες έννοιες. Θεωρώντας ότι κατά την διεργασία (code) refactoring επανακαθορίζονται (τίθενται εκ νέου, με διαφορετικό τρόπο, μορφή ή όνομα) διάφοροι παράγοντες/συντελεστές του κώδικα, θα χρησιμοποιήσουμε την πρόθεση ανά-[2] το ουσιαστικό παράγοντας και το ρήμα θέτω (με την οξύτονη παραλλαγή του: -θετώ):
refactor {ρήμα μεταβατικό} | ανα-παραγοντο-θετώ |
refactored {παθ. μετοχή} | αναπαραγοντοθετημένος |
refactoring {γερούνδιο} | αναπαραγοντοθέτηση {ενέργεια} |
refactorable {επίθετο} | αναπαραγοντοθετήσιμος |
refactorability {ουσιαστικό} | αναπαραγοντοθετησιμότητα |
refactorship {ουσιαστικό} | αναπαραγοντοθεσία {κατάσταση} |
5. Απόφαση της Ομάδας ΕΛΟΤ/ΤΕ48/ΟΕ1
Συζητείται η πρόταση του ΚΒ και συμπληρώνεται ως εξής:
refactor {ρήμα μεταβατικό} | αναπαραγοντοθετώ, επανακαθορίζω παράγοντες |
refactored {παθ. μετοχή} | αναπαραγοντοθετημένος, με επανακαθορισμένους παράγοντες |
refactoring {γερούνδιο} | αναπαραγοντοθέτηση, επανακαθορισμός παραγόντων {ενέργεια} |
refactorable {επίθετο} | αναπαραγοντοθετήσιμος, με δυνατότητα επανακαθορισμού παραγόντων |
refactorability {ουσιαστικό} | αναπαραγοντοθετησιμότητα, δυνατότητα επανακαθορισμού παραγόντων |
refactorship {ουσιαστικό} | αναπαραγοντοθεσία, επανακαθορισμός παραγόντων {κατάσταση} |
6. Ψηφοφορία μεταξύ των μελών της ΕΛΕΤΟ
Καλούνται τα μέλη της ΕΛΕΤΟ, να ψηφίσουν βάσει του ακόλουθου πίνακα:
- είτε αφήνοντας και τις δύο προτεινόμενες αποδόσεις στις στήλες 2 και 3
- είτε αφήνοντας μία από τις προτεινόμενες αποδόσεις και σβήνοντας την άλλη
- είτε κάνοντας ενδεχομένως άλλη πρόταση με την απαραίτητη τεκμηρίωση.
Αγγλικός όρος | 1η ελληνική απόδοση | 2η ελληνική απόδοση | Σχόλιο ή άλλη πρόταση με την δέουσα τεκμηρίωση |
refactor | αναπαραγοντοθετώ | επανακαθορίζω παράγοντες | |
refactored | αναπαραγοντοθετημένος | με επανακαθορισμένους παράγοντες | |
refactoring | αναπαραγοντοθέτηση | επανακαθορισμός παραγόντων {ενέργεια} | |
refactorable | αναπαραγοντοθετήσιμος | με δυνατότητα επανακαθορισμού παραγόντων | |
refactorability | αναπαραγοντοθετησιμότητα | δυνατότητα επανακαθορισμού παραγόντων | |
refactorship | αναπαραγοντοθεσία | επανακαθορισμός παραγόντων {κατάσταση} | |
[1] Στα μαθηματικά έχει νόημα η επαναπαραγοντοποίηση ως: εκ νέου παραγοντοποίηση
[2] Θα μπορούσε να χρησιμοποιηθεί ισοδύναμα και το διπλομόριο επανα- αλλά δεν το προτείνουμε για λόγους γλωσσικής οικονομίας (είναι κατά μία συλλαβή μεγαλύτερο)