5 Stimmen

Von der statischen Typisierung zur dynamischen Typisierung

Ich habe immer mit statisch typisierten Sprachen gearbeitet (C/C++, Java). Ich habe mit Clojure gespielt und es gefällt mir wirklich.

Eine Sache, über die ich mir Sorgen mache, ist: Sagen wir, ich habe ein Windows, das 3 Module als Argumente annimmt und im Laufe der Zeit ändern sich die Anforderungen und ich muss ein weiteres Modul an die Funktion übergeben. Ich ändere einfach die Funktion und der Compiler beschwert sich überall, wo ich sie verwendet habe. Aber in Clojure wird er sich nicht beschweren, bis die Funktion aufgerufen wird. Ich kann einfach eine Regex-Suche und -Ersetzung durchführen, aber es scheint, dass die Chance besteht, einen Aufruf zu verpassen, und es wird unbemerkt bleiben, bis die Funktion tatsächlich aufgerufen wird. Wie geht ihr mit diesem Problem um?

4 Stimmen

Wie geht ihr damit um? Meiner Erfahrung nach lautet die richtige Antwort: "Nicht sehr gut".

0voto

Vitali Punkte 3128

Wenn man zu dynamischen Sprachen übergeht, verliert man ein gewisses Maß an Refactoring und Typsicherheit. Je mehr Informationen der Compiler hat, desto mehr kann er zur Kompilierzeit für Sie tun.

0 Stimmen

Entschuldigen Sie meine Unwissenheit, aber wie dynamische Typisierung macht Sie verlieren einige Ebene der Refaktorierung?

0 Stimmen

Wahrscheinlich meint er hier "automatisches Refactoring".

0 Stimmen

Ich glaube, der Satz bedeutet "Refactoring-Sicherheit".

0voto

urmalp Punkte 362

Tim Bray erörtert sie aquí Die Kritik von Cedric lautet aquí ,und eine Beitrag auf artima, wo sie ausführlich diskutiert wird.

0voto

Ivan Pierre Punkte 788

Wenn Sie wirklich eine statische Typisierung benötigen, können Sie https://github.com/clojure/core.typed und sein Leiningen-Modul, um die statische Variablenübergabe zu testen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X