Come si fa a distinguere programmaticamente tra un feto PROFESSIONALE e un feto DILIETANO? - pagina 7

 

Tutte le funzioni di stringa sono costose.

Tutte le funzioni grafiche sono costose.

Più elementi del grafico - più rallenta (quindi, per accelerare il lavoro in modalità visiva, cancella periodicamente le icone dell'ordine (soprattutto se ce ne sono molte)).

Il più dispendioso in termini di tempo sarebbe WinowsRedraw() e Comment() poiché il grafico viene anche ridisegnato quando lo si chiama.

Ecco come appare a prima vista.

 

Il problema è che il codice può essere scritto da un professionista e con molta competenza (senza caratteristiche e disegni costosi), ma può incarnare l'assoluta assurdità che gli è stata commissionata.

Non è più interessante.

 
Mathemat:

Il problema è che il codice può essere scritto da un professionista e in modo molto competente (senza caratteristiche e disegni costosi), ma può incarnare l'assoluta assurdità che gli è stata commissionata.

Non è più interessante.

Per come la vedo io, un programmatore professionista deve scrivere per se stesso, come uno scrittore o un compositore, e su ordinazione, anche professionalmente, necessariamente con un vero risultato positivo. Un'altra cosa è se gli viene chiesto di scrivere sull'idea del cliente (TOR), nonostante il fatto che la sua idea sia inconcludente per il programmatore, nel qual caso il programmatore avverte che è improbabile che il cliente lavori con la punta, ma il cliente insiste e il programmatore esegue l'ordine. Capisco che le specifiche sono diverse qui e che nessun capolavoro resisterà alla prova del tempo, ma sono d'accordo che ci sono esempi di longevità (verificati dal tester) nel mercato su MT5 per tutta la storia. Penso che questo sarà il punto di partenza per determinare la professionalità del programma e del programmatore, così come il commerciante, non perché sa, sa come, ma dal risultato. Naturalmente, questo lavoro professionale deve avere un prezzo adeguato. E non si proibisce a nessuno di fare un lavoro scadente, come spesso fanno scrittori e compositori, trattandolo con condiscendenza come un lavoro part-time forzato "per mantenere i pantaloni". Perdona la mia franchezza, ma senza di essa, perché parlare!

 
L'ispirazione non è in vendita. Ma si può vendere un manoscritto.
 

Dimitri, definisci ciò che il tuo analizzatore dovrebbe essere in grado di fare. Distinguere un buon codice da uno cattivo è un compito; distinguere una buona idea da una cattiva è un altro. E mentre nel primo caso si può cercare di trovare soluzioni automatiche, nel secondo caso è difficile da fare anche in modalità manuale, e anche in modalità automatica è semplicemente irreale. Ma dal momento che abbiamo iniziato a parlare di un analizzatore che può distinguere il buon codice dal cattivo, discutiamo l'argomento:

Cosa distingue un professionista da un dilettante, in primo luogo? Secondo me, è il livello di conoscenza della lingua, che si mostra attraverso una varietà di modi di usare la lingua. Quindi, se uno sviluppatore usa una notazione non banale e algoritmi come la ricorsione, è più probabile che sia un programmatore professionista. Su questa base, possiamo costruire un sistema esperto che analizza il codice e calcola il numero di "trucchi" utilizzati in esso. Ogni chip riceve dei punti. Se un chip è, al contrario, negativo, vengono imposte delle sanzioni. Così si ottiene un numero o un punteggio totale che caratterizza il codice nel suo insieme. Per esempio, si può fare una specie di tabella di ponderazione:

Il punto è.
Punteggio
Uso degli array
+1
Riutilizzo del codice (rapporto tra funzioni e linee di codice)
+4
Operatori += -= /=
+1
Operatori % >> <<
+3
Chiamata di funzione ricorsiva
+5
Uso delle direttive del preprocessore
+3
Numero di linee commentate alla quantità di codice
+5
Uso di funzioni "lente
-3
Usare variabili dello stesso tipo: time1, time2, time3, time4
-4

Come risultato, il sistema esperto calcola il peso di ciascuno dei parametri e dà un punteggio totale che caratterizza la qualità generale del codice.

 

Ragazzi, l'unico modo per capire la differenza tra codice pro e codice rookie è avere i risultati dell'ottimizzazione del codice. Non sarà in grado di tracciare il 100% dell'ottimizzazione. Si possono rintracciare solo alcuni dei suoi elementi. E anche un principiante può eseguire un'ottimizzazione parziale. Per esempio, sostituite l'operazione "moltiplicare per due" con l'operazione "aggiungere un valore a se stesso". Lascia perdere, l'idea del tracciamento è troppo dispendiosa in termini di risorse rispetto al risultato che può dare. Non è redditizio investire in un prog - è un tentativo di tagliare un fiammifero da un tronco - un fiammifero come prodotto, e il resto come trucioli.

 
drknn:

Ragazzi, l'unico modo per capire la differenza tra codice pro e codice rookie è avere i risultati dell'ottimizzazione del codice.

Teste di cazzo ))
 

Segni di codice professionale:
Nomi significativi di variabili e funzioni;
Buona struttura del programmanavigabile;
Buoni commenti.

È possibile cercare tali caratteristiche solo manualmente nel software. L'automazione non funzionerà.

SZY Tutto questo dovrebbe essere cercato nei programmi scritti da un programmatore per se stesso.
Ai nostri tempi, un programmatore che si rispetti non darà questo codice ad altri.

 
FAQ:

Tutte le funzioni di stringa sono costose.

Tutte le funzioni grafiche sono costose.

Più elementi del grafico - più rallenta (quindi, per accelerare il lavoro in modalità visiva, cancella periodicamente le icone dell'ordine (soprattutto se ce ne sono molte)).

Il più dispendioso in termini di tempo sarebbe WinowsRedraw() e Comment() poiché il grafico viene anche ridisegnato quando lo si chiama.

Ecco come appare a prima vista.


Sono interessato a ottimizzazioni più veloci (i test sono un problema a parte) e a un consumo di memoria ridotto.
La questione di accelerare le ottimizzazioni (i test sono una questione a parte) e di ridurre il consumo di memoria. Sul forum qualcuno ha casualmente menzionato che è necessario per evitare di "aggiungere" grafici
durante l'ottimizzazione. In teoria, l'ottimizzazione non vede affatto la grafica e ho pensato che tale
Ho pensato che comandi come ObjectCreate() sono semplicemente ignorati durante l'ottimizzazione.
Devo bloccarli o no?
Ma se devi ancora disabilitarli, significa che dobbiamo aggiungere un controllo ogni volta che
if(IsOptimization()==false ) {
}
Allo stesso tempo, tali controlli influenzano la velocità di ottimizzazione.
Le funzioni di controllo dello stato sono costose?
Ha senso assegnarli alle variabili e usarli in seguito?
Ho quasi sempre Comment() - dovrebbe anche essere bloccato durante l'ottimizzazione?
Che dire di Alert e Print? (di nuovo - durante l'ottimizzazione). Non vengono scritti nel log durante l'ottimizzazione, vero?
 
chief2000:

E se avete ancora bisogno di bloccarli, significa che ogni volta dovrete aggiungere un controllo

Basta non

if(IsOptimization()==false ) {
}

а

if( !IsOptimization() ) {
}

Ma è meglio farlo in questo modo:

if ( !IsOptimization() && ( !IsTesting() || IsVisualMode() ) ) {

// ...

}

Questa condizione può essere fatta una volta e impostare il valore di qualche bandiera, che può poi essere usata per controllare se le informazioni testuali e grafiche devono essere visualizzate sul grafico.

PS.

E in generale, perché sei così vivace? Il topicstarter di tanto in tanto indica che tu..., e da D'Artagnan.