Skip to content

Instantly share code, notes, and snippets.

@lucascaton
Last active September 25, 2017 00:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lucascaton/1ba1671869280ac0aa570d2f11158616 to your computer and use it in GitHub Desktop.
Save lucascaton/1ba1671869280ac0aa570d2f11158616 to your computer and use it in GitHub Desktop.
<p style="text-align: justify;">Sem dúvida, uma pergunta que recebo recorrentemente é: "Fernando, como ser um bom desenvolvedor?". Obviamente que não existe uma fórmula mágica, vou compartilhar um pouco do que aplico na minha vida e espero que você consiga bons resultados.</p>
<h3><strong>Código limpo</strong></h3>
<p style="text-align: justify;">Código limpo consiste basicamente em fazer exatamente o que o título diz: ter um código limpo. <strong>Código é como uma piada, se você tem que explicar, não é tão boa assim</strong>. Até mesmo um código ruim pode funcionar, e - acredite - eu vivo isso no meu dia a dia, tendo que manter um código funcionando que foi escrito por pessoas sem conhecimentos básicos da plataforma Salesforce. Por exemplo, muitas das <em>Triggers</em> que existem na plataforma hoje não são capazes de trabalhar com <strong><em>Bulk Insert</em></strong>. Eu sei que é triste, tem horas que chega a dar vontade de chorar, mas faz parte do nosso mundo de desenvolvimento e você nunca vai encontrar um código perfeito. A partir do momento que você começar a mexer nesse tipo de código, cabe a VOCÊ deixá-lo limpo.</p>
<p style="text-align: justify;">Em toda a minha trajetória como desenvolvedor, eu coloquei a seguinte premissa: se eu tiver que mexer num arquivo que está porco, quando eu acabar eu devo tê-lo deixado ao menos apresentável. Não digo perfeito, mas ele tem que estar melhor do que estava quando eu o encontrei. Dessa forma eu consigo ir colocando as coisas em ordem, mesmo que em pequenas doses.</p>
<a href="https://www.amazon.com.br/C%C3%B3digo-Limpo-Habilidades-Pr%C3%A1ticas-Software/dp/8576082675?tag=goog0ef-20&amp;smid=A1ZZFT5FULY4LN&amp;ascsubtag=8576082675" target="_blank" rel="noopener"><img class="aligncenter wp-image-606" src="https://souforce.cloud/wp-content/uploads/2017/09/3D_Codigo_Limpo-782x1024.jpg" alt="Código Limpo" width="360" height="471" /></a>
<p style="text-align: justify;">Se você gosta de uma boa leitura, eu recomendo o livro <a href="https://www.amazon.com.br/C%C3%B3digo-Limpo-Habilidades-Pr%C3%A1ticas-Software/dp/8576082675?tag=goog0ef-20&amp;smid=A1ZZFT5FULY4LN&amp;ascsubtag=8576082675" target="_blank" rel="noopener">Código Limpo. Habilidades Práticas Do Agile Software</a> de <strong>Robert Martin</strong>. Não costuma ser um livro barato, mas eu tenho certeza que ao final da leitura, você verá que valeu cada centavo. E não, não estou ganhando nada pela indicação, mas tenho certeza que todos que lerem vão me agradecer.</p>
<h3><strong>Nome de variáveis</strong></h3>
<p style="text-align: justify;">O nome de um variável deve, ou ao menos deveria, descrever exatamente para que ela serve. Algumas abreviações são bem vindas, mas vamos tentar colocar um limite racional. Imagine uma variável que vai armazenar uma lista de contas, qual seria o melhor nome para ela?</p>
<pre class="lang:c# decode:true">private List&lt;Account&gt; ListaDeContas;
private List&lt;Account&gt; lstC;
private List&lt;Account&gt; lAccounts;
private List&lt;Account&gt; AccountsList;</pre>
<p style="text-align: justify;">Eu sei que isso é muito subjetivo, mas eu prefiro a última opção, pois o nome diz o que é, sem ler todo o código para entender quem adiciona o que nesta lista. Você poderia dizer: "Mas Fernando, a primeira também deixa claro o que ela é". Sim, deixa, mas falarei mais abaixo sobre a utilização do inglês em programação e você vai entender porque eu prefiro a última opção.</p>
<p style="text-align: justify;">O nome da variável deve deixar claro o seu papel e isso evita confusões na maioria das vezes. Às vezes acabamos seguindo um padrão universal, mesmo sem saber. Exemplo: quem nunca fez um <strong>for</strong> com uma variável <strong>i</strong> que ative a primeira pedra! Mas afinal, você sabe porque se usa <strong>i</strong> e não outra letra qualquer? O <strong>i</strong> vem de <strong>Index</strong>. Tenho certeza que você vai se lembrar disso na próxima vez que for escrever um <strong>loop</strong> com <strong>for</strong>. :)</p>
<h3><strong>Programe na língua dos computadores</strong></h3>
<p style="text-align: justify;">Sabemos que <strong>inglês</strong> não é só a língua falada por todos os cantos da terra, como também é a língua dos computadores. A maioria das linguagens de programação são baseadas nesse idioma, inclusive suas documentações. Até mesmo a <a href="https://pt.wikipedia.org/wiki/Lua_(linguagem_de_programa%C3%A7%C3%A3o)" target="_blank" rel="noopener">linguagem de programação Lua</a>, criada por brasileiros, utiliza como base o inglês. Existem exceções, como a <a href="https://pt.wikipedia.org/wiki/Logic_Basic" target="_blank" rel="noopener">Logic Basic, que é uma linguagem baseada em Português</a>. Mas veja como até as exceções acabam se rendendo, afinal o próprio nome da linguagem é em inglês :)</p>
<p style="text-align: justify;">Eu poderia te dar inúmeros motivos para escrever seu código em inglês, mas para minha sorte, meu grande amigo Lucas Caton já fez isso, então sugiro que você <a href="https://blog.lucascaton.com.br/2015/05/22/8-motivos-pra-programar-em-ingles/" target="_blank" rel="noopener">leia este artigo</a>.</p>
<h3><strong>Mantenha o seu código organizado</strong></h3>
<p style="text-align: justify;">Essa sem dúvida é a parte que mais me incomoda como desenvolvedor. Já não basta encontrar códigos sem pé nem cabeça, ainda ter que ficar entendendo onde começa e onde termina cada coisa é sem dúvida a pior parte. Veja alguns exemplos do que encontro no meu dia a dia.</p>
<img class=" wp-image-615 aligncenter" src="https://souforce.cloud/wp-content/uploads/2017/09/espaco_nao_organiza_nada_amigao-972x1024.png" alt="Espaço não organiza nada amigão" width="638" height="672" />
<p style="text-align: justify;">Notem a falta de padrão nos nomes das variáveis <strong>lstProductsIdsAnexados</strong> e <strong>selectedContatos</strong>. Ambas são listas, porém cada variável segue o padrão que convém :/</p>
<img class="wp-image-616 aligncenter" src="https://souforce.cloud/wp-content/uploads/2017/09/agora_ficou_mais_claro-1024x990.png" alt="Agora sim esta dando para entender, você não sabe programar" width="809" height="782" />
<p style="text-align: justify;">Quem nunca comentou um trecho de código? Fazer isso para testar algum efeito colateral é ok, agora subir isso para o servidor não faz sentido. Para mantermos um histórico de alterações no código, devemos utilizar um sistema de controle de versão, como o <a href="https://git-scm.com/">Git</a> por exemplo. Deixar trechos de código comentados só dificultam ainda mais o entendimento do mesmo.</p>
<p style="text-align: justify;">Não importa o quão simples seja, sempre mantenha consultas SQL em um arquivo a parte. Isso facilita os testes e separa as responsabilidades. Apesar de não conseguirmos aplicar 100% do conceito de desenvolvimento <a href="https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)" target="_blank" rel="noopener"><strong>SOLID</strong></a> no Salesforce, sugiro que você pesquise sobre, isso fará você repensar muitas coisas que você faz no dia a dia.</p>
<h3><strong>Trailhead</strong></h3>
<p style="text-align: justify;">Se você ainda está se perguntando "Como ser um bom desenvolvedor", vale lembrar que já escrevemos aqui no blog <a href="https://souforce.cloud/categorias/trailhead/" target="_blank" rel="noopener">vários posts</a> sobre a importância de iniciar o <em>Trailhead</em>, o qual vai te ajudar a conhecer melhor a plataforma Salesforce. Isso é sem dúvida algo fundamental para ser um bom desenvolvedor.
<h3><strong>Certificações</strong></h3>
<p style="text-align: justify;">Por último, se você já passou pelo <em>Trailhead</em>, o próximo passo é conseguir a sua certificação. Ter uma certificação não significa necessariamente que alguém seja um bom desenvolvedor, mas isso te ajudará a trabalhar nas melhores empresas, ao lado de bons profissionais. Também já escrevemos alguns posts sobre certificações, sugiro que de uma olhada nos <a href="https://souforce.cloud/categorias/certificacao/" target="_blank" rel="noopener">posts desta categoria</a>. Atualmente eu só tenho uma certificação Microsoft, a qual conquistei na época em que atuava fortemente como desenvovedor C# .NET. Porém estou pegando firme para tirar as minhas de Salesforce; vou começar pela <strong>Admin</strong> e seguir para as de <strong>Dev I</strong> e <strong>Dev II</strong>.</p>
<p style="text-align: justify;">Bom, espero que este post ajude você de alguma forma a encontrar o caminho de como ser um bom desenvolvedor. Deixe nos comentários o que <strong>você concorda</strong> e tabmém o que <strong>você discorda</strong>, vamos <strong>criar uma discussão saudável</strong> a respeito. Até o próximo post! :)</p>
[showmodule id="363"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment