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: