Discussão do artigo "Interfaces Gráficas XI: Refatoração do código da biblioteca (build 14.1)" - página 3

 
Anatoli Kazharski:

Não há mais nada vindo de você além de tagarelice. )

Tudo o que foi feito certamente não foi porque você disse isso. Tudo isso foi planejado desde o início e publicado estritamente em uma determinada sequência. Mas é claro que você pode pensar de outra forma e continuar, como você diz, no "caos de uma busca desesperada por uma nova versão de si mesmo". Não me importo. )


Eu também disse que o crescimento tecnológico é condicionado não apenas pela extensão e adição de funcionalidade, mas também pela compressão e universalização do código. Combinando funções díspares em blocos. Isso é exatamente o que você demonstrou no artigo.

Você repetidamente fundiu várias classes em uma só e comprimiu o código. Ao mesmo tempo, as classes se tornaram mais universais no sentido de que uma classe contém vários elementos semelhantes e sua seleção é realizada pelo modo. Isso é compressão e universalização.

Mais uma vez, eu estava certo.


Então, onde eu estava errado?

É claro que você não fez tudo por causa do que eu disse. Eu sei disso. Mas eu estava certo no que disse.

 
Anatoli Kazharski:

Lembra-se da única maneira de se livrar de um troll? Isso mesmo, não o alimente.

 
Andrey Khatimlianskii:

Lembra-se da única maneira de se livrar de um troll? Isso mesmo, não o alimente.

Eu lhe darei algumas explicações. Para a sobremesa. )

Retag Konow:

...

É claro que você não fez tudo por causa do que eu disse. Eu sei disso. Exceto que eu estava certo no que estava dizendo....

Quem se importa se você está certo ou errado? ) Independentemente do que os outros lhe digam, você ainda é o que pensa que é. )

Você disse coisas que são evidentes e que foram apontadas para você desde o início. Mas, além disso, você também divulgou muitas bobagens. Por exemplo, que é impossível implementar esse esquema de forma eficiente com a ajuda da OOP. Mas como você poderia tirar tais conclusões se nem mesmo conhece a OOP?

Você notou que o esquema geral continua o mesmo de antes da refatoração? E não houve nenhuma dificuldade nessa transição. O tempo principal foi gasto apenas para passar por várias dezenas de arquivos e testes.

Na implementação atual, a transição para o terceiro estágio seria ainda mais fácil. A dificuldade não é exatamente essa. Se eu estivesse fazendo essa implementação, desenharia tudo, do início ao fim, em um único objeto, e não como demonstrado por alguns membros do fórum, quando alguns objetos às vezes (para o tempo de uso) aparecem na parte superior da GUI principal. Do ponto de vista do desenvolvimento pessoal como programador, não estou mais interessado nessas meias medidas. Isso não está longe do que é feito agora na versão apresentada no artigo. E os usuários de aplicativos MQL não verão nenhuma diferença.

Na minha versão atual, todos os elementos são desenhados em objetos separados e há apenas uma exceção : objetos-gráficos(OBJ_CHART). Seria interessante realizar esse elemento em uma forma desenhada com essa qualidade e com esses recursos, mas, no momento, isso simplesmente não faz sentido. Há coisas que são muito mais interessantes para mim nos serviços de MQ apresentados pelos desenvolvedores de MQ neste site. Literalmente, mais dois ou três artigos sobre "GUIs" em um futuro próximo, e depois as atualizações, se houver, serão muito raras. Na maioria das vezes, será uma otimização profunda da biblioteca, em que o consumo de recursos será mantido o mais baixo possível.

 
Anatoli Kazharski:

Vou lhe dar algumas explicações. Para a sobremesa. )

1. Quem se importa se você está certo ou errado? ) Independentemente do que os outros lhe digam, você ainda será para si mesmo o que pensa que é. )

2. Você disse coisas óbvias e isso foi apontado para você desde o início. Mas, além disso, você também transmitiu muitas bobagens.

3) Por exemplo, que é impossível implementar esse esquema de forma eficiente com a ajuda da OOP. Como você pode chegar a essas conclusões se nem mesmo conhece a OOP?

4 - Você notou que o esquema geral continua o mesmo de antes da refatoração? E não houve nenhuma dificuldade nessa transição. O tempo principal foi gasto apenas para analisar várias dezenas de arquivos e testes.

5. Na implementação atual, a transição para o terceiro estágio seria ainda mais fácil. A dificuldade não é exatamente essa. Se eu fizesse essa implementação, desenharia tudo, do início ao fim, em um único objeto, e não como foi demonstrado por alguns membros do fórum, quando alguns objetos às vezes (no momento do uso) aparecem na parte superior da GUI principal. Do ponto de vista do desenvolvimento pessoal como programador, não estou mais interessado nessas meias medidas. Isso não está longe do que é feito agora na versão apresentada no artigo. E os usuários de aplicativos MQL não verão nenhuma diferença.

Na minha versão atual, todos os elementos são desenhados em objetos separados e há apenas uma exceção : objetos-gráficos(OBJ_CHART). Seria interessante realizar esse elemento em uma forma desenhada com essa qualidade e com esses recursos, mas, no momento, isso simplesmente não faz sentido. Há coisas que são muito mais interessantes para mim nos serviços de MQ apresentados pelos desenvolvedores de MQ neste site. Literalmente, mais dois ou três artigos sobre "GUIs" em um futuro próximo, e depois as atualizações, se houver, serão muito raras. A maior parte será de otimização profunda da biblioteca, quando o consumo de recursos será mantido no mínimo possível.

1. De fato, não. Se eu estiver errado e houver evidências convincentes disso, eu admito e mudo meu ponto de vista.

2. Muitas vezes, essas coisas óbvias não são óbvias de forma alguma. A capacidade de um desenvolvedor de pensar abstratamente e entender o processo de desenvolvimento em grande escala é uma vantagem. Não encontrei esse entendimento em você, e é por isso que eu estava falando sobre isso. Estou interessado no contexto filosófico da ação, não apenas em detalhes e rotinas. Chegar ao âmago e ver a essência. Conhecer o roteiro e a lógica do processo é valioso para algumas pessoas. )

3. é difícil dizer o quão eficaz é o esquema implementado agora. Isso é relativo. Entretanto, existem parâmetros pelos quais você pode determinar a eficácia da implementação. Acho que eles podem ser encontrados. Nesse caso, poderíamos comparar a eficiência da implementação dos mesmos mecanismos, mas feitos por uma tecnologia diferente. Então, podemos chegar a uma conclusão sobre a eficácia. Se você quiser, podemos tentar descobrir. Ainda acho que essa implementação não é suficientemente eficaz. Infelizmente, há motivos para isso.

4. Não é exatamente o mesmo esquema. Você fez alterações nas classes básicas. No "núcleo" da biblioteca. O que você disse no artigo. Exteriormente, o esquema é semelhante, mas você mudou para uma tecnologia diferente de criação de elementos.

5. A propósito, eu nunca disse que quero criar uma GUI totalmente desenhada em um único bitmap. Considero essa ideia ruim. Obviamente, não é a melhor solução sob vários pontos de vista. Portanto, para mim, não se trata de uma "meia medida", mas de uma escolha em direção a uma opção mais prática.



Acrescentarei: Você pode fazer tudo em um bitmap da seguinte forma: Todos os elementos desenhados são matrizes com pixels de imagem. Depois de criados, você cria um bitmap e uma matriz de imagem grande e coloca o conteúdo de cada elemento nela sequencialmente. Como resultado, você tem um bitmap com uma imagem completa de todo o conteúdo da janela. Estou a um passo disso. Acho que você também pode fazer isso.

 
Реter Konow:

...

É quando podemos concluir a eficácia. Se você quiser, podemos tentar descobrir. Ainda não acho que essa implementação seja suficientemente eficaz. Infelizmente, há motivos.

...

Primeiro, você deve publicar de forma eficaz. Ninguém jamais teve em mãos o assunto de sua "eficiência" além de você. Provavelmente devido ao fato de que ela é tão eficaz que é assustador mostrá-la. )

...

Devo acrescentar: Você pode fazer tudo em um bitmap da seguinte forma: Todos os elementos desenhados são matrizes com pixels de imagem. Depois de criados, você cria um bitmap e uma matriz de imagem grande e coloca o conteúdo de cada elemento nela sequencialmente. Como resultado, você tem um bitmap com uma imagem completa de todo o conteúdo da janela.

...

Sem comentários, Capitão Óbvio. )

 
Anatoli Kazharski:
Primeiro, você deve publicar com eficiência. Porque ninguém jamais segurou o objeto de sua "eficiência" nas mãos, exceto você. Provavelmente devido ao fato de ser tão eficaz que é assustador mostrá-lo. )

Sem comentários, Capitão Óbvio. )

Então vamos comparar a eficiência, certo? Eu sugeri isso diretamente.
 
Реter Konow:
Então, vamos comparar as eficiências, certo? Fiz uma sugestão direta.
Não me importo. Compare. )
 
Anatoli Kazharski:
Não me importo. Compare. )

Ok.

1. Primeiro, definiremos os critérios para avaliar a eficácia da tecnologia usada.

2. Em seguida, definiremos os critérios para avaliar a eficácia dos mecanismos implementados.

3. Escolheremos os mesmos mecanismos criados por mim e por você e realizaremos testes com eles.


Depois disso, chegaremos a uma conclusão inequívoca.


Você concorda com o plano?

 
Реter Konow:

...

Primeiro nós

...

Não nós, você. Tenho coisas a fazer (leia com atenção). Não quero perder tempo. )
 
Anatoli Kazharski:
Não nós, você. Tenho algo a fazer (leia com mais atenção). Não quero perder tempo. )

Isso é uma pena.

É uma pena que o espírito de luta esteja descansando em algum lugar agora...).