Two Fer

Two Fer

Εύκολο

Εισαγωγή

Σε κάποιες αγγλικές προφορές, όταν λες γρήγορα "two for", ακούγεται σαν "two fer". Το two-for-one είναι ένας τρόπος να πεις ότι αν αγοράσεις ένα, παίρνεις κι ένα δωρεάν. Έτσι, η φράση "two-fer" συχνά υπονοεί μια προσφορά δύο για ένα.

Φαντάσου ένα αρτοποιείο που έχει μια γιορτινή προσφορά, όπου μπορείς να αγοράσεις δύο μπισκότα στην τιμή του ενός ("two-fer one!"). Δέχεσαι την προσφορά και (πολύ γενναιόδωρα) αποφασίζεις να δώσεις το επιπλέον μπισκότο σε κάποιον άλλο στην ουρά.

Οδηγίες

Η αποστολή σου είναι να καθορίσεις τι θα πεις καθώς χαρίζεις το επιπλέον μπισκότο.

Αν ξέρεις το όνομα του ατόμου (π.χ. αν το όνομά του είναι Do-yun), τότε θα πεις:

One for Do-yun, one for me.

Αν δεν ξέρεις το όνομα του ατόμου, θα πεις you αντί γι' αυτό.

One for you, one for me.

Ορίστε μερικά παραδείγματα:

Όνομα Διάλογος
Alice One for Alice, one for me.
Bohdan One for Bohdan, one for me.
One for you, one for me.
Zaphod One for Zaphod, one for me.

Υλοποίηση

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

Οι περισσότερες ασκήσεις Java περιλαμβάνουν πολλαπλές περιπτώσεις δοκιμών. Αυτές οι περιπτώσεις είναι δομημένες ώστε να υποστηρίζουν μια χρήσιμη διαδικασία γνωστή ως ανάπτυξη καθοδηγούμενη από δοκιμές (TDD). Το TDD περιλαμβάνει την επανάληψη ενός δομημένου κύκλου που βοηθά τους προγραμματιστές να χτίζουν σύνθετη λειτουργικότητα κομμάτι-κομμάτι αντί να την χτίζουν όλη μονομιάς. Ο κύκλος αυτός μπορεί να περιγραφεί ως εξής:

  1. Πρόσθεσε μια δοκιμή που περιγράφει ένα κομμάτι της επιθυμητής λειτουργικότητας που λείπει αυτή τη στιγμή από τον κώδικά σου.
  2. Τρέξε τις δοκιμές για να επιβεβαιώσεις ότι αυτή η νέα δοκιμή αποτυγχάνει.
  3. Ενημέρωσε τον υπάρχοντα κώδικά σου μέχρι να ισχύουν τα εξής:
    • Όλες οι παλιές δοκιμές συνεχίζουν να περνούν·
    • Και η νέα δοκιμή περνάει.
  4. Καθάρισε τον κώδικά σου, φροντίζοντας να συνεχίζουν να περνούν όλες οι δοκιμές. Αυτό συνήθως περιλαμβάνει μετονομασία μεταβλητών, αφαίρεση διπλότυπων τμημάτων λογικής, αφαίρεση υπολειπόμενων καταγραφών κ.λπ.
  5. Γύρνα στο βήμα 1 μέχρι να υλοποιήσεις όλη την επιθυμητή λειτουργικότητα!

Τα αρχεία δοκιμών σε αυτό το track περιέχουν όλες τις δοκιμές που πρέπει να περάσει η λύση σου για να θεωρηθεί έγκυρη. Αυτό δεν φαίνεται άμεσα συμβατό με τον κύκλο που περιγράφηκε παραπάνω, στον οποίο οι δοκιμές γράφονται μία προς μία. Ωστόσο, το εργαλείο που χρησιμοποιούμε για να γράφουμε τις δοκιμές μας, το JUnit, παρέχει έναν @Disabled σχολιασμό που μπορεί να χρησιμοποιηθεί για να παραλείψεις προσωρινά μια δοκιμή που έχει ήδη γραφτεί. Χρησιμοποιώντας αυτόν τον σχολιασμό, διασφαλίζουμε ότι τα αρχεία δοκιμών που σου παραδίδουμε συμμορφώνονται με τους παρακάτω κανόνες:

  • Η πρώτη δοκιμή σε οποιοδήποτε αρχείο δοκιμών δεν παραλείπεται από προεπιλογή.
  • Όλες οι δοκιμές εκτός από την πρώτη σε οποιοδήποτε αρχείο δοκιμών παραλείπονται από προεπιλογή.

Αυτό σου επιτρέπει να προσομοιώσεις τον κύκλο TDD ακολουθώντας αυτά τα ελαφρώς τροποποιημένα βήματα:

  1. Τρέξε τις δοκιμές για να επιβεβαιώσεις ότι το πολύ μία δοκιμή αποτυγχάνει αυτή τη στιγμή.
  2. Ενημέρωσε τον υπάρχοντα κώδικά σου μέχρι να περάσουν όλες οι μη παραλειπόμενες δοκιμές.
  3. Καθάρισε τον κώδικά σου, φροντίζοντας να συνεχίζουν να περνούν όλες οι μη παραλειπόμενες δοκιμές.
  4. Αφαίρεσε τον πιο πάνω σχολιασμό @Disabled στο αρχείο δοκιμών.
  5. Γύρνα στο βήμα 1 μέχρι να μην παραλείπεται καμία δοκιμή και να περνούν όλες οι δοκιμές!

Πηγή

Εξερεύνησε την πηγή αυτής της άσκησης.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Java Exercism

Έτοιμος να ξεκινήσεις την άσκηση Two Fer;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Java με 26 έννοιες158 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.