Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Aprendizados numa jornada dentro da comunidade Ruby @ RubyConf BR 2017

Aprendizados numa jornada dentro da comunidade Ruby @ RubyConf BR 2017

georgeguimaraes

November 17, 2017
Tweet

More Decks by georgeguimaraes

Other Decks in Programming

Transcript

  1. "a principle or set of principles laid down by an

    authority as incontrovertibly true"
  2. Product-Market Fit Search for Scalable Biz Model Scaling the Business

    Economizar dinheiro Investir agressivamente
  3. Product-Market Fit Search for Scalable Biz Model Scaling the Business

    MVP Débito técnico Protótipos Baixa "qualidade"
  4. Product-Market Fit Search for Scalable Biz Model Scaling the Business

    "re"-arquitetura aumento de squads apagando incêndios "meu deus como chegamos aqui?"
  5. Product-Market Fit Search for Scalable Biz Model Scaling the Business

    especialização em componentes "re"-engenharia contratações e mais contratações "zerar" os débitos técnicos consolidar a base
  6. O QUE TE TROUXE ATÉ AQUI NÃO VAI SER SUFICIENTE

    PARA TE LEVAR AO PRÓXIMO NÍVEL.
  7. GALERA DE MANUFATURA JÁ RESOLVEU ESSE TIPO DE PROBLEMA. Ou

    vc acha que fábricas e construção civil não tem variabilidade nem incerteza?
  8. O TESTE E O CÓDIGO NÃO SÃO PRA VC. SÃO

    PARA OS OUTROS. (OU PRA VC NO FUTURO).
  9. # Internal: Abstraction to respond on the circuit breaker state

    change # between closed and open on top of the `stoplight` API, that uses # transitions between 'green' and 'red' states to signal the state change. # # For more details on the API, please see the `Notifiers` section of the # `stoplight` documentation: https://github.com/orgsync/stoplight#notifiers class CircuitBreakerNotifier # Public: Initialize the `CircuitBreakerNotifier`. # # integration - The `Integration` that is associated with the Circuit Breaker. def initialize(integration) @integration = integration end
  10. # Public: Respond to the circuit breaker transition, perfoming our

    application # logic that needs to take place due the transition. # # stoplight - The `Stoplight::Light` that holds the Circuit Breaker. # from - The current color of the stoplight. # to - The color the stoplight is transitioning to. # error - The exception that might have been raised inside the Circuit # Breaker. # # Returns nothing. def notify(_, from, to, error) if opened?(from, to) failed!(error) if error elsif closed?(from, to) succeeded! end end
  11. class RepositoryManager I18N_SCOPE = %i[errors repositories].freeze def initialize(client) @client =

    client end # Public: Create a new `Repository` record based on a existing GitHub # repository. # # repo_name - A `String` with the GitHub repo's full name. # attributes - A `Hash` with extra attributes to be assigned to # the `Repository` (default: {}). # # Returns a `Result` object with the `Repository` record or a failure # message if it fails. def create(repo_name, attributes = {}) with_resource(repo_name) do |resource| attrs = attributes.merge(repo_attrs(resource)) Repository.create!(attrs) { |record| activate_repo(resource, record) } end end
  12. O COMENTÁRIO E O CÓDIGO NÃO SÃO PRA VC. SÃO

    PARA OS OUTROS. (OU PRA VC NO FUTURO).
  13. “So unless feature branches only last less than a day,

    running a feature branch is a different animal to CI. I've heard people say they are doing CI because they are running builds, perhaps using a CI server, on every branch with every commit. That's continuous building, and a Good Thing, but there's no integration, so it's not CI.”
  14. GRAPHQL NÃO É UMA BALA DE PRATA. ASSIM COMO REST

    NÃO FOI UMA BALA DE PRATA EM ~2010
  15. ARQUITETURA DE CÓDIGO DDD (Domain Driven Design) CQRS (Command Query

    Responsibility Segregation) ES (Event Sourcing) FP (Functional Programming)
  16. SERÁ MESMO QUE VC PRECISA DE MICROSERVIÇOS? Provavelmente precisa por

    motivos organizacionais, e não técnicos. Escolha conscientemente.
  17. Antes da discussão Depois da discussão Antes da discussão Depois

    da discussão Neutro A Favor Contra Grupo A Grupo B Discussões em times tendem à exacerbar a opinião dos membros do grupo. Group Polarization
  18. term refers to a deterioration in mental efficiency, reality testing

    and moral judgments as a result of group pressures
  19. time coeso isolamento do time / pressão externa falta de

    liderança imparcial background e ideologias homogêneas
  20. All effective alternatives should be examined Set up several independent

    groups Invite outside experts into meetings One should play Devil’s Advocate