SlideShare uma empresa Scribd logo
1 de 27
Don’t build another

Tower of Babel
 Enrique Comba Riepenhausen
 @ecomba        http://ecomba.org
‫א   וַ יְ הִי כָל- הָאֶָרץ, ׂשָפָה אֶחָת, ּוְד בִָרים, אֲחִָדים.‬
     ‫ב   וַ יְ הִי, ּבְ נָ סְעָם מִּקֶֶדם; וַ ּיִמְצְאּו בְִקעָה ּבְאֶֶרץ ׁשִ נְעָר, וַ ּיֵׁשְבּו ׁשָם.‬
   ‫ג   וַ ּיֹאמְרּו אִיׁש אֶל-ֵרעֵהּו, הָ בָה נִלְ ּבְ נָה לְ בֵ נִים, וְ נִׂשְְרפָה, לִׂשְֵרפָה;‬
                     ‫וַּתְ הִי לָ הֶם הַּלְ בֵ נָה, לְאָ בֶן, וְ הַחֵמָר, הָ יָה לָ הֶם לַחֹמֶר.‬
‫ד   וַ ּיֹאמְרּו הָ בָה נִ בְ נֶה-ּלָנּו עִיר, ּומִ גְ ּדָל וְֹראׁשֹו בַּׁשָמַ יִם, וְ נַעֲׂשֶה-ּלָנּו,‬
                                                      ‫ׁשֵם:  ּפֶן- נָפּוץ, עַל-ּפְ נֵי כָל- הָאֶָרץ.‬
‫ה   וַ ּיֵֶרד יְה וָה, לְִראֹת אֶת- הָעִיר וְאֶת- הַּמִ גְ ּדָל, אֲׁשֶר ּבָנּו, ּבְ נֵי הָאָָדם.‬
        ‫ו   וַ ּיֹאמֶר יְה וָה, הֵן עַם אֶחָד וְׂשָפָה אַחַת לְכֻּלָם, וְ זֶה, הַחִּלָם‬
                    ‫לַעֲׂשֹות; וְעַּתָה ֹלא- יִ ּבָצֵר מֵ הֶם, ּכֹל אֲׁשֶר יָ זְמּו לַעֲׂשֹות.‬
     ‫ז   הָ בָה, נְֵרָדה, וְ נָ בְלָה ׁשָם, ׂשְפָתָם--אֲׁשֶר ֹלא יִׁשְמְעּו, אִיׁש ׂשְפַת‬
                                                                                       ‫ֵרעֵהּו.‬
 ‫ח   וַ ּיָפֶץ יְה וָה אֹתָם מִּׁשָם, עַל-ּפְ נֵי כָל- הָאֶָרץ; וַ ּיַחְ ּדְלּו, לִ בְ נֹת הָעִיר.‬
        ‫ט  עַל-ּכֵן ָקָרא ׁשְמָּה, ּבָ בֶל, ּכִי-ׁשָם ּבָלַל יְה וָה, ׂשְפַת ּכָל- הָאֶָרץ;‬
                                      ‫ּומִּׁשָם הֱפִיצָם יְה וָה, עַל-ּפְ נֵי ּכָל- הָאֶָרץ.‬
          ‫)5681( ‪The Confusion of Tongues by Gustave Doré‬‬
Language
cognitive ability to form concepts and
                    communicate them.
User.find(params[:id])
User.find(params[:id])
Trade.find(:all, :conditions => filter_str, :include =>
                  [:trade_processes, :broker,
                   :requested_by, {:security => {:sector =>
                   [:primary_specialist, :secondary_specialist]}},
                   {:advice => [{:fund => [:primary_advisor,
                   :secondary_advisor]},]},])
User.find(params[:id])
Trade.find(:all, :conditions => filter_str, :include =>
                  [:trade_processes, :broker,
                   :requested_by, {:security => {:sector =>
                   [:primary_specialist, :secondary_specialist]}},
                   {:advice => [{:fund => [:primary_advisor,
                   :secondary_advisor]},]},])

                                               JESUS
                                               CRAP!
@trade = Trade.new(params[:trade])

if @trade.save
  ...
end
Active Record
                Trade
            value
            advice
            find
            save

 An object that wraps a row in a database table or
view, encapsulates the database access, and adds
             domain logic on that data.
Single Responsibility Principle?
Single Responsibility Principle?
Domain Model
An object model of the domain that incorporates both
                behaviour and data.
Appointment.book_on(date)

Subscriber.provision_new(data_plan)

Trade.pending_compliance_approval



                            DUH!
@trade = Trade.book(params[:trade])

if @trade.booked?
  ...
end
• Encapsulate ActiveRecord calls

• Use named scopes
Hubris
The first century Jewish interpretation found in Flavius Josephus
explains the construction of the tower as a hubristic act of defiance
against God ordered by the arrogant tyrant Nimrod.




                                                   Flavius Josephus (37 – c.100 AD)
The first century Jewish interpretation found in Flavius Josephus
explains the construction of the tower as a hubristic act of defiance
against God ordered by the arrogant tyrant Nimrod.


    Hubris: extreme haughtiness, pride or
    arrogance. Hubris often indicates being out
    of touch with reality and overestimating
    one's own competence or capabilities




                                                   Flavius Josephus (37 – c.100 AD)
Stupid Questions
Stupid Questions




Only stupid answers
Constant Conversations
Given I am on “/calendar”
And I click ok “create new event”
And I fill in “event name” with “Talk at SRC”
And I fill in “date” with “16/04/2011”
And I click “submit”
Then I should see “The event has been saved”
Given I am a forgetful person
When I create a new event on my calendar
Then my event should appear in my calendar
Don’t expose ActiveRecord methods

    Talk and listen to your customers

Don’t be afraid of asking stupid questions

           Empty your cup!
Don’t expose ActiveRecord methods

        Empty
    Talk and listen to your customers



        your
Don’t be afraid of asking stupid questions

           Empty your cup!


        beer!
Don’t
 THANK YOU!
  Towerof
  another




Babel
Enrique Comba Riepenhausen
ecomba@ecomba.org   @ecomba     !
                              build




                              http://ecomba.org

Mais conteúdo relacionado

Destaque

New technology
New technologyNew technology
New technologygklyons
 
Learning style
Learning styleLearning style
Learning styleShadid Al
 
Ap a rt history term 3 test 2
Ap a rt history term 3 test 2Ap a rt history term 3 test 2
Ap a rt history term 3 test 2mary294254374
 
Improve real-time hair rendering.
Improve real-time hair rendering.Improve real-time hair rendering.
Improve real-time hair rendering.Valentin Janiaut
 
Ap art history term 3 test 3
Ap art history term 3 test 3Ap art history term 3 test 3
Ap art history term 3 test 3mary294254374
 
Apple 04 - Jobs Serial Entrepreneur
Apple 04 -  Jobs Serial EntrepreneurApple 04 -  Jobs Serial Entrepreneur
Apple 04 - Jobs Serial EntrepreneurPere Joan
 
Power piont
Power piontPower piont
Power piontgesme
 
Creation - The Untold Story
Creation - The Untold StoryCreation - The Untold Story
Creation - The Untold Storylilkitkat80
 
Question 2 Evaluation A2
Question 2 Evaluation A2Question 2 Evaluation A2
Question 2 Evaluation A2charben92
 
Mile Hi Wellness 2011 - Positivity Plan
Mile Hi Wellness 2011 - Positivity PlanMile Hi Wellness 2011 - Positivity Plan
Mile Hi Wellness 2011 - Positivity PlanDeb Kolaras
 
Тренинги по управлению проектами в экстремальных условиях
Тренинги по управлению проектами в экстремальных условияхТренинги по управлению проектами в экстремальных условиях
Тренинги по управлению проектами в экстремальных условияхЕвгений Пикулев
 

Destaque (17)

New technology
New technologyNew technology
New technology
 
Learning style
Learning styleLearning style
Learning style
 
Ap a rt history term 3 test 2
Ap a rt history term 3 test 2Ap a rt history term 3 test 2
Ap a rt history term 3 test 2
 
9 spain
9 spain9 spain
9 spain
 
Presentation1
Presentation1Presentation1
Presentation1
 
Improve real-time hair rendering.
Improve real-time hair rendering.Improve real-time hair rendering.
Improve real-time hair rendering.
 
Laura florez
Laura florezLaura florez
Laura florez
 
Dubai
DubaiDubai
Dubai
 
Ap art history term 3 test 3
Ap art history term 3 test 3Ap art history term 3 test 3
Ap art history term 3 test 3
 
Muskrats
MuskratsMuskrats
Muskrats
 
Apple 04 - Jobs Serial Entrepreneur
Apple 04 -  Jobs Serial EntrepreneurApple 04 -  Jobs Serial Entrepreneur
Apple 04 - Jobs Serial Entrepreneur
 
Wm advertising
Wm advertisingWm advertising
Wm advertising
 
Power piont
Power piontPower piont
Power piont
 
Creation - The Untold Story
Creation - The Untold StoryCreation - The Untold Story
Creation - The Untold Story
 
Question 2 Evaluation A2
Question 2 Evaluation A2Question 2 Evaluation A2
Question 2 Evaluation A2
 
Mile Hi Wellness 2011 - Positivity Plan
Mile Hi Wellness 2011 - Positivity PlanMile Hi Wellness 2011 - Positivity Plan
Mile Hi Wellness 2011 - Positivity Plan
 
Тренинги по управлению проектами в экстремальных условиях
Тренинги по управлению проектами в экстремальных условияхТренинги по управлению проектами в экстремальных условиях
Тренинги по управлению проектами в экстремальных условиях
 

Último

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 

Último (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Dont Build Another Tower of Babel

  • 1. Don’t build another Tower of Babel Enrique Comba Riepenhausen @ecomba http://ecomba.org
  • 2. ‫א   וַ יְ הִי כָל- הָאֶָרץ, ׂשָפָה אֶחָת, ּוְד בִָרים, אֲחִָדים.‬ ‫ב   וַ יְ הִי, ּבְ נָ סְעָם מִּקֶֶדם; וַ ּיִמְצְאּו בְִקעָה ּבְאֶֶרץ ׁשִ נְעָר, וַ ּיֵׁשְבּו ׁשָם.‬ ‫ג   וַ ּיֹאמְרּו אִיׁש אֶל-ֵרעֵהּו, הָ בָה נִלְ ּבְ נָה לְ בֵ נִים, וְ נִׂשְְרפָה, לִׂשְֵרפָה;‬ ‫וַּתְ הִי לָ הֶם הַּלְ בֵ נָה, לְאָ בֶן, וְ הַחֵמָר, הָ יָה לָ הֶם לַחֹמֶר.‬ ‫ד   וַ ּיֹאמְרּו הָ בָה נִ בְ נֶה-ּלָנּו עִיר, ּומִ גְ ּדָל וְֹראׁשֹו בַּׁשָמַ יִם, וְ נַעֲׂשֶה-ּלָנּו,‬ ‫ׁשֵם:  ּפֶן- נָפּוץ, עַל-ּפְ נֵי כָל- הָאֶָרץ.‬ ‫ה   וַ ּיֵֶרד יְה וָה, לְִראֹת אֶת- הָעִיר וְאֶת- הַּמִ גְ ּדָל, אֲׁשֶר ּבָנּו, ּבְ נֵי הָאָָדם.‬ ‫ו   וַ ּיֹאמֶר יְה וָה, הֵן עַם אֶחָד וְׂשָפָה אַחַת לְכֻּלָם, וְ זֶה, הַחִּלָם‬ ‫לַעֲׂשֹות; וְעַּתָה ֹלא- יִ ּבָצֵר מֵ הֶם, ּכֹל אֲׁשֶר יָ זְמּו לַעֲׂשֹות.‬ ‫ז   הָ בָה, נְֵרָדה, וְ נָ בְלָה ׁשָם, ׂשְפָתָם--אֲׁשֶר ֹלא יִׁשְמְעּו, אִיׁש ׂשְפַת‬ ‫ֵרעֵהּו.‬ ‫ח   וַ ּיָפֶץ יְה וָה אֹתָם מִּׁשָם, עַל-ּפְ נֵי כָל- הָאֶָרץ; וַ ּיַחְ ּדְלּו, לִ בְ נֹת הָעִיר.‬ ‫ט  עַל-ּכֵן ָקָרא ׁשְמָּה, ּבָ בֶל, ּכִי-ׁשָם ּבָלַל יְה וָה, ׂשְפַת ּכָל- הָאֶָרץ;‬ ‫ּומִּׁשָם הֱפִיצָם יְה וָה, עַל-ּפְ נֵי ּכָל- הָאֶָרץ.‬ ‫)5681( ‪The Confusion of Tongues by Gustave Doré‬‬
  • 3.
  • 4. Language cognitive ability to form concepts and communicate them.
  • 6. User.find(params[:id]) Trade.find(:all, :conditions => filter_str, :include => [:trade_processes, :broker, :requested_by, {:security => {:sector => [:primary_specialist, :secondary_specialist]}}, {:advice => [{:fund => [:primary_advisor, :secondary_advisor]},]},])
  • 7. User.find(params[:id]) Trade.find(:all, :conditions => filter_str, :include => [:trade_processes, :broker, :requested_by, {:security => {:sector => [:primary_specialist, :secondary_specialist]}}, {:advice => [{:fund => [:primary_advisor, :secondary_advisor]},]},]) JESUS CRAP!
  • 9. Active Record Trade value advice find save An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data.
  • 12. Domain Model An object model of the domain that incorporates both behaviour and data.
  • 14. @trade = Trade.book(params[:trade]) if @trade.booked? ... end
  • 15. • Encapsulate ActiveRecord calls • Use named scopes
  • 17. The first century Jewish interpretation found in Flavius Josephus explains the construction of the tower as a hubristic act of defiance against God ordered by the arrogant tyrant Nimrod. Flavius Josephus (37 – c.100 AD)
  • 18. The first century Jewish interpretation found in Flavius Josephus explains the construction of the tower as a hubristic act of defiance against God ordered by the arrogant tyrant Nimrod. Hubris: extreme haughtiness, pride or arrogance. Hubris often indicates being out of touch with reality and overestimating one's own competence or capabilities Flavius Josephus (37 – c.100 AD)
  • 19.
  • 23. Given I am on “/calendar” And I click ok “create new event” And I fill in “event name” with “Talk at SRC” And I fill in “date” with “16/04/2011” And I click “submit” Then I should see “The event has been saved”
  • 24. Given I am a forgetful person When I create a new event on my calendar Then my event should appear in my calendar
  • 25. Don’t expose ActiveRecord methods Talk and listen to your customers Don’t be afraid of asking stupid questions Empty your cup!
  • 26. Don’t expose ActiveRecord methods Empty Talk and listen to your customers your Don’t be afraid of asking stupid questions Empty your cup! beer!
  • 27. Don’t THANK YOU! Towerof another Babel Enrique Comba Riepenhausen ecomba@ecomba.org @ecomba ! build http://ecomba.org

Notas do Editor

  1. \n
  2. And the whole earth was of one language, and of one speech.\n\nAnd it came to pass, as they journeyed from the east, that they found a plain in the land of Shinar; and they dwelt there.\n\nAnd they said one to another, Go to, let us make brick, and burn them thoroughly. And they had brick for stone, and slime had they for mortar.\n\nAnd they said, Go to, let us build us a city and a tower, whose top may reach unto heaven; and let us make us a name, lest we be scattered abroad upon the face of the whole earth.\n\nAnd the Lord came down to see the city and the tower, which the children built.\n\nAnd the Lord said, Behold, the people is one, and they have all one language; and this they begin to do; and now nothing will be restrained from them, which they have imagined to do.\n\nGo to, let us go down, and there confound their language, that they may not understand one another's speech.\n\nSo the Lord scattered them abroad from thence upon the face of all the earth: and they left off to build the city.\n\nTherefore is the name of it called Babel; because the Lord did there confound the language of all the earth: and from thence did the Lord scatter them abroad upon the face of all the earth.\n
  3. \n
  4. language (as a context for communication, and primarily as a cognitive ability to form concepts and communicate them) was developed earlier in human evolution, and speech (one of the forms of communication) was developed much later. The presence of speech (without language) is also possible in some cases of human mental retardation or learning disabilities(like Specific Language Impairment) and is also known in the animal kingdom. For instance, talking birds are able to imitate human speech with varying ability. However, this ability to mimic human sounds is very different from the acquisition of syntax. Likewise, the production of speech sounds is not necessary for language use, as evidenced by modern sign languages, which use manual symbols and facial grammar as a basis for language rather than speech. Morse coding system, and the system of the Marine Signal Flags are other forms of communication, but not necessarily language.\n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. single responsibility principle states that every object should have a single responsibility, and that responsibility should be entirely encapsulated by the class. All its services should be narrowly aligned with that responsibility.\n
  11. single responsibility principle states that every object should have a single responsibility, and that responsibility should be entirely encapsulated by the class. All its services should be narrowly aligned with that responsibility.\n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n