Uczę się szyn.
Gdzieś po drodze zauważyłem, że pozornie przypadkowe foldery i pliki pojawiają się w katalogu mojej aplikacji railsowej. W niektórych folderach znajduje się concerns
folder zawierający .keep
plik. .keep
Plik wydaje się być pusty. W innych folderach nie ma concerns
folderu, ale jest pusty .keep
plik.
Czy ktoś wie, o co chodzi z tymi plikami / folderami?
git
version-control
Alex Vallejo
źródło
źródło
.gitignore
? Wolałbym nie zatwierdzać pustych plików.Pliki .keep są szczególnie przydatne, gdy chcesz zatwierdzić puste katalogi za pomocą git.
Zabawny fakt, nazwa
.keep
lub.gitkeep
jest bez znaczenia. możesz wywołać plik.foo
dla tego samego efektu, jest to tylko czytelna konwencja.Te
.keep
pliki są również tam Portage pomocy od jednego do drugiego VCS, uniemożliwiając usunięcie ważnych katalogów, kiedy un seryjnej coś, co spowodowałoby katalogi te mają być puste.Na przykład rozważmy skrypt, który próbuje
cd dir
wejść do katalogu, który nie jest śledzony przez git.Jest to paradygmat projektowania oprogramowania, który ma na celu zmniejszenie liczby decyzji, które muszą podjąć programiści, zyskując prostotę, ale niekoniecznie tracąc elastyczność.
źródło
Obawy to prosta, ale potężna koncepcja. Istnieje w celu ponownego wykorzystania kodu. Zasadniczo chodzi o wyodrębnienie wspólnych i / lub specyficznych dla kontekstu fragmentów kodu w celu oczyszczenia modeli i uniknięcia ich zbytniego i niemożliwego do zarządzania.
Chciałbym wyraźnie określić, że należy używać obiektów usług w celu zapewnienia funkcjonalności, która nie dotyczy konkretnego obiektu. Np. Organizacja ma wielu użytkowników. Teraz administrator organizacji musi wyeksportować plik CSV wszystkich użytkowników tej organizacji. Ten kod można umieścić w modelu organizacyjnym, ale ponieważ obiekt organizacyjny nie jest za to odpowiedzialny, kod ten należy umieścić w klasie, w której wystarczy przekazać obiekt organizacji i zwrócić CSV wszystkich użytkowników.
Ilekroć potrzebujesz generowania CSV, możesz umieścić tę logikę w powyższej klasie. Takie podejście utrzymuje obiekt (w tym przypadku model organizacji) przed kodem, za który nie powinien odpowiadać. Ogólna zasada, którą się kieruję, brzmi: jeśli kod modyfikuje obiekt self, przenieś kod do obiektu usługi.
Uwaga: Twoje pytanie dotyczyło obaw, ale pomyślałem o dodaniu kilku dodatkowych rzeczy, które śledzę, aby kod był czysty i łatwy w zarządzaniu, ponieważ może to pomóc innym programistom. To powyższe podejście jest dyskusyjne.
źródło