際際滷

際際滷Share a Scribd company logo
Facade Pattern in rails
Rasna Shakya
Associate software engineer
Overview
What is facade pattern?
Why facade pattern?
Advantage
Drawbacks
Jyaasa : We Design, Build and Develop Products
What is Facade Pattern?
The Facade Pattern is simply a formalization of the idea that if you
cannot avoid complexity, then the next best thing to do is to isolate it, to
keep it from contaminating your whole system -- Russ Olsen
Facade pattern provides a unified interface to a set of interfaces in a
subsystem.
Facade pattern hides the complexities of the system and provides an
interface to the client
Jyaasa : We Design, Build and Develop Products
Why facade pattern?
Jyaasa : We Design, Build and Develop Products
Ruby on rails is built on MVC paradigm.
The problem in rails project, Controller is very weak and a lot of
query and logics are happening on it to prepare data for views.
Although we can use services and decorators for restructuring
data to be more digestible by a view, still its not enough and we
have fat controller.
Jyaasa : We Design, Build and Develop Products
# app/controllers/chat_rooms_controller.rb
Class ChatRoomsController < ApplicationController
before_filter :set_chat_room, only: :show
def show
@message = @chat_room.messages.new
@chat_message = @chat_room.messages.limit(5)
@unread_message = @chat_room.unread_msg(current_user)
end
private
def set_chat_room
@chat_room = current_user.chat_rooms.find(params[:id])
end
end
Jyaasa : We Design, Build and Develop Products
A lot of initializations of data and helping objects in
controller
Jyaasa : We Design, Build and Develop Products
Solution ???
Jyaasa : We Design, Build and Develop Products
We can use use Facade design pattern to remove that
responsibility of preparing data for the view and create unified
face visible to outside world, also to hide the components
underneath.
Lets create a new folder in Rails project app/facades and lets
create our facade PORO class
# app/facades/chat_rooms_facade.rb
Class ChatRoomsFacade
attr_reader :chat_room, current_user
def initialize(chat_room, current_user)
@chat_room = chat_room
@current_user = current_user
end
def unread_message
@unread_message = chat_room.unread_msg(current_user)
end
def new_message
@message = Message.new
end
Jyaasa : We Design, Build and Develop Products
def chat_message
@chat_message = chat_room.messages.limit(5)
end
end
Jyaasa : We Design, Build and Develop Products
After moving all of the data preparations to ChatRoomsFacade, that allows us
to simply controller:
# app/controllers/chat_rooms_controller.rb
Class ChatRoomsController < ApplicationController
before_filter :set_chat_room, only: :show
def show
@chat_room = ChatRoomsFacade,new(@chat_room,
current_user)
end
Private
def set_chat_room
@chat_room = current_user.chat_rooms.find(params[:id])
end
end
Jyaasa : We Design, Build and Develop Products
and use it in the view:
<%= @chat_room.chat_message %>
<%= @chat_room.unread_message %>
Jyaasa : We Design, Build and Develop Products
Advantage
Facade pattern can be very helpful for simplifying the controllers,
especially if we have rather big project that is still growing.
- Introducing another layer of abstraction to our application
Jyaasa : We Design, Build and Develop Products
Demerits
Jyaasa : We Design, Build and Develop Products
Thank you

More Related Content

Similar to Facade pattern in rails (20)

Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
Gary Pedretti
2014_report
2014_report2014_report
2014_report
K SEZER
.NET Architecture for Enterprises
.NET Architecture for Enterprises.NET Architecture for Enterprises
.NET Architecture for Enterprises
Wade Wegner
Final ppt
Final pptFinal ppt
Final ppt
Ankit Gupta
Architecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachArchitecting for Change: An Agile Approach
Architecting for Change: An Agile Approach
Ben Stopford
Cloud computing - an architect's perspective
Cloud computing - an architect's perspectiveCloud computing - an architect's perspective
Cloud computing - an architect's perspective
HARMAN Services
Prakash_Ganapathy
Prakash_GanapathyPrakash_Ganapathy
Prakash_Ganapathy
Prakash Ganapathy
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
Harsh Jegadeesan
Top 5 backend frameworks for web development in.pptx
Top 5 backend frameworks for web development in.pptxTop 5 backend frameworks for web development in.pptx
Top 5 backend frameworks for web development in.pptx
SilverClouding Consultancy Pvt Ltd
Mvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops worldMvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops world
Alessandro Alpi
Ruby on Rails Scaffold_ Create Your App In Minutes
Ruby on Rails Scaffold_ Create Your App In MinutesRuby on Rails Scaffold_ Create Your App In Minutes
Ruby on Rails Scaffold_ Create Your App In Minutes
rorbitssoftware
Actively looking for an opportunity to work as a challenging Dot Net Developer
Actively looking for an opportunity to work as a challenging Dot Net DeveloperActively looking for an opportunity to work as a challenging Dot Net Developer
Actively looking for an opportunity to work as a challenging Dot Net Developer
Karthik Reddy
Actively looking for an opportunity to work as a challenging Dot Net Developer
Actively looking for an opportunity to work as a challenging Dot Net DeveloperActively looking for an opportunity to work as a challenging Dot Net Developer
Actively looking for an opportunity to work as a challenging Dot Net Developer
Karthik Reddy
Chandra Sekhar Cheekuru NET UI
Chandra Sekhar Cheekuru  NET UIChandra Sekhar Cheekuru  NET UI
Chandra Sekhar Cheekuru NET UI
Chandra Sekhar
Latest Web development technologies 2021
 Latest Web development technologies 2021 Latest Web development technologies 2021
Latest Web development technologies 2021
SWATHYSMOHAN
Designingapplswithnet
DesigningapplswithnetDesigningapplswithnet
Designingapplswithnet
DSK Chakravarthy
Vishal Jadhav
Vishal JadhavVishal Jadhav
Vishal Jadhav
爐朽た爐謹ぞ爐 爐爐鉦ぇ爐
Eclipse Developement @ Progress Software
Eclipse Developement @ Progress SoftwareEclipse Developement @ Progress Software
Eclipse Developement @ Progress Software
sriikanthp
COMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docxCOMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docx
write31
Electric Microservices Land - Tsuyoshi Ushio
Electric Microservices Land - Tsuyoshi UshioElectric Microservices Land - Tsuyoshi Ushio
Electric Microservices Land - Tsuyoshi Ushio
DevDay Da Nang
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
Gary Pedretti
2014_report
2014_report2014_report
2014_report
K SEZER
.NET Architecture for Enterprises
.NET Architecture for Enterprises.NET Architecture for Enterprises
.NET Architecture for Enterprises
Wade Wegner
Architecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachArchitecting for Change: An Agile Approach
Architecting for Change: An Agile Approach
Ben Stopford
Cloud computing - an architect's perspective
Cloud computing - an architect's perspectiveCloud computing - an architect's perspective
Cloud computing - an architect's perspective
HARMAN Services
Mvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops worldMvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops world
Alessandro Alpi
Ruby on Rails Scaffold_ Create Your App In Minutes
Ruby on Rails Scaffold_ Create Your App In MinutesRuby on Rails Scaffold_ Create Your App In Minutes
Ruby on Rails Scaffold_ Create Your App In Minutes
rorbitssoftware
Actively looking for an opportunity to work as a challenging Dot Net Developer
Actively looking for an opportunity to work as a challenging Dot Net DeveloperActively looking for an opportunity to work as a challenging Dot Net Developer
Actively looking for an opportunity to work as a challenging Dot Net Developer
Karthik Reddy
Actively looking for an opportunity to work as a challenging Dot Net Developer
Actively looking for an opportunity to work as a challenging Dot Net DeveloperActively looking for an opportunity to work as a challenging Dot Net Developer
Actively looking for an opportunity to work as a challenging Dot Net Developer
Karthik Reddy
Chandra Sekhar Cheekuru NET UI
Chandra Sekhar Cheekuru  NET UIChandra Sekhar Cheekuru  NET UI
Chandra Sekhar Cheekuru NET UI
Chandra Sekhar
Latest Web development technologies 2021
 Latest Web development technologies 2021 Latest Web development technologies 2021
Latest Web development technologies 2021
SWATHYSMOHAN
Eclipse Developement @ Progress Software
Eclipse Developement @ Progress SoftwareEclipse Developement @ Progress Software
Eclipse Developement @ Progress Software
sriikanthp
COMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docxCOMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docx
write31
Electric Microservices Land - Tsuyoshi Ushio
Electric Microservices Land - Tsuyoshi UshioElectric Microservices Land - Tsuyoshi Ushio
Electric Microservices Land - Tsuyoshi Ushio
DevDay Da Nang

More from Jyaasa Technologies (20)

Incident management with jira
Incident management with jiraIncident management with jira
Incident management with jira
Jyaasa Technologies
Extreme programming practices ( xp )
Extreme programming practices ( xp ) Extreme programming practices ( xp )
Extreme programming practices ( xp )
Jyaasa Technologies
The myth of 'real javascript developer'
The myth of 'real javascript developer'The myth of 'real javascript developer'
The myth of 'real javascript developer'
Jyaasa Technologies
Scrum ceromonies
Scrum ceromoniesScrum ceromonies
Scrum ceromonies
Jyaasa Technologies
An introduction to bitcoin
An introduction to bitcoinAn introduction to bitcoin
An introduction to bitcoin
Jyaasa Technologies
Tor network
Tor networkTor network
Tor network
Jyaasa Technologies
Collective ownership in agile teams
Collective ownership in agile teamsCollective ownership in agile teams
Collective ownership in agile teams
Jyaasa Technologies
Push notification
Push notificationPush notification
Push notification
Jyaasa Technologies
The Design Thinking Process
The Design Thinking ProcessThe Design Thinking Process
The Design Thinking Process
Jyaasa Technologies
User story
User storyUser story
User story
Jyaasa Technologies
Design sprint
Design sprintDesign sprint
Design sprint
Jyaasa Technologies
Data Flow Diagram
Data Flow DiagramData Flow Diagram
Data Flow Diagram
Jyaasa Technologies
OKRs and Actions Overview
OKRs and Actions OverviewOKRs and Actions Overview
OKRs and Actions Overview
Jyaasa Technologies
Vue.js
Vue.jsVue.js
Vue.js
Jyaasa Technologies
Active record in rails 5
Active record in rails 5Active record in rails 5
Active record in rails 5
Jyaasa Technologies
Design Patern::Adaptor pattern
Design Patern::Adaptor patternDesign Patern::Adaptor pattern
Design Patern::Adaptor pattern
Jyaasa Technologies
Association in rails
Association in railsAssociation in rails
Association in rails
Jyaasa Technologies
Web design layout pattern
Web design layout patternWeb design layout pattern
Web design layout pattern
Jyaasa Technologies
Command Pattern in Ruby
Command Pattern in RubyCommand Pattern in Ruby
Command Pattern in Ruby
Jyaasa Technologies
Design Pattern:: Template Method
Design Pattern:: Template MethodDesign Pattern:: Template Method
Design Pattern:: Template Method
Jyaasa Technologies

Recently uploaded (20)

health safety and environment presentation
health safety and environment presentationhealth safety and environment presentation
health safety and environment presentation
ssuserc606c7
Wireless-Charger presentation for seminar .pdf
Wireless-Charger presentation for seminar .pdfWireless-Charger presentation for seminar .pdf
Wireless-Charger presentation for seminar .pdf
AbhinandanMishra30
Best KNow Hydrogen Fuel Production in the World The cost in USD kwh for H2
Best KNow  Hydrogen Fuel Production in the World The cost in USD kwh for H2Best KNow  Hydrogen Fuel Production in the World The cost in USD kwh for H2
Best KNow Hydrogen Fuel Production in the World The cost in USD kwh for H2
Daniel Donatelli
UNIT 1FUNDAMENTALS OF OPERATING SYSTEMS.pptx
UNIT 1FUNDAMENTALS OF OPERATING SYSTEMS.pptxUNIT 1FUNDAMENTALS OF OPERATING SYSTEMS.pptx
UNIT 1FUNDAMENTALS OF OPERATING SYSTEMS.pptx
KesavanT10
G8 mini project for alcohol detection and engine lock system with GPS tracki...
G8 mini project for  alcohol detection and engine lock system with GPS tracki...G8 mini project for  alcohol detection and engine lock system with GPS tracki...
G8 mini project for alcohol detection and engine lock system with GPS tracki...
sahillanjewar294
04 MAINTENANCE OF CONCRETE PAVEMENTS.ppt
04  MAINTENANCE OF CONCRETE PAVEMENTS.ppt04  MAINTENANCE OF CONCRETE PAVEMENTS.ppt
04 MAINTENANCE OF CONCRETE PAVEMENTS.ppt
sreenath seenu
CONTRACTOR ALL RISK INSURANCESAR (1).ppt
CONTRACTOR ALL RISK INSURANCESAR (1).pptCONTRACTOR ALL RISK INSURANCESAR (1).ppt
CONTRACTOR ALL RISK INSURANCESAR (1).ppt
suaktonny
Engineering at Lovely Professional University (LPU).pdf
Engineering at Lovely Professional University (LPU).pdfEngineering at Lovely Professional University (LPU).pdf
Engineering at Lovely Professional University (LPU).pdf
Sona
Cyber Security_ Protecting the Digital World.pptx
Cyber Security_ Protecting the Digital World.pptxCyber Security_ Protecting the Digital World.pptx
Cyber Security_ Protecting the Digital World.pptx
Harshith A S
Air pollution is contamination of the indoor or outdoor environment by any ch...
Air pollution is contamination of the indoor or outdoor environment by any ch...Air pollution is contamination of the indoor or outdoor environment by any ch...
Air pollution is contamination of the indoor or outdoor environment by any ch...
dhanashree78
Piping-and-pipeline-calculations-manual.pdf
Piping-and-pipeline-calculations-manual.pdfPiping-and-pipeline-calculations-manual.pdf
Piping-and-pipeline-calculations-manual.pdf
OMI0721
Taykon-Kalite belgeleri
Taykon-Kalite belgeleriTaykon-Kalite belgeleri
Taykon-Kalite belgeleri
TAYKON
GREEN BULIDING PPT FOR THE REFRENACE.PPT
GREEN BULIDING PPT FOR THE REFRENACE.PPTGREEN BULIDING PPT FOR THE REFRENACE.PPT
GREEN BULIDING PPT FOR THE REFRENACE.PPT
kamalkeerthan61
Equipment for Gas Metal Arc Welding Process
Equipment for Gas Metal Arc Welding ProcessEquipment for Gas Metal Arc Welding Process
Equipment for Gas Metal Arc Welding Process
AhmadKamil87
Power Point Presentation for Electrical Engineering 3-phase.ppt
Power Point Presentation for Electrical Engineering 3-phase.pptPower Point Presentation for Electrical Engineering 3-phase.ppt
Power Point Presentation for Electrical Engineering 3-phase.ppt
Aniket_1415
CFOT Fiber Optics FOA CERTIFICATION.pptx
CFOT Fiber Optics FOA CERTIFICATION.pptxCFOT Fiber Optics FOA CERTIFICATION.pptx
CFOT Fiber Optics FOA CERTIFICATION.pptx
MohamedShabana37
decarbonization steel industry rev1.pptx
decarbonization steel industry rev1.pptxdecarbonization steel industry rev1.pptx
decarbonization steel industry rev1.pptx
gonzalezolabarriaped
eng funda notes.pdfddddddddddddddddddddddd
eng funda notes.pdfdddddddddddddddddddddddeng funda notes.pdfddddddddddddddddddddddd
eng funda notes.pdfddddddddddddddddddddddd
aayushkumarsinghec22
Introduction to Safety, Health & Environment
Introduction to Safety, Health  & EnvironmentIntroduction to Safety, Health  & Environment
Introduction to Safety, Health & Environment
ssuserc606c7
CS3451-OPERATING-SYSTEM NOTES ALL123.pdf
CS3451-OPERATING-SYSTEM NOTES ALL123.pdfCS3451-OPERATING-SYSTEM NOTES ALL123.pdf
CS3451-OPERATING-SYSTEM NOTES ALL123.pdf
PonniS7
health safety and environment presentation
health safety and environment presentationhealth safety and environment presentation
health safety and environment presentation
ssuserc606c7
Wireless-Charger presentation for seminar .pdf
Wireless-Charger presentation for seminar .pdfWireless-Charger presentation for seminar .pdf
Wireless-Charger presentation for seminar .pdf
AbhinandanMishra30
Best KNow Hydrogen Fuel Production in the World The cost in USD kwh for H2
Best KNow  Hydrogen Fuel Production in the World The cost in USD kwh for H2Best KNow  Hydrogen Fuel Production in the World The cost in USD kwh for H2
Best KNow Hydrogen Fuel Production in the World The cost in USD kwh for H2
Daniel Donatelli
UNIT 1FUNDAMENTALS OF OPERATING SYSTEMS.pptx
UNIT 1FUNDAMENTALS OF OPERATING SYSTEMS.pptxUNIT 1FUNDAMENTALS OF OPERATING SYSTEMS.pptx
UNIT 1FUNDAMENTALS OF OPERATING SYSTEMS.pptx
KesavanT10
G8 mini project for alcohol detection and engine lock system with GPS tracki...
G8 mini project for  alcohol detection and engine lock system with GPS tracki...G8 mini project for  alcohol detection and engine lock system with GPS tracki...
G8 mini project for alcohol detection and engine lock system with GPS tracki...
sahillanjewar294
04 MAINTENANCE OF CONCRETE PAVEMENTS.ppt
04  MAINTENANCE OF CONCRETE PAVEMENTS.ppt04  MAINTENANCE OF CONCRETE PAVEMENTS.ppt
04 MAINTENANCE OF CONCRETE PAVEMENTS.ppt
sreenath seenu
CONTRACTOR ALL RISK INSURANCESAR (1).ppt
CONTRACTOR ALL RISK INSURANCESAR (1).pptCONTRACTOR ALL RISK INSURANCESAR (1).ppt
CONTRACTOR ALL RISK INSURANCESAR (1).ppt
suaktonny
Engineering at Lovely Professional University (LPU).pdf
Engineering at Lovely Professional University (LPU).pdfEngineering at Lovely Professional University (LPU).pdf
Engineering at Lovely Professional University (LPU).pdf
Sona
Cyber Security_ Protecting the Digital World.pptx
Cyber Security_ Protecting the Digital World.pptxCyber Security_ Protecting the Digital World.pptx
Cyber Security_ Protecting the Digital World.pptx
Harshith A S
Air pollution is contamination of the indoor or outdoor environment by any ch...
Air pollution is contamination of the indoor or outdoor environment by any ch...Air pollution is contamination of the indoor or outdoor environment by any ch...
Air pollution is contamination of the indoor or outdoor environment by any ch...
dhanashree78
Piping-and-pipeline-calculations-manual.pdf
Piping-and-pipeline-calculations-manual.pdfPiping-and-pipeline-calculations-manual.pdf
Piping-and-pipeline-calculations-manual.pdf
OMI0721
Taykon-Kalite belgeleri
Taykon-Kalite belgeleriTaykon-Kalite belgeleri
Taykon-Kalite belgeleri
TAYKON
GREEN BULIDING PPT FOR THE REFRENACE.PPT
GREEN BULIDING PPT FOR THE REFRENACE.PPTGREEN BULIDING PPT FOR THE REFRENACE.PPT
GREEN BULIDING PPT FOR THE REFRENACE.PPT
kamalkeerthan61
Equipment for Gas Metal Arc Welding Process
Equipment for Gas Metal Arc Welding ProcessEquipment for Gas Metal Arc Welding Process
Equipment for Gas Metal Arc Welding Process
AhmadKamil87
Power Point Presentation for Electrical Engineering 3-phase.ppt
Power Point Presentation for Electrical Engineering 3-phase.pptPower Point Presentation for Electrical Engineering 3-phase.ppt
Power Point Presentation for Electrical Engineering 3-phase.ppt
Aniket_1415
CFOT Fiber Optics FOA CERTIFICATION.pptx
CFOT Fiber Optics FOA CERTIFICATION.pptxCFOT Fiber Optics FOA CERTIFICATION.pptx
CFOT Fiber Optics FOA CERTIFICATION.pptx
MohamedShabana37
decarbonization steel industry rev1.pptx
decarbonization steel industry rev1.pptxdecarbonization steel industry rev1.pptx
decarbonization steel industry rev1.pptx
gonzalezolabarriaped
eng funda notes.pdfddddddddddddddddddddddd
eng funda notes.pdfdddddddddddddddddddddddeng funda notes.pdfddddddddddddddddddddddd
eng funda notes.pdfddddddddddddddddddddddd
aayushkumarsinghec22
Introduction to Safety, Health & Environment
Introduction to Safety, Health  & EnvironmentIntroduction to Safety, Health  & Environment
Introduction to Safety, Health & Environment
ssuserc606c7
CS3451-OPERATING-SYSTEM NOTES ALL123.pdf
CS3451-OPERATING-SYSTEM NOTES ALL123.pdfCS3451-OPERATING-SYSTEM NOTES ALL123.pdf
CS3451-OPERATING-SYSTEM NOTES ALL123.pdf
PonniS7

Facade pattern in rails

  • 3. Overview What is facade pattern? Why facade pattern? Advantage Drawbacks
  • 4. Jyaasa : We Design, Build and Develop Products What is Facade Pattern? The Facade Pattern is simply a formalization of the idea that if you cannot avoid complexity, then the next best thing to do is to isolate it, to keep it from contaminating your whole system -- Russ Olsen Facade pattern provides a unified interface to a set of interfaces in a subsystem. Facade pattern hides the complexities of the system and provides an interface to the client
  • 5. Jyaasa : We Design, Build and Develop Products Why facade pattern?
  • 6. Jyaasa : We Design, Build and Develop Products Ruby on rails is built on MVC paradigm. The problem in rails project, Controller is very weak and a lot of query and logics are happening on it to prepare data for views. Although we can use services and decorators for restructuring data to be more digestible by a view, still its not enough and we have fat controller.
  • 7. Jyaasa : We Design, Build and Develop Products # app/controllers/chat_rooms_controller.rb Class ChatRoomsController < ApplicationController before_filter :set_chat_room, only: :show def show @message = @chat_room.messages.new @chat_message = @chat_room.messages.limit(5) @unread_message = @chat_room.unread_msg(current_user) end private def set_chat_room @chat_room = current_user.chat_rooms.find(params[:id]) end end
  • 8. Jyaasa : We Design, Build and Develop Products A lot of initializations of data and helping objects in controller
  • 9. Jyaasa : We Design, Build and Develop Products Solution ???
  • 10. Jyaasa : We Design, Build and Develop Products We can use use Facade design pattern to remove that responsibility of preparing data for the view and create unified face visible to outside world, also to hide the components underneath. Lets create a new folder in Rails project app/facades and lets create our facade PORO class
  • 11. # app/facades/chat_rooms_facade.rb Class ChatRoomsFacade attr_reader :chat_room, current_user def initialize(chat_room, current_user) @chat_room = chat_room @current_user = current_user end def unread_message @unread_message = chat_room.unread_msg(current_user) end def new_message @message = Message.new end Jyaasa : We Design, Build and Develop Products def chat_message @chat_message = chat_room.messages.limit(5) end end
  • 12. Jyaasa : We Design, Build and Develop Products After moving all of the data preparations to ChatRoomsFacade, that allows us to simply controller: # app/controllers/chat_rooms_controller.rb Class ChatRoomsController < ApplicationController before_filter :set_chat_room, only: :show def show @chat_room = ChatRoomsFacade,new(@chat_room, current_user) end Private def set_chat_room @chat_room = current_user.chat_rooms.find(params[:id]) end end
  • 13. Jyaasa : We Design, Build and Develop Products and use it in the view: <%= @chat_room.chat_message %> <%= @chat_room.unread_message %>
  • 14. Jyaasa : We Design, Build and Develop Products Advantage Facade pattern can be very helpful for simplifying the controllers, especially if we have rather big project that is still growing.
  • 15. - Introducing another layer of abstraction to our application Jyaasa : We Design, Build and Develop Products Demerits
  • 16. Jyaasa : We Design, Build and Develop Products Thank you

Editor's Notes

  • #15: https://sprint.ly/blog/scrum-meeting-best-practices/