DEV Community

Hilderjares(sid)
Hilderjares(sid)

Posted on

código limpo + visão computacional = só felicidade

Recentemente voltei a estudar visão computacional, confesso que é uma área bem fascinante e um tanto complexa. Pois bem, é muito comum em meus estudos, eu me deparar com códigos que por si só, não transmitem um significado conciso sobre o que eles realizam. Clean code é uma filosofia aonde você aplica técnicas para deixar o código mais descritivo sobre o que ele faz, quem nunca viu aquelas variáveis x, y, z, ix, iy ou aquelas funções do_something(), apply(), convert(). O domínio de visão computacional por si só já é complexo, se o código não for legível, fica mais difícil ainda. Ainda poderiamos falar de object calisthenics ou S.O.L.I.D; contudo, é comum fazer uso do jupyter aonde o estruturado reina, a realidade é que você não precisa forçar seu código a passar com sucesso por object calisthenics ou outras filosofias voltadas para OOP. Dar um bom nome as coisas e separar as responsabilidades, é um avanço mais que ideal. I know, I know, nomear não é uma tarefa simples mas podemos tentar evitar esses x's e esses y's.

Quick tip 1

f = sys.argv[1]
i = cv2.imread(f, 0)

w = i.shape[1]
h = i.shape[0]
Enter fullscreen mode Exit fullscreen mode

Nunca abrevie, não existem motivos para abreviar, a preguiça é um caminho sem volta. Tanto você quanto quem for analisar o código, vai perder tempo tentando entender essas abreviações.

Quick tip 2

def draw(img):
    # code

def convert(img):
    # code
Enter fullscreen mode Exit fullscreen mode

Tente usar um nome que esclarece o que aquela função ou class vai realizar, um draw_circle() por exemplo, se tiver um caso com muitas figuras a serem desenhadas, use uma interface com os métodos: draw_circle(), draw_triangle() e etc. A ideia é separar as responsabilidades e dar um bom nome as coisas, como você vai fazer isso, deixo ao seu critério ^^

Quick tip 3

ix = -1
iy = -1

magnitude_spectrum = 20 * np.log(cv2.magnitude(dft_shift[:, :, 1], dft_shift[:, :, 1]))
Enter fullscreen mode Exit fullscreen mode

Não use números mágicos, no momento em que você está programando, você sabe o que é o -1 ou 20; entretanto, depois de um tempo aquilo pode não fazer mais nenhum sentido para você, muito menos para quem não escreveu o código. É comum colocar esses números em constantes com nomes descritivos sobre o que eles são.

Isso são pequenos exercícios para você praticar no momento da codificação, comece aos poucos e tranforme em uma rotina ^^

Extras

  • Como normalmente a gente vai está utilizando python, tente seguir a PEP 8, isso é muito importante. Você pode utilizar algum code formatter para facilitar sua vida, como o Jupyterlab Code Formatter

  • Leia o livro Código Limpo do Robert C. Martin, é um bom livro para ler antes de dormir ^^

Top comments (2)

Collapse
 
albuquerque profile image
Jonas Albuquerque

Muito bom o post! único problema dele, é que ele acaba! hahaha

Collapse
 
hilderjares profile image
Hilderjares(sid)

Thankiu man ^^