Amo Lua, utilizzandolo per un numero sempre maggiore di progetti come lingua principale (non incorporata). Il mio attuale progetto si avvicina a 10.000 linee e probabilmente finirà con circa 15.000 linee. Cosa hai trovato utile quando si sviluppa in Lua a quella scala? Su cosa hai sbattuto la testa e quali soluzioni hai trovato? Sto pensando a strumenti di sviluppo, funzionalità linguistiche tecniche &, moduli di terze parti?Cosa renderebbe più semplice lavorare davvero con Lua?
mia top 3:
strict.lua - io uso una versione modificata di questa. Sarei impazzito senza essere allertato per accedere a variabili inutilizzate/non intenzionali.
coroutine - non per la loro capacità di multithreading, ma per la loro continuità. Molto utile per semplificare l'implementazione di macchine a stati.
funzione di serializzazione - indispensabile per il dumping del contenuto della tabella e per le tabelle persistenti su disco (lo uso molte volte quando altrimenti avrei probabilmente raggiunto un database).
La mia lista:
visivo debugger per OS X. Sto usando print() s ora, ma un debugger che mi avrebbe lasciato un solo passo attraverso file di origine sarebbe grande.
Un estratto conto. Usando la ripetizione ... fino a quando la vera soluzione è brutta, e troppi if se nidificati diventano complessi e brutti.
Un metametodo richiamato quando un membro di tabella esistente viene modificato.
Altri suggerimenti per lo sviluppo di Lua su larga scala?
Sfortunatamente, questo non funziona molto bene per le tabelle annidate. Ho creato una 'funzione' ricorsiva che verifica se il nuovo valore è una' table', e imposta anche il suo 'metatable' su questa stessa' funzione', quindi posso collegarla. Il problema è, cosa fare quando è un altro 'tipo primitivo'? Ho due tabelle nidificate e una 'stringa' in una delle tabelle interne che è indicizzata da' "ragione" ', come rilevare le modifiche in quella' stringa' fornito il valore iniziale prima che la modifica non fosse 'nil'? – henry700
OH! Devo solo implementare questo proxy programmaticamente! – henry700