Autor Thema: WARNUNG: 8.5.3 Signatur- Funktion: Mieseste Code- Qualität  (Gelesen 3593 mal)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Ich arbeite gerade daran, die Signatur- Funktion für einen Kunden aufzubohren und bin ERSCHROCKEN, wie schlecht die Code- Qualität des ganze Dings ist. Nur so als Warnung, wenn sich mal jemand dran macht...

Das schlimme: Die meisten Bugs wirken sich erst dann aus, wenn man was am Code macht, weil sie zufälligerweise in der Konstellation nicht "weh" tun... Trotzdem hier mal eine Liste dessen, was ich gefunden habe

1. Gemeinsame Aktion "removeSignature": Sinnlose Zeile nach If
Code
Sub Click(Source As Button)
	Dim uiw As New notesuiworkspace
	Dim s As New NotesSession
	
	If s.GetEnvironmentValue("SigState") <> "3" Then
		s.GetEnvironmentValue("SigState") <> "3"
		Call s.SetEnvironmentVar ("SigState","3")
		Call cMemoObject.RemoveSignature
		Call uiw.ViewRefresh
	End If
End Sub
s.GetEnvironmentValue("SigState") <> "3" gehört da nicht hin, tut aber auch nicht weh

2. Gemeinsame Aktionen "Vorgabesignatur" , "removeSignature" und "Neue Signatur aus Datei"
Code
s.GetEnvironmentValue("SigState") <> "1"
Sieht auf den ersten Blick gut aus, vergleicht aber Äpfel mit Birnen: GetEnvironmentValue liefert einen NUMERISCHEN Variant. Der wird mit einem String verglichen. Funktioniert zufällig, weil es sich bei beiden Werten um Zahlen handelt... Ich wollte hier "1_1" reinschreibern und habe mich gewundert, warum immer "1" zurückkam... Da gehört überall GetEnvironmentString hin (oder als Vergleich eben auch eine Zahl)

3. Die Info, ob in einem Dokument bereits eine Signatur eingefügt wurde, wird über die Environment- Variable "SigState" geregelt... Macht doch mal zwei Mails auf und spielt ein wenig mit den Signature- Buttons... Da kommen witzige Ergebnisse raus... Wie kann man einen Dokumenten- Status über eine zentrale ini- Variable steuern...

4. CoreEmailClasses_de-DE, InsertSignature- Sub der UIMemoDocument- Klasse, ab Zeile 1023:
Code
If Me.m_nSignatureOption = 2 Then
	Me.m_nSignatureOption =  2  'get imported file from Preferences
End If
Kein Fehler, aber absolut Sinnloser Code... was sollte da wirklich rein? vielleicht was wichtiges...

5. Über solche Zeilen sage ich lieber nichts... Ist das einfach effizienter code, oder Faulheit?
Code
resetSigOption = Evaluate(|@getprofilefield("CalendarProfile"; "SignatureOption")|)
							resetSignature = Evaluate(|@getprofilefield("CalendarProfile"; "Signature")|)	

Das ist ganz schön harter Toback...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: WARNUNG: 8.5.3 Signatur- Funktion: Mieseste Code- Qualität
« Antwort #1 am: 06.03.12 - 22:51:09 »
Torsten, hast Du schon irgendwann mal in IBM-Templates LS-Code gesehen, von dem Du sagen könntest: "Wow!" oder "Das muss man sich zum Vorbild nehmen!"? Irgendwelche Konsistenz in der Erstellung und Notation? Sinnvolle Kommentare für spätere Bearbeitung / Erweiterung? Oder gar: "Die haben da wirklich vorbildliche Programmierer"?

Anfangs wurden Templates ja wirklich als Beispiele ausgeliefert, man verstand Notes als Middleware (ist es ja auch). Zu "ruhmreichen Beispielen" hat es aber auch mehr als zwanzig Jahre später nicht gereicht.

Bernhard

Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: WARNUNG: 8.5.3 Signatur- Funktion: Mieseste Code- Qualität
« Antwort #2 am: 07.03.12 - 06:51:40 »
Als ich zum ersten Mal von der Funktion im Rahmen des Design Partner Forums gehört habe, habe ich gedacht: "Wow, Klasse"
Als ich dann zum ersten Mal die Funktion ausprobiert habe, habe ich gedacht:"Hmm, OK, ist ja noch Beta";
Als dann 8.5.3. GOLD herauskam, habe ich mir den Code angesehen und gedacht:"Och, neeeee" ...  :-X

Sieht mir nach einer Arbeit eines Praktikanten aus.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: WARNUNG: 8.5.3 Signatur- Funktion: Mieseste Code- Qualität
« Antwort #3 am: 07.03.12 - 07:47:27 »
... irgendwo in der MailDB hab ich mal folgendes gefunden (sinngemäß):
@if (@lowercase(feld)="VergleichsWert"....)   ;D

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Glombi

  • Gast
Re: WARNUNG: 8.5.3 Signatur- Funktion: Mieseste Code- Qualität
« Antwort #4 am: 07.03.12 - 08:56:49 »
Die Formeln und Scripte in der Mailschablone sind einfach nur geil.  O0
Wäre schade, wenn IBM irgendwann mal einen da heranlassen würde, der das professionell macht  ;)

Ich liebe Kommentare wie
' <start> I don't think we need any of this -CS

' do not do this, it will fail if you update more than 1 user -CS
' Me.note.ReadCalendar = Fulltrim(result)


' MAPI UPDATE - if it fails, we still update the acl - because we can!
If Not InvokeAdminP() Then Call RaiseUIError(ERROR_ADMINP)

Sub RaiseUIError(nStringID As Integer)
      'this function is virtual so the WEB and Client can handle them thier own way   OR NOT AT ALL
   End Sub


Ein kleiner Auszug aus der Script Library ACLManagement...


 :love:

Andreas

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: WARNUNG: 8.5.3 Signatur- Funktion: Mieseste Code- Qualität
« Antwort #5 am: 07.03.12 - 10:01:59 »
Ja, dass IBM wohl nur Praktikanten an die Mailschablone lässt, den Verdacht habe ich auch schon lange. Leider muss man für manche Anforderungen (in meinem Fall die Signatur) wirklich direkt an die Mailschablone, weil andere Systeme (von Extern gesteuert) wiederum für den Benutzer "Nachteile" haben (in deren Augen).

Und das mit den Kommentaren bringt mich auch immer wieder zum schmunzeln "We need to do this, so that Button xyz is visible, this is a bug..."... ist nur ein Beispiel

Tja. Die IBMer kochen auch nur mit Wasser... aber leider halt in der Mailschablone schon über Jahrzehnte und wir müssen den Murks ausbaden...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline shiraz

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 648
  • Geschlecht: Männlich
Re: WARNUNG: 8.5.3 Signatur- Funktion: Mieseste Code- Qualität
« Antwort #6 am: 07.03.12 - 10:47:33 »
Zitat
Ja, dass IBM wohl nur Praktikanten an die Mailschablone lässt, den Verdacht habe ich auch schon lange.

vielleicht wird das Produkt mehr 'social'
« Letzte Änderung: 07.03.12 - 10:50:24 von shiraz »
Gruß
Christian

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: WARNUNG: 8.5.3 Signatur- Funktion: Mieseste Code- Qualität
« Antwort #7 am: 07.03.12 - 11:44:32 »
Da ist der Image-Vorteil ganz klar bei Outlook und Microsoft und allen anderen Mailclientanbietern, denen schaut keiner von draußen in den Code.

Oder glaubt irgendwer ernsthaft, dass da alles nur vom Feinsten ist (ohne, dass ich das jemals gesehen hätte ...)?

Wär' mal interessant, welche Qualität die OpenSource-Lösungen haben.

Ich finde es jedenfalls sehr gut, dass man sich die Quellen ansehen und im Bedarfsfall eine Änderung vornehmen kann. Dass dabei die teilweise nicht vorhandenen Fähigkeiten von einzelnen Personen offengelegt werden, ist halt dabei.

Mich würde ernsthaft die Entwicklungsqualität in wirklich wichtigen Anwendungen interessieren (was ist schon eine Mailschablone). AKW-Steuerungen, ABS, Airbus, Herzschrittmacher und, und, und.  Ich glaube, das Wissen darüber würde mich noch heute in den Garten treiben, um für die Arbeiten an meinem eigenen Bunker zu beginnen ...

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz