Sinnlose Textersetzungen für Übersichtlichkeit?



  • Würdet ihr mir dafür die Finger brechen?:

    (Im Beispiel habe ich einfach zur Demonstration ein paar Sachen deklariert)

    // somewhere
    #define MEMBERS private
    #define CONSTRUCTORS public
    #define OPERATORS public
    #define TYPEDEFS public
    
    // somewhere (else)
    template <typename T>
    class A {
    CONSTRUCTORS:
        A();
        A(A const&);
    
    OPERATORS:
        A& operator=(A const& cpy);
    
    MEMBERS:
        int keineAhnung_;
        std::vector <T> data_;
    
    TYPEDEFS:
        typedef T value_type;
    
    public:
        ~A();
    
    private:
    };
    

    Bei mir werden Makros hübsch eingefärbt und mir kam grade die Idee um die Übersichtlichkeit etwas zu verbessern.



  • Sieht zwar hübsch aus, aber jedesmal einen public neu zu setzen muss nicht sein. Zudem müsstest du jedesmal die Makros definieren bzw. einbinden, um deine Klassen so schreiben zu können, was schlechtes Design ist.



  • klingt für mich marginal.



  • Tim06TR schrieb:

    Würdet ihr mir dafür die Finger brechen?:

    Ja.



  • Bashar schrieb:

    Tim06TR schrieb:

    Würdet ihr mir dafür die Finger brechen?:

    Ja.

    👍
    <sarcasm>
    Es ist mMn. Platzverschwendung und ein schlechter Ersatz für Kommentare.

    template <typename T> 
    class A { 
    public:
        // typedef auf den Template-Parameter:
        using value_type = T;
    
        // Konstruktor/Destruktor:
        A(); 
        ~A();
    
        // Kopier-Semantik:
        A(A const&); 
        A& operator=(A const& cpy); 
    
    private:
        int keineAhnung_; // Kommentar
        std::vector <T> data_; // Datenfeld
    };
    


  • Man weiß ja als Leser auch nicht, was die Ersetzungen sind, dann schaut man immer nach und wundert sich, wieso das jetzt ersetzt wird. Außerdem gehen Deine Finger eh kaputt, wenn Du bei jeder Klassendeklaration ständig Shift gedrückt hältst, da ist das Brechen nachher so einfach, dass man es eh macht.



  • So kann das doch kein Mensch lesen! Da fehlen Kommentare! Dokumentation ist voll wichtig!11

    // Template (Vorlage)
    template
    // Template-Parameter
    <typename T> 
    // Klasse
    class
    // erster Buchstabe im Alphabet
    A
    // geschweifte Klammer auf
    { 
    // öffentlich
    public:
        // typedef auf den Template-Parameter:
        using value_type=T;
    
        // Konstruktor
        A(); 
        // Dekonstruktor
        ~A();
    
        // Kopier-Semantik:
        A(A const&); 
        A&operator=(A const&cpy); 
    
    // geheim
    private:
        // int
        int                      keineAhnung_; // Kommentar
        // vector
        std::vector <T>          data_; // Datenfeld
    // geschweifte Klammer zu
    }
    // Semikolon nicht vergessen
    ;
    

    Gute Kommentare wiederholen was gemacht wird. Oder wie war das noch?



  • *Destruktor :p



  • Wieso sollten denn überhaupt Konstruktoren, Operatoren und Typedefs public sein müssen? Die Members alle private zu machen sehe ich ja noch ein, aber sonst ist das Käse...

    Übersichtlichkeit erreicht man durch sinnvolle Kommentare und vernünftige Formatierung. Und wenn man nicht auf den ersten Blick erkennt, ob in einem Abschnitt der Klasse nun Operatoren oder Typedefs stehen, hat man eh andere Probleme. 😉



  • Sone schrieb:

    Bashar schrieb:

    Tim06TR schrieb:

    Würdet ihr mir dafür die Finger brechen?:

    Ja.

    👍

    Ebenfalls ja.



  • 😃

    ok dann bleibe ich bei den guten alten Kommentaren hier 😃


Log in to reply