In der großen Tradition jeder einzelnen Umfragefrage, die ich jemals gestellt habe, hat die folgende Umfrage einen grundlegenden Fehler. In diesem Fall gibt es keine Option zwischen „Im letzten Monat“ und „Niemals“, aber leider sind die Ergebnisse interessant
Wann haben Sie das letzte Mal SFTP (oder das Äquivalent) auf einem Server verwendet und eine Datei direkt geändert?
— Chris Coyier (@chriscoyier) 9. Oktober 2018
Was ich mit dieser Umfrage erreichen wollte, war herauszufinden, wie viele Leute überhaupt Änderungen an Produktionsdateien direkt vornehmen und stattdessen lokal arbeiten. Ich glaube nicht, dass ich eine große Untersuchung starten muss, um zu wissen, dass es *die meisten Leute* sind und *mehr als in der Vergangenheit*.
Die meisten Arbeitsabläufe heutzutage lassen uns lokal arbeiten und neue und aktualisierte Dateien über ein Versionskontrollsystem und sogar über Systeme darüber hinaus pushen, vielleicht Continuous-Integration-Prozesse, Testprozesse, Actions, Deployment – es ist eine große Welt des DevOps da draußen! Selten überspringen wir die Leitung und stecken unsere Finger in Produktionsserver und nehmen Live-Manipulationen vor. Cowboy-Coding, nennen sie es manchmal.
Aber nur weil man es nicht *generell so codiert*, heißt das nicht, dass man es *nie tut*, was ein weiterer Fehler dieser Umfrage ist. Ich kenne DevOps-Nerds, die ständig SSH-Zugriff auf Server haben, um Konfigurationsdateien zu manipulieren. Ich persönlich steige immer noch in Coda ein und SFTPe manchmal direkt auf Server, um .htaccess-Dateien zu bearbeiten, die sich manchmal auf meinen Produktions- und Entwicklungsseiten befinden und die ich generell .gitignore.
Wie auch immer, ich denke, das ist ein lustiges Thema, also zögern Sie nicht, in den Kommentaren loszulegen. Ich würde gerne hören, in welchem Ausmaß Sie Cowboy-Code betreiben. Machen Sie es immer noch und lieben es? Tun Sie es, weil Sie keine andere Möglichkeit gelernt haben oder weil Ihr Arbeitsplatz es verlangt? Haben Sie eine persönliche Philosophie dazu? Lasst das Rodeo beginnen. 🤠
Nun, wenn Sie SFTP direkt auf einen Server übertragen und Änderungen vornehmen, passiert das mehrmals täglich – manchmal mehrmals pro Stunde oder sogar Minute. Ich muss jedoch vorab erwähnen, dass fast alles auf der Entwicklungsseite des Servers platziert wird, bevor es auf die Live-Produktionsseite verschoben wird. Es lebt alles auf demselben Server, nur in unterschiedlichen .htaccess/IP-gesteuerten Verzeichnissen. Da ich der einzige Entwickler bin, der die vier geteilten Websites meines Unternehmens und verschiedene Nischenseiten pflegt, benötige ich keine Versionskontrolle, Preprozessoren oder große Boilerplate-Frameworks (z.B. Bootstrap) und verwende sie auch nicht. Während es dort eine Menge jQuery gibt und wir ein einfaches CMS für E-Commerce verwenden, wurde alles stark für unsere Bedürfnisse modifiziert, und ich fühle mich bei dem Projekt, das ich erstelle, besser, weil es tatsächlich etwas ist, das ich erstellt habe.
Ich bin derjenige, der auf der anderen Seite des Spektrums steht, wie Websites/Webanwendungen heute erstellt werden. Ich finde, dass alle Befehlszeilenoperationen für die Webentwicklung heutzutage extrem herausfordernd sind, während HTML, CSS, Javascript, MySQL, PHP usw. alle recht einfach zu verstehen und zu schreiben sind. Ich meine, ich verstehe auch den Teil, wo man das Rad nicht jedes Mal neu erfinden will. Wenn ich ein bestimmtes Layout erstellt oder ein Formular für etwas Ähnliches erstellt habe, werde ich es definitiv kopieren und einfügen und es dann für meine Bedürfnisse manipulieren.
Basierend auf der obigen Definition von „Cowboy-Coding“ mache ich davon wohl ziemlich viel.
Klingt nach dem besten Weg. Das klingt sehr nach meiner eigenen Methodik.
Ich stimme voll und ganz zu. Ich habe vor 10 Jahren angefangen, Websites zu erstellen, und hatte etwa 4 Jahre Pause. Als ich wieder mit dem Programmieren anfing, fand ich eine ganz andere Welt vor, als ich sie verlassen hatte. Ich lerne gerade React und es scheint so viel komplizierter als PHP/MySQL und oft unnötigerweise.
Ich denke, die Quintessenz wäre, die richtigen Werkzeuge für die richtige Aufgabe zu wählen.
Alles Gute.
Vor ein paar Minuten. Ich lebe am Rande.
Vor zwei Tagen. Das ist nichts Ungewöhnliches.
Ich lade jedes Projekt oder Übungsdateien hoch, die ich erstelle, hauptsächlich um zu testen, wie sie auf verschiedenen Geräten im Haushalt angezeigt werden – mehrmals pro Woche. Es ist sehr hilfreich, wenn man responsive Designs erstellt.
Wir verwalten buchstäblich Hunderte von Websites in unserem Unternehmen, daher ist es für uns nicht sehr praktikabel, für jedes einzelne Projekt, an dem wir arbeiten, lokale oder Entwicklungsumgebungen einzurichten.
Normalerweise beginne ich ein neues Website-Projekt mit einer lokalen Umgebung. Sobald der anfängliche Build abgeschlossen ist, verschiebe ich ihn in eine Entwicklungsumgebung für die Eingabe von Inhalten, Tests und letzte Anpassungen. Dann wird er in die Produktion verschoben, und die lokalen und Entwicklungsumgebungen werden gelöscht. Wenn eine Änderung an einer bestehenden Website vorgenommen werden muss, öffnen wir das Repository lokal, nehmen die Änderungen vor und pushen den Code über SFTP auf den Server zum Testen.
Es ist nicht ideal, und ich würde definitiv bevorzugen, schlankere Testumgebungen lokal zu haben, aber aufgrund der schieren Anzahl von Projekten, die wir verwalten, ist es einfach zu unpraktisch. Das gesagt, nachdem ich dies gelesen hatte, kam mir ein Gedanke… Die meisten unserer Projekte sind WordPress-Websites. Ich könnte eine Bare-Bones-WordPress-Installation lokal einrichten und jedes Repository mit dem Themes-Ordner verknüpfen. Dann könnte ich zumindest einige grundlegende Tests lokal durchführen.
Ha, ich glaube nicht, dass es generell eine gute Idee für große Websites oder etwas Wichtiges ist, und ich mache es *nie* bei der Arbeit… aber ich habe eine statische Einzelseiten-Website ohne Automatisierung oder Versionskontrolle eingerichtet, und ich mache das manchmal für diese Website. Ich habe das Gefühl, das ist „ok“ (obwohl vielleicht nicht perfekt), weil es so einfach ist und egal, f**k die Regeln, f**k die Snobs, ich mache, was ich will.
Ihre Umfrage lässt einen wichtigen Teil der Frage aus: Bearbeiten Sie Produktionsdateien an etwas Wichtigem, oder ist es Ihre persönliche Hobby-Website, die nicht viel Traffic hat?
Ohne diese Frage sind die Antworten aus der Umfrage bestenfalls bedeutungslos und schlimmstenfalls gefährlich. Ich würde vermuten, dass sich die Antworten ändern würden, wenn nur Geschäftsbearbeitungen Teil der Metrik wären, was diese Zahl für ernsthafte Bearbeitungen reduzieren würde. Diese Ergebnisse könnten einige davon überzeugen, dass es eine gute Idee ist, da alle anderen es tun…
Ich finde, es gefährlich zu nennen, ist ein wenig dramatisch. Das ist so, als würde man sagen, dass das Ansehen von Gewaltfilmen Menschen dazu bringt, gewalttätig zu sein. Menschen sind im Allgemeinen intelligenter als das, besonders Leute, die sich in dieser Branche auf dem Laufenden halten.
Außerdem ist es für Agenturen immer noch extrem üblich, kleinere WordPress-Websites (mit Budgets im Bereich von 5000 bis 10.000 US-Dollar) zu entwickeln, die ohne Versionskontrolle entwickelt, von Anfang bis Ende „Cowboy-Coding“ betrieben und Änderungen/Wartungen direkt auf dem Server durchgeführt werden, ich sehe das jeden Tag.
Eine vollständige Einhaltung von Best Practices wäre ideal, ist aber nicht immer praktikabel.
Vor ein paar Tagen habe ich eine kleine Konfigurationsdatei direkt auf dem Server (über SSH) behoben. Sagte den Testern, dass sie wieder arbeiten könnten, nur um am nächsten Tag zu erfahren, dass es nicht mehr funktionierte: Ich habe den Build-Server so konfiguriert, dass er nächtliche Builds erstellt, was mich dann zwang, es an der richtigen Stelle zu beheben und einen Build zu erzwingen…
SSH ist manchmal viel schneller und kann Ihnen ein paar Schritte ersparen, aber manchmal muss man auf die harte Tour lernen, dass diese Schritte (Ausführen der Testsuite auf dem Build-Server) eine Funktion haben.
Das gesagt, erstelle ich diese Build-Skripte normalerweise, während ich gleichzeitig zuerst auf dem Server experimentiere. Manchmal tötet der Mangel an Geschwindigkeit die Produktivität.
Ich verstehe sicherlich die Notwendigkeit der Quellcodeverwaltung, wenn viele Leute am selben Projekt arbeiten. Aber ich bin ein Ein-Mann-Betrieb und arbeite nicht an riesigen Apps oder Websites, nur an kleinen Unternehmenswebsites. Normalerweise entwickle ich eine Website lokal, lade sie dann auf einen Demo-Server, damit der Kunde sie ansehen kann. Wenn sie fertig ist, lade ich sie auf den Live-Server hoch. Wenn ich Änderungen an der Live-Website vornehmen muss, mache ich sie live, wenn es CSS ist, aber ich benutze Codekit, um das Live-CSS mit einem lokalen zu überschreiben. So kann ich meine CSS-Tests mit einer lokalen CSS-Datei durchführen, und wenn ich das neue CSS fertiggestellt habe, lade ich es per FTP hoch. Für PHP-Änderungen versuche ich, es lokal zu machen, aber ich mache es auch live.
Ich mache das jeden Tag. Bei meiner Arbeit bin ich einer von drei Entwicklern und wir werden jedem unser eigenes Projekt zugewiesen, daher ist es eher selten, dass wir an den Sachen anderer arbeiten müssen. Wir haben normalerweise Content-Editoren und Projektmanager, die während der Entwicklung gleichzeitig auf der Website sind, daher leben unsere Websites technisch von Anfang bis Ende auf dem Produktionsserver.
Ich habe vor Jahren ein Skript erstellt, das ich verwende, um statische Assets auf Web- und Intranetsystemen zu aktualisieren, und es verwendet SFTP. Ich würde also sagen, dass das für mich ziemlich regelmäßig vorkommt. Wenn Sie meinen, ob ich interaktiv Dinge auf Webservern behebe… ja, aber nicht so oft. Die meiste Zeit, wenn ich so etwas tue, debugge ich etwas Dummes; sobald ich es herausfinde, nehme ich die notwendigen Änderungen an meiner Deployment-Konfiguration vor und deploye neu, sodass die manuellen Änderungen nicht unbegrenzt bestehen bleiben.
… und ich bin mir überhaupt nicht sicher, ob ich die Frage tatsächlich beantwortet habe.