Il mio approccio. Il nucleo è il motore. - pagina 15

 
Реter Konow:

Vedrete che un array di prototipi viene creato una volta sola. E poi, viene cambiato MOLTO raramente. Solo in caso di gravi modifiche del programma.

E se volete farlo in modo dinamico?

 
Dmitry Fedoseev:

Come possono coesistere insieme queste due disposizioni: la mancanza di comodità per il programmatore e il rapido sviluppo del programma? Come si può sviluppare un programma rapidamente se è scomodo farlo?

È tutta una questione di proporzioni. L'inconveniente di fare una serie di prototipi è ovvio. La comodità dell'accesso diretto al kernel da qualsiasi punto del programma, l'uso del focus degli elementi e altre cose è ENORME.

In breve, nel mio approccio c'è molta più convenienza che scomodità. Ma, per questo, devi imparare a possederlo.

 
Vitalii Ananev:

E come farete se è necessario fare non un bottone rettangolare, ma per esempio uno rotondo o triangolare?

Se usate OOP, dovete creare una classe base Button, che ha un metodo astratto Draf, responsabile del disegno dei pulsanti. Per un pulsante rotondo, dovrete creare un erede di Button, che sarà sufficiente per sovrascrivere il metodo Draf, che implementerà il disegno del pulsante rotondo. Per un pulsante rettangolare, basterà anche creare un erede di Button e sovrascrivere il metodo Draf per disegnare un pulsante rettangolare.

Come sarebbe il tutto se usassi il tuo metodo?

Nel mio caso, è MOLTO più semplice.

1. Aggiungo una proprietà bandiera all'elenco delle proprietà dell'oggetto.

2. Aumento la lunghezza della riga Kernel di 1 cella, che sarà riservata alla nuova proprietà.

3. Creo una parola chiave che imposta un flag nella proprietà circle del pulsante.

4. Aggiungo un meccanismo di disegno del cerchio al blocco Drawing, che sarà inserito dopo aver controllato il flag del cerchio del pulsante nel Kernel.

 
Реter Konow:

È tutta una questione di proporzioni. L'inconveniente di mettere insieme un prototipo di array è ovvio. La comodità dell'accesso diretto al kernel da qualsiasi punto del programma, usando il focus degli elementi e altre cose è MOLTO di più.

In breve, nel mio approccio c'è molta più convenienza che scomodità. Ma, per farlo, bisogna imparare a possederlo.

Ti sbagli di grosso sulla convenienza di accedere a un array globale. Ora è uno, o diversi. E se ci sono diversi sottosistemi scritti in questo stile in un programma, sarà un casino, caos e confusione.

 
Dmitry Fedoseev:

Ti sbagli di grosso sulla comodità di accedere a un array globale. Ora è uno, o diversi. E se ci sono diversi sottosistemi scritti in questo stile nel programma, sarà un casino, caos e confusione.

Ci sono diversi nuclei nel programma, che vengono utilizzati solo durante la fase di costruzione dei nuclei principali. Solo il Main Kernel e il Parameter Kernel (il kernel delle proprietà dei parametri di controllo) sono accessibili globalmente.

Tutto è abbastanza pratico. Non ho lamentele.

 
Реter Konow:

Ci sono diversi kernel nel programma, che vengono utilizzati solo durante la fase di costruzione del kernel principale. Solo il Main Core e il Parameter Core sono accessibili globalmente.

Tutto è abbastanza pratico. Non mi sto lamentando.

E quanti clienti avete e quanto velocemente fate le loro revisioni? Avete mai lavorato con programmi di altre persone scritti in questo stile?

 
Реter Konow:

Nel mio caso, è MOLTO più semplice.

1. Aggiungo una proprietà bandiera all'elenco delle proprietà dell'oggetto.

2. Aumento la lunghezza della riga Kernel di 1 sola cella, che sarà riservata alla nuova proprietà.

3. Creo una parola chiave che imposta un flag nella proprietà circle del pulsante.

4. Aggiungo un meccanismo di disegno del cerchio al blocco Draw, che sarà inserito dopo aver controllato il flag del cerchio del pulsante nel Kernel.

Quando comincerete a farlo davvero, vi confonderete con tutti i vostri presunti "oggetti".

E non diventa più facile. Nel tuo caso (come tu stesso hai scritto) devi fare 4 passi. Nel mio esempio usando SRF, c'è solo un'azione.

aggiornato.

Allo stesso tempo, devi anche controllare qualche bandiera per non confondere se il tuo pulsante è rotondo o quadrato.

 
Dmitry Fedoseev:

Quanti clienti avete e quanto velocemente completate le loro revisioni?

Al momento ho un solo cliente. Completo i loro compiti molto rapidamente. 3-4 ore e una nuova finestra completamente funzionale è pronta. Insieme all'interfaccia di connessione. Inoltre, correggo rapidamente i bug nel motore e gli invio nuove versioni. 9 finestre in pochi giorni + modifiche al motore, correzioni di bug, aggiunta di caratteristiche... Tutto molto veloce.

 
Реter Konow:

Tutto è abbastanza confortevole. Non mi sto lamentando.

Bene, capite che voi da soli non siete sufficienti. La massività del tuo motore dipenderà dal fatto che piaccia ad altri programmatori (tu da solo non sei sufficiente per tutti i clienti). E se ai progenitori non piace, allora... ahimè e ah, il destino della tua creazione sarà glorioso.

 
Vitalii Ananev:

Quando cominci a fare davvero questo, poi ti confondi con tutti i tuoi presunti "oggetti".

E non diventa più facile. Nel tuo caso (come hai scritto tu stesso), devi fare 4 azioni. Nel mio esempio con RPF, c'è solo un'azione.

aggiornato.

Allo stesso tempo devi anche controllare qualche bandiera, in modo da non confondere quello che il tuo pulsante è rotondo o quadrato.

In realtà lo faccio da più di un anno ormai. E non mi confondo)).

Motivazione: