Pseudocode διαδικασία προγραμματισμού εναντίον Driven Test Ανάπτυξης

ψήφοι
16

Για όσους δεν έχουν διαβάσει κώδικα Πλήρης 2, η διαδικασία προγραμματισμού ψευδοκώδικα είναι ουσιαστικά ένας τρόπος για να σχεδιάσουν μια ρουτίνα περιγράφοντας αυτό σε απλά αγγλικά πρώτο, τότε σταδιακά θα αναθεωρήσει σε πιο λεπτομερή ψευδοκώδικα, και, τέλος, στον κώδικα. Το κύριο όφελος από αυτό είναι να σας βοηθήσει να μείνετε στο σωστό επίπεδο αφαίρεσης από τα συστήματα δόμησης πάνω προς τα κάτω και όχι από κάτω προς τα πάνω, εξελίσσεται με τον τρόπο αυτό ένα καθαρό ΑΡΙ σε διακριτά στρώματα. Θεωρώ ότι TDD είναι λιγότερο αποτελεσματική σε αυτό, διότι εστιάζει υπερβολικά στο να κάνουν το ελάχιστο για να πάρετε μια δοκιμή για να περάσει και να ενθαρρύνει λίγο εκ των προτέρων σχεδιασμός. Θεωρώ επίσης ότι χρειάζεται να διατηρηθεί μια σειρά από δοκιμές μονάδα για την ασταθή κωδικός (κωδικός που είναι συνεχώς refactored) είναι αρκετά δύσκολο, γιατί είναι συνήθως η περίπτωση που έχετε μια ντουζίνα μονάδα δοκιμών για μια ρουτίνα που είναι απαραίτητη μόνο μία ή δύο φορές. Όταν το κάνετε Refactor - αλλάξετε μια μέθοδο υπογραφής, για παράδειγμα - το μεγαλύτερο μέρος της εργασίας που κάνετε είναι στην ενημέρωση των δοκιμών και όχι τον κωδικό prod. Προτιμώ την προσθήκη δοκιμές μονάδα μετά τον κωδικό ενός στοιχείου έχει σταθεροποιηθεί λίγο.

Η ερώτησή μου είναι - από εκείνους που έχουν δοκιμάσει και τις δύο προσεγγίσεις, που προτιμάτε;

Δημοσιεύθηκε 03/10/2008 στις 22:44
πηγή χρήστη
Σε άλλες γλώσσες...                            


6 απαντήσεις

ψήφοι
4

Με Test Driven Development θα πρέπει ακόμα να κάνει κάποιο προγραμματισμό στην αρχή. Θα πρέπει στην αρχή να είναι μια ματιά υψηλό επίπεδο σε ό, τι προσπαθούμε να κάνουμε. Μην έρθει με όλες τις λεπτομέρειες, αλλά να πάρετε μια ιδέα σε απλά αγγλικά για το πώς να λύσει το πρόβλημα.

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

Θα έλεγα ότι το καλύτερο στοίχημα είναι να χρησιμοποιήσετε TDD. Το κλειδί είναι να συνειδητοποιήσουμε ότι TDD δεν σημαίνει «παραλείψετε το σχεδιασμό». TDD σημαίνει να κάνει ένα μικρό κομμάτι του σχεδιασμού για να ξεκινήσετε καλά, και να προσαρμόσετε ανάλογα με τις ανάγκες. Μπορεί να μην χρειάζεται καν να προσαρμοστεί.

Απαντήθηκε 03/10/2008 στις 22:51
πηγή χρήστη

ψήφοι
3

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

Εάν, από την άλλη πλευρά, το πρόβλημα είναι πολύπλοκο, θα πρέπει να σκεφτείτε μέσω πώς να το προσεγγίσουμε πριν μπορώ να γράψω ακόμη ένα αρχικό αφελής λύση - Θα πρέπει ακόμα να προγραμματίσουν πριν κωδικό? Ως εκ τούτου, μπορώ να χρησιμοποιήσω ένα συνδυασμό των δύο προσεγγίσεων: μια αγγλική περιγραφή του τι θα γράψω αρχικά, τότε η δέσμη δοκιμών, κωδικό συνέχεια αφελής λύση, τότε φινέτσα.

Απαντήθηκε 03/10/2008 στις 22:55
πηγή χρήστη

ψήφοι
1

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

Σε δυναμικές γλώσσες (κυρίως ruby), συστήνω ιδιαίτερα TDD, θα σας βοηθήσει να πιάσει τα λάθη που άλλες γλώσσες θα έχουν αλιευθεί κατά τη μεταγλώττιση.

Σε ένα μεγάλο, πολύπλοκο σύστημα, τόσο περισσότερο σχεδιασμό κάνετε upfront τόσο καλύτερα θα είναι. Φαίνεται πως όταν έχουν σχεδιαστεί για ένα μεγάλο έργο, σε κάθε περιοχή που χέρι-κυμάτιζαν και είπε ότι «αυτό θα πρέπει να είναι αρκετά απλό» ήταν ένα σημείο εμπόδιο αργότερα στο έργο.

Εάν εργάζεστε μόνοι σε κάτι μικρό σε στατικά-δακτυλογραφημένο γλώσσα, η προσέγγιση κατάλογος είναι λογικό και θα σας γλιτώσει πολύ χρόνο πάνω από TDD (συντήρηση δοκιμή δεν είναι δωρεάν, αν και εγγράφως τις δοκιμές στην πρώτη θέση δεν είναι πάρα πολύ κακή) - Όταν δεν υπάρχουν δοκιμές στο σύστημα στο οποίο εργάζεστε, προσθέτοντας στο τεστ δεν είναι πάντα θαύμαζα και ίσως ακόμη και να σχεδιάσετε κάποια ανεπιθύμητη προσοχή.

Απαντήθηκε 03/10/2008 στις 23:22
πηγή χρήστη

ψήφοι
1

Ακριβώς επειδή ο έλεγχος είναι επιτυχής, δεν σημαίνει ότι είστε έτοιμοι.

TDD χαρακτηρίζεται καλύτερα από κόκκινο - πράσινο - Refactor .

Έχοντας μια δοκιμή ενός παρέχει (δύο) γραμμές τέρματος. Είναι μόνο το πρώτο, ελάχιστη δέσμη απαιτήσεων. Ο πραγματικός στόχος είναι ο ίδιος στόχος όπως «Ψευδοκώδικα Προγραμματισμός Process» ή οποιοδήποτε σχέδιο πειθαρχίας.

Επίσης, η TDD είναι οδηγείται από τις δοκιμές, αλλά αυτό δεν σημαίνει ότι κινείται στα τυφλά από τη δοκιμή. Μπορείτε να επαναλάβει τη δοκιμή σας με τον ίδιο τρόπο που επαναλάβει τον κωδικό σας. Δεν υπάρχει χώρος για δογματική προσκόλληση σε ένα χαζό πρόγραμμα εδώ. Αυτό αποτελεί μια Agile τεχνική - που σημαίνει να προσαρμοστεί στην ομάδα σας και τις περιστάσεις σας.

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

Ο πραγματικός στόχος είναι καλό λογισμικό. TDD δεν μπορεί να αποκλείσει «καλοσύνη».

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

Απαντήθηκε 04/10/2008 στις 00:18
πηγή χρήστη

ψήφοι
0

Για μένα TDD έχει pseudocoding άσο απλά δεν μπορεί να ανταγωνιστεί με - τόσο να σας βοηθήσει αφηρημένη και να σχεδιάσουν την ανάπτυξη, αλλά μόλις τελειώσετε την ανάπτυξη στην TDD γης εξακολουθείτε να έχετε τις δοκιμές μονάδα .

AS χρήσιμη μια προσέγγιση που περιγράφεται CC2 pseudocoding είναι, απλά μπορεί να μην ταιριάζει με αυτό. TDD είναι μόνο το μισό για το σχεδιασμό, είναι επίσης παρέχει μια αυστηρή ικρίωμα μπορείτε να εξελιχθεί το έργο μπροστά από το. Ωστόσο, δεν βλέπω το λόγο για τον οποίο δεν μπορείτε να ψευδοκώδικα για να λύσει τα σύνολα προβλήματα TDD.

Δεν πρέπει να αναπτυχθεί οργανικά.
Ψευδοκώδικας είναι το μυαλό-δολοφόνος.
Είναι το μικρό-θάνατος που φέρνει τη λήθη της μνήμης του έργου.
Θα αντιμετωπίσει μου μεθοδολογία του '90.
Θα της επιτρέψουν να περάσει πάνω μου και μέσα μου.
Και όταν έχει περάσει, θα μετατρέψει το εσωτερικό των ματιών για να δείτε την πορεία του.
Όταν ο ψευδοκώδικας έχει πάει εκεί θα TDD.
Μόνο μονάδα-τεστ θα παραμείνει.

(Παρακαλώ μην μου φλόγα γι 'αυτό, είμαι μόνο το μισό σοβαρά: P)

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

ψήφοι
6

Η ομάδα μου αναμιγνύει τις δύο προσεγγίσεις και αυτό είναι ένα φοβερό τρόπο για την ανάπτυξη (τουλάχιστον για εμάς). Χρειαζόμαστε δοκιμές μονάδα, επειδή έχουμε ένα μεγάλο και πολύπλοκο σύστημα λογισμικού. Όμως, η διαδικασία προγραμματισμού ψευδοκώδικα είναι τα χέρια προς τα κάτω η καλύτερη προσέγγιση για το σχεδιασμό του λογισμικού που έχω συναντήσει. Για να τα κάνουμε να λειτουργούν από κοινού:

  • Ξεκινάμε με το γράψιμο τάξεις μας, και συμπληρώστε με πλήρως σχολίασε στελέχη μέθοδο, με εισόδους και εξόδους.
  • Χρησιμοποιούμε ζευγάρι κωδικοποίηση και αξιολόγηση από ομότιμους ως διάλογο για να βελτιώσετε και να επικυρώσουν το σχέδιο, ακόμα μόνο με τα στελέχη μέθοδο.
  • Σε αυτό το σημείο έχουμε τώρα δύο σχεδιασμένο σύστημα μας και να έχουν κάποια ελέγξιμες κωδικό. Γι 'αυτό και να προχωρήσει και να γράψει εξετάσεις μονάδα μας.
  • Εμείς πάμε πίσω και να ξεκινήσει τη συμπλήρωση των μεθόδων με τις παρατηρήσεις για τη λογική που πρέπει να γραφτεί.
  • Γράφουμε τον κωδικό? οι δοκιμές περάσει.

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

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

Απαντήθηκε 02/04/2010 στις 11:04
πηγή χρήστη

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