Tags

  • Clean code - Een must read voor elke developer

    by Frans van Ek | Apr 15, 2015
    Robert C. Martin heeft een boek geschreven over de codeerstylen en best practices als code geschreven worden. 

    Uitgangspunt is leesbaarheid van de code. Niet zozeer dat de compiler de code begrijpt maar de volgende ontwikkelaar die de code ziet. 

    Door het toepassen van een aantal simpele regels merkte ik dat:
    • Er minder bugs in mijn code zaten
    • Veranderingen sneller doorgevoerd konden worden.
    • Software onderhoudbaar werd. Geen spaghetti meer. Maar flexibele code die mee kon gaan met de veranderen wensen.
    • Andere programmeurs eenvoudig verder konden werken met mijn code
    • En geen snelheid ingeboet bij het schrijven van de code, sterker nog de snelheid ging omhoog.
    • geen hoofdpijn meer van het mentaal debuggen. Complete stack in je hoofd houden om het algoritme maar te kunnen begrijpen. Eenvoudige, testbare kleine functies.
    Een klein uittreksel van de uitgangspunten is hier te vinden. Absoluut geen reden om het boek niet te lezen. Integendeel, het is meer een uitnodiging om het boek te gaan lezen.



    172 Comments
  • Javascript more type save

    by Frans van Ek | Mar 01, 2015

    Ok ok, ik ben een beetje bevooroordeeld. Ik wil intellisense als ik codeer. Het voorkomt namelijk dat ik type fouten maak en het gaat gewoon een stuk sneller.

    Er is nog een andere reden dat ik graag interllisense gebruik. Het kan er namelijk ook voor zorgen dat ik minder runtime errors heb en dus minder hoef te debuggen.

    Dit is dan ook de reden dat ik let op de mogelijkheid om runtime errors te voorkomen.Een van de punten die ik zelf niet prettig vindt aan javascript is dat veel string literals worden gebruikt als identificatie van elementen.

    Neem het volgende stuk je code.

     

    function update_div(id) {

            $("#" + id).html(newDate().getTime().toLocaleString()).parent().addClass("selected");

        }

        function clear_div(id) {

            $("#" + id).html("&nbsp").parent().removeClass("selected");

        }

        $(document).on("trigger_selection_main", function () {

            $(document).trigger("on_selection_main");

        }

        );

       

        $(document).on("trigger_selection_both", function () {

            $(document).trigger("on_selection_both");

        }

          );


    Wat opvalt zijn de vele stukjes tekst. Dit zijn niet stukken tekst maar strings met daarin de naam van een event of een Id van een element. Met een typefout in deze zal het betreffende stukje code niet werken.

    Verbetering.

    Door in de javascript een object aan te maken met daarin alle string teksten kunnen we vervolgens met intellisense gaan verwijzen. Een ander voordeel is dat bij het veranderen van de teksten het nu maar op één centrale plek aangepast moet worden.




     

    <script>

        var naming = {
            selectClass: "selected",
            triggerMainSelection: "trigger_selection_main",
            onSelectionMain: "on_selection_main",
            onSelectionBoth: "on_selection_both",
            triggerSelectionBoth: "trigger_selection_both",
        }



        function update_div(id) {

            $("#" + id).html(new Date().getTime().toLocaleString()).parent().addClass(naming.selectClass);

        }
        function clear_div(id) {
            $("#" + id).html("&nbsp").parent().removeClass(naming.selectClass);
        }

        $(document).on(naming.triggerMainSelection, function () {

            $(document).trigger(naming.onSelectionMain);
        }
        );

        $(document).on(naming.triggerSelectionBoth, function () {
            $(document).trigger(naming.onSelectionBoth);
        }
          );

       
    </script>

    De voordelen in mijn ogen zijn:

    -       Intellisense

    -       Minder kans op runtime errors

    -       Centrale locatie van de namen

    -       Code is beter te lezen.

    Nadelen :

    -        Iets meer coderen.

    175 Comments

Sitefinity Web Content Management