Suche Argumente für Option Strict ON

11/08/2008 - 09:48 von Jan | Report spam
Hallo!

Ich führe seit einiger Zeit eine rege Diskussion mit meinem Vorgesetzten
bzgl. Option Strict. Er möchte die Option ausschalten, mit der Begründung,
"der Code ist mit diesem ganzen gecaste schwerer zu lesen". Meines Erachtens
können wir "sauberer" arbeiten, wenn diese Option eingeschaltet ist :

- Verhinderung von Laufzeitfehlern (keine implizite Konvertierung)
- weniger Speicherverbrauch (keine implizite Deklaration).
- bessere Nutzung von IntelliSense (kein late binding)

Meine Beweise für die Argumente waren wohl nicht so überzeugend. Was ich
jetzt brauche ihr ein Killerargument dagegen!

Könnt Ihr helfen? Wie ist eure Meinung dazu?

Danke & Gruß
Jan
 

Lesen sie die antworten

#1 Peter Fleischer
11/08/2008 - 10:15 | Warnen spam
"Jan" schrieb im Newsbeitrag
news:

Ich führe seit einiger Zeit eine rege Diskussion mit meinem Vorgesetzten
bzgl. Option Strict. Er möchte die Option ausschalten,



Da bist du nicht zu beneiden.

mit der Begründung,
"der Code ist mit diesem ganzen gecaste schwerer zu lesen".



Wenn man typgerecht arbeitet, braucht man recht selten ein Typcasting.
Deshalb ist unklar, warum der Code deshalb scherer lesbar sein soll.

Meines Erachtens
können wir "sauberer" arbeiten, wenn diese Option eingeschaltet ist :



Wer weniger Stress haben will, der schaltet Option Strict On immer ein,
außer in Fàllen, wo wirklich spàte bindung erforderlich ist.

- Verhinderung von Laufzeitfehlern (keine implizite Konvertierung)



Es sind ja nicht nur Laufzeitfehler, sondern auch fehlerhafte Ergebnisse, wo
die implizite Typkonvertierung etwas anderes macht, als man möglicherweise
wünscht bzw. erwartet. Hier mal ein Beispiel:

Option Infer On
Option Strict Off

Module module1
Sub main()

Dim o1 As Integer
Dim o2 As Object = "2"
Dim o3 As Object = "3"
o1 = 55
o1 = o1 + o2 + o3
Console.WriteLine(o1)
Dim o4 As Integer
o4 = 55
o4 = o2 + o3 + o4
Console.WriteLine(o4)

Console.ReadLine()
End Sub

- weniger Speicherverbrauch (keine implizite Deklaration).



Ob implizit oder explizit ist bei Erfordernis immer eine Typkonvertierung
durchzuführen. Warum soll da unterschiedlicher Speicherverbrauch von
bedeutung sein?

- bessere Nutzung von IntelliSense (kein late binding)



Dein Chef meint wahrscheinlich, dass der Aufwand für das Tppen der wenigen
Befehle für die Typkonvertierung höher ist als der Effektivitàtsgewinn, der
durch Intellisense erreicht wird. Wenn er so denkt, hat er sehr wenig
Erfahrung und es wirft ein schlechtes Licht auf seine Fàhigkeiten.

Meine Beweise für die Argumente waren wohl nicht so überzeugend. Was ich
jetzt brauche ihr ein Killerargument dagegen!

Könnt Ihr helfen? Wie ist eure Meinung dazu?



Es gibt keine Killerargumente. Du wirst keinen Autofahrer überzeugen, den
Sicherheitsgurt anzulegen, wenn er der Meinung ist, dass noch nie etwas
passiert ist und das so bleiben wird. Genau so wenig wirst du einen Chef
überzeugen können, wenn er der Meinung ist, dass eine stabile Anwendung
weniger wichtig ist als der Tippaufwand beim Einfügen einiger weniger
Befehle zur Typkonvertierung.

Viele Gruesse

Peter

Ähnliche fragen