Frage

Ich fange an einem Projekt, wo Strings in den Code die meiste Zeit geschrieben werden. Viele Strings könnten nur an wenigen Stellen verwendet werden, aber einige Zeichenketten sind häufig über viele Seiten.

Ist es eine gute Nutzung meiner Zeit ist die Literale in Konstanten, Refactoring, dass die App sehr gut etabliert und läuft gut? Was ist der langfristige Nutzen sein würde, zu tun so?

War es hilfreich?

Lösung

Nur wenn dieses Projekt in die Zukunft unterstützt werden muss, ist dies eine gute Nutzung der Zeit. Wenn Sie dieses System regelmässiger Wartung / Erweiterung sein; jedoch ist dies eine großartige Idee.

1) Es gibt ein großes Maß an Risiko mit Stringliterale zugeordnet ist, wie ein einzelner misspelling kann in der Regel nur zur Laufzeit erkannt werden. Das reduzierte Risiko von Laufzeitfehlern ist ein ernster Vorteil, da sie peinlich sein kann / frustrierend.

2) Auch sollten sie jemals geändert werden müssen, zum Beispiel, wenn sie verwendet wird, ein anderes System zu verweisen (wie Tabellennamen, Servernamen, etc.) können sie sehr schwierig sein, zu aktualisieren, wenn die anderen Systemnamen ändern. Zentralisieren Sie sie und es ist ein triviales Problem.

Andere Tipps

Eine gemeinsame Sache zu prüfen wäre i18n . Wenn Sie (oder Ihre muckity-mucks) jemals wollen Ihr Produkt in Mexiko oder Frankreich verkaufen (etc.) Sie gehen zu schätzen diese Stringliterale mit nicht in der gesamten Codebasis übersät.

EDIT: Ich weiß, das nicht direkt Ihre Frage beantworten ist, so Ich wähle einige der anderen Antworten nach oben re: Regeldetri und dergleichen. Ich verstehe, Sie sprechen über eine bestehende Code-Basis, so ist es ein wenig zu spät über die Einbeziehung der i18n von Anfang an zu sprechen. Es ist so einfach zu tun, wenn Sie in der Gewohnheit von Anfang an sind.

Ich mag die Regel von drei anzuwenden, wenn Refactoring. Wenn es drei oder mehr Mal passiert, dann muss der Code aktualisiert werden.

Wenn eine Zeichenfolge in mehr als ein Ort verwendet wird, Refactoring es. Wenn es nur an einem Ort verwendet wird, lassen Sie es allein.

Wenn Sie alle gängigen Strings Refactoring aus haben, macht es einfacher, sie zu internationalisieren / übersetzen. Es ist sogar einfacher, wenn sie alle in Eigenschaftsdateien sind, oder was auch immer Ihre Sprache entspricht.

  

Ist es eine gute Nutzung meiner Zeit ist die Literale in Konstanten, Refactoring, dass die App sehr gut etabliert und läuft gut?

Nein, Sie besser lassen Sie es wie es ist.

  

Was sind die langfristigen Nutzen zu tun, wäre so?

Wenn niemand jemals diesen Code berühren, sind die Vorteile keine.

Was Sie tun können, ist jedoch vermeiden neue Literale hinzufügen. Aber ich würde ziemlich verlassen bestehende wie sie sind.

Sie könnten wahrscheinlich sie in Ihrer freien Refactoring, besser zu schlafen.

Wahrscheinlich gibt es einige andere Bugs bereits die Ihre Aufmerksamkeit erfordern. Fix diejenigen statt.

Schließlich, wenn Sie Sie „Refactoring“, um Ihre Aufgabenliste verwalten hinzuzufügen, gehen Sie voran !!!

ich mit JMD einverstanden ist, nur im Kopf behalten, dass es mehr Strings i18n als Wechsel (Währungen, muß UI Rechts-Links-Sprachen adpated werden usw.)

Auch wenn Sie Ihre Anwendung 18n DO NOT wünschen wäre es nützlich, die Saiten, Refactoring, da diese Zeichenfolge, die nur einmal heute verwendet wird, vielleicht wiederverwendet morgen mehrmals, und wenn Es ist fest einprogrammiert Sie sind möglicherweise nicht bewusst sein, von ihm und String ganz über den Platz Stern replizieren.

Best let schlafende Hunde liegen. Wenn Sie eine Zeichenfolge ändern müssen, die achtzehn klumpig Zeiten verwendet wird, ja, gehen Sie voran und es in eine konstante irgendwo drehen. Wenn Sie sich in einem Modul arbeiten zu finden, die eine Zeichenfolge hat, die mit konstanter ize sein könnte, tun Sie es, wenn Sie Lust haben. Aber gehen durch die ganze App alle Strings Konstanten zu ändern ... dass auf der ganz unten auf der To-do-Liste sein sollte.

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