Ich lerne Schienen.
Irgendwann bemerkte ich, dass scheinbar zufällige Ordner und Dateien im Verzeichnis meiner Rails-App angezeigt werden. In einigen Ordnern befindet sich ein concerns
Ordner mit einer .keep
Datei darin. Die .keep
Datei scheint leer zu sein. In anderen Ordnern gibt es keinen concerns
Ordner, aber eine leere .keep
Datei ist vorhanden.
Weiß jemand, was mit diesen Dateien / Ordnern zu tun hat?
git
version-control
Alex Vallejo
quelle
quelle
.gitignore
? Ich möchte lieber keine leeren Dateien festschreiben..keep-Dateien sind besonders hilfreich, wenn Sie leere Verzeichnisse mit git festschreiben möchten.
Lustige Tatsache, der Name
.keep
oder.gitkeep
ist bedeutungslos. Sie können die Datei.foo
für denselben Effekt aufrufen , es handelt sich lediglich um eine lesbare Konvention.Die
.keep
Dateien dienen auch dazu, den Transport von einem VCS zum anderen zu erleichtern und das Löschen wichtiger Verzeichnisse zu verhindern, wenn Sie die Zusammenführung aufheben, wodurch diese Verzeichnisse leer werden.Stellen Sie sich beispielsweise ein Skript vor, das versucht,
cd dir
in ein Verzeichnis zu gelangen, das von git nicht verfolgt wird.Es ist ein Software-Design-Paradigma, das darauf abzielt, die Anzahl der Entscheidungen, die Entwickler treffen müssen, zu verringern, um Einfachheit zu erlangen, aber nicht unbedingt an Flexibilität zu verlieren.
quelle
Bedenken sind ein einfaches, aber wirkungsvolles Konzept. Es ist für die Wiederverwendbarkeit von Code vorhanden. Grundsätzlich besteht die Idee darin, allgemeine und / oder kontextspezifische Codestücke zu extrahieren, um die Modelle zu bereinigen und zu vermeiden, dass sie zu fett und unhandlich werden.
Ich möchte ausdrücklich angeben, dass Sie Serviceobjekte verwenden sollten, um Funktionen bereitzustellen, die nicht das spezifische Objekt betreffen. ZB hat eine Organisation viele Benutzer. Jetzt muss der Administrator der Organisation eine CSV aller Benutzer für diese Organisation exportieren. Dieser Code kann in das Organisationsmodell eingefügt werden. Da er jedoch nicht in der Verantwortung des Organisationsobjekts liegt, sollte dieser Code in eine Klasse eingefügt werden, in der Sie nur das Organisationsobjekt übergeben und die CSV aller Benutzer zurückgeben.
Wann immer Sie eine CSV-Generierung benötigen, können Sie diese Logik in die obige Klasse einfügen. Dieser Ansatz hält das Objekt (in diesem Fall das Organisationsmodell) von dem Code frei, für den es nicht verantwortlich sein sollte. Ein allgemeines Prinzip, dem ich folge, lautet: Wenn der Code das Selbstobjekt ändert, verschieben Sie den Code in ein Serviceobjekt.
Hinweis: Ihre Frage betraf Bedenken, aber ich dachte darüber nach, einige zusätzliche Dinge hinzuzufügen, die ich befolge, um die Codebasis sauber und verwaltbar zu halten, da dies möglicherweise anderen Programmierern helfen könnte. Dieser obige Ansatz ist umstritten.
quelle