Uploaded image for project: 'onedata'
  1. onedata
  2. VFS-673

Poprawa jednolitości, wydajności i jakości kodu

XMLWordPrintable

      • Icon: Improvement Improvement
      • Resolution: Fixed
      • Icon: Major Major
      • None
      • None
      • helpers, oneclient
      • None

        • ujednolicenie initializer lists
          • proponowany styl:
            SomeClass::SomeClass()
                : m_varA{0}
                , m_varB{1}
            {
            }
            
        • pozbycie się maksymalnej ilości bezpośrednich wywołań `new`; główny zamiennik: std::make_shared
        • pozbycie się niepotrzebnych shared_ptr: zamiast niektórych z nich wystarczy nam obiekt na stosie, ewentualnie unique_ptr
        • zamiana define na constexpr, const
          • bonus: przedefiniowanie niektórych funkcji pomocniczych jako constexpr
        • zamiana AutoLock przez std::mutex itd., zamiana ReadWriteLock przez boost::shared_mutex itd.
          • upewnienie się, że funkcje mają odpowiedni typ locka
        • zebranie plików .cc związanych z eventami do jednego katalogu: src/events
        • przeglądnięcie zmiennych zdefiniowanych z modyfikatorem volatile
          • chcemy usunąć volatile lub zastąpić je przez std::atomic
        • zmiana `typedef type alias` na `using alias = type` (c++11 consistency)
        • kolejność deklaracji public, protected, private w klasach
          • proponowne:
            public:
            protected:
            private:
            
        • zastosowanie modyfikatora `override` tam gdzie można - bardzo przydatne dla mocków i proxy w testach
        • std::move w odpowiednich miejscach przy zwracaniu typów przez wartość
        • inne poprawki które wyjdą przy okazji w miarę sił i chęci (np. uniform initialization, range-based for loop, auto, const, emplace, etc.)

        do rozważenia: (soft-)ban na `using namespace`

        • mniej radykalne rozwiązanie:
          using std::make_shared;
          using std::shared_ptr;
          shared_ptr<A> a = make_shared<A>();
          
        • bardziej radykalne rozwiązanie (+1):
          std::shared_ptr<A> a = std::make_shared<A>();
          

                  plgdutka Lukasz Dutka
                  plgkzemek kremek (Inactive)
                  Votes:
                  0 Vote for this issue
                  Watchers:
                  1 Start watching this issue

                    Created:
                    Updated:
                    Resolved: