Anzeige
Anzeige
Tool-Tipp
Artikel merken

Destiny: Prettier für die File-Struktur eurer Codebase

Destiny ist ein npm-Package, das  endlich Ordnung in eure Dateistrukturen bringt. Das Tool kommt mit einem ähnlichen Wow-Effekt wie Prettier, eine Extension, die euren Code für euch formatiert. Auf Prettier will mittlerweile kaum ein Web-Entwickler mehr verzichten, Destiny könnte sich als ähnlich nützlich herausstellen.

2 Min. Lesezeit
Anzeige
Anzeige

(Screenshot: t3n)

Über die richtige oder die sinnvollste Anordnung von Dateien innerhalb einer Codebase kann man sich schon mal den Kopf zerbrechen. Und selbst wenn sich für die eigenen Soloprojekte und für jene, an denen ihr im Team arbeitet, eine Ordnung etabliert hat – nur allzu schnell speichert doch wieder irgendwer – ihr selbst? – nach dem Fixen eines kleinen Bugs eine Datei am falschen Ort und die File-Struktur wird irgendwann chaotisch. Es soll Entwickler und Entwicklerinnen geben, die so akribisch arbeiten, dass ihnen das niemals passieren würde. Dann gibt es aber auch noch alle anderen. Für genau diese Spezies unter euch hat Ben Awad ein Tool gebaut, das eure Dateien innerhalb eines Projekts für euch sortiert.

Dateistruktur nach dem Fractal-Tree-Konzept

Anzeige
Anzeige

Destiny erfasst alle in einem Ordner befindlichen Dateien und erstellt basierend auf gegenseitiger Importe eurer JavaScript- oder TypeScript-Dateien innerhalb des Projekts einen Beispiel-Digraphen. Strukturiert wird euer Projekt nach einem sogenannten Fractal-Tree-Konzept. Auf dessen Basis erstellt das Tool eine Repräsentation des Graphen und bewegt alle Dateien in diese Struktur.

Auch cool: Destiny repariert eure Importe, löscht alle leeren Ordner und loggt alle ungenutzten Dateien – gemeint sind Dateien, die von keiner anderen Datei importiert werden und auch selbst nichts importieren. Dabei heraus kommt eine vereinheitlichte Dateistruktur. Ob ihr mit der happy seid oder nach wie vor eure eigene Systematik bevorzugt, müsst ihr natürlich für euch entscheiden. Dass das Tool wie im Bild etwa die helper.js in einem shared-Folder speichert, obwohl die Datei nur von der header.js genutzt zu werden scheint, mag zum Beispiel nicht unbedingt sinnvoll erscheinen, ist aber dem Fractal-Graph-Algorithmus geschuldet. Auch wenn an einzelnen Stellen Strukturen dabei herauskommen können, bei denen ihr euch vielleicht berechtigterweise fragt, was das soll, ist der Vorteil am Ende eine vereinheitlichte Dateistruktur, die sich konsistent nach diesem Prinzip weiter verschachtelt, wo es nötig ist. Und alles, ohne dass ihr selber Ordnung schaffen müsstet.

Anzeige
Anzeige

So installiert ihr das Tool

Auf der Wiki-Seite des Tools auf GitHub findet ihr eine detaillierte Installationsanleitung – sowohl für alle, die Destiny einfach mal austesten wollen, als auch für die, die es bereits in ihren Projekten nutzen wollen. Aktuell ist Destiny definitiv ein Projekt „in Progress“ und enthält laut dem Autor mit Sicherheit noch den einen oder anderen Bug; verfügbar ist es im Moment erst in Version 0.6.0. Außerdem läuft es für den Moment ausschließlich in JavaScript- und TypeScript-Codebases.

Anzeige
Anzeige

„Vielleicht ist dieses Tool nutzlos“

Der Autor selbst ist sich nicht sicher, ob sein Tool überhaupt so nützlich ist, dieser Tweet lässt allerdings auf Gegenteiliges schließen. Das Projekt steckt noch in den Kinderschuhen. Wenn ihr es ausprobieren wollt, denkt unbedingt daran, zu committen, bevor ihr es gegen eure Codebase ausführt. Euch gefällt Destiny und ihr habt Ideen, die ihr gern einzubringen würdet? Pull-Requests sind gerne gesehen.

Passend dazu: JavaScript: GitHub übernimmt Node.js-Paketmanager NPM

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige