2010-08-27 23 views
13

Sto sviluppando un'applicazione utilizzando strumenti sbagliati. Non voglio entrare nei diritti o torti di questo - la piattaforma è stata benedetta come Strategica e nulla cambierà ora. Ma spero che qualcuno possa darmi qualche consiglio su come sfruttare al meglio la situazione.Suggerimenti per la codifica utilizzando strumenti ostili?

Utilizziamo un linguaggio lato server, chiamiamolo X e HTML/JS/CSS lato client (su IE6). X è primitivo dal punto di vista dello sviluppo di un'applicazione (ma eccellente per l'elaborazione dei dati, motivo per cui lo stiamo usando); non ha nemmeno il concetto di funzioni definite dall'utente, quindi provare a rendere l'applicazione modulare in qualsiasi modo è una sfida. Pensa a decine di migliaia di righe di istruzioni if ​​/ then/else annidate.

Il mio assunto attuale è che ridurre il fattore spaghetti del codice non sarà possibile e che la documentazione davvero eccezionale è la mia unica arma contro questo diventare un incubo totalmente insopportabile che finisce su TheDailyWTF.

Qualcuno ha altre idee?

(io non parlare di quello che X lingua è semplicemente perché sto sperando in risposte al problema generale di lavorare con strumenti carenti, e non tutte le tattiche specifiche per X.)

Edit:

Ok, per i morbosi curiosi, X è SAS. Non volevo che la domanda si focalizzasse sul fatto che le macro in stile funzione sono funzioni (non sono, e non possono implementare schemi di progettazione), o la colpa - dati i vincoli di questo particolare progetto, in realtà sono d'accordo con la decisione di usare esso! Sono anche sicuro che la maggior parte del software è sviluppata in ambienti incredibilmente non ottimali (strumenti rotti, cattiva gestione, onerosi oneri ereditari, ecc.) E che ci devono essere strategie per far funzionare le cose anche così.

+10

Se la domanda ottiene risposte decenti, vuoi dirci cosa è X? ;) – Max

+0

Hmmm ... purtroppo X suona molto familiare :) –

+0

Sì, ho fatto del mio meglio, e spero di arrivare a sapere che cosa è X, troppo;) –

risposta

2

fa X hanno commenti?

Scrivi la piccola lingua aka pseudo codice nei commenti.

1

Oltre alla documentazione, le scelte di nomi di variabili e convenzioni per come vengono utilizzati possono aiutare un po '. Inoltre potresti essere in grado di impostare alcune convenzioni strutturali nel codice in modo che ci sia una certa regolarità. Un tempo, quando, quando la gente scriveva assemblatore, i buoni codificatori producevano codice leggibile.

0

È possibile utilizzare una tecnologia diversa, più adatta al problema tra X e lato client?

In alternativa, è possibile utilizzare più istruzioni IF/Then/else per costruire blocchi di codice modulari, che potrebbero essere utili per la manutenzione.

8

Hai familiarità con Church thesis?

Se non è possibile risolvere "A" in Y, ma è possibile emulare Z in Y e Z può risolvere "A", quindi per definizione Y può risolvere "A".

Forse potresti scrivere una routine generalizzata che in qualche modo rende X più efficace per il problema in questione? Una sorta di estensione a X, o, ancora meglio, una little-language implementata in X?

Sembra che gli altri tendano a confondere "linguaggio piccolo" con la documentazione. Mentre tu puoi provare ad andare in quel modo (in questo caso ti suggerisco di dare un'occhiata a Robodoc) stavo pensando qualcosa più vicino a Wasabi, in approccio - cioè usando veramente lo strumento X per creare una sorta di interprete per X ++ o anche Y, senza sapere cosa sia X non posso essere, ovviamente, più specifico di quello.

1

hmmmm, suona come un altro sviluppatore MUMPS/Intersystems Cache;)

Seriamente, però, si potrebbe desiderare di controllare se ci sono strumenti per 'X' che potrebbe mappare il flusso del programma, o come parte di il processo di documentazione apre qualcosa come Visio o un altro strumento simile in cui è possibile esaminare il codice e mappare ciò che fa (più o meno). La parte più difficile sarebbe probabilmente dover tornare indietro e fissare quel muro di codice e saltare subito indietro in modo che tutto ciò che puoi fare per documentarlo/grafico/grafico aiuterà.

0

trovo difficile credere che non si dispone di alcuna forma di funzioni definite dall'utente disponibili in X - anche file batch hanno funzioni (tipo di)

Non appena si dispone di funzioni, si possono fare le cose almeno abbastanza modulare.

0

È possibile trovare una lingua che ti piace e implementare il solito "schiaffi alcuni dati in un modello" in -level di web-app e implementare i wrapper per chiamare "X" per le cose in cui è buono .

Problemi correlati