Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Tests γράφεις;

 

Εννοείς να γράφω κλάσεις για unit testing ? Όχι δεν έχω γράψει...

Κάθε τι που φτιάχνω το τεστάρω σε game mode / run time παρακολουθώντας την in-game συμπεριφορά, και κοιτώντας το Log της Debug Console, καθώς και κάτι πίνακες με τιμές μεταβλητών.

Unit testing

Dependency Injection

Inversion of Control

Interfaces

Abstract Classes

 

Για αρχή.

 

Μετά, με την εμπειρία, θα μάθεις πιό advanced τεχνικές και θα καταλαβαίνεις μόνος σου τι πρόβλημα μπορεί να προκύψει αργότερα.

Επίσης, κάνε μικρές μεθόδους, μη γράφεις μία ρουτίνα με 1000 γραμμές, μόνο προβλήματα θα σου προκαλεί.

 

https://msdn.microsoft.com/en-us/library/aa260844(v=vs.60).aspx

 

Μου έδωσες αρκετές έννοιες να ψάξω να μάθω. Ευχαριστώ.

Δημοσ.

Το σύμπτωμα που αναφέρεις (κάνω κάτι, σπάω κάτι άλλο) είναι τυπική περίπτωση έλλειψης tests. Με τα tests τουλάχιστον μπορείς να ξέρεις άμεσα πότε κάτι που έκανες σπάει τον κώδικά σου (με την προϋπόθεση ότι έχεις σχετικά καλό code coverage). To να τεστάρεις στο runtime είναι error-prone και time-consuming.
 

  • Like 2
Δημοσ.

Η ποιότητα του κώδικα πώς μετριέται ακριβώς? όσο πιό απλός είναι και όσο πιό δύσκολα προβλήματα λύνει είναι και πιό "έξυπνος" αρα πιό ποιοτικός? ή όσο πιο λίγη μνήμη χρησιμοποιείς τόσο πιό ποιοτικός είναι? 

 

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

Δημοσ.

Πολύ καλός ο θείος Bob. Αποφάσισα να αρχίσω να εφαρμόζω τις αρχές του SOLID από δω και πέρα.

Και μόνο με λίγα που έμαθα σε τόσο λίγο χρόνο έφταναν για να περάσω τις προηγούμενες 3 ώρες κάνοντας ένα refactor, για να εφαρμόσω όσα έμαθα και να 'καθαρίσω' το κωδικά μου κατά ένα ποσοστό.

 

Για την ιστορία κάνω κάτι σε στυλ RPG.

 

Διαχώρισα από μια κλάση που είχα τα χαρακτηριστικά του παίκτη με attributes του τύπου (Strength, Constitution κτλπ) από τους αλγόριθμους που τα παίρνουν και βάση αυτών υπολογίζουν πιο χαμηλού επιπέδου / layer πληροφορίες [πχ attackFactor = 0.6f + (strength * 0.44f)] σε δύο διαφορετικές, μια CharacterSheet και μια GameRules, στις μεθόδους που είχα πολλές σειρές (max μέτρησα 47 σε μια) τις έσπασα σε μικρότερες μεθόδους, έφτιαξα καινούριες για να αποφεύγω το duplicate code... 

 

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

 

Ευχαριστώ όλους για τις συμβουλές σας!

  • Like 2
Δημοσ.

Θα βελτιωθεί άπειρα.

 

Έχε μόνο υπόψη σου πως και αυτά που κάνεις τώρα δεν είναι το holy grail που δεν υπάρχει τίποτα άλλο πέρα από αυτό, δεν υπάρχει σκονάκι για να κάνεις το σωστό, πολλά από αυτά που νομίζεις ότι καταλαβαίνεις και σε οδηγούν σε σωστά πράγματα δεν τα καταλαβαίνεις πιθανότατα (open-closed principle κλασικό παράδειγμα). Όλα αυτά έρχονται με την εμπειρία.

 

Αλλά το σημαντικότερο είναι πως η εμπειρία έρχεται με την ενασχόληση και την πάλη με αληθινά προβλήματα. Οπότε συνέχισε αυτό που κάνεις, και μη σταματάς να αμφισβητείς οτιδήποτε έχεις συγκεκριμένο λόγο να πιστεύεις ότι δεν είναι σωστό. Νομίζεις πως θα έπρεπε κάτι να γίνει αλλιώς για καλύτερα; Δοκίμασε να το κάνεις αλλιώς και δες πού θα σε οδηγήσει. Την σήμερον με το git (εννοείται χρησιμοποιείς έτσι?) είναι πολύ πολύ εύκολο.

 

Καλή συνέχεια!

  • Like 1
Δημοσ.

Η λύση στο πρόβλημά σου, λέγεται Design Patterns Link.png Site: κλικ

Offtopic, αλλά μιας που πόσταρες αυτό το βιβλίο, καμία γρήγορη σύγκριση με το GoF και γιατί προτείνεις αυτό;

Δημοσ.

Offtopic, αλλά μιας που πόσταρες αυτό το βιβλίο, καμία γρήγορη σύγκριση με το GoF και γιατί προτείνεις αυτό;

 

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

Δημοσ.

Θα βελτιωθεί άπειρα.

 

Έχε μόνο υπόψη σου πως και αυτά που κάνεις τώρα δεν είναι το holy grail που δεν υπάρχει τίποτα άλλο πέρα από αυτό, δεν υπάρχει σκονάκι για να κάνεις το σωστό, πολλά από αυτά που νομίζεις ότι καταλαβαίνεις και σε οδηγούν σε σωστά πράγματα δεν τα καταλαβαίνεις πιθανότατα (open-closed principle κλασικό παράδειγμα). Όλα αυτά έρχονται με την εμπειρία.

 

Αλλά το σημαντικότερο είναι πως η εμπειρία έρχεται με την ενασχόληση και την πάλη με αληθινά προβλήματα. Οπότε συνέχισε αυτό που κάνεις, και μη σταματάς να αμφισβητείς οτιδήποτε έχεις συγκεκριμένο λόγο να πιστεύεις ότι δεν είναι σωστό. Νομίζεις πως θα έπρεπε κάτι να γίνει αλλιώς για καλύτερα; Δοκίμασε να το κάνεις αλλιώς και δες πού θα σε οδηγήσει. Την σήμερον με το git (εννοείται χρησιμοποιείς έτσι?) είναι πολύ πολύ εύκολο.

 

Καλή συνέχεια!

Ευχαριστώ! :)

Ναι το χρησιμοποιώ. Έχω εγκαταστήσει το σχετικό integration plugin στο VS και κάνω Commit από το γραφικό περιβάλλον του VS. 

 

 

Η λύση στο πρόβλημά σου, λέγεται Design Patterns Link.png Site: κλικ

Ενδιαφέρον βιβλίο. Το έχω στο μάτι εδώ και κάποιο καιρό αλλά δε το έχω πιάσει ακόμα. Αφού τελειώσω το βιβλίο του Bob, θα είναι το επόμενο που θα πιάσω.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...