Η αποσύνδεση vs YAGNI

ψήφοι
7

Να έρχονται σε αντίθεση;

Η αποσύνδεση είναι κάτι μεγάλο και πολύ δύσκολο να επιτευχθεί. Ωστόσο, στις περισσότερες από τις εφαρμογές που δεν το έχουν πραγματικά ανάγκη, ώστε να μπορώ να σχεδιάσουν ιδιαίτερα σε συνδυασμό εφαρμογών και σχεδόν δεν θα αλλάξει τίποτα εκτός από προφανείς παρενέργειες όπως «δεν μπορείτε να ξεχωριστά στοιχεία», «έλεγχο μονάδας είναι ο πόνος στην ass»κλπ

Τι νομίζετε; Έχετε πάντα προσπαθώ να αποσυνδεθεί και να ασχοληθεί με την εναέρια;

Δημοσιεύθηκε 02/03/2009 στις 08:15
πηγή χρήστη
Σε άλλες γλώσσες...                            


9 απαντήσεις

ψήφοι
2

Ι (σχεδόν) πάντα αποσύνδεση. Κάθε φορά που έκανα αυτό το βρήκα χρήσιμο, και (σχεδόν) κάθε φορά που δεν έκανα εγώ έπρεπε να το κάνω αργότερα. Έχω, επίσης, να βρει έναν καλό τρόπο για να μειωθεί ο αριθμός των σφαλμάτων.

Απαντήθηκε 02/03/2009 στις 08:19
πηγή χρήστη

ψήφοι
0

Λοιπόν, YAGNI είναι κάτι περισσότερο από ένα ψεύτικο απλοϊκή φράση άνθρωποι ρίχνουν γύρω. Η αποσύνδεση, όμως, είναι ένα αρκετά καλά κατανοητή έννοια. YAGNI φαίνεται να υπονοεί ότι το ένα είναι ένα είδος μέντιουμ. Είναι ακριβώς προγραμματισμού από κλισέ, η οποία δεν είναι ποτέ μια καλή ιδέα. Για να είμαι ειλικρινής, δεν υπάρχει περίπτωση να γίνει ότι YAGNI είναι πιθανόν να μην σχετίζεται με την αποσύνδεση καθόλου. Η σύζευξη είναι συνήθως «πιο γρήγορα» και «ποιος ξέρει, αν είστε θα έχετε την ευκαιρία να χρειαστεί μια αποσυνδεδεμένη λύση? Δεν θα αλλάξουν συστατικό Χ έτσι κι αλλιώς!»

Απαντήθηκε 02/03/2009 στις 08:21
πηγή χρήστη

ψήφοι
2

Η αποσύνδεση της για χάρη της αποσύνδεσης μπορεί να είναι κακό. Η οικοδόμηση ελέγξιμες συστατικά είναι πολύ σημαντικό όμως.

Το δύσκολο μέρος της ιστορίας είναι να γνωρίζουμε πότε και πόσο αποσύνδεση χρειάζεστε.

Απαντήθηκε 02/03/2009 στις 08:21
πηγή χρήστη

ψήφοι
0

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

Για να ληφθεί απόφαση τόσο υποκειμενικό, τότε, δεν μπορεί να υπάρξει μια κατευθυντήρια γραμμή για να συνταγογραφήσει.

Απαντήθηκε 02/03/2009 στις 08:22
πηγή χρήστη

ψήφοι
2

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

Το πρακτικό αποτέλεσμα αυτών είναι ότι έχετε ένα σύστημα όπου είναι πολύ πιο εύκολο να refactor και να διατηρήσει τα επιμέρους συστατικά, χωρίς ακούσια προκαλεί πολλαπλασιαστικές επιπτώσεις σε ολόκληρη την αίτηση και, εφόσον δεν υπάρχουν χωρίς λόγο πολύπλοκες πτυχές του σχεδιασμού - είναι τόσο απλό όσο απαιτείται για να καλύψει τις τρέχουσες ανάγκες.

Απαντήθηκε 02/03/2009 στις 08:22
πηγή χρήστη

ψήφοι
0

YAGNI το χάος :) ... πραγματικά, δεν χρειάζεται να έχουν όλες τον κωδικό αναμειγνύονται για να πάει «πιο γρήγορα».

Οι δοκιμές μονάδα πραγματικά να βοηθήσει στην αίσθηση όταν συνδυάζεται (δίνεται μία καταλάβει καλά τι είναι μια δοκιμή μονάδα σε σχέση με άλλους τύπους δοκιμών). Αν αντί να το κάνει με την νοοτροπία «που δεν μπορούν να διαχωρίσουν τα συστατικά», μπορείτε εύκολα να πάρετε για να προσθέσετε πράγματα που δεν θα το χρειάζεται :)

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

Απαντήθηκε 02/03/2009 στις 09:02
πηγή χρήστη

ψήφοι
1

Αν «δοκιμή μονάδα είναι ένας πόνος στο γάιδαρο», στη συνέχεια, θα ήθελα να πω ότι δεν το χρειάζεστε. Το μεγαλύτερο μέρος του χρόνου αποσύνδεσης μπορεί να επιτευχθεί με σχεδόν μηδενικό κόστος, καθώς, τόσο γιατί δεν θα θέλετε να το κάνετε;

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

Απαντήθηκε 02/03/2009 στις 09:02
πηγή χρήστη

ψήφοι
7

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

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

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

Απαντήθηκε 02/03/2009 στις 16:59
πηγή χρήστη

ψήφοι
4

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

YAGNI είναι περίπου πραγματισμό. Ας υποθέσουμε ότι δεν χρειάζεται κάτι, μέχρι να το κάνετε.

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

«Αποσύνδεση της» (ή «χαλαρά ζευγάρι») είναι ένα ρήμα, γι 'αυτό απαιτεί δουλειά. YAGNI είναι ένα τεκμήριο, για τα οποία μπορείτε να προσαρμόσετε όταν διαπιστώσετε ότι δεν είναι πλέον αλήθεια.

Απαντήθηκε 05/05/2009 στις 00:35
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more