Como NÃO ser um desenvolvedor medíocre

OlĂĄ Habr! Apresento a vocĂȘ a tradução do artigo "Como nĂŁo ser um desenvolvedor medĂ­ocre!"
Dushyant Sabharwal. O artigo fornece algumas dicas para iniciantes e, possivelmente, alguns programadores experientes que podem ajudar a melhorar significativamente seu profissionalismo e mudar sua atitude em relação ao trabalho. Alguns deles podem parecer comuns, mas os iniciantes podem encontrar algo Ăștil para si mesmos.

Escreva mais cĂłdigo


Se vocĂȘ deseja aprimorar suas habilidades em qualquer profissĂŁo, precisa praticar mais - infelizmente nĂŁo hĂĄ soluçÔes alternativas. NĂŁo importa quantos artigos de programação vocĂȘ lĂȘ por dia ou quantas vezes por dia vocĂȘ lĂȘ a documentação - vocĂȘ nĂŁo obterĂĄ resultados sem trabalhar com suas prĂłprias mĂŁos. Os padrĂ”es de design que parecem difĂ­ceis de serem usados ​​por muitos iniciantes começam a voar automaticamente sob seus dedos quando vocĂȘ os aplica em diferentes contextos.



Escrever testes


Quando comecei a testar ativamente meu cĂłdigo, fiquei surpreso com meu despreparo para escrever testes de qualidade. Escrever testes o ensinarĂĄ a examinar seu cĂłdigo de uma nova maneira, porque quando vocĂȘ descobrir maneiras de quebrar seu cĂłdigo, provavelmente entenderĂĄ a estrutura e a lĂłgica do seu cĂłdigo mais profundamente e encontrarĂĄ alguns erros (mesmo antes de os testes serem executados enquanto eles estĂŁo sendo gravados) e observe que pode valer a pena colocar algumas partes do seu cĂłdigo em funçÔes auxiliares ou tornar algumas funçÔes mais generalizadas - em alguns casos, vocĂȘ serĂĄ forçado a fazer isso se achar que seu cĂłdigo nĂŁo pode ser testado.

Vejamos um exemplo:

function postData(data) {
 boolean valid = true;
 //   
 if (data === undefined) {
   valid = false;
 }
//    
 if (!regex(data['email']) {
   valid = false;
 }
//   
 if (data['password'].length < 8) {
   valid = false;
 }
if (valid) {
  http
   .post(`example.com/user/create`, data)
   .then((response) => {
    //   
    this.users.append(response.userid);
   })
   .catch((error) => {
    //    
   });
 } else {
   showValidationError();
 }
}

postData : , , . postData . , :

function postData(data) {
 return http
   .post(`example.com/user/create`, data);
}

function validate(data) {
 //   
 if (data === undefined) {
   return false;
 }
//    
 if (!regex(data['email']) {
   return false;
 }
//   
 if (data['password'].length >= 8) {
   return false;
 }
  return true;
}

function appendUsers(userId) {
  this.users.append(response.userid);
}

function main() {
 if (validate(data)) {
  postData(data)
   .then(data => appendToList(data.userId))
   .catch(error => handleError(error))
 } else {
  showValidationError();
 }
}

, — , , .


. , - API, , , , - .

open-source


open-source , , . . . , open-source . , open-source .


-, , , , , . , 100%, - .


, . product manager-, — , ! , , !


/ . , , , . , , . , , , .




, , API, ( ) . , .

var app = new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue!'
  }
})

, vue.js. , :

  1. new? «» ?
  2. , el id , #? , , ?
  3. data vue. ?

, , , .


, . , , , — ! , . API. , , , .


( , , ) , . . , , API.

. , . , , , .

, , : hackerrank, leetcode, codingame .


, , . stackoverflow, . medium , . github. , , .

-


API , , : « — . ». , . , DRY, , , .. (, ), . , , , , « », .


, , , . , — , !

Source: https://habr.com/ru/post/pt416825/


All Articles