Warum sollte ich nicht "- Wette, die Zukunft des Unternehmens" auf shell-Skripte?[geschlossen]

StackOverflow https://stackoverflow.com/questions/17231

  •  08-06-2019
  •  | 
  •  

Frage

Ich war auf der Suche http://tldp.org/LDP/abs/html/why-shell.html und war beeindruckt von:

Wenn Sie nicht zu benutzen-shell-Skripte

...

  • Mission-kritische Anwendungen, auf die Sie Wetten die Zukunft des Unternehmens

Warum nicht?

War es hilfreich?

Lösung

Die Verwendung von shell-Skripten ist in Ordnung, wenn Sie Ihre stärken.Meine Firma hat einige Klasse 5 soft-switches und der call-Bearbeitung-code und die Bereitstellung der Schnittstelle in java geschrieben ist.Alles andere ist geschrieben in der KSH - DB-dumps für sicherungen, Schnitt, log-Datei-rotation, und alle die automatisierte Berichterstattung.Ich würde argumentieren, dass all diese Funktionen unterstützen, obwohl Sie nicht in direktem Zusammenhang zu nennen-Pfad, sind von entscheidender Bedeutung sind.Vor allem die DB-Interaktion.Wenn etwas ging falsch mit der DB-Interaktion code und warf die call-routing-Tabellen, die Sie könnten uns aus dem Geschäft.

Aber nichts jemals schief gehen, weil shell-Skripte sind das perfekte Sprache für Sachen wie diese.Sie sind klein, Sie sind gut verstanden, Bearbeiten von Dateien, ist Ihre Stärke, und Sie sind stabil.Es ist nicht so, KSH09 ist eine komplette Neuentwicklung, weil jemand denkt, es sollte compile byte code, so dass es eine stabile Oberfläche.Ehrlich gesagt, ist das provisioning-interface in Java geschrieben, geht wonky ziemlich oft, und die shell-Skripte haben nie Durcheinander, dass ich mich erinnern kann.

Andere Tipps

Ich denke, der Artikel Punkte out eine wirklich gute Liste der Gründe, wenn nicht zu verwenden, shell - Skripte- mit der einzigen mission critical Kugel, die Sie darauf hinweisen, dass mehr von einem Fazit, basierend auf all den anderen Kugeln.

Mit dieser sagte, ich glaube, der Grund, Sie wollen nicht bauen eine mission kritische Anwendung auf ein shell-Skript ist, weil, auch wenn keiner der anderen Kugel Punkte gelten heute, jede Anwendung, die gehen, um gepflegt über einen Zeitraum von Zeit entwickeln zu dem Punkt, dass bit durch mindestens einen dieser potenziellen Fallstricke irgendwann.....und es gibt nichts, Sie sind wirklich in der Lage zu tun, ohne dass es eine vollständige machen über zu kommen mit einer Lösung....wünschen Sie verwendet, etwas mehr industrielle Stärke-von Anfang an.

Offensichtlich ist dies ein bisschen ein Strohmann für mich zu erdrücken.Ich bin wirklich daran interessiert, warum die Menschen glauben, dass shell-Skripts, die vermieden werden sollten in "mission-critical "- Anwendungen", aber ich kann es nicht glauben, der einen zwingenden Grund.

Zum Beispiel, ich habe gesehen (und schreiben) einige ksh-Skripts, die die Interaktion mit einer Oracle-Datenbank mithilfe von SQL*Plus.Leider, das system konnte nicht korrekt skaliert, da die Abfragen nicht verwenden Sie bind-Variablen.Streik gegen shell-Skripte, richtig?Falsch.Das Problem war nicht mit der shell-Skripte, sondern mit SQL*Plus.in der Tat, das performance-problem ging Weg, wenn ich durch SQL*Plus mit einem Perl-script, das mit der Datenbank verbunden und verwendet bind-Variablen.

Ich kann mir leicht vorstellen putting-shell-Skripten in Raumschiff Flug-software wäre eine schlechte Idee.Aber Java oder C++ kann eine ebenso schlechte Wahl.Die beste Wahl wäre, welche Sprache (Assembler?) ist in der Regel für diesen Zweck verwendet.

Die Tatsache ist, wenn Sie alle Varianten von Unix, verwenden Sie shell-Skripts, die in kritischen Situationen vorausgesetzt, Sie denken das Booten von entscheidender Bedeutung sind.Wenn ein script braucht, um etwas zu tun, dass die shell ist nicht besonders gut, Sie legte das Teil in ein Unterprogramm.Sie werfen Sie nicht das Skript Großhandel.

Scripts sind nicht mehr und nicht weniger als computer-Programme.Einige würden argumentieren, dass die Skripte sind weniger anspruchsvoll.Diese gleichen Leute werden in der Regel zugeben, dass können Sie schreiben anspruchsvolle code in scripting-Sprachen, aber diese Skripte sind nicht wirklich Skripten mehr, sondern vollwertige Programme, per definition.

Was auch immer.

Die richtige Antwort, meiner Meinung nach, ist "es hängt".Die, übrigens, ist die Antwort auf die umgekehrte Frage, ob Sie Ihr Vertrauen in kompilierten ausführbaren Dateien für mission kritische Anwendungen.

Guter code ist gut, und schlechter code ist schlechter - egal, ob es geschrieben ist, als Bash-Skript, eine Windows-CMD-Datei, Python, Ruby, Perl, Basic, Forth, Ada, Pascal, Common Lisp, Cobol, oder kompiliert C.

Die nicht zu sagen, dass die Wahl der Sprache ist egal. Es gibt sehr gute Gründe, manchmal, für die Wahl einer bestimmten Sprache oder für die Zusammenstellung vs.Dolmetschen (performance, Skalierbarkeit, Leistungsfähigkeit, Sicherheit, etc).Aber, alle Dinge gleich sind, würde ich Vertrauen, ein shell-Skript geschrieben von einem guten Programmierer über eine entsprechende C++ - Programm geschrieben von einem Dummkopf, jeden Tag der Woche.

Es ist wahrscheinlich, shell-Skripte, die dabei helfen, ein Unternehmen in die Zukunft.Ich weiß nur von einer Programmierung Standpunkt, ich würde verschwenden viel Zeit damit, sich wiederholende Aufgaben, die ich delegiert haben, um shell-Skripte.Zum Beispiel, ich weiß, die meisten der subversion-Befehle für die Befehlszeile, aber wenn ich die Klumpen alle diese Befehle in einem Skript kann ich Brand in Spare ich Zeit und geistige Energie.

Wie ein paar andere Leute haben gesagt, Sprache ist ein Faktor.Für meine kurze don ' T-want-to-remember Schritte und Kleber-Programme, die ich voll Vertrauen meinen shell-Skripten und auf Sie bauen.Das bedeutet nicht, ich werde eine website erstellen, die bash läuft auf dem backend, aber ich werde sicherlich mit bash/ksh/python/was auch immer um mir zu helfen, generieren Sie das skeleton-Projekt und managen meiner Verpackung und Bereitstellung.

Wenn ich lese diese zitiere ich den Fokus auf die "Anwendungen"Teil eher als die "mission critical" - Teil.

Ich Las es, wie zu sagen bash ist nicht für das schreiben von Anwendungen, es ist für, na ja, scripting.So sicher, Ihre Anwendung werden möglicherweise einige housekeeping-scripts, aber nicht schreiben critical-business-logic.sh wegen einer anderen Sprache ist wahrscheinlich besser für sowas.

Ich würde vermuten, der Autor zeigt, Sie sind unbequem mit bestimmten Aspekten des qualtiy wrt-shell-scripting.Die unit-tests von BASH-Skripten zum Beispiel.

Auch Skripte sind eher stark gekoppelt mit dem zugrunde liegenden Betriebssystem, das könnte so etwas wie eine negative Sache.

Egal, wir alle neec eine fexible tool zur Interaktion mit dem os.Es ist eine lesbare Interaktion mit os, die verwenden wir, wie Ihr, mit Hilfe eines Schraubenziehers die Schrauben fest.Die Kommandozeile wird immer ein atool brauchen wir entweder admin,Programmierer oder Netzwerk .Blick am Fenster Sie sogar erweitert werden auf Ihre powershell.

Skripte sind ungeeignet für die Anwendung einiger mission-kritische Funktionen, denn Sie müssen sowohl +r und +x-Berechtigungen, um zu funktionieren.Ausführbare Dateien müssen nur noch +x.

Die Tatsache, dass ein Skript +r bedeutet, dass Benutzer in der Lage sein könnte, eine Kopie des Skripts Bearbeiten/untergraben, und führen Sie Ihre bearbeiteten Cuckoo-Ei-version.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top