Du bist nicht angemeldet. [Anmelden]
Optionen
Thema bewerten
Eine LazyNewsletter Klasse - #2745089 - 11.08.2015, 10:48:56
Vampiric Desire
​ChannelMaster

Registriert: 15.09.2013
Beiträge: 1.681
Hallo Leute, ich habe für meine Projekte eine LazyNewsletter Klasse programmiert und wollte die gerne mit euch teilen. Die Klasse funktioniert ohne ein Framework und kann in der Vanilla-API genutzt werden.



Hier erhaltet ihr mehr Informationen.
https://bitbucket.org/knuddels/user-apps/wiki/OpenSource/LazyNewsletter%20Klasse


Bearbeitet von Vampiric Desire (11.08.2015, 10:51:56)
_________________________
/apps install 30559674.ChannelMaster

[zum Seitenanfang]  
Re: Eine LazyNewsletter Klasse [Re: Vampiric Desire] - #2745092 - 11.08.2015, 11:48:25
Bizarrus
​Bizzi is activated.

Registriert: 29.07.2006
Beiträge: 2.582
Ort: Dortmund
Ich war mal so frei und hab einige Kleinigkeiten ergänzt:
  • Comments für Docs
  • Methoden-Namen gesetzt


Gewöhnt euch dies am besten auch an, denn dies erleichtert das Debuggen enorm!
Der Unterschied darin besteht dass ihr bei Fehlermeldungen dann auch die Methoden seht. Ich gebe ein Beispiel:

Ihr habt folgende Beispielmethode:
Warnung! Spoiler!
Code:
this.createInstance = function() {
    // Dein Code
};


die folgenden StackTrace erzeugt:

Warnung! Spoiler!
Code:
App-Logs (privat an Dich, Vampiric Desire): Ligatipps: ERROR: ReferenceError: "Tipps" is not defined. (knuddelsDEV.30558139.Ligatipps@v0: main.js#67(eval)#1)
at knuddelsDEV.30558139.Ligatipps@v0: main.js#67(eval):1
	at knuddelsDEV.30558139.Ligatipps@v0: main.js:67 (anonymous)
	at knuddelsDEV.30558139.Ligatipps@v0: main.js:79 (CommandsEach)
	at knuddelsDEV.30558139.Ligatipps@v0: classes/KFramework.min.js:54 (each)
	at knuddelsDEV.30558139.Ligatipps@v0: main.js:77 (onAppStart)

Und achtet besonders auf folgende Zeile:
Warnung! Spoiler!
Code:
at knuddelsDEV.30558139.Ligatipps@v0: main.js:67 (anonymous)


Benennt einfach die Anonyme Methode mit:

Warnung! Spoiler!
Code:
this.createInstance = function createInstance() {
    // Dein Code
};


die folgenden StackTrace erzeugt:

Warnung! Spoiler!
Code:
App-Logs (privat an Dich, Vampiric Desire): Ligatipps: ERROR: ReferenceError: "Tipps" is not defined. (knuddelsDEV.30558139.Ligatipps@v0: main.js#67(eval)#1)
at knuddelsDEV.30558139.Ligatipps@v0: main.js#67(eval):1
	at knuddelsDEV.30558139.Ligatipps@v0: main.js:67 (createInstance)
	at knuddelsDEV.30558139.Ligatipps@v0: main.js:79 (CommandsEach)
	at knuddelsDEV.30558139.Ligatipps@v0: classes/KFramework.min.js:54 (each)
	at knuddelsDEV.30558139.Ligatipps@v0: main.js:77 (onAppStart)


Und schon seht ihr im StackTrace um welche Methode es sich handelt:

Warnung! Spoiler!
Code:
at knuddelsDEV.30558139.Ligatipps@v0: main.js:67 (createInstance)


So könnt ihr viel schneller zum Problem finden ;-)


Bearbeitet von Ironist (11.08.2015, 13:57:29)
Bearbeitungsgrund: Quellcode gespoilert

[zum Seitenanfang]  
Re: Eine LazyNewsletter Klasse [Re: Bizarrus] - #2745388 - 13.08.2015, 17:43:17
Enrico-nrp
​Kellerkind

Registriert: 17.03.2006
Beiträge: 151
... oder man schaut in Zeile X, die Information kommt in beiden Varianten und auch im StackTrace bleibt die Zeilennummer korrekt, selbst bei anonymen Funktionen. So debugge ich zum Beispiel. Den Methodennamen sieht man dann ja im Code.

Wer den Namen aber gleich wissen will, für den ist das aber die bessere Art und Weise, stimmt schon.

Danke für die nützliche kleine Klasse! :)

[zum Seitenanfang]  
Re: Eine LazyNewsletter Klasse [Re: Enrico-nrp] - #2745941 - 18.08.2015, 10:14:19
TobyB
​Knuddelsteam

Registriert: 21.11.2003
Beiträge: 6.742
Antwort auf: Enrico-nrp
... oder man schaut in Zeile X, die Information kommt in beiden Varianten und auch im StackTrace bleibt die Zeilennummer korrekt, selbst bei anonymen Funktionen.

Das stimmt aber nur dann, wenn die Datei die gerade von der App benutzt wird, also die im Remote-Directory, die selbe ist wie die die du lokal zum programmieren nutzt. Bei mir z.B. stimmt das so gut wie nie, da ich lokal noch uncommitted changes habe (habe Git dazwischen geschaltet). Dann helfen diese Methodennamen enorm.
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.

[zum Seitenanfang]  


Moderator(en):  Misterious