Conselho geral
Aqui está a linha de fundo, na minha opinião:
- Se você não conhece bem o idioma para conhecer os recursos e expressões comuns , provavelmente não contribuirá muito para a revisão.
- Se você quiser aprender os recursos e idiomas do idioma, participe da análise. Seu foco deve ser observar os idiomas e fazer perguntas sobre padrões e organização que não fazem sentido para você. Isso pode ajudar a identificar áreas problemáticas, mas apenas no sentido de que você pode forçar o desenvolvedor a defender o que eles fizeram. Faça suas perguntas de uma maneira que deixe espaço para sua lacuna no conhecimento. Observe que isso pode acabar sendo um custo de rede na própria revisão, mas esse custo é um investimento em seu conhecimento.
- Sua capacidade de contribuir até se familiarizar com os recursos, idiomas e padrões do idioma será limitada. Eu não esperaria que isso mudasse até que você realmente tenha escrito uma quantidade significativa de código na linguagem.
Considerações e exemplos específicos do Python
Para a situação específica de não saber Python, eu seria especialmente cauteloso com isso. O Python tem muitos idiomas e práticas padrão que fazem o Python parecer muito diferente do que você espera em outras linguagens. (De fato, acho que as coisas que o Python enfatiza fizeram meu código parecer melhor em outros idiomas, e não o contrário.) Além do PEP8 tem um bom exemplo de como você pode perder completamente a mentalidade que o Python incentiva.
Vamos dar uma olhada em um exemplo simples. Pegue este código:
f = open('/home/me/something.txt')
try:
content = f.read()
finally:
f.close()
Veja o problema com este código? Se você não trabalhou com Python, provavelmente não trabalhou. O problema é que existe um muito estilo preferido no Python que faz exatamente a mesma coisa:
with open('/home/me/something.txt') as f:
content = f.read()
Este é um gerenciador de contexto. Você sabe o que é bom para eles? Você sabe quando seria apropriado usar um? Você sabe quando seria apropriado criar o seu próprio? Não? Então você provavelmente não está pronto para rever o Python.
Vamos ver outro exemplo.
def add_fifty(other_list):
result = list()
for i in other_list:
result.append(i + 50)
return result
x = range(10)
y = add_fifty(x)
Veja o problema? O problema é que este método é completamente desnecessário. Você provavelmente deve usar apenas uma compreensão no lugar, quando a operação é simples:
x = range(10)
y = [i + 50 for i in x]
Se você não viu isso, não está familiarizado com os recursos e idiomas do Python.