No momento, estou escrevendo Ruby, PHP, Java, C e JavaScript e vou escrever por um período mínimo de 1 hora em cada uma delas a cada dia. O principal problema é realmente uma questão de encontrar o tempo, pois todos eles são para projetos não relacionados.
Mudança mental
Meu estilo de trabalho é tal que gosto de trabalhar por longos períodos de tempo. Infelizmente, isso significa que, se eu tiver apenas uma coisa, quando encontro um bloqueio mental com um pedaço de código, levarei um longo tempo para superá-lo. Também não acho que fazer uma pausa. Ao ter outros projetos e, em particular, outros idiomas, para alternar para sempre que eu ficar travado, quando voltar ao idioma original, eu imediatamente tenho uma solução.
Portanto, sim, há uma mudança mental e acho que me torna muito mais produtivo.
Priorizando tarefas
Eu uso um gerenciador de tarefas (gTasks para Android) e tenho uma lista de tarefas separada para cada projeto. Se um projeto requer vários idiomas, não os separo. Isso geralmente ocorre porque eles estarão fortemente relacionados de alguma forma. Por exemplo, JavaScript e Ruby para fazer algumas coisas de AJAX. Se os idiomas são tecnicamente para o mesmo projeto, mas o projeto é tão grande que eles são essencialmente independentes, provavelmente os contarei como projetos separados.
Geralmente, minha prioridade é "a lista que tiver mais tarefas", mas sempre mudarei se ficar presa a um problema.
Convenções de codificação
É um pouco de uma mistura:
- Se o projeto for desenvolvido com outras pessoas, então obviamente obedecerei às convenções que foram decididas para esse projeto.
- Se o projeto for pessoal, eu gostaria que meu código parecesse consistente com o estilo dominante na comunidade / biblioteca padrão para um determinado idioma. Acho difícil ler o código Java se todas as funções dos usuários estiverem em snake_case, por exemplo. Da mesma forma, os métodos camelCase no Ruby parecem estranhos e deslocados.
- Para convenções que não são óbvias pelo simples uso de um idioma, como o recuo, tenderei a adotar meus próprios padrões e usá-los em todos os idiomas que uso. No caso de recuo, eu sempre uso 2 espaços. Para o estilo entre chaves, eu sempre uso o que a Wikipedia está atualmente decidindo chamar de Estilo de legibilidade do controle compacto .
Além: O maior desafio para mim é realmente alternar entre linguagens de estilo. É muito difícil competir ao codificar SASS ao lado de Ruby e depois ter que voltar ao CSS para todo o resto. Em menor grau, tenho o mesmo problema com HAML / HTML e JSON / XML.
.equals
em javascript. Pelo menos eu sempre erro dessa maneira ao invés de usar==
em java.