Nel mio attuale lavoro sto costruendo una suite di script Perl che dipendono fortemente dagli oggetti. (usando Perl's bless()
su un hash per avvicinarsi il più possibile a OO)Simulazione degli aspetti della tipizzazione statica in una lingua con dattilografia
Ora, per mancanza di un modo migliore di farlo, la maggior parte dei programmatori della mia azienda non sono molto intelligenti. Peggio, a loro non piace leggere la documentazione e sembrano avere problemi a capire il codice di altre persone. La codifica dei cowboy è il gioco qui. Ogni volta che incontrano un problema e cercano di risolverlo, escogitano una soluzione orrenda che in realtà non risolve nulla e di solito lo rende peggiore.
Questo risultato in me, francamente, non mi fido di loro con il codice scritto in lingua dattiloscritta. Ad esempio, vedo troppi problemi con loro che non ottengono un errore esplicito per l'uso scorretto degli oggetti. Ad esempio, se il tipo A
ha il membro foo
e fanno qualcosa del tipo, instance->goo
, non vedranno immediatamente il problema. Restituirà un valore nullo/indefinito e probabilmente perderanno un'ora a trovare la causa. Quindi finisce per cambiare qualcos'altro perché non hanno identificato correttamente il problema originale.
Quindi sono un brainstorming per un modo per mantenere il mio linguaggio di scripting (il suo rapido sviluppo è un vantaggio) ma fornire un messaggio di errore esplicito quando un oggetto non viene utilizzato correttamente. Mi rendo conto che dal momento che non esiste una fase di compilazione o una digitazione statica, l'errore dovrà essere in fase di esecuzione. Sto bene con questo, fintanto che l'utente ottiene un avviso molto esplicito dicendo "questo oggetto non ha X"
Come parte della mia soluzione, non voglio che sia richiesto che controllino se esiste un metodo/variabile prima di provare ad usarlo.
Anche se il mio lavoro è in Perl, penso che questo possa essere indipendente dal linguaggio.
Dato che sei in questo ambiente, scrivendo in Perl mentre ammetti che i tuoi colleghi non lo capiscono ... Sembra che tu sia parte del problema! – Stephen
non sto usando Perl per scelta. era o questo o sh secondo la direzione. – Mike
sono in una posizione di leadership, ma i burocrati prendono decisioni tecniche. Sto lavorando per cambiare questo, ma non ho ancora l'influenza di cui ho bisogno. – Mike