Fazendo um projeto de crowdsourced em Tela - página 38

 
Реter Konow:
O núcleo é a matriz. Ela contém todas as propriedades dos objetos.

Você pode escolher seu método. Mas, em todos os meus anos de desenvolvimento de enganos, descobri que nenhum outro método pode proporcionar o mesmo nível de funcionalidade. A máxima simplicidade e eficiência é a perfeição.


Peter, você tem alguma experiência e exemplos de como escrever GUI não apenas na versão atual?

Você nega completamente outros paradigmas, mas alega que seu modelo é o melhor para a implementação da GUI. Essa é uma afirmação muito controversa.

 

Fazer um indicador que corrija os ângulos de inclinação das linhas traçadas, seus pontos de intersecção e as proporções das elipses. Enquanto os pontos de ancoragem são estabelecidos no futuro

depois de dois fins de semana e um maldito dia indie...

PS/ parece que as pessoas que desenham as interfaces não estão envolvidas em nenhuma negociação

 
Maxim Kuznetsov:

Fazer um indicador que corrija os ângulos de inclinação das linhas traçadas, seus pontos de intersecção e as proporções das elipses. Com os pontos de ancoragem estabelecidos no futuro

depois de dois fins de semana e um maldito dia indie...

PS/ parece que as pessoas que desenham as interfaces não têm nada a ver com o ofício

Max, ouso dizer que em metade dos casos este é o caso. O comerciante não precisa ser um programador e o programador não precisa ser um comerciante.

 

Ouso dizer que Peter não programa em mais nada além de mql. Todas as versões modernas de idiomas exigem conhecimentos de como trabalhar com aulas: java, kotlin, sharp, python, c++ e assim por diante. Mesmo 1C tem uma semblante de classes na forma de tipos de objetos fixos. Mas isto é apenas uma digressão.

Do meu ponto de vista, o sistema de construção de interface deveria ser parecido com este:

CForm Форма = new CForm;
Интерфейс.Добавить(Форма);
CButton КнопкаBUY= new CButton;
КнопкаBUY.Заголовок = "BUY";
КнопкаBUY.ЦветФона = clrBlue;
КнопкаBUY.Позиция(7,20);
Форма.Добавить(КнопкаBUY);

Ou seja, a criação da interface deve ser declarativa. Não consigo nem imaginar como qualquer outro programador adicionará a descrição das propriedades de um controle referente a índices.....

Tenho certeza de que mesmo para um programador médio seria intrigante, muito menos para um iniciante.

 
Алексей Барбашин:

Ouso dizer que Peter não programa em mais nada além de mql. Todas as versões modernas de idiomas exigem conhecimentos de como trabalhar com aulas: java, kotlin, sharp, python, c++ e assim por diante. Mesmo 1C tem uma semblante de classes na forma de tipos de objetos fixos. Mas isto é apenas uma digressão.

Do meu ponto de vista, o sistema de construção de interface deveria ser parecido com este:

Ou seja, a criação da interface deve ser declarativa. Não consigo nem imaginar como qualquer outro programador adicionará uma descrição das propriedades ao quadro referente aos índices.....

Tenho certeza de que mesmo para um programador médio isto seria intrigante, muito menos para um iniciante.

Se há muitos elementos e/ou propriedades que dependem de um índice, não é problema e vice-versa, é difícil escrever uma bagunça ao se referir a cada um deles.

 
Roman:

Uma matriz é uma malha aninhada, e a malha aninhada é o tempo. Eu não estou sendo sarcástico, apenas raciocinando logicamente.

Certo. Tudo no universo leva tempo).
 
Алексей Барбашин:

1. Peter, você obtém o seguinte: o núcleo consiste em uma matriz global de propriedades dos elementos, uma matriz global de valores dos elementos, uma matriz global de dependências, uma matriz global de imagens...

2. Se você precisar acrescentar mais algumas propriedades, então a dimensionalidade das matrizes é aumentada.

3. As propriedades são acessadas estritamente por índices, pois as células não têm nomes.

Pelo menos nomes de campo podem ser acessados com a estrutura.

Peter, você... gigante...

Eu, por exemplo, vejo as coisas desta forma (simplificado):

4. Uma "classe" de fato é um fio específico em seu conjunto global, apenas com uma cara mais "humana". As classes são projetadas para criar seus próprios objetos de dados, com um conjunto de propriedades compreensíveis que podem ser acessadas pelo nome em vez de por índice. Uma classe é apenas um construtor de tipo universal.

Assim, criamos um controle básico que contém as propriedades mais comuns, que estão disponíveis para quase todos os controles.

Você pode criar objetos especializados com base nisso:

Ou seja, cada tipo de controle subseqüente simplesmente complementa o tipo de base com as propriedades requeridas.

E como, como escrevi anteriormente, as propriedades básicas são armazenadas no controle básico, a travessia de "bater" o cursor no controle é feita verificando um tipo de dado: CControl. Tendo encontrado o objeto desejado, o programa tem acesso imediato às propriedades daquele objeto, já que o ponto do programa já está no próprio objeto, assim como em seu loop o programa está na linha de matriz desejada.

1. O núcleo é uma matriz global. Duas dimensões. O núcleo é construído por uma função especial que lê um arquivo onde a linguagem de marcação diz quais janelas e elementos precisam ser criados.

2. Não, a dimensionalidade da matriz é constante. Existem apenas 2 dimensões.

3. As propriedades dos objetos no núcleo são ordenadas. Cada um tem seu próprio índice. Os índices são nomeados através de definições. medida que o número de propriedades dos objetos aumenta, a matriz se amplia. Há maneiras de conter seu crescimento e compactar os objetos dentro dele.

4. A classe, como descrição do objeto, é boa, mas o mecanismo (que é o código) funciona mais eficientemente com o kernel. De qualquer forma, isso não importa. Atende às necessidades de todos.

Descrição dispersa e armazenamento das propriedades do objeto (principais na classe base, outras na descendência) complicam o acesso e o manuseio. Adicione limitações de visibilidade, modificadores de acesso e linguagem alienígena e você obtém uma redução real não apenas no mecanismo, mas no processo de desenvolvimento. No entanto, isto é imho.
 
Реter Konow:
1. O núcleo é uma matriz global. Duas dimensões. O núcleo é construído por uma função especial que lê um arquivo onde a linguagem de marcação diz quais janelas e elementos precisam ser criados.

2. Não, a dimensionalidade da matriz é constante. Existem apenas 2 dimensões.

3. As propriedades dos objetos no núcleo são ordenadas. Cada um tem seu próprio índice. Os índices são nomeados através de definições. medida que o número de propriedades dos objetos aumenta, a matriz cresce em largura. Há maneiras de conter seu crescimento e compactar os objetos dentro dele.

4. A classe, como descrição do objeto, é boa, mas o mecanismo (que é o código) funciona mais eficientemente com o kernel. De qualquer forma, isso não importa. Atende às necessidades de todos.

Descrição dispersa e armazenamento das propriedades do objeto (principais na classe base, outras na descendência) complicam o acesso e o manuseio. Adicione limitações de visibilidade, modificadores de acesso e linguagem alienígena e você obtém uma redução real não apenas no mecanismo, mas no processo de desenvolvimento. No entanto, isto é imho.

Não é nada complicado, essa é a beleza e o poder das classes. Cada um dos próximos constrói sua funcionalidade com base na funcionalidade do objeto original. Como resultado, todas as funcionalidades básicas (foco, cliques, fora do elemento, arrastar e soltar, desenhar) - tudo isso é implementado com base em objetos básicos. Desenvolvimento e modificação posteriores, desenvolvimento de novos controles - tudo isso não afetará a funcionalidade básica, pois é criado no nível, digamos, de sua linguagem: o "núcleo" da biblioteca. Neste caso, os objetos terão exatamente aqueles tipos de dados, que são necessários para um determinado bem.

"O núcleo é construído com uma função especial que lê um arquivo, onde está escrito na linguagem de marcação quais janelas e elementos devem ser criados". - isto é apenas uma lata. Então você tem uma matriz que armazena todas as propriedades, e também tem um arquivo de marcação que especifica exatamente como a matriz com as propriedades deve ser lida..."Os índices são nomeados através de definições" - cada índice está ligado a uma definição. A inserção aleatória de um campo extra fará com que as propriedades mudem com conseqüências. "À medida que o número de propriedades dos objetos aumenta, a matriz cresce em largura" - era isso que eu queria dizer com dimensionalidade (culpa minha, aplicação incorreta do termo). Ao criar seu objeto de dados como uma classe, você evita todas essas complicações. E isto é uma complexidade real, que não é realmente necessária. Mas sabemos como criar complicações para nós mesmos, a fim de superá-las com sucesso mais tarde.

E você não precisa criar classes hierárquicas e não precisa utilizá-las de forma alguma. Mas é razoável usar estruturas para se livrar de fios de dados desnecessários. IMHO

Peter, você fez um ótimo trabalho ao criar uma biblioteca GUI em seu estilo. Mas se você planeja publicar isto, ainda vale a pena redesenhar tudo para uma tecnologia diferente. Estou pronto para ajudá-lo nisto e passo a passo transferir todo o poder de sua biblioteca em uma nova direção.

 
Алексей Барбашин:

Não fica mais complicado do que isso, que é a beleza e o poder das classes. Cada um dos próximos constrói sua funcionalidade com base na funcionalidade do objeto original. Como resultado, todas as funcionalidades básicas (foco, cliques, fora do elemento, arrastar e soltar, desenhar) são implementadas com base nos objetos básicos. Desenvolvimento e modificação posteriores, desenvolvimento de novos controles - tudo isso não afetará a funcionalidade básica, pois é criado no nível, digamos, de sua linguagem: o "núcleo" da biblioteca. Neste caso, os objetos terão exatamente aqueles tipos de dados, que são necessários para um determinado bem.

"O núcleo é construído com uma função especial que lê um arquivo, onde está escrito na linguagem de marcação quais janelas e elementos devem ser criados". - isto é apenas uma lata. Então você tem uma matriz que armazena todas as propriedades, e também tem um arquivo de marcação que especifica exatamente como a matriz com as propriedades deve ser lida... Ao criar seu objeto de dados como uma classe, você evita toda essa complexidade. E estas são complexidades reais que você realmente não precisa. Sabemos como criar complicações para nós mesmos a fim de superá-las com sucesso mais tarde.

E você não precisa criar classes hierárquicas e não precisa utilizá-las de forma alguma. Mas é razoável usar estruturas para se livrar de fios de dados desnecessários. IMHO

Peter, você fez um ótimo trabalho ao criar uma biblioteca GUI em seu estilo. Mas se você planeja publicar isto, ainda vale a pena redesenhar tudo para uma tecnologia diferente. Estou disposto a ajudá-lo com isso, e passo a passo mover todo o poder de sua biblioteca para uma nova direção.

Sabe, tenho discutido tanto aqui sobre a implementação de minhas próprias soluções e das de outras pessoas que estou cansado disso. )) É simplesmente, realmente cansativo. Meu pensamento está mais adaptado à matriz, o pensamento dos outros às classes. Não vale a pena quebrar nenhuma lança.

Geralmente tenho a tendência de mudar ou simplificar as regras, desviar-me do curso geral, afirmar o meu sobre o de outra pessoa. Você não pode me mudar.

Obrigado pela oferta. Você pode seguir seu próprio caminho no desenvolvimento do engano. Já fiz do meu jeito e não vejo nenhum sentido em repeti-lo em um estilo diferente. Há uma linguagem de marcação, alguns passos para o editor vis e cerca de uma semana para publicar. Ainda há uma barra de tarefas para refazer e bugs menores para pegar. Então, você dará seu feedback sobre meu trabalho. Espero que seja útil a todos.

ZS. Após a publicação, poderei dar mais detalhes sobre as soluções e isso poderá ajudá-lo na criação de um analógico nas aulas.
 
Реter Konow:
Sabe, tenho discutido tanto aqui sobre a implementação de minhas próprias soluções e das soluções dos outros que estou cansado disso. )) É simplesmente, realmente cansativo. Meu pensamento está mais adaptado à matriz, o pensamento dos outros às classes. Não vale a pena quebrar nenhuma lança.

Geralmente estou inclinado a mudar ou simplificar as regras, a desviar-me do curso geral, a afirmar o meu próprio sobre o de outra pessoa. Você não pode me mudar.

Obrigado pela oferta. Você pode seguir seu próprio caminho no desenvolvimento do engano. Já fiz do meu jeito e não vejo nenhum sentido em repeti-lo em um estilo diferente. Há uma linguagem de marcação, alguns passos para o editor vis e cerca de uma semana para publicar. Ainda há uma barra de tarefas para refazer e bugs menores para pegar. Então, você dará seu feedback sobre meu trabalho. Espero que seja útil para todos.

No seu caso, não é uma simplificação, mas uma complicação real. IMHO