Hej dedlfix,
(https://developer.mozilla.org/en-US/docs/Web/Web_Components) seine Anwendung in funktionale Komponenten aufteilt und so zusammengehöriges HTML, Javascript/Typescript und CSS lokal beieinander hat, statt dass man drei globale Dateien hat, wo man erst suchen muss, was zu wem gehört.
Wir haben aber beispielsweise Suchformulare, die aus einer eingebundenen PHP-Anwendung kommen, aus TYPO3-Extension oder dem TYPO3-Kern - und die sollen so aussehen wie die Suche auf anderen von uns betreuten Portalen.
Das Problem: wenn man also für drei Extensions, den T3-Kern und eine Individual-Programmierung dasselbe Aussehen erhalten möchte, muss man 5 mal dasselbe CSS ausliefern. Bei jeder Anpassung muss man 5 Dateien anpassen (und vergisst schnell mal eine).
Man kann natürlich weiterhin ein globales Theme haben, das solche grundlegenden Dinge vorgibt. Das individuelle, das nur eine Komponente was angeht, ist jedoch besser in ihrer Nähe aufgehoben. Dann ist zum Beispiel auch leichter zu finden, was man bearbeiten muss, wenn da was wegfällt, als es in einer großen zentralen Datei zu vergessen und zu übersehen. Stringsuche ist zwar eine Möglichkeit, aber schön ist das nicht unbedingt.
Aber schneller, als selber eine kleine Datei zu durchsuchen. Mag aber auch geschmackssache sein, jeder arbeitet ja anders.
Grundsätzlich finde ich es in Ordnung, mit mehreren Dateien zu arbeiten so wie du das hier vorschlägst.
Dennoch würde ich persönlich die eher zentral in einem style-Verzeichnis ablegen. Das meiste was anzupassen ist an Deiner komponente dürfte projektspezifisch sein und ich würde es dann in die project.scss
aufnehmen.
// ===============================================
// Styling of component xyz
// ===============================================
.comp_xyz h3 {
color: red;
}
Wenn es darüber hinaus noch etwas gibt, was man grundsätzlich in jedem Projekt beibehalten könnte (ich wüsste auf Anhieb nicht so recht, was das sein sollte), könnte ich mir vorstelln, das direkt zusammen mit dem Rest der Komponente aufzubewahren.
Das müsste aber beim zusammenbasteln der Dateien ziemlich weit oben geladen werden, damit das projektspezifische SASS/CSS das überschreiben kann.
Ich persönlich würde das nicht so machen, weil ich mir nicht vorstellen kann, dass das viel Zeug ist und man dann wieder auf mehr achten muss. Und wenn es nur das ist, dass man es an der richtigen Stelle laden muss.
Vielleicht ein Vorschlag für Standard-Formate in einer project.scss, die zwar mitgeliefert wird, die man aber erst mal nicht genutzt ist. Dann könnte man das als Kpoiervorlage nehmen, um es in die zentrale project.css zu übernehmen.
Wenn man so ein Vorgehen in einer Firma generell umsetzt, ist es schnell in Fleisch und Blut.
Du siehst ich mache mir immer Gedanken darüber, wie man etwas leicht nutzbar und bequem umsetzen kann.
Du vermutlich auch, nicht falsch verstehen. ich würde auch nichts vorgehen, aber hier sind wir schon fast in einem workshop. 😉
Das sind die genau die vorschläge, die ich dann mache.
Aber den größten Vorteil kannst du leider nicht nutzen. Ich habe schon gelesen, dass ihr keinen speziellen Frontender hat, der dir dann an einer zentralen stelle das Styling abnimmt.
Insofern ist es für Dich vermutlich wieder egal. Für den Frontender wäre es schön, alles was er braucht, in einem Verzeichnis zu haben.
Ich habe so das Gefühl, es ist auch leichter für dich, wenn du wiederverwertbare Komponenten baust, dass da überhaupt nichts drin ist, was für ein einziges Projekt spezifisch ist.
Daraus resultiert mein Vorschlag: ich gebe das HTML für häufig genutzte Komponenten vor.
Lese ich da sowas wie: Wenn das Aussehen stimmen soll, muss sich das HTML danach richten? Wenn ja, ist das dann besser als präsentationsbezogene Klassenbezeichner?
Ja, weil da ja ncihts präsentationsbezogenes drin ist - daher lässt es sich auch so gut überall reinpacken.
Schau noch mal in den code, den ich vorgebe. da steht nur drin, dass es die „main search“ ist, so nennen ich halt die Suche, die man auf jeder Einzel-Seite oben rechts einbindet.
Das passt in jede Website, die ich in den letzten Jahren erstellt habe.
Sobald es einmal nicht passen würde oder nicht sicher von anderen Komponenten unterschieden werden könnte, würde ich es anders nennen (z. B. "main keyword search" oder so, wollte es halt kürzer haben).
Und was das dann von Frameworks und Präsentationsbezogenen Klassen unterscheidet ist einfach: wenn du eine andere Klasse zusätzlich verwendest, passiert nichts.
Bei Bootstrap und Co musst du Klassen lernen für Responsivität, Farben, Icons usw einzufügen.
Bei mir musst du nichts dergeleichen tun. Ich sorge dafür, dass die Stichwortsuche oben rechtsbündig stehen wird, eine schöne placeholder-like Beschriftung (label) erhält (danke @Gunnar Bittersmann 😉 ) und sich in jeder Hinsicht an die Vorgaben aus Design, Zugänglichkeit und den Sezifikation für CSS hält - der HTMl-Schnipsel aus meinem Repository ist natürlich auch entsprechend aufgebaut.
Du musst dich also um gar nichts kümmern - nur mein HTML kopieren und die bereits vorhandenen Form-Elemente mit Funktionen hinterlegen. Das ist dann Aufgabe der Programmierer.
Dann braucht der Programmierer in seinem Paket gar kein CSS mehr. Und das macht sehr viel Sinn. Solche Komponenten sollen (in meiner Welt) nie so aussehen, wie es dem Programmierer gefällt, sondern wie es das Design für die gesamte Website vorgibt.
Mit derartiger Erfahrung kann ich nicht aufwarten, denn bei uns ist das alles so klein, dass wir keine Arbeitsteilung zwischen den Fraktionen, die wir nicht haben, vornehmen können. Insofern bin ich einerseits frei von konkreten Code-Vorgaben als auch dafür verantwortlich, dass das Aussehen und Funktionsweise stimmt. Mir scheint, du bist an der Stelle was für mich ein CSS-Framework ist, solange der Chef sagt, die Optik von Framework X ist das, was er dem Kunden verkauft hat.
Ja, das ist dann der Punkt, wo ich dann auch immer ein bisschen hilflos bin. Denn ich bin der Meinung, dass man von einem alleine nicht verlangen kann, nach allen best practices sauber uns sicher zu programmieren, ein zugängliches responsives Layout nach neuestem Stand der Technik und ein geiles Design mit optimaler UX umzusetzen.
Und jetzt nicht böse sein, weil das geht nicht gegen Dich(!): das ist meiner Meinung nach nicht wirtschaftlich, sondern einfach nur billig.
Ich habe den Eindruck, wenn man einen Designer beschäftigt, sollte man auch einen Frontender haben. du siehst ja an dem oben geschriebenen, wo ich dich entlasten könnte. Da würde sicher nicht nur ein Teil deiner Arbeit wegfallen, sondern vor allem ein Teil, in dem du nciht so zu hause bist, wie in der Programmierung. Ich habe das CSS (vermutlich) schneller greschrieben als du und kann daher mehrere Programmierer entlasten. Und wenn das immer ncoh cniht reicht, um mich voll zu beschäftigen, dann kann amn ja auch eine 50%-Stelle ausschreiben.
Heißt: ich halte diese Vorgehensweise auch in relativ kleinen Betrieben für sinnvoll und möglich und wirtschaftlich.
Ein problem bleibt: wenn es nur einen frontender gibt, gibt es keinen Vertreter.
In Urlaubs- und Krankenzeiten müssten die Entwickler dann also alleine klar kommen. Das scheint aber zu gehen, so lange der Frontender nicht 4 Wochen am Stück Urlaub macht.
Gerade wenn schon Code vom Frontender vorliegt, können den Programmierer oft anpassen, manche Probleme sind nciht dringend, Urlaube lassen sich planen (in den sommerferien ist tendziell immer wenig los, auch Programmierer und Kunden machen Urlaub und dann staut sich während des Urlaubs auch nicht so viel an).
Nach dem Urlaub schreibe ich dann, was die Programmierer mit ihrem Kürzel im CSS markiert haben noch mal "ins Reine".
dass gute an meinem vorschlag ist zudem: Design und Entwicklung sind weitestgehend entkoppelt. Du kannst Deine komponente ungestylt zum funktionieren bringe, ich lasse sie dann Aussehen, wie vom design vorgegeben.
Unbedingt. Darüber mache ich mir den ganzen Tag Gedanken. Du offenbar auch. Und ich könnte mir vorstellen, dass sich bei jemandem, der so strukturiert denkt wie du, angepasste Strukturen etablieren lassen, wenn du von den Vorteilen überzeugt bist. 😉Aber diese Vorteile muss es dann natürlich auch geben.
Eben, wenn es meine Arbeitsweise unterstützt und voranbringt, und nicht nur Mehrarbeit ohne messbaren Nutzen bringt, warum nicht?
Und jetzt habe ich dich da, wo Gunnar dich haben wollte. 😉
Und das meine ich nicht überheblich!
Auch heißt das cniht, ab jetzt bringe ich dich dazu, das zu machen, was ich richtig finde, sondern mir ginge es jetzt im weiteren darum, partnerschaftlich und gemeinsam zu besprechen, wo du dir Änderungen in Deiner Arbeitsweise vorstellen könntest, die mir meine Arbeit bzw. die des Frontenders bei euch) erleichtern könnten. Das bekommt ihr dann bald auch alleine hin und ich als Coach werde nicht mehr gebraucht.
Jeder hat seine aufgabe — der Frontender neben allem anderen die Barrierefreiheit und du - du machst halt das was, Programmierer halt so machen 😂 — und ihr unterhaltet euch darüber, wie jeder möglichst ungestört vom anderen seine Arbeit möglichst effizient erledigen kann.
Mit den Chefs wird es immer sehr viel schwerer, denn die müsste ich davon überzeugen, dass sich einer der Mitarbeiter intensiv als Frontender betätigt und weniger das macht, was er bisher getan hat. oder dass eine halbe Stelle zusätzlich benötigt wird, vielleicht gibt es aber andere, die gerne eine halbe Stelle weniger machen würden. Gut für die Mitarbeiter, lästig für die Personaler, weil mehr Personen zu verwalten sind. Und das muss der jeweilige Mitarbeiter auch wollen, sonst hat es keinen Sinn.
Man kann aber bei der nächsten Stellenausschreibung gleich mal zwei halbe Stellen ausschreiben. Aber man muss es natürlich wollen und den Nutzen sehen.
Mit manchen chefs kann man reden. Andere interessiert das nciht die Bohne, so lange der Laden läuft. es gibt nun mal die, bei denen es nur darauf ankommt, dass der Rubel rollt und denen technische Weiterentwicklung, Sicherheitsaspekte und erst recht Zugänglichkeit völlig egal sind, trotz aller Argumente (auch in bezug auf Wirtschaftlichkeit) ich anbringen könnte. viele dieser Argumente kämen ja auch Eurem Kunden und nciht Eurem Chef zugute.
Da kann man versuchen mit Kundenbindung zu argumentieren, aber ich habe das Gefühl, es gibt so viele Kunden, da hat man immer genug, auch wenn mn es sich regelmäßig mit einem verscherzt…
Insofern habe ich es schwer, gegen das "ach lassen wir doch alles so wie es ist - ging bis jetzt ja auch" zu reden. Zumal ich auch dafür viel Verständnis habe, bin ja schließlich selber Mensch… 😉
Marc
Ceterum censeo Google esse delendam