Ruby on Rails Development Guide

Views:
 
     
 

Presentation Description

Ruby on Rails (RoR) is an open source MVC model web application framework using Ruby programming language and Agile Scrum models for building dynamic, data-driven applications for e-commerce websites, content management systems and web development. This is a comprehensive Rails development guide with a step-by-step approach on how to build a website on Ruby on Rails in quick turnaround time right from strategy and development, to testing, deployment, hosting and maintenance.

Comments

Presentation Transcript

Slide 1: 

Ruby on Rails Development Things to know before you start

Rails development process: 

Rails development process Strategy & Planning Development Testing Deployment Hosting Maintenance & Support

Strategy & Planning: 

Strategy & Planning Do you have a new idea for creating web applications? How to plan a RoR app? Methods for successful delivery of a product Rails is the best framework for creating database-driven Web 2.0 applications and enable to write beautiful code by favoring three principles: COC, DRY and Agile development Convention-Over-Configuration : Naming convention simplifies development and promotes good database design Database agnostic for migrations Don’t repeat yourself: A rails developer can create the layout of web application without concerns about data storage Define requirements, technology and tools for implementation When project requirements change, front-end design may change but no need to repeat layout work. Agile and Scrum development for successful completion of product at the end of each scrum

Strategy & Planning: 

Strategy & Planning MVC architecture: ActiveRecord Models, Views and Controllers for developing rapid web application development Rails framework provide solutions from startups with an idea to established teams seeking an edge Project Analysis : Vendor analyzes the business requirements and customizes it for designing a website. Technology : Types of software suitable for the client and leveraging different components and protocols Planning and infrastructure Architecture Using Rails for Small to Large scale projects with features list Reviews and Analysis for existing code

Strategy & Planning: 

Design & Development of a website as per customer requirements Reviews : Addresses effectiveness of the strategy and the project can handle different stages of development and design for the website. Does the project works beyond its scope and identify obstacles to launch the website. Quality : Qualitative analysis of service being provided by evaluating service processes and customer feedback on service Implementation : Strategic depth of the project is fit to implement the entire website project is ensured Design and Development Project in trouble : In a scenario when a successful project is not delivered according to project requirements already defined Strategy & Planning

Strategy & Planning: 

Strategy & Planning Selecting Web Servers : Passenger , Mongrel, Apache, Capistrano, nginx , Lighttpd , FastCGI , etc. Passenger, and Mongrel are the standard web servers for Ruby on Rails Cloud Computing : Ruby architecture provides excellent support for cloud as it shares nothing and throws out new instances of an application. Ruby is highly scalable with a high developer productivity rate for businesses Ruby Version Manager : Ruby on Rails allows easy installation and switching between different Ruby versions on OS X and Linux Issue tracking system : Redmine is a flexible project management web application used for Rails framework, it is cross-platform and cross-database. BaseCamp can be used for small projects with some basic requirements like ToDo lists. Web Servers Cloud Computing Versioning Issue Tracking system - Project Management & bug tracking

Development: 

Development Speed of Ruby on Rails framework for building web apps User experience Configuring server Ruby on Rails is an open source web framework supported by MVC architecture for rapid development; Ruby is an elegant scripting and object oriented language which achieves more with less code Ruby ensures a smooth development process and timely delivery of applications by using Agile and Scrum methodologies Rails is faster than PHP and Java frameworks Use faster Ruby Library like XML, JSON, CSV parsers, HTTP client, and more for efficiency Social Media integration through Facebook , Twitter, LinkedIn, Delicious, Digg , E-Commerce and more

Development: 

Development Premature Optimization Caching everything Naming conventions Coding standards for quality, architecture & best practices Optimize Ruby code : Check coding quality for performance and algorithmic efficiency; Identify slow code with profiling tools Address performance problems by database indexing, caching with memcached or redis , effective use of database, applying finders, avoid premature optimization by quality codes and use ActiveRecord to update in a single transaction Follow naming conventions with Model, Controller, View and Tests for Ruby projects Code Audits and Reviews quantify whether a Rails project's code is optimal, and helps a developer to move forward

Development: 

Development Porting applications to Rails Database Migrations Using MySQL / PostgreSQL in Rails applications Using data stores RoR Migrations Use external programs like C/C++ within Ruby Full-text search engine using Sphinx, Counter Cache Store reports AR caching plug-ins Key-value stores Installation & Upgrades Migrations from PHP or any other existing applications to Rails

Testing: 

Testing Rails is the comprehensive framework for the automated testing of application code. Use Ruby version 2.0 or 3.0 Standard Ruby Library Model View Controller methods Use HTTP server for static files Front-end web performance No breakage in functionality while changing the existing code, no matter even if it wasn’t originally developed Testing Rails application in a browser Rails testing terminology Write unit, functional and integration tests for your application Identify popular testing approaches and plug-ins

Testing: 

Testing Rake test: runs all unit, functional and integration tests Use Rake Test for missing indexing Testing with HTTPerf Ab -Apache HTTP server benchmarking tool Unit Testing for Models, Functional Tests for Controllers, Integration Testing, In-Browser Testing Load Fixtures from test and how to load test data Testing Tools - Cucumber, Capybara, RSpec , Shoulda , Machinist, Mocha, and Rcov Running a single rails unit test instead of complete unit test suite Performance Testing Apache Stress Test Generic Testing Tools

Testing: 

Testing Refactoring Security vulnerabilities Cross Site References(CSRF), Cross Site Scripting (XSS), Caching and Spamming Bug tracking and debugging Catching expiration Caching everywhere – Page, Action, Fragment Analyze and score Rails application before refactoring Security tests for malicious attacks using counter measures such as Post and Get commands, Whitelist , File Filters, IP Address Limits and Password management Use high-performance distributed memory object caching system and an in-memory key value store for small chunks of arbitrary data from results of database calls, API calls or page rendering Key-naming and setting expiration are key elements in catching Use web server or CDN for static files

Deployment: 

Deployment Setting up an application Configuration Deployment options for Rails applications Installing Gems Database migrations Set up MySQL , Nginx , Capistrano or Apache Create files for deployment and check changes in SVN repository for access Set up the server Set up database, effect migration and start application Use Gems to install Rails application Get Oracle InstantClient for architecture Install OC18 driver for building Rails application Connect oracle database using TNSNAMES.ORA

Deployment: 

Deployment Integrating version control systems and deployment Git is a fast and efficient distributed version control system suitable for the collaborative development of software. GitHub , a social code site optimized for hosting and sharing Git repositories , which is a full backup of code, and makes future collaborations easy. SVN is a software versioning and a revision control system which is used to maintain current and historical versions of files such as source code, web pages, and documentation.

Hosting: 

Hosting Web Hosting Ruby on Rails web hosting service and support comes with a number of plans for different business needs and budget Shared Hosting: This a cheap option with large quantities of traffic and disk space. However, the amount of CPU and RAM provided is limited. Virtual Private Server (VPS) hosting: VPS is ideal for most Rails applications offering 256MB or 512MB or more for most Ruby on Rails apps that have a moderate amount of traffic and processing requirements.

Hosting: 

Hosting Top picks in Rails Hosting Hosting on a Cloud Top picks in Rails hosting include Hostgator , DreamHost , Heroku , LunarPages , IX Web Hosting, BlueHost , WebhostingPad . HostMonster and FatCow Cloud: Ruby on Rails has various cloud hosting providers for different types of projects which include Engine Yard, Heroku , WInnieCloud , DotCloud , Rackspace , Joyent Cloud, Amazon Web Services.

Maintenance & Support: 

Maintenance & Support Software Maintenance Technical support Improvements and optimizations Bug tracking Task/bug tracking systems deployment and customization Software Maintenance & Support for software installation, issues, operations support, new releases and updates, improvements, access to right resources Consulting and Training Web application improvement Security Audit includes security patch deployment IT support : Monitoring, problem-resolution, anti-spam and anti-virus support, bug fixes, inventory tracking and reporting, new technology consulting and remote support for server applications

Maintenance & Support: 

Maintenance & Support Rails project in trouble or requires help getting started Ensure that you setup database configuration and enter its details in the config /database.yml file Rails version compatibility Freeze Rails application Application errors

Slide 19: 

Maintenance & Support Rails project in specific trouble Migrations from other applications While hosting with Passenger, Mongrel , WEBrick & FastCGI ensure set up, configurations, porting and path. Migration from PHP or any other existing application

About Us : 

About Us Anubavam is a Ruby on Rails development company providing services and solutions in Rails development which include developing database-driven Ruby on Rails applications for eCommerce websites, content management systems as well as custom web development, database solutions to our clients worldwide. We have expertise in following Agile Scrum development models in Rails application development. Our Rails development team have great experience in creating dynamic, data-driven applications including Business, Web 2.0, Social Media, Communities, Online Shopping, Content Management System, etc. to our clients all over the world. STRATEGY DESIGN DEVELOPMENT PROMOTION

What we do in Rails Development: 

What we do in Rails Development Web 2.0 application development Ruby on Rails development Agile Scrum development Custom business applications Rails Architecture and redesign Application Support & Maintenance Testing & Porting applications Coding Standards Internet Marketing e-Commerce Rails application Migration Rails Testing environment Rhodes Mobile Development Support and Maintenance Database design and installation Training, support & project management Rails Consulting and Training