convenção de nomenclatura para Qt
-
03-07-2019 - |
Pergunta
Eu estou trabalhando com um grupo de outros programadores em um projeto open source construído usando C ++ e Qt.
Agora, precisamos de uma convenção de nomenclatura para widgets (e outras variáveis ??geralmente) para usá-lo como um padrão em todo o nosso código para que, o código fica melhor legibilidade e temos uma melhor coordenação entre os programadores.
Qualquer conselho?
EDIT: Am não falar sobre a nomeação de novas classes,
vez que eu estou falando sobre a nomeação de casos de Qt Widgets, digamos que eu tenho uma edição de texto para o nome do usuário, que eu deveria nomeá-lo txtEdtUsrNm?
E, nesse caso, como é que eu vou escolher derivações?
Solução
Enquanto você está pensando ao longo destas linhas, eu ia começar por ler este artigo QtQuarterly a partir do início ao fim.
Dito isto, uma coisa que fazemos é colocar a "utilização" da instância como a primeira parte e a última palavra cheia de classe como a última parte.
Assim, seu "nome do usuário" QTextEdit é
QTextEdit * userNameEdit = new QTextEdit(this);
Se houver ambigüidade, como QListView e QTreeView, escolher a última seção unabiguous.
QListView * userListView;
Você pode descobrir abreviaturas como você gosta (como "Lbl" para QLabel), mas geralmente, a palavra inteira tem trabalhado e tem sido fácil de ler.
Por outro lado, não são muito rigorosos quanto a isso e que poderia ser mais importante para nomear a intenção da variável de instância sem o nome da classe, porque se, no futuro, você quer mudar a classe, você começa a alterar o nome que, na ausência de boas ferramentas de refatoração, é uma dor.
Talvez descobrir os widgets gerais que você mais usa, e escolher uma convenção de nomenclatura para a maioria dos super-classes gerais e deixe tudo mais ir.
Exemplo lista de coisas que aderem à convenção:
- layout = Todas as classes que terminam em "Layout" e herdar QLayout
- botão = Todas as classes que terminam em "Button" e herdar QAbstractButton
O QAbstract ClassName aulas são um bom lugar para pensar sobre o que deve ser nessa lista.
Outras dicas
Desde Qt é aberto para desenvolvedores de terceiros, eles disponibilizados vários documentação sobre o estilo de codificação e os princípios de design API.
Estes documentos são realmente interessantes. Aqui estão alguns links:
Wiki: Qt estilo de codificação
Wiki: API Princípios de Design
E neste documento (PDF) a partir de Jasmin Blanchette, que vale a pena ler: pequeno manual de design API
Gostaria apenas de usar a mesma convenção de nomenclatura que Qt usa. Tornar mais fácil para si mesmo.
A convenção de nomenclatura é semelhante ao Java.
Os nomes completos rapidamente tornar-se incômodo para ler e escrever, por isso estamos geralmente usando uma abreviação:
QLabel * fooLB;
QPushButton * fooPB;
QTextEdit * fooTE;
QSpinBox * fooSB;
(você começa a deriva). Sim, existem algumas ambiguidades, mas eles são geralmente resolvidos a partir do contexto.
Para ser mais preciso, a pergunta é sobre "casos de nomeação de Qt Widgets", mas as respostas são sobre a nomeação de variáveis ??guardando referências a casos de widgets.
Qt Widgets derivam de QObject que tem uma propriedade de nome com getter objectName (). Does Qt dar o valor de uma propriedade se o programador não? Ligue ou valor que ele "auto gerado" "default".