Учусь рельсам.
Где-то по ходу дела я заметил, что в каталоге моего приложения rails появляются, казалось бы, случайные папки и файлы. В некоторых папках есть concerns
папка с .keep
файлом внутри. .keep
Файл выглядит пустым. В других папках папки нет, concerns
но есть пустой .keep
файл.
Кто-нибудь знает, в чем дело с этими файлами / папками?
git
version-control
Алекс Вальехо
источник
источник
.gitignore
? Я бы предпочел не фиксировать пустые файлы.Файлы .keep особенно полезны, когда вы хотите зафиксировать пустые каталоги с помощью git.
Интересный факт, название
.keep
или.gitkeep
бессмысленно. вы можете вызвать файл.foo
для того же эффекта, это просто читаемое соглашение.Эти
.keep
файлы также там волоком помощи от одного VCS к другому, предотвращая удаление важных каталогов , когда вы отмените слияние то , что бы вызвать эти каталоги , чтобы быть пустыми.Например, рассмотрим сценарий, который пытается
cd dir
войти в каталог, который не отслеживается git.Это парадигма разработки программного обеспечения, которая направлена на уменьшение количества решений, которые необходимо принять разработчикам, с целью достижения простоты, но не обязательно потери гибкости.
источник
Обеспокоенность - это простая, но действенная концепция. Он существует для повторного использования кода. По сути, идея состоит в том, чтобы извлечь общие и / или контекстно-зависимые фрагменты кода, чтобы очистить модели и избежать их чрезмерного увеличения и неуправляемости.
Я хотел бы прямо указать, что вы должны использовать служебные объекты для обеспечения функциональности, не связанной с конкретным объектом. Например, в организации много пользователей. Теперь администратору организации необходимо экспортировать CSV всех пользователей этой организации. Этот код может быть помещен в модель организации, но, поскольку он не является обязанностью объекта организации, этот код следует поместить в класс, где вы просто передаете объект организации, и он возвращает CSV всех пользователей.
Всякий раз, когда вам нужно создать CSV, вы можете поместить эту логику в вышеуказанный класс. Такой подход сохраняет объект (в данном случае модель организации) чистым от кода, который не должен входить в его обязанности. Общий принцип, которому я следую: если код изменяет объект self, переместите код в объект службы.
Примечание. Ваш вопрос касался проблем, но я подумал о добавлении некоторых дополнительных вещей, за которыми я следую, чтобы сохранить базу кода в чистоте и управляемости, поскольку это может помочь другим программистам. Этот подход спорен.
источник