{"id":750,"date":"2024-10-28T11:56:11","date_gmt":"2024-10-28T14:56:11","guid":{"rendered":"https:\/\/code4delphi.com.br\/blog\/?p=750"},"modified":"2024-11-12T02:20:19","modified_gmt":"2024-11-12T05:20:19","slug":"convencoes-de-nomenclatura","status":"publish","type":"post","link":"https:\/\/code4delphi.com.br\/blog\/convencoes-de-nomenclatura\/","title":{"rendered":"Conven\u00e7\u00f5es de nomenclatura na programa\u00e7\u00e3o com \u00eanfase em Delphi"},"content":{"rendered":"\n<p>Na programa\u00e7\u00e3o, as conven\u00e7\u00f5es de nomenclatura ajudam a manter o c\u00f3digo organizado e f\u00e1cil de ler, especialmente em projetos de m\u00e9dio a grande porte. Vamos explorar algumas das conven\u00e7\u00f5es mais comuns, incluindo algumas pr\u00e1ticas que s\u00e3o particularmente \u00fateis na comunidade Delphi.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title ez-toc-toggle\" style=\"cursor:pointer\">Sum\u00e1rio<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabela de conte\u00fado\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/code4delphi.com.br\/blog\/convencoes-de-nomenclatura\/#Pascal_Case\" >Pascal Case<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/code4delphi.com.br\/blog\/convencoes-de-nomenclatura\/#Camel_Case\" >Camel Case<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/code4delphi.com.br\/blog\/convencoes-de-nomenclatura\/#Snake_Case\" >Snake Case<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/code4delphi.com.br\/blog\/convencoes-de-nomenclatura\/#Screaming_Snake_Case\" >Screaming Snake Case<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/code4delphi.com.br\/blog\/convencoes-de-nomenclatura\/#Kebab_Case\" >Kebab Case<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/code4delphi.com.br\/blog\/convencoes-de-nomenclatura\/#Screaming_Kebab_Case\" >Screaming Kebab Case<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/code4delphi.com.br\/blog\/convencoes-de-nomenclatura\/#Notacao_Hungara\" >Nota\u00e7\u00e3o H\u00fangara<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/code4delphi.com.br\/blog\/convencoes-de-nomenclatura\/#Tabela_de_Convencoes_Exemplos_e_Locais_de_Uso\" >Tabela de Conven\u00e7\u00f5es, Exemplos e Locais de Uso<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/code4delphi.com.br\/blog\/convencoes-de-nomenclatura\/#Convencoes_em_Delphi_Padroes_e_Consistencia\" >Conven\u00e7\u00f5es em Delphi: Padr\u00f5es e Consist\u00eancia<\/a><\/li><\/ul><\/nav><\/div>\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Pascal_Case\"><\/span><strong>Pascal Case<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"312\" height=\"95\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/10\/Pascal-1.png\" alt=\"\" class=\"wp-image-764\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/10\/Pascal-1.png 312w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/10\/Pascal-1-300x91.png 300w\" sizes=\"auto, (max-width: 312px) 100vw, 312px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Exemplo<strong>:<\/strong> <strong>MeuTesteNomenclatura<\/strong><\/li>\n\n\n\n<li>O Pascal case \u00e9 o <strong>padr\u00e3o predominante<\/strong> <strong>em Delphi<\/strong> para nomear classes, m\u00e9todos e tipos de dados. Em Delphi, usamos Pascal case para identificar componentes e classes como <strong>TFormCliente<\/strong>, <strong>TProduto<\/strong>, <strong>CalcularImposto<\/strong>, etc. Essa conven\u00e7\u00e3o segue as diretrizes recomendadas para um c\u00f3digo mais leg\u00edvel e organizado.<\/li>\n\n\n\n<li>Tamb\u00e9m conhecido como: <em>Upper Camel Case <\/em>e<em> Capital Case<\/em><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Camel_Case\"><\/span><strong>Camel Case<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"312\" height=\"95\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/10\/CamelCase-1.png\" alt=\"\" class=\"wp-image-762\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/10\/CamelCase-1.png 312w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/10\/CamelCase-1-300x91.png 300w\" sizes=\"auto, (max-width: 312px) 100vw, 312px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Exemplo<strong>:<\/strong> <strong>meuTesteNomenclatura<\/strong><\/li>\n\n\n\n<li>No camel case, o nome da vari\u00e1vel come\u00e7a com letra min\u00fascula, e as palavras seguintes iniciam com letra mai\u00fascula. Essa conven\u00e7\u00e3o n\u00e3o \u00e9 muito utilizada em Delphi, mas pode aparecer em alguns contextos, especialmente para m\u00e9todos em frameworks espec\u00edficos.<\/li>\n\n\n\n<li>Tamb\u00e9m conhecido por: <em>Lower Camel Case <\/em>e<em> Dromedary Case<\/em><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Snake_Case\"><\/span><strong>Snake Case<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"312\" height=\"95\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/10\/snake_case-1.png\" alt=\"\" class=\"wp-image-765\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/10\/snake_case-1.png 312w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/10\/snake_case-1-300x91.png 300w\" sizes=\"auto, (max-width: 312px) 100vw, 312px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Exemplo<strong>:<\/strong> <strong>meu_teste_nomenclatura<\/strong><\/li>\n\n\n\n<li>No snake case, todas as palavras se iniciam com letras min\u00fasculas, e as palavras s\u00e3o separadas por um Underline. Em Delphi, o snake case n\u00e3o \u00e9 comum, mas pode ser usado para constantes em m\u00f3dulos espec\u00edficos ou para conven\u00e7\u00f5es internas em vari\u00e1veis de configura\u00e7\u00e3o. \u00c9 mais frequentemente visto em nomes de constantes globais, mas o Pascal case geralmente \u00e9 preferido.<\/li>\n\n\n\n<li>Tamb\u00e9m conhecido como: <em>Underscore Case<\/em><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Screaming_Snake_Case\"><\/span><strong>Screaming Snake Case<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Exemplo<strong>:<\/strong> <strong>MEU_TESTE_NOMENCLATURA<\/strong><\/li>\n\n\n\n<li>Esta conven\u00e7\u00e3o, onde todas as letras est\u00e3o em mai\u00fasculas e separadas por underscores, \u00e9 comum para constantes globais. Em Delphi, \u00e9 usada para definir valores constantes ou identificadores fixos, como <strong>MAX_LINHAS<\/strong> ou <strong>TOTAL_USUARIOS<\/strong>. Isso facilita a distin\u00e7\u00e3o visual de constantes em rela\u00e7\u00e3o a vari\u00e1veis comuns.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Kebab_Case\"><\/span><strong>Kebab Case<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"312\" height=\"95\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/10\/Kebab-case2.png\" alt=\"\" class=\"wp-image-766\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/10\/Kebab-case2.png 312w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/10\/Kebab-case2-300x91.png 300w\" sizes=\"auto, (max-width: 312px) 100vw, 312px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Exemplo<strong>:<\/strong> <strong>meu-teste-nomenclatura<\/strong><\/li>\n\n\n\n<li>Aqui todas as letras s\u00e3o min\u00fasculas e as palavras s\u00e3o separadas por hifens. Kebab case n\u00e3o \u00e9 utilizado em Delphi, uma vez que o uso de hifens em nomes de vari\u00e1veis e m\u00e9todos n\u00e3o \u00e9 permitido. Ele \u00e9 mais comum em contextos fora do c\u00f3digo-fonte, como nomes de arquivos ou URLs.<\/li>\n\n\n\n<li>Tamb\u00e9m conhecido como: <em>Spinal Case, Dash Case <\/em>ou<em> Lisp Case<\/em><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Screaming_Kebab_Case\"><\/span><strong>Screaming Kebab Case<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Exemplo<strong>:<\/strong> <strong>MEU-TESTE-NOMENCLATURA<\/strong><\/li>\n\n\n\n<li>O screaming kebab case, com todas as palavras em mai\u00fasculas e separadas por hifens, tamb\u00e9m n\u00e3o \u00e9 aplic\u00e1vel no Delphi para nomes de vari\u00e1veis ou m\u00e9todos, devido ao uso restrito de hifens. No entanto, essa conven\u00e7\u00e3o pode aparecer em nomes de arquivos ou configura\u00e7\u00f5es externas para indicar se\u00e7\u00f5es importantes ou par\u00e2metros configur\u00e1veis de destaque.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Notacao_Hungara\"><\/span><strong>Nota\u00e7\u00e3o H\u00fangara<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Exemplo:<\/strong> <strong>strNome <\/strong>para uma string contendo um nome, <strong>intIdade <\/strong>para um inteiro representando idade.<\/li>\n\n\n\n<li>Embora menos popular em linguagens modernas, a nota\u00e7\u00e3o H\u00fangara ainda aparece em Delphi, especialmente em c\u00f3digo legado ou em projetos que seguem uma metodologia de padroniza\u00e7\u00e3o de tipos nas vari\u00e1veis. A nota\u00e7\u00e3o H\u00fangara facilita a identifica\u00e7\u00e3o do tipo de vari\u00e1vel diretamente pelo nome. Essa pr\u00e1tica ajuda a entender rapidamente o prop\u00f3sito e o tipo das vari\u00e1veis no c\u00f3digo, sendo \u00fatil em contextos espec\u00edficos.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Tabela_de_Convencoes_Exemplos_e_Locais_de_Uso\"><\/span>Tabela de Conven\u00e7\u00f5es, Exemplos e Locais de Uso<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Conven\u00e7\u00e3o<\/th><th>Exemplo<\/th><th>Locais de Uso<\/th><\/tr><\/thead><tbody><tr><td>Camel Case<\/td><td><strong>meuTesteNomenclatura<\/strong><\/td><td>Vari\u00e1veis locais em alguns frameworks espec\u00edficos<\/td><\/tr><tr><td>Pascal Case<\/td><td><strong>MeuTesteNomenclatura<\/strong><\/td><td>Nomes de classes, m\u00e9todos e tipos de dados<\/td><\/tr><tr><td>Snake Case<\/td><td><strong>meu_teste_nomenclatura<\/strong><\/td><td>Constantes internas e vari\u00e1veis de configura\u00e7\u00e3o<\/td><\/tr><tr><td>Screaming Snake Case<\/td><td><strong>MEU_TESTE_NOMENCLATURA<\/strong><\/td><td>Constantes globais<\/td><\/tr><tr><td>Kebab Case<\/td><td><strong>meu-teste-nomenclatura<\/strong><\/td><td>N\u00e3o utilizado em c\u00f3digo Delphi; aplic\u00e1vel em nomes de arquivos e URLs<\/td><\/tr><tr><td>Screaming Kebab Case<\/td><td><strong>MEU-TESTE-NOMENCLATURA<\/strong><\/td><td>Nomes de arquivos e configura\u00e7\u00f5es externas<\/td><\/tr><tr><td>Nota\u00e7\u00e3o H\u00fangara<\/td><td><strong>strNome<\/strong>, <strong>intIdade<\/strong><\/td><td>C\u00f3digo legado e projetos que exigem tipifica\u00e7\u00e3o expl\u00edcita<\/td><\/tr><tr><td>Flat Case<\/td><td><strong>flatcase<\/strong><\/td><td>Todas as letras s\u00e3o min\u00fasculas, sem espa\u00e7os ou separadores. N\u00e3o \u00e9 comum o seu uso no Delphi.<\/td><\/tr><tr><td>Upper Flat Case<\/td><td><strong>UPPERFLATCASE<\/strong><\/td><td>Todas as letras s\u00e3o mai\u00fasculas sem espa\u00e7os ou separadores. N\u00e3o \u00e9 comum o seu uso no Delphi.<\/td><\/tr><tr><td>Camel Snake Case<\/td><td><strong>camel_Snake_Case<\/strong><\/td><td>Combina\u00e7\u00e3o das regras de <strong>snake case<\/strong> e <strong>camel case<\/strong>. N\u00e3o \u00e9 comum o seu uso no Delphi.<\/td><\/tr><tr><td>Pascal Snake Case<\/td><td><strong>Pascal_Snake_Case<\/strong><\/td><td>Combina\u00e7\u00e3o de <strong>snake case<\/strong> e <strong>pascal case<\/strong>. N\u00e3o \u00e9 comum o seu uso no Delphi.<\/td><\/tr><tr><td>Train Case<\/td><td><strong>Exemplo-De-Train-Case<\/strong><\/td><td>Varia\u00e7\u00e3o do <strong>Kebab Case<\/strong> ao usar o h\u00edfen como separador, mas com as primeiras letras de todas as palavras sempre em mai\u00fasculas. N\u00e3o \u00e9 comum o seu uso no Delphi.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Convencoes_em_Delphi_Padroes_e_Consistencia\"><\/span>Conven\u00e7\u00f5es em Delphi: Padr\u00f5es e Consist\u00eancia<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Delphi tem uma longa tradi\u00e7\u00e3o em seguir conven\u00e7\u00f5es de Pascal case para tipos e classes, com constantes geralmente em snake case ou screaming snake case. Para quem trabalha com Delphi, adotar esses padr\u00f5es facilita a manuten\u00e7\u00e3o e a compreens\u00e3o do c\u00f3digo, al\u00e9m de promover uma linguagem visual consistente para os desenvolvedores.<\/p>\n\n\n\n<p>Para mais informa\u00e7\u00f5es sobre nomenclaturas e conven\u00e7\u00f5es em Delphi, consulte o <a href=\"https:\/\/docwiki.embarcadero.com\/RADStudio\/Sydney\/en\/Delphi%E2%80%99s_Object_Pascal_Style_Guide\">Style Guide do Delphi<\/a>.<\/p>\n\n\n\n<p>Por fim, vale lembrar que manter a consist\u00eancia \u00e9 fundamental em qualquer projeto, independentemente das conven\u00e7\u00f5es escolhidas.<\/p>\n\n\n\n<p>Curtiu a postagem? Ent\u00e3o, n\u00e3o se esque\u00e7a de deixar seu coment\u00e1rio e compartilhar! Abra\u00e7o e at\u00e9 a pr\u00f3xima.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Na programa\u00e7\u00e3o, as conven\u00e7\u00f5es de nomenclatura ajudam a manter o c\u00f3digo organizado e f\u00e1cil de ler,&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[71,79,75,80,74,69,76,72,81,77,73,70,82,78],"class_list":["post-750","post","type-post","status-publish","format-standard","hentry","category-geral","tag-camel-case","tag-camel-snake-case","tag-convencoes-de-nomenclatura","tag-flat-case","tag-kebab-case","tag-nomenclatura","tag-notacao-hungara","tag-pascal-case","tag-pascal-snake-case","tag-screaming-kebab-case","tag-screaming-snake","tag-snake-case","tag-train-case","tag-upper-flat-case"],"_links":{"self":[{"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/posts\/750","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/comments?post=750"}],"version-history":[{"count":23,"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/posts\/750\/revisions"}],"predecessor-version":[{"id":790,"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/posts\/750\/revisions\/790"}],"wp:attachment":[{"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/media?parent=750"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/categories?post=750"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/tags?post=750"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}