Σταμάτα να Χρησιμοποιείς If-Else

Поделиться
HTML-код
  • Опубликовано: 29 сен 2024
  • Δήλωσε συμμετοχή στα workshops που κάνουμε: bit.ly/2khPvwa
    H If-Else, πιο συγκεκριμένα η Else, αρχίζει να δημιουργεί προβλήματα παρά να σε βοηθάει.
    Θα δούμε ένα παράδειγμα κώδικα και πόσο πιο ωραίος γίνεται βγάζοντας τελείως την Else.
    =====================
    Είστε ομάδα και χρειάζεστε βοήθεια πάνω σε Agile Methodologies, testing, React, Laravel, Symfony, Drupal; Επικοινωνήστε μαζί μας SocialNerds.gr
    =====================
    Ευχαριστούμε πολύ τη Human Factor για την παραχώρηση του χώρου και του απαραίτητου εξοπλισμού.
    GreekDigitalCommunity.com
    Συμμετέχοντες,
    Thanos Korakas
    Thanos Nokas

Комментарии • 27

  • @SocialNerdsGR
    @SocialNerdsGR  5 лет назад +2

    Δήλωσε συμμετοχή στα workshops που κάνουμε: bit.ly/2khPvwa
    Έχουμε βάλει τον κώδικα εδώ bit.ly/2YMcleF , για όποιον θέλει να συμμετάσχει στο challenge. Έχουμε κάνει και το δικό μας pull request. Θα βάλουμε κάποιον τρίτο να διαλέξει τον καλύτερο κώδικα και να το κάνει merge.
    BTW: Πραγματικά ευχαριστούμε τα άτομα που έχουν συμμετάσχει! Θα βάλουμε credits ανεξαρτήτως ποιον κώδικα θα διαλέξουμε.

  • @tasosgrv
    @tasosgrv 5 лет назад +6

    Μόλις κατάλαβα ότι ο κώδικας μου ήταν ένα χάος. Ευχαριστώ!

    • @SocialNerdsGR
      @SocialNerdsGR  5 лет назад

      Όχι, ο δικός μου κώδικας ήταν ένα χαός :)

    • @cool__name
      @cool__name 5 лет назад

      @@SocialNerdsGR Καλησπερα σας. Εχω γραψει ενα σχολιο σε αυτο εδω το βιντεο σας:
      ruclips.net/video/LkATcyD3vxU/видео.html (Πως ξέρω ότι η εφαρμογή μου δουλεύει σωστά; Testing #36, live)
      Σας κανω tag στο σχολιο μηπως και σας εμφανισει ειδοποιηση στα σιγουρα!

  • @ArisPattakos
    @ArisPattakos 5 лет назад +3

    Ουσιαστικά αποφεύγουμε να έχουμε πολλά επίπεδα nesting στον κώδικα. Αυτό μάλιστα είναι παλιό finding από το development του Unix (back in the day) όπου διαπίστωσαν πως τα πολλαπλά επίπεδα nesting κάνουν πολύ κακό στο maintainability. Επομένως αν δει κανείς ιστορικά το μέσο επίπεδο nesting στο unix φτάνει ένα peak μέχρι που τo διαπιστώνουν αυτό και ξαναπέφτει.
    Στην περίπτωση εδώ με το access που γυρνάει μόνο boolean, θα μπορούσε να γίνει με ένα return $conditionA || $conditionB [...] εάν είχε λιγότερα conditions (Άντε 2-3, με περισσότερα σίγουρα το if το κάνει πιο readable + maintainable).

  • @konstantink.7762
    @konstantink.7762 5 лет назад +3

    Ο λόγος που μπόρεσε να γίνει τέτοιο επίπεδο refactoring ώστε το else να φαίνεται "άχρηστο" έχει πραγματικά να κάνει με τη φύση του κώδικα. Στη συγκεκριμένη περίπτωση όντως το else έκανε περισσότερο κακό απ' ότι καλό γιατί δεν υπήρχε άμεσος λόγος ύπαρξης. Το σημαντικό σημείο του κώδικά μας ήταν η μία ή παραπάνω συνθήκες του ενός if. Οπότε και μπορούσαμε να αλλάξουμε τη δομή κατά τον τρόπο τον οποίο έγινε.
    Αυτού του είδους ο refactored κώδικας βολεύει στο back-end development επειδή το development βασίζεται πάρα πολύ σε ένα data μοντέλο.
    Δεν πρέπει όμως να λέμε πως η else δεν πρέπει να χρησιμοποιείται γενικά. Απλώς δεν πρέπει να χρησιμοποιείται με αυτόν τον τρόπο που χρησιμοποιείται στον αρχικό κώδικα.
    Ένα else statement θα πρέπει να χρησιμοποιείται όταν έχει ξεκάθαρο λόγο ύπαρξης. Προφανώς όταν θέλουμε να κάνουμε ένα απλό έλεγχο του τύπου "αν ισχύει αυτό τότε επέστρεψε εκείνο", τότε το else κάνει τον κώδικα λιγότερο ευανάγνωστο. Σε πιο περίπλοκα if blocks όμως ένα else θα πρέπει να χρησιμοποιείται όταν όχι απλά θέλουμε να γράψουμε κώδικα για όταν το if μας δεν ικανοποιείται αλλά όταν είναι ζωτικής σημασίας για τον κώδικα τον οποίον γράφουμε το if μας να μην έχει ικανοποιηθεί.
    Εν τέλει, στη συγκεκριμένη περίπτωση το πρόβλημά μας δεν είναι τόσο το else όσο το ευρύτερο nesting του κώδικα όπως αναφέρει ο φίλος στο άλλο comment.

    • @SocialNerdsGR
      @SocialNerdsGR  5 лет назад

      Απλά έχουμε δει πολλές φορές να χρησιμοποιείται χωρίς ουσιαστικό λόγο και για αυτό προέκυψε αυτό το video. Φυσικά, αν έχει νόημα το else, ας χρησιμοποιηθεί. Και εμείς το χρησιμοποιούμε σε σημεία και πολλά μεγάλα open source projects το χρησιμοποιούν.

  • @klipitkas
    @klipitkas 5 лет назад +10

    Quality content για Ελλάδα, επιτέλους! Μπράβο συνεχίστε έτσι!

  • @glgeorgiou
    @glgeorgiou 5 лет назад

    Μπράβο για τα ενδιαφέροντα βίντεο που ανεβάζεις. Μια ερώτηση σχετικά με το IDE. Βλέπω ότι χρησιμοποιείς το visual studio code. Πιστεύεις ότι είναι αρκετό για μεγάλα έργα σε σχέση με άλλα IDE's όπως το PhpStorm;

    • @SocialNerdsGR
      @SocialNerdsGR  5 лет назад +1

      Σε ευχαριστούμε πάρα πολύ!
      Δυστυχώς, όχι. Το PhpStorm χρησιμοποιώ κανονικά. Απλά στις παρουσιάσεις, βάζω το VSCode επειδή έχει πιο καθαρό interface. Αλλά δε βολεύομαι πάρα πολύ (νομίζω ότι φαίνεται στο video).

  • @ysti6552
    @ysti6552 4 года назад

    Μια ερώτηση: Πόσο χρόνος πόσα οκτάωρα μαθήματα Χρειάζονται περίπου για να μάθει κάποιος μια γλώσσα προγραμματισμού όπως η Python .?

    • @Παναγιώτηςωστόπουλος-δ6θ
      @Παναγιώτηςωστόπουλος-δ6θ 2 года назад +1

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

  • @fila8727
    @fila8727 5 лет назад +5

    Παιδιά μπράβο για το κανάλι και την εκπομπή, στην Ελλάδα το content στον τομέα δεν είναι πολύ, επιτελείτε έργο :)
    Η τέχνη του refactoring δεν είναι εύκολη αλλά έχει μεγάλα οφέλη.
    Επίσης συμφωνώ πως γενικά το if-else είναι λίγο προβληματικό, προσωπικά δουλεύω αρκετά με C# και Resharper και δεν του πολυαρέσει :Ρ

    • @SocialNerdsGR
      @SocialNerdsGR  5 лет назад

      Σε ευχαριστούμε Φίλιππε!

  • @glenux17
    @glenux17 4 года назад +1

    Interesting example of guard-style[1] programming.
    I wish you would've talked about the notion of cyclomatic complexity[2] and its relation to the difficulty of testing (and therefore to the number of probable bugs).
    In this respect, the first half of the video ony simplifies the reading for the developers, but not the cyclomatic complexity. Only the refactoring done in the second half of the video increases the quality of the code.
    I would have liked you to also talk about tools like PHPDepend, PHPMD, phploc or VSCode plugins that highlight areas of code that need to be improved or rewritten. Maybe in a future video? :-)
    [1] en.wikipedia.org/wiki/Guard_(computer_science)
    [2] en.wikipedia.org/wiki/Cyclomatic_complexity

    • @SocialNerdsGR
      @SocialNerdsGR  4 года назад +1

      This kind of comment was exactly what I had in mind when I created this video. Thanks for the suggestions!

  • @gioantonis
    @gioantonis 5 лет назад +1

    Ευχαριστούμε για το tip.

  • @konstantinosnikoloutsos3402
    @konstantinosnikoloutsos3402 4 года назад

    Θα γλύτωνες χρόνο αν χρησιμοποιούσες refactor methods.
    Το Intellij ειναι μανουλα σε αυτα!

    • @SocialNerdsGR
      @SocialNerdsGR  4 года назад +1

      Ναι, σωστά. Κανονικά PhpStorm (JetBrains) χρησιμοποιώ, απλά συνήθως στα video βάζω VSCode γιατί είναι πιο ελαφρύ.

  • @Galiatsjr
    @Galiatsjr 5 лет назад

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

    • @SocialNerdsGR
      @SocialNerdsGR  5 лет назад

      Σε ευχαριστούμε Jason!
      Ένας από τους λόγους που κάνουμε το live είναι και αυτό. Για να μπορεί όποιος θέλει να κάνει ερώτηση για αυτό που βλέπει. Πάντως αν έχεις κάποια ερώτηση για αυτό το video, γράψε μας εδώ και θα το δούμε.

  • @tronfm
    @tronfm 5 лет назад

    Γιατί όχι Ctrl+D για επιλογή του ίδιου editor_text_selection παρακάτω;

    • @SocialNerdsGR
      @SocialNerdsGR  5 лет назад

      Αν κατάλαβα καλά τις λες, νομίζω ότι το VSCode δεν το κάνει αυτό. Το PhpStorm το κάνει.

    • @tronfm
      @tronfm 5 лет назад

      @@SocialNerdsGR το κάνει. (τουλάχιστον στον υπολογιστή μου δουλεύει 😀 )

    • @SocialNerdsGR
      @SocialNerdsGR  5 лет назад

      Χμ...πρέπει να το κοιτάξω λίγο παραπάνω τότε. Αυτό που κάνει στο PhpStorm, είναι ότι αν είσαι σε μία γραμμή και πατήσεις Cmd+d (macOS), σου κάνει copy-paste αυτή τη γραμμή από κάτω.
      Δεν είμαι πολύ εξοικειωμένος με VSCode. Θα το ψάξω, thanks!

    • @tronfm
      @tronfm 5 лет назад +1

      @@SocialNerdsGR ctrl+shift+D στο vscode και sublime