• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Model of the colossus
 

Model of the colossus

on

  • 733 views

Saiba como não deixar seu model virar um ameaçador Colosso.

Saiba como não deixar seu model virar um ameaçador Colosso.
Vídeo da palestra em https://www.eventials.com/pt-br/helabs/model-of-the-colossus/

Statistics

Views

Total Views
733
Views on SlideShare
656
Embed Views
77

Actions

Likes
3
Downloads
1
Comments
0

3 Embeds 77

http://helabs.com.br 75
https://twitter.com 1
http://localhost 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Model of the colossus Model of the colossus Presentation Transcript

    • Model of the Colossus
    • @maurogeorgemaurogeorge.github.comaprenderphp.com.brMauro George
    • Seu model, um grande colosso
    • Mas por que istoacontece?
    • Um pouco de história
    • Rails 15 minutes blogComeçamos bem
    • Começamos bemMVC
    • Começamos bemRails way
    • Começamos bemMigração de outras linguagens direto para o RailsDesde que mude o mindset
    • Inicia a confusão paranovatos2 Stacks
    • Inicia a confusão paranovatos37 Signals stackERB for view templatesMySQL for databasesMiniTest for testingFat Models, Skinny Controllers
    • Inicia a confusão paranovatosPrime stackHaml for view templatesPostgreSQL for databasesRspec/Cucumber for testingSkinny models, controllers, and a service layer
    • AR quebra o SRPAlto acoplamento- Callback- Observer- FindersFalta de coesão- Salva- Envia e-mail- Posta no Facebook
    • Anti-patternModel gerando conteúdo para view
    • SoluçãoDecorator & Presenter
    • SoluçãoDecoratorPara quando lidamos com apenas umaentidade
    • Anti-pattern
    • Soluçãoapp/decorators/user_decorator.rb
    • Solução
    • SoluçãoPresenterPara quando lidamos com N entidades
    • Anti-patternMétodo de Post ou User?
    • Soluçãoapp/presenters/writter_post_presenter.rb
    • Solução
    • SoluçãoPrefira esta abordagem a helpersHelpers são procedurais
    • Anti-patternModel Callbacks
    • Anti-pattern
    • SoluçãoService
    • Soluçãoapp/services/post_notify_users_service.rb
    • Solução
    • Anti-patternModel Salvando N models
    • Anti-pattern
    • SoluçãoForm Object
    • Soluçãolib/active_model/model.rbJá vem no rails 4Gem active_attrGem virtus
    • Soluçãoapp/models/user_with_post.rbModel nem sembre herda de AR
    • Solução
    • ActiveSupport::ConcernsPrefira as abordagem utilizando POROsActiveSupport::Concerns taca tudo paradebaixo dos panos
    • Bad SmellsMeu Model está virando um Colosso?
    • Bad SmellsDiversos métodos com nome de outraentidade
    • Bad SmellsN métodos recebendo o mesmo paramêtro
    • N métodos privados que são usados emapenas um métodoBad Smells
    • Classe gigante(Provavelmente uma God Class)Prefira N classes pequenasBad Smells
    • Pro FuturoDCI
    • Crie classesQuebre Model e Classes grandes emclasses menoresClasses que façam apenas uma coisa bemfeitaConclusão
    • @maurogeorgemaurogeorge.github.comaprenderphp.com.brMauro George
    • Referênciashttp://rubyweekly.com/archive/124.htmlhttp://rubyweekly.com/archive/126.htmlhttp://robots.thoughtbot.com/post/14825364877/evaluating-alternative-decorator-implementations-inhttp://mikepackdev.com/blog_posts/31-exhibit-vs-presentersamuelmullen.com/2013/05/the-problem-with-rails-callbackshttp://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/http://rubysource.com/ddd-for-rails-developers-part-1-layered-architecture/http://blog.plataformatec.com.br/2012/03/barebone-models-to-use-with-actionpack-in-rails-4-0/http://www.youtube.com/watch?v=DC-pQPq0acs