antiblock
https://arwen2.global/
  • Chatbox

    Did you check out our Discord? https://discord.gg/FFdvMjk9xA
    You don't have permission to chat.
    Load More
Sign in to follow this  
NewWars

Estruturação Visual De Código

5 posts in this topic

Boas pessoal.


Este tópico é sobre Estruturação Visual de código, ou seja, a "beleza visual" que código de programação em qualquer língua geral com sintaxe "mais agradável" à vista de um humano.

O tópico vai se aplicar a sintaxes com estilo semelhantes a C++, PHP, HTML, Java, Python, etc, normalmente as sintaxes que qualquer linguagem de programação não são muito distantes ao o que vai ser apresentado neste tópico.

Eu vou fazer exemplos com as seguintes linguagens e vou explicar porque em cada:

C#
Podia fazer sobre C++, mas visto que a sintaxe em C, C++ e C# é completamente igual, praticamente muitas poucas coisas mudam, dá para abranger todas estas.

Python
Escolhi python porque creio que é bom também para alguns iniciantes em Python verem o tópico para aprenderem o pouco, ao contrário da linguagens que me refiro, o python OBRIGA a embelezar o código, porque invés de usar alguns " caracteres chave" para saber o que é um função ou um bloco lógico ou etc, ele usa os TABS(\t), Nova Linha[\r \n \r\n](\r significa CR(Nova linha em Mac OS, \n significa LF(Nova linha em Mac OS e Unix) e \r\n significa CR + LF(Nova linha em Windows))

Lua
Escolhi Lua porque é uma linguagem muito livre em termos de visualização e sintaxe, é mais baseada em puro inglês e menos caracteres especiais para se guiar.

Java
Para deixar o tópico mais completo, apesar de a sintaxe não ser muito distinta de C# e semelhantes.

Ora vamos começar

Primeiro vamos ver sobre os tabs ou espaços, qual é a diferença?
Bem, a diferença entre tabs e espaços, é que os tabs alinham o código automaticamente conforme os tabs dados óbvio, enquanto os espaços são inconstantes

Um pequeno exemplo com um texto no notepad++:

260f31d583a01c7f6cfac6783d61b516.png



Atenção, se usam notepad++ aconselho que liguem a opção de mostrar tabs e espaços, em Ver -> Mostrar Símbolos -> Mostrar Espaços Brancos e TAB e Mostrar guia/linha de indentação.

Como podem notar na imagem acima, uma linha equivale a 4 espaços, mas isso não significa que o código está propriamente indentado, enquanto o TAB é automático, os 4 espaços não, segue um exemplo abaixo:

2aeb05b56fc039ce60b8cc147a747f39.png



Como podem ver, quando usei os tabs, simplesmente dei 2 tabs e ficou automaticamente espaçado e organizado, enquanto com os espaços, dei 8 espaços na primeira linha, mas na segunda só dei 6 espaços, o que podia ficar igual visualmente mas a diferença é que ao voltar a mexer neste sitio, tenho que voltar a reajustar os espaçamentos 1 a 1, o que é uma boa quantia de tempo gasta se feito em imenso código e de certeza irá acontecer.


Onde e quando se deve aplicar tabs?
Os tabs devem se aplicar em todos os casos em que uma parte do código contenha instruções dentro do mesmo, como funções, classes, estruturas, enumerações, tabelas, operações lógicas(if blocks), ciclos(for loop, foreach loop, while loop), tentativas de execução de código com esperança de possível excepção(try-catch), etc.

Um exemplo com uma classe(C#, Python e Java):
C#

6dd31af82d879195b0fc2dc851a5a34e.png


Python

39ca7479cd95610eefedad24ad23d2a6.png

Lua

8ee8385c3a.png


Java

9eb8653062ac4dfa9d25215eb1c70cd3.png

Nota: Não mostrei em Lua porque a maneira de criar classes em lua é diferente e nem sempre precisa, eu nunca usei tecnicamente classes em lua, uso uma referência direita a um ficheiro.

Atenção, nem sempre é preciso é precisar inserir uma nova linha após as chavetas, normalmente só se aplica em classes, funções, inicio de uma lista(irei mostrar a seguir).

Um exemplo com uma função(C#, Python, Lua e Java):
C#

05a75be07a219c9eceb518a9f6ee88cb.png


Python

23329aee1021fcb90eb314b32410cc5a.png


Lua

d8264191e6d656885c0eb670d6eaf7f3.png


Java

9f41f8ccc4da4ae5a24416b29910e680.png



Este exemplo não precisa de muita descrição, está simples e fácil de entender, seguinte.

Um exemplo com uma operação booleana(if block)(C#, Python, Lua e Java):
C#

4cf9417c002562a35e47201d164527d5.png


Python

5a294c26ac727b7ccf4392bdb1298ab9.png

Correcção na Linha 12 >> 

if exit: sys.exit(0)

Lua

5502d36d1a8f29a358d81a7eaaa92075.png


Java

1630901d1db24574992fa6780d513167.png



Mesmo quando aplicamos uma condição dentro de uma condição booleana, os tabs devem ser aplicados igualmente como no exemplo 2 da imagens acima.

NOTA: Se for uma operação booleana que simplesmente faça return, podem meter tudo como no exemplo 3 das imagens acima.


Um exemplo com um ciclo(for loop/foreach loop são indentados igualmente, só irei mostrar o for loop)(C#, Python, Lua e Java):
C#

6e317e87be2ecbe4545325bafefdb40f.png


Python

8dfc5d1e0f4263a43f54e1f1a1f25053.png


Lua

c2630ec8b00875fd9c5b16fcf0bc746f.png


Java

5ff54d23db28409a96c0fa8e1e65639b.png



Os exemplos acima são idênticos aos da operação booleana(if block).


Um exemplo com uma tentativa de execução de código com possível excepção esperada[try-catch](C#, Python e Java):

C#

560ce69cb49814404c12a1ecdc43a09c.png


Python

21748f76de4c1446309d5e88f9320b85.png

Lua

b1375ff2c1.png


Java

06b7eaccd8cd4780a8e97fdf99426dab.png

 

Também sem muito a apontar, é idêntico a uma operação booleana com if-else


Um exemplo com uma tabela(C#, Python e Lua):

C#

a4e85e8177b32922784c3c844af53edb.png


Python

1618129e4eda40d55126b4cdb864f687.png


Lua

5ce727092d46d2c1c11cdde7dfbe0afa.png


Java

0458a122ae4d4a458dbb8775a80bf8b3.png




No caso das tabelas, mais propriamente no caso em Lua, C# e semelhantes, a disposição e indentação das tabelas depende do estilo de cada pessoa, pode variar abertamente.


Conclusão

Com este tópico foi possível abranger uma boa quantidade de exemplos para a estruturação visual de código de programação, podia encobrir mais aspectos mas acho que em algumas partes é de preferência de programador para programador.

Tentei fazer o tópico em o máximo de português possível, mesmo no código, mas eu estou habituado programar totalmente em inglês porque creio que seja muito melhor, e deveria ser um hábito geral.

Eu sou fanático por código organizado, nos meus trabalhos sempre prezo pela elegância do código porque facilita imenso uma vista de olhos rápido ou demorada, simplesmente é bom ter o código fácil de visualizar, organizado.

Agradeço ao @Cσяvσ⋆ pelo código em Java,

E agradeço ao  pela falta de try-catch e class em Lua e correcção de erro.

 

NOTA: Ainda vou adicionar mais uma parte em que combino tudo e faço outra combinação total possível, mas noutro dia.
Se notarem algo mal feito no tópico, por favor comentem, fiz isto num dia de direta, pode ter falhado algo.


Cumprimentos.

Share this post


Link to post
Share on other sites
antiblock
Cyphriun

Muito bom :P

Sou novato ainda a programar (python, lua) mas vou aprendendo.

E com este tópico aprendi mais um pouco.

A minha maior dificuldade é a embelezar o código.

Share this post


Link to post
Share on other sites

Muito bom :P

Sou novato ainda a programar (python, lua) mas vou aprendendo.

E com este tópico aprendi mais um pouco.

A minha maior dificuldade é a embelezar o código.

É muito importante embelezar o código, é um hábito que qualquer programador deve ter.

Tópico actualizado, adicionado sintaxe de Java, agradeço ao  @Cσяvσ⋆  pela sintaxe.

Cumprimentos.

Share this post


Link to post
Share on other sites

Exemplo de Class em lua:

 

8ee8385c3a.png

 

Lua try-catch:

 

b1375ff2c1.png

 

546122446d.png

>>

if exit: sys.exit(0)

Share this post


Link to post
Share on other sites

Tópico actualizado, adicionado sintaxe de try-catch e classe em Lua, agradeço ao pela sintaxe e correção.

Cumprimentos.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this