/Blog
// Um pouco de filosofia sobre desenvolvimento, quer ouvir a minha opinião? (eu quero ouvir a sua)
»

A mudança fundamental para se atingir o tão sonhado "código organizado"

Você é capaz de produzir um código organizado? Um projeto organizado? Um estilo de vida organizado?

Qual a relação entre os três? O que minha vida tem a ver com meu código? Você pode se perguntar.

Essas relações são muito maiores do que você pode imaginar! E é sobre isso que eu queria falar hoje com você.

Motivo

Esse post cheio de perguntas foi motivado por alguns acontecimentos na minha vida que vou compartilhar com você.

Você já quis começar a aprender web e não sabia por onde? Principalmente se você está em uma faculdade, onde esse tipo de conteúdo deveria ser ofertado com frequência, você provavelmente já se frustrou ao procurar e… não achar.

Então resolvi eu mesmo dar esse curso, de forma totalmente gratuita: o primeiro curso de web na UFMG.

Até o presente momento você pode ver sobre o curso em http://cursos.dayman.io.

Acontece que para fazer isso acontecer eu tive que me reinventar. Precisei ter mais disciplina para criar conteúdo a tempo, e precisei alocar o meu tempo para me dedicar às aulas. É uma responsabilidade muito grande, imagine de repente um grupo de pessoas confiando em você e esperando de sua parte aquelas aulas!

Mas nem por isso eu me desmotivei e me permiti ser medíocre ao não buscar a excelência no que estava fazendo. Mas por conta da inexperiência, inevitavelmente alguns desencontros ocorreram, como não conseguir reservar uma sala a tempo e ter que desmarcar uma aula cinco horas antes dela começar.

Isso é reflexo da minha vida desorganizada, porém como um sincero pedido de desculpa, resolvi criar esse post.

Qual o significado da organização

Se você faz ou fez faculdade e teve um bom professor de Algoritmos, com certeza ele repetiu essa frase com você:

faça um código organizado e legível! Indentação é o mínimo que você pode fazer. Declare variáveis e funções com nomes semânticos e intuitivos. Separe e modularize seu código de forma consistente.

Certo?

Trabalhando-se sozinho, as vezes é difícil entender a importância dessa atenção, porém quando se trabalha em time, cada um tende a programar à sua maneira, e se não for estabelecido um padrão de código e uma organização, vira tudo tão bagunçado quanto seu quarto poderia ser na sua adolescência.

Acontece, que mesmo trabalhando sozinho, não estamos sozinho! Você por acaso, é o mesmo do que a sete anos atrás? Você será o mesmo daqui a sete anos? Ou até mesmo, lembra do que comeu ontem no almoço?

Comecei a escrever esse post no ônibus e fui obrigado a fazê-lo sem ouvir música! Isso tudo porque coloquei meu fone de ouvido em um bolso diferente do usual na mochila e não o encontrei, chegando a pensar que tinha perdido! Maldita desorganização!

Qual exatamente a relação entre minha vida e meu codigo?

Tudo que produzimos é uma expressão de nós mesmos.

Tudo.

Tudo que criamos com nossas próprias mãos, tudo que surge dos nossos pensamentos, dos nossos desejos e das nossas ações é, em parte, nós mesmos.

Sem ficar filosofando muito embora esse seja o slogan do Blog, não basta simplesmente dar uma pesquisa no google de “ferramentas para organizar código” e tudo estará resolvido. Não são as ferramentas, ou o ambiente que vai fazer seu código melhor.

Claro que as ferramentas são imprescindíveis para melhorar a eficiência de nossa trabalho. Imagine um pintor sem pincel ou um jardineiro sem pá. Mas, apesar da importância de uma boa ferramenta, 90% dados retirados do IBGE mentira da qualidade do que produzimos diz respeito apenas à nós. Inclusive comento disso nesse post aqui.

Não é buscando algo exteriormente que vamos mudar fundalmentamente, a mudança precisa partir de dentro.

Assim como em cima, é embaixo.

Minha mãe costumava dizer ainda costuma as vezes ao ver meu quarto bagunçado: “arruma esse quarto filho. Quarto bagunçado igual a vida bagunçada.

E tem um fundo de verdade. Não só o fundo, mas acredito que isso é uma total verdade!

Então quer dizer que para organizar meu código vou precisar organizar minha vida toda? E para organizar minha vida preciso organizar também o meu quarto? E meus estudos? E minha mesa de trabalho? e etc? Pode parecer desesperador a um primeiro momento. Mas calma lá, vem comigo que eu vou te explicar!.

Você tá achando esse post muito louco e viajado? Que bom! Já que você chegou até aqui, que tal fazer mais uma loucura e se inscrever na lista de emails, para receber os posts fresquinhos? Juro mentira, nem juro que você não vai se decepcionar!

»

A mudança na prática

Bom, como já comentei, a mudança fundamental não vem de fora. Para mudarmos aspectos de nossa vida e de nossos projetos também, devemos mudar a nós mesmos.

Porém pausa dramática, é uma via de mão dupla. Personalidade e ação se influenciam mutuamente, isso é, a sua forma de ser influencia as suas ações, e suas ações também influenciam sua forma de ser.

Isso ajuda um pouco na hora de resolver o problema. Se eu consigo identificar várias ~falhas de organização~ na minha vida, posso começar resolvendo uma a uma e isso, naturalmente, vai ir se refletindo nos outros aspectos.

Esse é um blog de desenvolvimento, e tudo que estou falando é para te ajudar a melhorar o seu código! Tente ver toda essa ~filosofia como coisas que vão convergir em um crescimento profissional, como desenvolvedor.

A vida é composta de muitos aspectos mas, se organizar direitinho, todo mundo transa. créditos à André ♥ pela piada.

Algumas ferramentas

Ambiente

Acho que um bom ponto de partida é se analisar o ambiente em que você está trabalhando. Isso pode se extender também à sua mesa de trabalho e etc, mas vamos nos ater aos softwares aqui.

Um bom editor de texto, ou uma boa IDE (Ambiente Integrado de Desenvolvimento) nos fornecem uma série de facilidades na hora de programar. Nada de ficar usando Notepad!

Para editor de texto, recomendo o leve e rápido Sublime Text. Que na sua forma cru é muito simples e, inclusive por isso, é muito rápido e leve. Ele é também muito fluído e possui ótimos atalhos de edição.

Para a surpresa de muitos, ele é pago e custa $70, o que ao meu ver é um valor razoável, considerando que você vai ter pra sempre um ótimo software, além de contribuir com o desenvolvedor que o criou. não é pelo fato dele não te bloquear de usar quando você não paga, que ele seja de graça. O mesmo ocorre com o WinRAR hehe.

Se você quer alguma IDE mais robusta, aconselho qualquer uma da Jetbrains.

Padrões de projetos

Calma, minha ideia aqui não é se alongar sobre esse tema, mas apenas atentar sobre sua existência.

Para quem não conhece, um padrão de projeto, ou um design pattern, é uma solução geral para um problema recorrente no contexto de design de software. E um desses grandes problemas é a desorganização.

É um assunto interessante de se ler, e a Wikipédia é um ótimo ponto de partida.

Talvez o padrão de projeto mais famoso seja o MVC, no qual, de forma simplificada:

  • A camada de Modelo é onde ficam os seus dados e a parte da lógica que controla os dados de sua aplicação.
  • A camada de Visão é o que o usuário enxerga. São as telas e a lógica que controla como os dados serão mostrados.
  • A camada de Controle é mais ou menos a parte que une as outras duas. Funciona como um intermediar e controla as interações com o usuário.

Técnicas e outras ferramentas

Há uma lista infinita de dicas que posso dar te ajudar na sua jornada de desenvolvimento, mas como eu já disse, lembre-se que a mudança principal deve partir de dentro de você! Estou citando aqui apenas as que eu considero mais importantes.

css

CSS é uma coisa que cresce exponencialmente em relação ao crescimento do projeto, então todo cuidado é pouco na hora de estruturá-lo. Além do uso de pré-processadores que cito no meu segundo post, há várias técnicas testadas que dão certo!

As técnicas vão desde nomeação de classes, como o BEM, até organização de arquivos, como o itcss, que o Will explica muito bem nesse post.

js

Indo um pouco pro javascipt agora, lembra das dicas que seu professor de Algoritmos te deu? Então, as vezes temos preguiça de nos policiar a todo momento para seguí-las. Para resolver esse problema podemos usar um linter.

Linter é um programa que checa o seu código procurando erros no estilo da sua escrita como, por exemplo:

  • Nomeação de variáveis e funções
  • Identação
  • Variáveis declaradas e nunca usadas, ou variáveis usadas mas nunca declaradas
  • Tamanho máximo de funções

Com atenção para o último item! Mantenha seu código sempre modularizado. Procure sempre criar funções com no máximo 10 linhas.

O linter de js mais famoso hoje em dia é o ESlint, que acaba de incorporar o JSCS.

pausa estratégica

Escrevi muito texto né? Pra descontraír, vai aí uma piada:

Vou aproveitar a deixa e finalizar o post, que ficou deveras extenso, espero que você tenha gostado.

Lembre-se, a organização e a produção de um código de qualidade depende do seu estado de ser! Não existe separação entre vida pessoal e vida profissional. Ambas são uma só, personalidade e ação se influenciam mutuamente.

Se você deseja realizar uma mudança interior pra melhor, não deixe de se inscrever na lista de emails para receber mais posts como esse! E toma aí uma entrevista do Flávio Augusto, um dos maiores empreendedores do Brasil, que fala sobre esse assunto. Beijos.

Compartilhe


Comentários