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

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

Δημοσ.

Ρε παδια τι του λετε του παιδιου. Το παιδι ρωτησε πως θα κανει optimize τον κωδικα του. Το optimize εμπεριεχει το performance optimization, αλλα δεν ταυτιζονται σε καμια περιπτωση. Ειδικοτερα για αρχαεριους καλυτερα να τους δειξουμε πως να γραφουν κωδικα σκεπτομενοι την επεκτασιμοτητα του, παρα να τους μαθουμε ποιο ειναι πιο γρηγορο, το console log η το array push.

Παραβλέπω το γεγονός ότι την λες σε όσους προσπάθησαν να βοηθήσουν, με την δική σου συνεισφορά στο νήμα να είναι "άλλαξε το 21 σε Ν" και θα σχολιάσω μόνο το quote.

 

Το μήνυμα του παπί κάνει αυτό που λες και περισσότερα. Ο OP ζήτησε μια καλύτερη εκδοχή και ο παπί του έδωσε ακριβώς αυτό. Το ό,τι τρέχει πιο γρήγορα είναι μόνο μια πλευρά του κώδικα, κάτι σαν side benefit. Το σημαντικό είναι ότι του έδειξε ένα feature της γλώσσας και ένα τρόπο γραφής που πιστεύω πως ο OP δεν ήξερε.

 

Αν προσέξεις, ο κώδικας του OP ήταν ακριβώς ίδιος με τις εκδοχές σε C που έδωσαν κάποια παιδιά. Αν διαβάσεις εδώ στο φόρουμ, νήματα για C#, python, whatever, θα δεις πολύ συχνά να γίνεται αυτό. Καλώς ή κακώς, βλέπεις πολλούς φοιτητές (ειδικά όσοι έχουν διδαχτεί C πριν πάνε στην τάδε γλώσσα) να γράφουν C κώδικα με το συντατικό της άλλης γλώσσας και να μην εκμεταλλεύονται κάποια features που παρέχει η γλώσσα όπως ο πίνακας που δήλωσε ο παπί και έκανε push strings, αριθμούς.

 

Αυτό που έδωσε ο παπί στον OP είναι πώς να σκέφτεται σωστά και να χρησιμοποιεί τα features της γλώσσας. Το ότι ταυτόχρονα είναι και πιο γρήγορο είναι ευπρόσδεκτο αλλά δεν είναι το σημαντικό στον κώδικα.

 

Και για να μην νομίζει κανείς ότι προσπαθώ να την πω σε κάποιους και να το παίξω έξυπνος, να πω ότι και εγώ το κάνω και μάλιστα συχνά. Για παράδειγμα, πολλές φορές πιάνω τον εαυτό μου να γράφει σε perl ένα μεγάλο και άσχημο for ενώ γνωρίζω ότι μπορώ να κάνω το ίδιο πολύ πιο δόκιμα με την foreach και όταν συνειδητοποιώ τι έγραψα, με βρίζω :)

  • Like 4
Δημοσ.

Κι εκεί που κωλοβαρούσα λίγο...

for (i = 1; i <= 20; i++) console.log(
    ([i % 3 || "Fizz", i % 5 || "Buzz"]).filter(function(){ return !Number.apply(this, arguments);}).join("") || i
)
  • Like 5
Δημοσ.

Μου αρέσει ο comprehensive κώδικας του defacer. Και γενικά, πάντα μου άρεσε ο σύμπυκνος κώδικας, όταν τον έβλεπα ή όταν τον έγραφα.

 

Αλλά από τη μικρή μου εμπειρία, το code readability κερδίζει πάντοτε την φιγούρα. Επιπλέον, για να έχεις γρήγορο κώδικα, συνήθως αρκεί να επιλέγεις τον κατάλληλο για το δεδομένο πρόβλημα αλγόριθμο και να τον υλοποιείς με έναν straight-forward τρόπο.

 

Αυτό είναι το μήνυμα και η προτροπή μου προς τον topic starter.

  • Like 3
Δημοσ.

Βέβαια όπως είπα είναι κυριολεκτικά του κωλοβαρέματος, no chance in hell να το προτείνω αυτό για "καλή λύση". More like ένωσα "randomly" μερικά πράγματα με τρόπο που φαινόταν κάπως "ενδιαφέρων".

  • Like 1

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

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

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

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

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

Σύνδεση

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

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