SlideShare a Scribd company logo
Version Control
Contents
Ruby on Rails
1. Ruby – The Language
2. Rails – The Framework
3. Convention over Configuration
4. Don’t Repeat Yourself
5. Scaffolding
6. Agile Methodology
7. Active Record Pattern
8. Model View Controller
Version Control
1. Version Control
2. Version Control Systems
3. Centralized Version Control Development
4. Centralized Version Control Data Store
5. Distributed Version Control
6. Distributed Version Control Development
7. Distributed Version Control Data Store
8. Centralized vs Distributed
December 20, 2015 © Yash Mittal 2
Ruby – The Language
Ruby
• Dynamic, reflective Object Oriented, general
purpose programming language
• Designed and developed by Yukhiro “Matz”
Matsumoto in Japan
• Influenced by Perl, Smalltalk, Eiffel, Ada and Lisp
• Supported programming paradigms:
→ Functional
→ Dynamic Type system
→ Auto Memory Management
• Type : Cross-platform
• Extension : .rb, .rbw, .erb
• License : Open Source, MIT License
• Earliest Version : 0.95 in 1995
• Latest Version : 2.1.5 in 2014
IRB – Interactive Ruby Shell
• An interactive language shell for
programming in Ruby
• Launched from the Command Line
• Has the extension .irb
• Includes command history, line
editing capabilities, and job control
December 20, 2015 © Yash Mittal 3
Rails – The Framework
Ruby on Rails
• Open source web application framework, written in
Ruby
• Designed to support development of dynamic websites,
web applications, web services and web resources.
• Aim: Alleviate overhead associated with common
activities performed
• Author : David Heinemier Hansson
• Type : Cross-platform
• License : Expat License (Open Source)
• Initial Release : 1.0 in 2005
• Latest Release : 4.1 in 2014
• Rails is installed via RubyGems – a package manager for
Ruby, providing a standard format to distribute Ruby
programs and libraries
• Provisions in Rails
→ Libraries for Database access
→ Templating frameworks
→ Session Management
→ Code reuse
• Paradigms used:
→ Convention over Configuration
→ Agile Programming
→ Don’t Repeat Yourself
→ Active Record Pattern
• Architecture: Model-View-Controller
December 20, 2015 © Yash Mittal 4
Convention over Configuration
- Software design paradigm, also called Coding by
Convention
- Aim: Decrease number of decisions to be made by
developers
- Gain flexibility, but DO NOT lose flexibility
- Developer only needs to specify unconventional aspects
of the application
- Ex: A class ‘Sale’ in the model corresponds to a table
‘Sale’ in the database by default.
- If one deviates and calls the table ‘Revenue’, then code
needs to be written
- When convention implemented by tool matches the
desired behaviour, it behaves as expected without
having to write configuration files.
- Developer needs to configure explicitly only in case of
deviation from implemented convention
December 20, 2015 © Yash Mittal 5
Don’t Repeat Yourself
• Aim: Reduce repetition of information of all kinds
• Useful in multi-tier architectures
• Principle: Every piece of knowledge must have a
single, unambiguous, authoritative representation
within a system
• Formulated by Andy Hunt and Dave Thomas
• Includes Database schemas, Test plans, Build system
and Documentation
• When applied successfully, modification of a single
element does NOT require a change in other logically
unrelated elements
• Logically related elements change predictably and
uniformly, and are thus kept in sync.
• Tools used for DRY
→ Methods and subroutines
→ Code generators
→ Automatic build systems -
Rake
→ Scripting Languages
December 20, 2015 © Yash Mittal 6
Scaffolding
• Technique supported by Model View Controller frameworks
• Programmer can specify how the application database may be used
• Framework uses this specification, together with pre-defined code templates, to
generate the final code
• Used to perform CRUD operations – Create, Read, Update and Delete on Database
entries
• Templates are treated as a scaffold, on top of which more powerful apps can be built
Scaffolding in Ruby on Rails
• scaffold: model_name is added to a controller to automatically generate appropriate
data interfaces at run time
• Since the API is generated on the fly, the programmer cannot easily modify the
interfaces this way
• Scaffold is often used for prototyping applications
• External command: rails generate scaffold model_name
• As of Rails 2.0, dynamic scaffolding is no longer stored
December 20, 2015 © Yash Mittal 7
Agile Methodology
• Agile Software Development is a group of
software development methods based
on iterative and incremental
development.
• Requirements and solutions evolve
through collaboration between self-
organizing, cross-functional teams.
• Promotes adaptive planning,
evolutionary development & delivery,
and a time-boxed iterative approach.
• Encourages rapid & flexible response to
change.
• It is a conceptual framework that
promotes tight interaction with the
customer throughout the development
cycle.
December 20, 2015 © Yash Mittal 8
Active Record Pattern
• An architectural pattern found in software engineering
• Stores in-memory object data in Relational Databases
• Interface of an object of such functions would include Insert, Update & Delete
• A table or view is wrapped into a class  Object instance is tied to a single row
• Wrapper class implements accessor methods or properties for each column in view
• Commonly used by object persistence tools, and in Object-Relational Mapping (ORM)
December 20, 2015 © Yash Mittal 9
Model View Controller
• Software architectural pattern for implementing User Interfaces
• Divides a given software application into 3 interconnected parts
• Aim: Separate internal representations of information from the
ways that information is presented to or accepted from the user.
Components
• Model – Central component of MVC, captures the behaviour of
the application in terms of its problem domain, independent of
the UI.
• Directly manages the Data, Logic and Rules of the application
• View – Can be any output representation of information, such as
a chart or a diagram. Multiple views of the same information are
possible.
• Controller – Accepts input and converts it to commands for the
model or view.
December 20, 2015 © Yash Mittal 10
MVC Interactions
• Controller (Operations - When)
→ Sends commands to the model to update the model’s state (ex: Editing doc)
→ Can also send commands to view to change its presentation method (ex: list vs grid)
• Model (State, Data - What)
→ Notifies its associated views and controllers of a change in state
→ Allows the views to produce updated output, and controllers to change available
commands. In some cases, implementation is passive.
• View (UI - How)
→ Requests information from the model to generate an output representation to the
user
The Future – MOVE
• Models, Operations, Views and Events
• Created to reduce code being stuffed into Controllers
• Controllers are broken into Operations and Events/Sessions
December 20, 2015 © Yash Mittal 11
December 20, 2015 © Yash Mittal 12
Version Control
• Also known as Revision Control and Source Control
• Important aspect of Software Configuration
Management
• Defined as the Management of changes to
documents, computer programs, large web sites,
and other collections of information.
• Changes are usually identified by a code, termed
“revision number” or “revision level”
• Each revision is associated with a timestamp and the
person making the change, the author.
• Revisions can be compared, stored, and in some
systems, merged.
December 20, 2015 © Yash Mittal 13
Version Control Systems
• Most commonly run as stand alone
applications
• Software such as Word Processors and
Spreadsheets employ embedded version
control. Ex: Google Docs and Sheet, Office
Online, Apple Pages & Keynote
• Content Management Systems such as
Wikipedia’s Page History and Wordpress
also use embedded revision control
• Revision control allows for the ability to
revert a document to a previous version
• Helps defend against vandalism and
spamming, keeping information secure
December 20, 2015 © Yash Mittal 14
Centralized Version Control Development
• Revision control systems
are often Centralized,
with a single
authoritative data store,
the Repository.
• Check-outs and check-
ins are done with
reference to this central
repository.
• Ex: Apache Subversion
December 20, 2015 © Yash Mittal 15
Centralized Version Control Data Store
Differences are stored as it is where they take place and when they take place
December 20, 2015 © Yash Mittal 16
Distributed Version Control
• Also called Decentralized Version Control
• Peer-to-peer approach
• Allows software developers to work on a
given project without requiring them to
share a common network. Software
revisions are stored in a Distributed
Revision Control System.
• No single repository is authoritative
• Data can be checked out and checked
into any repository
• When checking into a different
repository, this is interpreted as a merge
or patch
• Ex: Git
December 20, 2015 © Yash Mittal 17
Distributed Version Control Development
A developer can pull/push to any repo and all are synced together simultaneously
December 20, 2015 © Yash Mittal 18
Distributed Version Control Data Store
December 20, 2015 © Yash Mittal 19
Centralized vs Distributed
December 20, 2015 © Yash Mittal 20
Thank You
Yash Mittal
December 20, 2015 © Yash Mittal 21

More Related Content

What's hot

Webinar:Building an Agile Enterprise with Business Activity Monitor
Webinar:Building an Agile Enterprise with Business Activity Monitor Webinar:Building an Agile Enterprise with Business Activity Monitor
Webinar:Building an Agile Enterprise with Business Activity Monitor
WSO2
 
From Pilot to Product - Morning@Lohika
From Pilot to Product - Morning@LohikaFrom Pilot to Product - Morning@Lohika
From Pilot to Product - Morning@Lohika
Ivan Verhun
 
339 seminar4 kenrawson
339 seminar4 kenrawson339 seminar4 kenrawson
339 seminar4 kenrawson
Society for Scholarly Publishing
 
SAP
SAPSAP
Enovia Collaboration Platform and Matrix Query Language
Enovia Collaboration Platform and Matrix Query LanguageEnovia Collaboration Platform and Matrix Query Language
Enovia Collaboration Platform and Matrix Query Language
Ashikur Rahman
 
NVReddy
NVReddyNVReddy
How to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power UserHow to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power User
Strongback Consulting
 
Project archive what to do with those projects that have completed or place...
Project archive   what to do with those projects that have completed or place...Project archive   what to do with those projects that have completed or place...
Project archive what to do with those projects that have completed or place...
p6academy
 
Pain points of agile development
Pain points of agile developmentPain points of agile development
Pain points of agile development
Perforce
 
SPEC Innovations: New Features in Innoslate Webinar
SPEC Innovations: New Features in Innoslate WebinarSPEC Innovations: New Features in Innoslate Webinar
SPEC Innovations: New Features in Innoslate Webinar
Elizabeth Steiner
 
Project archive what to do with those projects that have completed or place...
Project archive   what to do with those projects that have completed or place...Project archive   what to do with those projects that have completed or place...
Project archive what to do with those projects that have completed or place...
p6academy
 
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Kiko Monteverde
 
4D Pubs - Distributed Dynamic Document Dsplay
4D Pubs - Distributed Dynamic Document Dsplay4D Pubs - Distributed Dynamic Document Dsplay
4D Pubs - Distributed Dynamic Document Dsplay
Chris Despopoulos
 
FatDB Intro
FatDB IntroFatDB Intro
FatDB Intro
Justin Weiler
 
CM10.2 Power Builder Source Control
CM10.2 Power Builder Source ControlCM10.2 Power Builder Source Control
CM10.2 Power Builder Source Control
Eric Saperstein
 
Design Reviews for Operations - Velocity Europe 2014
Design Reviews for Operations - Velocity Europe 2014Design Reviews for Operations - Velocity Europe 2014
Design Reviews for Operations - Velocity Europe 2014
Mandi Walls
 
Software Archaeology with RDz and RAA
Software Archaeology with RDz and RAASoftware Archaeology with RDz and RAA
Software Archaeology with RDz and RAA
Strongback Consulting
 
What’s New in Assure MIMIX 10
What’s New in Assure MIMIX 10What’s New in Assure MIMIX 10
What’s New in Assure MIMIX 10
Precisely
 
When and how to migrate from a relational database to Cassandra
When and how to migrate from a relational database to CassandraWhen and how to migrate from a relational database to Cassandra
When and how to migrate from a relational database to Cassandra
Ben Slater
 
Oracle bi apps training
Oracle bi apps trainingOracle bi apps training
Oracle bi apps training
FuturePoint Technologies
 

What's hot (20)

Webinar:Building an Agile Enterprise with Business Activity Monitor
Webinar:Building an Agile Enterprise with Business Activity Monitor Webinar:Building an Agile Enterprise with Business Activity Monitor
Webinar:Building an Agile Enterprise with Business Activity Monitor
 
From Pilot to Product - Morning@Lohika
From Pilot to Product - Morning@LohikaFrom Pilot to Product - Morning@Lohika
From Pilot to Product - Morning@Lohika
 
339 seminar4 kenrawson
339 seminar4 kenrawson339 seminar4 kenrawson
339 seminar4 kenrawson
 
SAP
SAPSAP
SAP
 
Enovia Collaboration Platform and Matrix Query Language
Enovia Collaboration Platform and Matrix Query LanguageEnovia Collaboration Platform and Matrix Query Language
Enovia Collaboration Platform and Matrix Query Language
 
NVReddy
NVReddyNVReddy
NVReddy
 
How to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power UserHow to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power User
 
Project archive what to do with those projects that have completed or place...
Project archive   what to do with those projects that have completed or place...Project archive   what to do with those projects that have completed or place...
Project archive what to do with those projects that have completed or place...
 
Pain points of agile development
Pain points of agile developmentPain points of agile development
Pain points of agile development
 
SPEC Innovations: New Features in Innoslate Webinar
SPEC Innovations: New Features in Innoslate WebinarSPEC Innovations: New Features in Innoslate Webinar
SPEC Innovations: New Features in Innoslate Webinar
 
Project archive what to do with those projects that have completed or place...
Project archive   what to do with those projects that have completed or place...Project archive   what to do with those projects that have completed or place...
Project archive what to do with those projects that have completed or place...
 
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
 
4D Pubs - Distributed Dynamic Document Dsplay
4D Pubs - Distributed Dynamic Document Dsplay4D Pubs - Distributed Dynamic Document Dsplay
4D Pubs - Distributed Dynamic Document Dsplay
 
FatDB Intro
FatDB IntroFatDB Intro
FatDB Intro
 
CM10.2 Power Builder Source Control
CM10.2 Power Builder Source ControlCM10.2 Power Builder Source Control
CM10.2 Power Builder Source Control
 
Design Reviews for Operations - Velocity Europe 2014
Design Reviews for Operations - Velocity Europe 2014Design Reviews for Operations - Velocity Europe 2014
Design Reviews for Operations - Velocity Europe 2014
 
Software Archaeology with RDz and RAA
Software Archaeology with RDz and RAASoftware Archaeology with RDz and RAA
Software Archaeology with RDz and RAA
 
What’s New in Assure MIMIX 10
What’s New in Assure MIMIX 10What’s New in Assure MIMIX 10
What’s New in Assure MIMIX 10
 
When and how to migrate from a relational database to Cassandra
When and how to migrate from a relational database to CassandraWhen and how to migrate from a relational database to Cassandra
When and how to migrate from a relational database to Cassandra
 
Oracle bi apps training
Oracle bi apps trainingOracle bi apps training
Oracle bi apps training
 

Similar to Ruby on Rails & Version Control

Big SQL 3.0 - Fast and easy SQL on Hadoop
Big SQL 3.0 - Fast and easy SQL on HadoopBig SQL 3.0 - Fast and easy SQL on Hadoop
Big SQL 3.0 - Fast and easy SQL on Hadoop
Wilfried Hoge
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
Adam Getchell
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
Eduard Tomàs
 
Transforming to Microservices
Transforming to MicroservicesTransforming to Microservices
Transforming to Microservices
Kyle Brown
 
2014.07.11 biginsights data2014
2014.07.11 biginsights data20142014.07.11 biginsights data2014
2014.07.11 biginsights data2014
Wilfried Hoge
 
Hia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iibHia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iib
Andrew Coleman
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.js
Brad Williams
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservices
Lalit Kale
 
InfoSphere BigInsights - Analytics power for Hadoop - field experience
InfoSphere BigInsights - Analytics power for Hadoop - field experienceInfoSphere BigInsights - Analytics power for Hadoop - field experience
InfoSphere BigInsights - Analytics power for Hadoop - field experience
Wilfried Hoge
 
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld
 
Build 12-Factor apps with Docker
Build 12-Factor apps with DockerBuild 12-Factor apps with Docker
Build 12-Factor apps with Docker
John Zaccone
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Richard Langlois P. Eng.
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
Anil Allewar
 
VMworld 2013: Building the Management Stack for Your Software Defined Data Ce...
VMworld 2013: Building the Management Stack for Your Software Defined Data Ce...VMworld 2013: Building the Management Stack for Your Software Defined Data Ce...
VMworld 2013: Building the Management Stack for Your Software Defined Data Ce...
VMworld
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
PLovababu
 
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS
 
Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native Meetup
Matt Ray
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
Up2 Technology
 
12 Factor App Methodology
12 Factor App Methodology12 Factor App Methodology
12 Factor App Methodology
laeshin park
 
Effective admin and development in iib
Effective admin and development in iibEffective admin and development in iib
Effective admin and development in iib
m16k
 

Similar to Ruby on Rails & Version Control (20)

Big SQL 3.0 - Fast and easy SQL on Hadoop
Big SQL 3.0 - Fast and easy SQL on HadoopBig SQL 3.0 - Fast and easy SQL on Hadoop
Big SQL 3.0 - Fast and easy SQL on Hadoop
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 
Transforming to Microservices
Transforming to MicroservicesTransforming to Microservices
Transforming to Microservices
 
2014.07.11 biginsights data2014
2014.07.11 biginsights data20142014.07.11 biginsights data2014
2014.07.11 biginsights data2014
 
Hia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iibHia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iib
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.js
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservices
 
InfoSphere BigInsights - Analytics power for Hadoop - field experience
InfoSphere BigInsights - Analytics power for Hadoop - field experienceInfoSphere BigInsights - Analytics power for Hadoop - field experience
InfoSphere BigInsights - Analytics power for Hadoop - field experience
 
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
 
Build 12-Factor apps with Docker
Build 12-Factor apps with DockerBuild 12-Factor apps with Docker
Build 12-Factor apps with Docker
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
VMworld 2013: Building the Management Stack for Your Software Defined Data Ce...
VMworld 2013: Building the Management Stack for Your Software Defined Data Ce...VMworld 2013: Building the Management Stack for Your Software Defined Data Ce...
VMworld 2013: Building the Management Stack for Your Software Defined Data Ce...
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
 
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
 
Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native Meetup
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
12 Factor App Methodology
12 Factor App Methodology12 Factor App Methodology
12 Factor App Methodology
 
Effective admin and development in iib
Effective admin and development in iibEffective admin and development in iib
Effective admin and development in iib
 

More from Yash Mittal

Heathrow Airport - Refurbishment of Terminal 1
Heathrow Airport - Refurbishment of Terminal 1Heathrow Airport - Refurbishment of Terminal 1
Heathrow Airport - Refurbishment of Terminal 1
Yash Mittal
 
Direct X
Direct XDirect X
Direct X
Yash Mittal
 
Dining Philosopher's Problem
Dining Philosopher's ProblemDining Philosopher's Problem
Dining Philosopher's Problem
Yash Mittal
 
Social Media & Networking - Boon or Bane?
Social Media & Networking - Boon or Bane?Social Media & Networking - Boon or Bane?
Social Media & Networking - Boon or Bane?
Yash Mittal
 
Apple Inc's Financial Analysis
Apple Inc's Financial AnalysisApple Inc's Financial Analysis
Apple Inc's Financial Analysis
Yash Mittal
 
Panasonic information systems
Panasonic information systemsPanasonic information systems
Panasonic information systems
Yash Mittal
 

More from Yash Mittal (6)

Heathrow Airport - Refurbishment of Terminal 1
Heathrow Airport - Refurbishment of Terminal 1Heathrow Airport - Refurbishment of Terminal 1
Heathrow Airport - Refurbishment of Terminal 1
 
Direct X
Direct XDirect X
Direct X
 
Dining Philosopher's Problem
Dining Philosopher's ProblemDining Philosopher's Problem
Dining Philosopher's Problem
 
Social Media & Networking - Boon or Bane?
Social Media & Networking - Boon or Bane?Social Media & Networking - Boon or Bane?
Social Media & Networking - Boon or Bane?
 
Apple Inc's Financial Analysis
Apple Inc's Financial AnalysisApple Inc's Financial Analysis
Apple Inc's Financial Analysis
 
Panasonic information systems
Panasonic information systemsPanasonic information systems
Panasonic information systems
 

Recently uploaded

E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
kalichargn70th171
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
ISH Technologies
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 

Recently uploaded (20)

E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 

Ruby on Rails & Version Control

  • 2. Contents Ruby on Rails 1. Ruby – The Language 2. Rails – The Framework 3. Convention over Configuration 4. Don’t Repeat Yourself 5. Scaffolding 6. Agile Methodology 7. Active Record Pattern 8. Model View Controller Version Control 1. Version Control 2. Version Control Systems 3. Centralized Version Control Development 4. Centralized Version Control Data Store 5. Distributed Version Control 6. Distributed Version Control Development 7. Distributed Version Control Data Store 8. Centralized vs Distributed December 20, 2015 © Yash Mittal 2
  • 3. Ruby – The Language Ruby • Dynamic, reflective Object Oriented, general purpose programming language • Designed and developed by Yukhiro “Matz” Matsumoto in Japan • Influenced by Perl, Smalltalk, Eiffel, Ada and Lisp • Supported programming paradigms: → Functional → Dynamic Type system → Auto Memory Management • Type : Cross-platform • Extension : .rb, .rbw, .erb • License : Open Source, MIT License • Earliest Version : 0.95 in 1995 • Latest Version : 2.1.5 in 2014 IRB – Interactive Ruby Shell • An interactive language shell for programming in Ruby • Launched from the Command Line • Has the extension .irb • Includes command history, line editing capabilities, and job control December 20, 2015 © Yash Mittal 3
  • 4. Rails – The Framework Ruby on Rails • Open source web application framework, written in Ruby • Designed to support development of dynamic websites, web applications, web services and web resources. • Aim: Alleviate overhead associated with common activities performed • Author : David Heinemier Hansson • Type : Cross-platform • License : Expat License (Open Source) • Initial Release : 1.0 in 2005 • Latest Release : 4.1 in 2014 • Rails is installed via RubyGems – a package manager for Ruby, providing a standard format to distribute Ruby programs and libraries • Provisions in Rails → Libraries for Database access → Templating frameworks → Session Management → Code reuse • Paradigms used: → Convention over Configuration → Agile Programming → Don’t Repeat Yourself → Active Record Pattern • Architecture: Model-View-Controller December 20, 2015 © Yash Mittal 4
  • 5. Convention over Configuration - Software design paradigm, also called Coding by Convention - Aim: Decrease number of decisions to be made by developers - Gain flexibility, but DO NOT lose flexibility - Developer only needs to specify unconventional aspects of the application - Ex: A class ‘Sale’ in the model corresponds to a table ‘Sale’ in the database by default. - If one deviates and calls the table ‘Revenue’, then code needs to be written - When convention implemented by tool matches the desired behaviour, it behaves as expected without having to write configuration files. - Developer needs to configure explicitly only in case of deviation from implemented convention December 20, 2015 © Yash Mittal 5
  • 6. Don’t Repeat Yourself • Aim: Reduce repetition of information of all kinds • Useful in multi-tier architectures • Principle: Every piece of knowledge must have a single, unambiguous, authoritative representation within a system • Formulated by Andy Hunt and Dave Thomas • Includes Database schemas, Test plans, Build system and Documentation • When applied successfully, modification of a single element does NOT require a change in other logically unrelated elements • Logically related elements change predictably and uniformly, and are thus kept in sync. • Tools used for DRY → Methods and subroutines → Code generators → Automatic build systems - Rake → Scripting Languages December 20, 2015 © Yash Mittal 6
  • 7. Scaffolding • Technique supported by Model View Controller frameworks • Programmer can specify how the application database may be used • Framework uses this specification, together with pre-defined code templates, to generate the final code • Used to perform CRUD operations – Create, Read, Update and Delete on Database entries • Templates are treated as a scaffold, on top of which more powerful apps can be built Scaffolding in Ruby on Rails • scaffold: model_name is added to a controller to automatically generate appropriate data interfaces at run time • Since the API is generated on the fly, the programmer cannot easily modify the interfaces this way • Scaffold is often used for prototyping applications • External command: rails generate scaffold model_name • As of Rails 2.0, dynamic scaffolding is no longer stored December 20, 2015 © Yash Mittal 7
  • 8. Agile Methodology • Agile Software Development is a group of software development methods based on iterative and incremental development. • Requirements and solutions evolve through collaboration between self- organizing, cross-functional teams. • Promotes adaptive planning, evolutionary development & delivery, and a time-boxed iterative approach. • Encourages rapid & flexible response to change. • It is a conceptual framework that promotes tight interaction with the customer throughout the development cycle. December 20, 2015 © Yash Mittal 8
  • 9. Active Record Pattern • An architectural pattern found in software engineering • Stores in-memory object data in Relational Databases • Interface of an object of such functions would include Insert, Update & Delete • A table or view is wrapped into a class  Object instance is tied to a single row • Wrapper class implements accessor methods or properties for each column in view • Commonly used by object persistence tools, and in Object-Relational Mapping (ORM) December 20, 2015 © Yash Mittal 9
  • 10. Model View Controller • Software architectural pattern for implementing User Interfaces • Divides a given software application into 3 interconnected parts • Aim: Separate internal representations of information from the ways that information is presented to or accepted from the user. Components • Model – Central component of MVC, captures the behaviour of the application in terms of its problem domain, independent of the UI. • Directly manages the Data, Logic and Rules of the application • View – Can be any output representation of information, such as a chart or a diagram. Multiple views of the same information are possible. • Controller – Accepts input and converts it to commands for the model or view. December 20, 2015 © Yash Mittal 10
  • 11. MVC Interactions • Controller (Operations - When) → Sends commands to the model to update the model’s state (ex: Editing doc) → Can also send commands to view to change its presentation method (ex: list vs grid) • Model (State, Data - What) → Notifies its associated views and controllers of a change in state → Allows the views to produce updated output, and controllers to change available commands. In some cases, implementation is passive. • View (UI - How) → Requests information from the model to generate an output representation to the user The Future – MOVE • Models, Operations, Views and Events • Created to reduce code being stuffed into Controllers • Controllers are broken into Operations and Events/Sessions December 20, 2015 © Yash Mittal 11
  • 12. December 20, 2015 © Yash Mittal 12
  • 13. Version Control • Also known as Revision Control and Source Control • Important aspect of Software Configuration Management • Defined as the Management of changes to documents, computer programs, large web sites, and other collections of information. • Changes are usually identified by a code, termed “revision number” or “revision level” • Each revision is associated with a timestamp and the person making the change, the author. • Revisions can be compared, stored, and in some systems, merged. December 20, 2015 © Yash Mittal 13
  • 14. Version Control Systems • Most commonly run as stand alone applications • Software such as Word Processors and Spreadsheets employ embedded version control. Ex: Google Docs and Sheet, Office Online, Apple Pages & Keynote • Content Management Systems such as Wikipedia’s Page History and Wordpress also use embedded revision control • Revision control allows for the ability to revert a document to a previous version • Helps defend against vandalism and spamming, keeping information secure December 20, 2015 © Yash Mittal 14
  • 15. Centralized Version Control Development • Revision control systems are often Centralized, with a single authoritative data store, the Repository. • Check-outs and check- ins are done with reference to this central repository. • Ex: Apache Subversion December 20, 2015 © Yash Mittal 15
  • 16. Centralized Version Control Data Store Differences are stored as it is where they take place and when they take place December 20, 2015 © Yash Mittal 16
  • 17. Distributed Version Control • Also called Decentralized Version Control • Peer-to-peer approach • Allows software developers to work on a given project without requiring them to share a common network. Software revisions are stored in a Distributed Revision Control System. • No single repository is authoritative • Data can be checked out and checked into any repository • When checking into a different repository, this is interpreted as a merge or patch • Ex: Git December 20, 2015 © Yash Mittal 17
  • 18. Distributed Version Control Development A developer can pull/push to any repo and all are synced together simultaneously December 20, 2015 © Yash Mittal 18
  • 19. Distributed Version Control Data Store December 20, 2015 © Yash Mittal 19
  • 20. Centralized vs Distributed December 20, 2015 © Yash Mittal 20
  • 21. Thank You Yash Mittal December 20, 2015 © Yash Mittal 21