Friday, April 2, 2010

Ruby On Rails Workshop 1

This is my first workshop post for the Ruby on Rails workshop series of which there are 8 workshops all up. As previously stated I have had very limited experience with any programming and no experience with Ruby on Rails other than an awareness of its existence. The 8 workshops to be completed are as follows:

1. Setting up the model railway
2. Model View Controller design approach
3. Online Taxi Booking System: MySQL and Database design
4. Riding the Rails with Ruby
5. Enjoying the ride: Web framework scalability, flexibility and alternatives
6. Admiring the scenery: Forms, AJAX screen layout and mobile interfaces
7. End of the Line: production site migration and maintenance
8. Ruby on Rails Workshop report and evaluation

The first four workshops are practically focussed on Ruby on Rails and the last four workshops are less practical and are focussed on roleplay. Given my limited exposure to and interest in programming and development, I will be roleplaying from the perspective of managing the architecture/ project team for the final four workshops. So onto the first workshop...

Workshop 1 - Setting up the model railway


Topic objectives

• Install Ruby on Rails on your computer (InstantRails or Locomotive);
• Learn about the Model View Controller (MVC) approach to Web application design;
• Revise database techniques with MySQL
• Learn how to use the Ruby on Rails development environment
• Set up a focus group (like a study group for peer learning) to work on the Ruby on Rails workshops via Interact tools

To begin this workshop I thought I had better start learning more about Ruby on Rails, given I have no background in programming or web development. My knowledge of web application development frameworks is extremely limited and doesn't extend much further beyond knowing that they are development frameworks for the creation of web applications (a Captain obvious moment). As such, I commenced searching Google in ernest and found a wealth of knowledge on the particular application. I have gained access to the online book "Railsspace" which steps that user through the development of an online social networking site using Ruby on Rails. I also subscibed to the "Learning Rails" podcast in I-tunes and have already recieved the first couple of lesson in this series which I will start working through over the coming weeks.

Through my research I have learnt that Ruby on Rails, often shortened to RoR, is an open source web application development framework. Ruby is an an interpreted scripting language” for quick and easy object-oriented programming”. At first I had no idea what this meant, but after a couple more Google moments I was able to track down some more information. An interpreted scripting language is a programming language which is directly executed rather than being converted into a basic form such as machine code for execution as with a compiled programming language. As with everything in life, there are both advanatages and disadvantages to using an interpreted scritping language and these are presented below.

Advantages

  • easy to learn and use (very goo dnews for me!!!)
  • minimum programming knowledge or experience (also very good news for me!)
  • allows complex tasks to be performed in relatively few steps
  • allows simple creation and editing in a variety of text editors
  • allows the addition of dynamic and interactive activities to web pages
  • edit and running of code is fast.

Disadvantages

  • usually run quite slowly
  • limited access to low level and speed optimisation code.
  • limited commands to run detailed operations on graphics.
So the next part of the description above was that Ruby provides object oriented programing.

Object-oriented programming is a programming paradigm that uses "objects", which are data structures consisting of datafields and methods together with their interactions in order to design applications and computer programs. Ultimately what this means is that the Ruby programming language has the advantage of being relatively easy for anyone to learn and also follows a logic sequence that many people find easy to follow. It appears to be a great way to maximise time spent on developing web pages, as it makes the mechanics of the process simpler, excellent for a beginner like me.


In my research I also learnt that the "Rails" portion of Ruby on Rails is a web framework which utilises Ruby to develop web applications and that the Rails compomnent utilises Model View Controller (MVC) in order to provide a scaffolding which can is used to construct the components of a website. Ruby utilities the Rails scaffolding by effectively being broken up into packages. Rails is designed to make programming web applications easier by making several assumptions about what every developer needs to get started. It allows you to write less code while accomplishing more than many other languages and frameworks.

This emphasises the philosophy of Rails which is “Convention over Configuration”. This philosophy aims to simplify the development of software whilst still retaining its flexibility. This is achieved by reducing the amount of decisions that developers need to make which effectively means that the developers only need to develop unconventional components of the softwars.
What this means is that the programmer can rely on defaults on the naming of the classes and tables. For instance, if there is a class that is named “date” in the model, then the related table in the database source will automatically be named “date.” This means that the programmer only has to take the time to name tables if he or she wishes to assign a different name to the table. Use of this logical solution can result in speeding up the process of writing the code and getting the web pages ready to go.

As previously stated, Ruby on Rails uses a MVC approach. MVC was first described in 1979 by Trygve Reenskaug, then working on Smalltalk at Xerox PARC. The MVC paradigm is a way of breaking an application, or even just a piece of an application's interface, into three parts: the model, the view, and the controller. The user input, the modeling of the external world, and the visual feedback to the user are separated and handled by model, viewport and controller objects. The controller interprets mouse and keyboard inputs from the user and maps these user actions into commands that are sent to the model and/or viewport to effect the appropriate change. The model manages one or more data elements, responds to queries about its state, and responds to instructions to change state. The viewport manages a rectangular area of the display and is responsible for presenting data to the user through a combination of graphics and text. This is a farily simplistic description of this model, which has had reams of literature written on it. Given the focus of this workshop series is rails I;ll end the examination of the MVC paradign here.

Thus ends Workshop 1. This is has been a very theoretical focussed workshop, undoubtedly designed as such to give the student a good grounding and background on RoR prior to getting their feet wet on the programing side. To conclude this workshop I downloaded Instant Rails for the RoR and installed on my machine, thankfully without incident. Looking forward to Workshop 2......


No comments:

Post a Comment