Gli strumenti di progettazione degradano l'esperienza di programmazione? [chiuso]

10

Mi sono guardato intorno ultimamente, in particolare su alcuni degli strumenti MS disponibili, e sto notando un grande interesse per gli strumenti di progettazione e le procedure guidate. Non solo per lo sviluppo dell'interfaccia utente ma per tutto.

  • Entity Framework ha il modellatore
  • Servizi RIA ha il / i wizard / i di DomainService
  • Il flusso di lavoro ha l'intero designer del workflow ... (non lo so, non l'ho davvero usato)

C'è di più, ma penso che tu abbia l'idea. Ci sono molti strumenti di design. Usando alcuni di questi trovo che:

Complicano le cose oltre i casi d'uso prescritti

(ovvero tutti i video dimostrativi della tecnologia)

Di recente ho valutato alcune di queste tecnologie, e provando a lavorare con loro, finisco per dover analizzare esattamente ciò che i progettisti, i modellatori e i maghi stanno facendo per me ... altrimenti sono perso quando devo effettivamente prova a fare qualcosa con tutto ciò che è stato creato.

Questo finisce per essere un caso in cui devo combattere lo strumento, o combattere la sua uscita in modo tale che avrei potuto fare tutto da solo senza di esso - e ho avuto una molto comprensione più strong di cosa sta succedendo. Trovo questo particolarmente esasperante con il wizard di Silverlight Designer e RIA Services Domain Service.

Mi trovo a chiedere "A che serve questo strumento se devo capire il suo funzionamento interno o riscrivere metà del suo output per usarlo?"

Non sono così veloci

Il punto di forza di questi strumenti è aumentare la produttività e questo punto può cambiare nel tempo usando lo strumento, e non si applica necessariamente ai progettisti dell'interfaccia utente (anche se, in alcuni casi, lo fa ancora - > sto guardando designer di Silverlight). Trovo che posso hackerare un po 'di codice molto più velocemente di quanto non possa trascinare, ridimensionare, spostare, qualsiasi cosa in un designer.

L'interfaccia utente interferisce con il modello

Forse sono solo io, ma quando uso qualcosa che ricorda uno strumento di progettazione UML, finisco per passare più tempo a sistemare tutto in modo che le mie linee non si incrocino e così posso vederlo tutto sullo schermo piuttosto che modellando ciò che sto cercando di ottenere.

Non sono divertenti

La metà del motivo per cui codice per vivere è che mi piace. Fare clic sulle caselle di controllo e selezionare le caselle combinate e quindi correggere tutto ciò che viene fuori non è divertente.

Non sembra che sia solo

Anche la comunità sembra non vuole questi strumenti. Il miglior esempio a cui riesco a pensare al momento è Entity Framework Code-First.

Quindi chiedo:

  1. Gli strumenti di progettazione in realtà migliorano la produttività?
  2. Sono divertenti assassini?
  3. La "comunità" in realtà richiede più strumenti di progettazione, oppure i venditori pensano che siamo?
posta Steven Evers 18.12.2010 - 01:03
fonte

7 risposte

7

La mia ipotesi è che gli buoni strumenti di progettazione aumentino la produttività e non tengano il "divertimento". Tuttavia, è solo un'ipotesi perché non ho ancora trovato un buon strumento di progettazione.

Personalmente non ho chiesto strumenti di progettazione.

    
risposta data 18.12.2010 - 03:05
fonte
4
  1. Penso che probabilmente dipenda. Se sei uno sviluppatore abbastanza inesperto, utilizzare gli strumenti di progettazione è probabilmente più produttivo della digitazione. Sono abbastanza sicuro di essere più produttivo nei miei primi VB6 giorni usando il designer di quanto non lo avrei fatto a mano. L'altra cosa da considerare è come la tecnologia (almeno come l'IDE la presenta) si presta all'editing manuale. VB6 e .NET WinForms certamente no (o meglio probabilmente non si vuole modificare manualmente il file di codice "generato" (o parte di). Con WPF e ASP.NET penso che uno sviluppatore abbastanza inesperto inizi con designer, ma presto si è laureato a modificare direttamente XAML / ASP. Una volta che sai cosa stai facendo è certamente più veloce modificare direttamente il markup. Ripensando a EF v1.0, ho dovuto modificare il supporto XML del designer e mi ha fatto schifo non ho mai potuto avvolgere il mio cervello intorno così ho continuato a ricorrere al designer.

  2. Dipende se il markup è divertente con cui lavorare. WPF e ASP (.NET) possono essere divertenti. VB6 / WinForms - No, non voglio modificare le sezioni di codice generate più del necessario.

  3. Non penso che la comunità faccia esplicitamente. Sebbene quando apprende qualcosa di nuovo, il progettista può rendere più facile deglutire in blocchi di apprendimento.

risposta data 18.12.2010 - 01:21
fonte
2

come al solito, dipende

Quando ho studiato per la prima volta utilizzando i servizi web, Java aveva un'esercitazione di 50 pagine e .NET aveva una procedura guidata. Indovina quale è stato usato?

    
risposta data 18.12.2010 - 15:45
fonte
1

Lo stesso qui, nessuno strumento di progettazione.

Io disegno il database ERD su carta e scrivo un deployer che emette le istruzioni "crea tabella", in questo modo posso cancellare e ricostruire a piacere. Aiuta anche per il controllo delle versioni del database.

Trovo che la carta 11x17 (A3) possa essere un ottimo punto di partenza per progettare sistemi molto compelex. Ottieni una buona gomma e matite (io preferisco Staedtler ).

    
risposta data 18.12.2010 - 03:27
fonte
1

Dal punto di vista del fornitore, tutti questi fantasiosi strumenti di progettazione sembrano avere uno scopo simile alle licenze per studenti scontati / gratuiti. L'idea è di permetterti di creare qualcosa con il minimo sforzo e costo. Una volta investito, scommette che imparerai ad espandere le tue abilità con i loro strumenti piuttosto che a imparare qualcun altro.

Questo non vuol dire che gli strumenti non abbiano usi produttivi legittimi. dovrebbe essere prezioso per esaminare il codice generato e imparare da esso. Sfortunatamente, come notato da Ken Henderson, il codice è spesso illeggibile e non è qualcosa che si desidera utilizzare come modello per il lavoro futuro. Mi vengono in mente diverse sezioni in Programmazione di servizi WCF , in cui l'autore spiega come scrivere codice manualmente o averlo generato da Visual Studio. Inevitabilmente, l'opzione generata richiede una sezione di follow-up per la rimozione del codice estraneo.

    
risposta data 11.05.2011 - 13:06
fonte
0

Gli strumenti di progettazione migliorano effettivamente la produttività?

Possono purché il tuo progetto sia semplice e non troppo complesso per loro. La mia esperienza ha colpito il muro non appena si tenta di implementare / risolvere un problema del mondo reale.

Sono divertenti assassini?

WF (flusso di lavoro) & WPF divertente ma anche killer quando il VS 2008 si è schiantato ogni 30 minuti.

La "comunità" in realtà richiede più strumenti di progettazione o i venditori pensano semplicemente che siamo?

Ultimamente molti strumenti rilasciati da MS sembrano essere tentativi disperati di mantenere gli sviluppatori. La battaglia sta andando avanti nel mercato degli smart phone. Chi vincerà il cuore di sviluppatori, MS, Google o Apple?

    
risposta data 18.12.2010 - 01:31
fonte
0

È sempre stato il modo, anche nella giornata in cui eravamo abituati a distinguere tra sviluppatori che sapevano solo come fare clic sulle procedure guidate e sviluppatori che conoscevano il codice generato dai wizard e potevano modificarlo per i casi limite.

Il fatto che tu abbia ancora più strumenti, maghi e designer che fanno tutto sotto le coperte per impedirti di tagliarti sui taglienti è un vantaggio per gli sviluppatori che non vogliono sapere, o non lo fanno avere l'ampiezza di esperienza o abilità per comprendere il codice generato. Immagino che ci sia un punto debole tra ciò che vuoi che il computer faccia per te, e ciò che devi fare da te in quanto l'alternativa sono i linguaggi di programmazione interamente basati sul trascinamento dei blocchi su un modulo. (Ero abituato a lavorare solo su un ambiente specifico del dominio, non vorrei usarlo!)

    
risposta data 11.05.2011 - 12:06
fonte

Leggi altre domande sui tag