Giter Site home page Giter Site logo

deesouza / challenge-02-js-expert Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ew-academy/jsexpert-challenge02-lifecycle

0.0 0.0 0.0 24 KB

This is a code challenge where you are supposed to implement the given functions taking into consideration the Javascript Lifecycle and other particularities of the language.

JavaScript 100.00%

challenge-02-js-expert's Introduction

challenge-02-js-expert's People

Contributors

deesouza avatar wellssa avatar

Watchers

 avatar

challenge-02-js-expert's Issues

Correção do desafio

Implementação

  • Completou com êxito o desafio principal e o sub-desafio!
  • Excelente padrão de nomenclatura de funções e variáveis!
  • Ótimo uso de clean code e organização criando inclusive estruturas novas para complementar ainda mais o desafio!

Possíveis pontos de melhoria

  • Vale a pena dar uma olhada no padrão de commits, que é como você documenta o processo de desenvolvimento. 😉 Como você já apresenta ótimos pontos positivos em termos de desenvolvimento, polir ainda mais os detalhes que complementam isso sem dúvidas dá um "up" ainda maior na sua imagem profissional. o/

ObjectMethodsService

Pontos fortes

Possíveis pontos de melhoria

  • Como você demonstrou um super interesse em nomenclatura de variáveis/funções e já está num outro nível de polimento das próprias habilidades, acho interessante levantar como um ponto de melhoria o padrão no uso de verbos na nomenclatura, que funciona mais ou menos assim: O método "faz algo" e a variável onde você armazena esse resultado "sofre a ação", então, pegando como exemplo esse cenário do formattedAndMergeValues:

    • Implementação atual:

    Aqui você declara a função como formattedAndMergeValues
    https://github.com/DeeSouza/jsexpert-challenge02-lifecycle/blob/87353086265006357377e37fdea9e772b91a5549/src/service/ObjectMethodsService.js#L48

    E logo em seguida você chama ela, atribuindo ela ao stringifyObject
    https://github.com/DeeSouza/jsexpert-challenge02-lifecycle/blob/87353086265006357377e37fdea9e772b91a5549/src/service/ObjectMethodsService.js#L31

    • Implementação aplicando o padrão de nomenclatura atualizado:

    Pensando na ação que a função faz, somente formatAndMergeValues (ou mesmo stringifyObject) seria um bom nome pra declarar a função

    function formatAndMergeValues() { ... }

    E aí na hora de chamar a função, pensando que o objeto sofre a ação, esse sim seria o stringifiedObject (ou formattedObject)

    E, inclusive, copyRawObject seria um nome de função, e o nome da variável ficaria algo tipo copiedRawObject ou rawObjectCopy

    const stringifiedObject = this.formatAndMergeValues(rawObjectCopy);

    Percebe como a leitura fica mais voltada ao que de fato a linha representa, e isso impacta na legibilidade, ficando algo como const objetoModificado = modificaObjeto(objetoCópia)? São detalhes bem simples mas que impactam bastante. :D

ReferencesService

Pontos fortes

StatementsService

Pontos fortes

  • Implementação impecável
  • Ótimo domínio do uso de conditional statements no Javascript e seus respectivos retornos em diferentes cenários.

Possíveis pontos de melhoria

WeirdMathService

Pontos fortes

  • Implementação impecável
  • Ótimo domínio do fluxo de vida do Javascript e coerções implícitas que ocorrem em expressões matemáticas.

Considerações finais

Concluiu com proficiência o Desafio principal e o sub-desafio, demonstrando uma preocupação excelente com nomenclatura de funções/variáveis e clean code. Mostrando assim possuir um ótimo domínio de princípios essenciais do Javascript e um padrão de polimento bem elevado das próprias habilidades. Parabéns, Diego! 🚀 Mandando ver mais uma vez aqui nos desafios, e espero contar contigo nos próximos também! 😄

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.