Ich liebe Lua und benutze es für immer mehr Projekte als die primäre (nicht eingebettete) Sprache. Mein aktuelles Projekt nähert sich 10.000 Linien und wird wahrscheinlich bei ungefähr 15.000 Linien enden. Was hast du bei der Entwicklung in Lua in dieser Größenordnung als nützlich erachtet? Wogegen hast du den Kopf gestoßen und welche Lösungen hast du gefunden? Ich denke über Entwicklungstools, Sprachfunktionen & amp; Techniken, Module von Drittanbietern?
Meine Top 3:
strict.lua - Ich benutze eine modifizierte Version davon. Ohne auf Zugriffe ungenutzter / unbeabsichtigter Variablen aufmerksam zu werden, würde ich verrückt werden.
Koroutinen - nicht für ihre Multithreading-Fähigkeit, sondern für ihre Fortsetzbarkeit. Sehr nützlich, um die Implementierung von State Machines zu vereinfachen.
Serialisierungsfunktion - unverzichtbar für das Auslagern von Tabelleninhalten und das Speichern von Tabellen auf der Festplatte (ich benutze dies oft, wenn ich sonst wahrscheinlich nach einer Datenbank gesucht hätte).
Meine Wunschliste:
Visueller Debugger für OS X. Ich benutze jetzt print () s, aber ein Debugger, der mir die Quelldateien in einem Schritt weitergibt, wäre großartig.
Eine Continue-Anweisung. Verwenden Sie die Wiederholung ..., bis eine echte Problemumgehung hässlich ist und zu viele verschachtelte ifs komplex und hässlich werden.
Ein Metamethode, das aufgerufen wird, wenn ein vorhandenes Tabellenelement geändert wird.
Irgendwelche anderen Tipps für eine größere Lua-Entwicklung?
Eine Continue-Anweisung. Verwendung der wiederhole ... bis die echte Problemumgehung ist hässlich und zu viele verschachtelte ifs werden komplex und hässlich.
Lassen Sie Ihren Schleifenkörper zu einem Funktionsaufruf werden; dann wird return
zu continue
.
Ein Metamethode, das aufgerufen wird, wenn ein Das vorhandene Tabellenelement wurde geändert.
Sie können dies selbst implementieren, indem Sie eine Proxy-Tabelle B verwenden, die alle tatsächlichen Daten für Tabelle A speichert - die newindex / index-Metamethoden auf A intercept schreibt / liest und ändert / sucht stattdessen aus Tabelle B. Da A nichts geschrieben wird, treffen alle Schreibvorgänge auf newindex.
Basierend auf Ihren Top3- und Wunschlisten, hier sind die Produkte, an denen ich gearbeitet habe und die ich empfehlen kann (zumindest basierend auf dem Feedback, das ich erhalten habe):
Tags und Links lua