marctrix: bootstrap

Beitrag lesen

Hej dedlfix,

Wenn du meine anderen Postings liest, wirst du feststellen, das Bootstrap meiner hier nirgends widerlegten Meinung nach (wie viele andere Frameworks) ausschließlich dazu genutzt wird, Entwicklern die Arbeit zu machen. Nicht dazu, effizient gute Seiten zu erstellen. Seltene Ausnahmen bestätigen die Regel.

Ist es denn bei den Frontendern so unüblich, Komponenten zu verwenden, die von anderen geschrieben wurden?

Es gibt zu wenige Frontender, als dass ich von üblich sprechen kann. Meistens müssen Leute das Frontend mitmachen, die ohne Bootstrap o.ä. aufgeschmissen sind und dann eben so etwas abliefern, was man als div-Wüste bezeichnet.

Ich kann aber mal von mir reden. Ich bin ein großer Freund von Fertig-Lösungen, es ist nämlich ein Irrglaube, alles besser machen zu können, als andere.

Oft steckt in einer einzelnen Komponente monatelange oder jahrelange Arbeit und hunderte von Rückmeldungen aus der Community — Bugmeldungen, Feature-Requests usw.

Ich nehme dann aber gezielt einzelne Komponenten, wie ein responsives, barrierefreies Menü oder eine Lösung für Modals.

Allerdings komme ich damit nicht immer hin, denn wenn das Design wirklich individuell ist, braucht es eine Individuallösung.

Wenn die mit HTMl und CSS nicht umsetzbar ist, nehme ich mir immer Hilfe dazu, weil ich eben kein Programmierer bin und alles — den JS-Anteil in hoher Qualität abliefern möchte.

Glücklicherweise ist die Self-Community ein reichhaltiger Experten-Pool, so dass ich immer die nötige Hilfe gefunden habe.

Als Programmierer ist es nicht unüblich, Frameworks zu verwenden, die einem einen Großteil der nicht zum eigentlichen Anwendungsfall gehörenden Arbeit abnehmen und/oder einen Rahmen vorgeben, den man mit der Individualität der Anwendung füllt.

Bei uns verwenden die Backender auch Frameworks. Ziemlich abschreckend für mich, weil ich oft zu hören bekomme, wie aufwändig es doch sei, meine Vorgaben umzusetzen mit ZEND/Symfony/Timeleaf und wie die alle heißen bei PHP und JAVa und natürlich den unterschiedlichen CMSen.

Da sehe ich dasselbe Problem wie bei Bootstrap: es wird automatisch was generiert und am liebsten möchte man sich gar nicht mit der Anpassung und Konfiguration auseinandersetzen. Wenn man es doch tut, stellt man ferst, dass es dann sofort recht komplex wird. Man muss dann die ganzen Individualisierungen dokumentieren und anderen Teams bereit stellen, damit alle Zugriff haben. Im konkreten Projekt wird dafür keine Zeit für eingeplant und und irgendwie kommt dann am Ende oft etwas heraus, was für alle nur ein Kompromiss ist — jedenfalls wenn alle bemüht sind.

Dabei ist es ja nicht so, dass die Backender Dinge, die sie selber verantworten müssen, nicht hochwertig umsetzen (Sicherheit, Effizienz, Performanz usw). Nur wenn man dann, wenn die mit ihrem Kram zufrieden sind, als außenstehender kommt und sagt, man möchte jetzt noch einen aus Usability- und Accessibility-Gründen draufsetzen, sind die Gesichter lang. Was ich durchaus verstehe.

Natürlich gibts auch da welche, die lieber alles zu Fuß entwickeln, außer der verwendeten Programmiersprache. Aus dieser Sicht jedenfalls empfinde ich Bootstrap als die Fortsetzung dieser Wiederverwendungsidee. Es muss nicht unbedingt Bootstrap sein, auch andere ähnliche Systeme, wie Material Design können dazu zählen.

Dann sähen alle Websites aus, wie von Google gemacht, wird Google sicher freuen…

Bootstrap dagegen spricht den faulen Schweinehund in uns an. Wenn man Bootstrap verwendet ist eine Seite recht schnell “hübsch”.

Auch der Mangel an gestalterischer Kreativität ist es bei mir.

Und auch der Ausbildung. Design ist ja nicht umsonst ein Studiengang. Geht mir genauso, ich bin ja auch kein Designer. Ich verstehe mich als Schnittstelle (technisch) und Vermittler (menschlich) zwischen Design und Backend und kann keines von beiden, kann aber etwas (besser) was die anderen nicht/schlechter können als ich.

Es ist die Gesamtheit des Bootstrap-Ansatzes, der mir hilft, eine optische Konsistenz zu meiner Anwendung hinzuzufügen, die ich mit den nativen Elementen von CSS nicht so hinbekomme.

Dafür verwenden wir so genannte Design-Master, die eigentlich nichts anderes als Bootstrap sind, aber viel weniger können. Eben nur die Elemente beinhalten, die das Design vorsieht. Wenn eine Anwendung ein nicht vorhandenes Element/Komponente benötigt, wird diese ergänzt. Das liegt aber sicher auch an unserer Größe. Hier arbeiten ja allein in der IT mehr Menschen, als in einer mittelgroßen Agentur und wir haben zusätzlich externe Hilfe.

Mit Extract (einer Möglichkeit aus Photoshop-Dateien gezielt Formatierungen in CSS zu exportieren) hat man aber eine Möglichkeit komplett individuell gestaltete Elemente aus den ungewöhnlichsten Designs zu übernehmen, ohne das überhaupt tippen zu müssen. Man baucht nur noch das HTML selber zu schreiben (muss man bei Bootstrap ja auch, wenn es semantisch und zugänglich sein soll).

Es gibt viele Hilfen, die einem die Arbeit erleichtern, die ich selber nutze. Bis hin zur Code-Versollständigung des Editors, so dass man ja eh nicht Ballzuviel tippt.

Für mich gilt ganz klar: ich verbringe viel mehr Zeit mit Konzept (also Denkerei), als mit dem Tippen von Code, weil ich darüber nachdenke, wie bleibt mein Kram erweiterbar, was gehört in den master, was in eine Projekt.css, um projektspezifische Abweichungen/Ergänzungen zu ermöglichen usw.

Hängt sicher viel von meiner Arbeitsweise ab, dass mir nie klar geworden ist, wo Bootstrap und Co jetzt einen Vorteil bieten, der die für mich persönlich existierenden Nachteile aufwiegt.

Wie viele Webseiten-Betreiber machen sich dann noch ernsthaft die Mühe, das Bootstrap-CSS umzuschreiben oder statt der bereitgestellten Klassen eigene zu verwenden?

Das würde nach meiner Ansicht der Idee des Baukastensystems auch zuwiderlaufen, wenn man sich da noch um großartige Individualität innerhalb der Bausteine kümmern müsste.

Eben. Deshalb ist es so schwer für mich, ein Layout, das am Anfang steht, danach mit einem Baukastensystem umzusetzen, dass von dem Layout nichts weiß. Das fängt schon damit an, dass ich vermutlich seit Jahren kein System mit 12 Rasterspalten benötigt habe.

Wir brauchen eigentlich nur ganze Breite, 1/3 zu 2/3, 2/3 zu 1/3 und ganzer Viewport (für Tabellen o.ä), die aus dem System komplett ausbrechen (geht das mit Bootstrap?).

Um hinterher Menschen wie dir die Möglichkeit geben zu können, Bootstrap stelle ja semantische Klassen bereit und die dummen Anwender benutzen sie halt falsch.

Welche Auswirkungen hat die Semantik an der Stelle auf andere als den/die Entwickler? Stört das Besucher beim Bedienen der Seite, wenn die Begriffe falsch verwendet werden?

Nirgends (außer theoretisch, dass man so etwas mal Parsen könnte - aber wer tut das schon).

Aber ich als Entwickler muss ja immer wieder mal ran an den Code und dann soll es immer schnell gehen. Da bin ich schon froh, dass in meinen Seiten Elemente anhand ihrer Bedeutung unterscheidbar sind…

Man könnte das auch so sehen, dass ihr die Probleme der Verwender nicht wahrhaben wollt.

Wieso? - Ich habe ja nichts dagegen, wenn jemand anderes bootstrap verwendet (so lange zugängliche Seiten dabei raus kommen). Ich möchte es nur nicht selber anwenden müssen…

Marc

0 83

Welchen nutzen haben die Bezeichner id und for im HTML

  1. 1
    1. 0
      1. 1
        1. 0
      2. 0
        1. 0
          1. 0
            1. 0
              1. 0
                1. 0
                  1. 0
                    1. 0
                      1. 0
                        1. 1
        2. 0
          1. 0
    2. 0
  2. 0
  3. 0
    1. 1
      1. 0
        1. 1
          1. 0
        2. 0
          1. 0
            1. 1
              1. 0
                1. 0
                  1. 0
                    1. 0
            2. 0
              1. 1
                1. 1
                  1. 0

                    bootstrap

                    1. 0
                    2. 0
                    3. 2
                      1. 1
                        1. 1
                          1. 2
                            1. 3
                              1. 2
                                1. 0
                            2. 0
                              1. 0
                                1. 0
                                  1. 1
                            3. 1
                  2. 0
                    1. 0
                      1. 0
                        1. 0
                          1. 0
                            1. 0
                              1. 0
                                1. 0
                      2. 1
                        1. 0
                          1. 0
                        2. -1
                          1. 1
                            1. 0
                              1. 1
                                1. 1
                                  1. 0
                                    1. 1
                                      1. 0
                                        1. 3
  4. 3
    1. 1
      1. 0
        1. 1
          1. 0
            1. 0
              1. 0
                1. 0
                  1. 0
                    1. 0
                      1. 0
                        1. -1
                          1. 1
      2. 0