Zitat von derwunner
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
headless ja oder nein?
Einklappen
Neue Werbung 2019
Einklappen
X
-
[SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]
-
Ich glaube, es gibt hier kein richtig und kein falsch.
Headless heißt ja nur, dass etwas keine GUI hat (bzw. dass man die Präsentation von der Businesslogik entkoppelt). Was ist denn da neu?
Wenn ich in meinen composer-/vendor-Ordner schaue, dann ist da mit an Sicherheit grenzender Wahrscheinlichkeit alles headless.
Es hat gewisse Vorteile sich die Arbeit zu machen, große Teile einer ehemals monolithischen Anwendung in unabhängige Teile aufzubrechen, die für sich genommen auch ohne eine Mutteranwendung funktionieren. Da gibt es ja auch haufenweise Beispiele für.
Wie kann man headless eigentlich griffig definieren? Der Wikipedia-Artikel ist für mich nicht griffig genug. Wenn etwas keine GUI hat... Was heißt denn das? Das ist doch im Software-Bereich keine Definition für etwas. Wenn in einer OOP-Anwendung Objekte über ein Interface miteinander kommunizieren, dass ist das doch auch schon eine Schnittstelle, wo man den Begriff "headless" platzieren könnte, oder? Ich meine, ist ElasticSearch headless und ist Lucene nicht headless?
Also, für mich war headless als Begriff bislang immer "hat keine GUI". Wenn ich irgendwo gelesen habe, dass etwas headless ist, dann kann man dieses Etwas mindestens optional so betreiben, dass man ohne den Einsatz einer GUI auskommt. Weil, ob für etwas eine GUI sinn macht, hängt ja auch immer vom Geschäftsziel ab. És könnte eine GUI für ElasticSearch geben, aber wir nutzen es Headless. Wir nutzen es aber auch nicht direkt, sondern haben da noch mal eine Middleware zwischen, welche die Facettensuche stark aufbohrt. Diese Middleware ist auch headless und wird von einem System mit GUI verwendet, dass über diese Middleware und über ElasticSearch auf Lucene sucht.
Objektive Kriterien für die Entwicklung von Headless-Komponenten sind für mich:- Wenn sich Projekte mit ähnlichen oder unterschiedlichen Anforderungen Funktion teilen.
- Wenn man die Funktionsweise eines Anwendungsteils sinnvoll in Form einer Komponente zusammenfassen und das Interface für die Nutzer (User oder Progger) vereinheitlichen kann.
- Wenn die Komplexität einer Komponente ein Niveau erreicht hat, bei der eine isolierte Weiterentwicklung zu besseren Ergebnissen führt.
Kommentar
-
Zitat von hellbringer Beitrag anzeigen
Ganz einfach:
1. Datei ist der "Controller", er enthält die Logik der Komponenente (laden, speichern, Interaktion mit anderen Komponenten, usw. usf.).
2. Datei ist das Template. Es enthält die Darstellungslogik sowie den HTML-Code.
3. Datei ist das Layout, also CSS, Sass oder Less
(4. Datei ist für Tests)
Genau das finde ich an Angular so toll, dass es von Grund auf schon mal gut durchstrukturiert und nicht alles auf ein Haufen zusammengeworfen ist.
Klar hat das auch Nachteile. Aber irgendwo beginnt es, philosophisch zu werden .[URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]
Kommentar
-
Zitat von ChristianK Beitrag anzeigenHier kannst du die Diskussion allerdings auch ewigs erweitern... Ich z.B. finde an VueJS super, dass eben Teile 1 bis 3 in einer Datei ist.
Zitat von ChristianK Beitrag anzeigenDas ermöglicht Komponenten zu entwickeln, die wiederverwendbar sind (als Ganzes).
Zitat von ChristianK Beitrag anzeigenZudem macht es mir das sehr viel einfacher, den Scope zu denken, wenn ich wieder einmal an einer Komponente arbeiten. Für jemanden, der oft zwischen Tasks wechseln muss, ist es ein Vorteil, gleich alles an Ort zu haben.
Kommentar
-
Zitat von hellbringer Beitrag anzeigenDas geht in Angular auch, mach ich aber nie, weil das IMHO unübersichtlich wird.
Kommentar
-
Zitat von hellbringer Beitrag anzeigen
Das geht in Angular auch, mach ich aber nie, weil das IMHO unübersichtlich wird. [...]
Wie gesagt, Geschmackssache...
[URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]
Kommentar
-
Zitat von ChristianK Beitrag anzeigenMan könnte argumentieren, dass deine Komponenten zu gross sind. Wenn alles zusammen knapp 100 bis 150 Zeilen ist, ist das ja noch übersichtlich.
Kommentar
-
Zwar ein wenig OT, aber sei's drum:
Zitat von ChristianK Beitrag anzeigenHier kannst du die Diskussion allerdings auch ewigs erweitern... Ich z.B. finde an VueJS super, dass eben Teile 1 bis 3 in einer Datei ist. Das ermöglicht Komponenten zu entwickeln, die wiederverwendbar sind (als Ganzes). Zudem macht es mir das sehr viel einfacher, den Scope zu denken, wenn ich wieder einmal an einer Komponente arbeiten. Für jemanden, der oft zwischen Tasks wechseln muss, ist es ein Vorteil, gleich alles an Ort zu haben.
Zitat von hellbringer Beitrag anzeigenz.B. eine Komponente mit einer Übersichtstabelle (inkl. Filterung, Sortierung, usw.) hat schon über 500 Zeilen HTML-Code. Wüsste nicht, wie man die kleiner machen kann, außer alles in ewiglange Zeilen zu quetschen.[SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]
Kommentar
-
Zitat von ChristianKSplit View geht bei guten IDEs auch bei der gleichen Datei
Zitat von tomBuilder Beitrag anzeigenSorry, aber wenn sich Software Desing nach den Möglichkeiten einer ide richtet,
dann ist es wirklich weit gekommen.[SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]
- 1 Likes
Kommentar
-
Für headless spräche doch noch, dass man eine wie auch immer geartete Anwendnung (bspw. Brachenlösung mit wenig Individualisierung im Backend) hat und viele individuelle Frontends für unterschiedliche Kunden braucht.
Oder ganz banal so etwas wie Amazon, Youtube oder Zalando, Anwendungen wo ausgehend von User-Aktionen massig große Datenmengen dynamisch nachgeladen werden müssen, so etwas ist doch als reine Webserveranwendung gar nicht umsetzbar, ohne das die User-Experience zwangsläufig s****ße ist.
Würdet ihr bei der Auswahl des Architekturansatzes auch nach der Verwendung der Anwendnung durch die Zielgruppe gehen? Ich für meinen Teil surfe immer noch extrem ungerne mit dem (bzw. meinem alten Gurken-) Smartphone im Web. Ich meine damit die Auslierung statischer Seiten vs. die headless-Variante, je nachdem ob der Hauptteil der Zielgruppe eben Mobile oder Desktop benutzt.
Kommentar
-
Zitat von wario Beitrag anzeigenWürdet ihr bei der Auswahl des Architekturansatzes auch nach der Verwendung der Anwendnung durch die Zielgruppe gehen? Ich für meinen Teil surfe immer noch extrem ungerne mit dem (bzw. meinem alten Gurken-) Smartphone im Web. Ich meine damit die Auslierung statischer Seiten vs. die headless-Variante, je nachdem ob der Hauptteil der Zielgruppe eben Mobile oder Desktop benutzt.
Kommentar
-
Zitat von derwunner Beitrag anzeigen
Prinzipiell ja, macht aber keinen Sinn, da zum Beispiel auch Angular behauptet, es wäre mobile-first, bzw. mobile friendly. Leuchtet mir zwar nicht so ganz ein warum und wieso, aber gut...
Kommentar
-
Zitat von tomBuilder Beitrag anzeigenHab ich dort noch nicht gelesen, überlesen und würde mich über einen Link freuen.
Kommentar
Kommentar