Code Monkey home page Code Monkey logo

rack-video-review-how-the-web-works-pt-2's Introduction

rack-video-review-how-the-web-works-pt-2's People

Contributors

annjohn avatar curiositypaths avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rack-video-review-how-the-web-works-pt-2's Issues

Link to project folder

Having a link to the 'learn twitter' project folder would be useful and help students follow along.

Suggested Summary and Objectives

Suggested Summary

  • In this lesson, we give an introduction to the conventions of a Rack / Sinatra project, the common file structure when setting up a Sinatra project, how we direct various requests using their routes / HTTP verbs in a dynamic application, and how the model-view-controller guides the structure of a project.

Suggested Objectives

  • Understand that Rack is the foundation that Sinatra and Rails are built on.
  • Set up a basic file structure that follows the conventions of a typical Sinatra app.
  • Use rackup and shotgun to startup a local web server for interacting with your Rack or Sinatra application.
  • Understand that a server can only handle one concurrent request at a time, but that complications are rare unless there are a large number of users.
  • Explain the difference between static web applications and dynamic web applications.
  • Utilize the shotgun gem so that you don’t have to stop and restart your local server each time you make a change in your files.
  • Define what a DSL (domain-specific language) is and why they are so useful to programmers.
  • Define a route and understand how to use URLs and HTTP verbs to determine which route responds to specific requests.
  • Create a new Sinatra app, using conventions for making/naming files and setting up the file structure.
  • Understand the config.ru file as the “bin” file of a web app—it is the first file that runs.
  • Define a controller, model, and view in the context of the Model - View - Controller architecture and what specific job each has.
  • Create a application_controller.rb file and write it with the run keyword in the config.ru file to start the application.
  • Use the use keyword to mount all other controllers other than the one that you are going to run.
  • Remember to add all new files to the config/environment.rb file, so that your application can access them.
  • Stay organized and place model, view, and controller files in the app directory.
  • Understand the general process that a Sinatra request goes through, from client through the controller to database / erb and back again.

Suggestion for Avi in future videos

I like videos. Generally I learn well from videos. Avi needs to !)pack less information in his videos, and 2) slow down his presentation, (particularly when he is building a piece of server.) My learning curve is a normal bell curve. When the information rate is too slow, I get bored and learn less. There is a sweet spot, the median of the bell curve, where the information rate is just right and the learning rate is optimum. As the information rate is sped up past this point, I begin to miss concepts and learning drops off. When Avi gets sped up, as he does when he is building something, he is teaching in the far right hand tail of the curve, because I am overwhelmed. Sometimes I think Avi is just showing off. Earth to Avi: "We know you're good. Slow down, help us learn more. Particularly when there is an error. That is when Avi rushes the fastest, and that is the exact time when I would like him to teach the slowest. Because, guess what, I make errors, and I could learn a lot about fixing my errors if Avi would methodically explain what caused his code to break, the thinking process he goes through when he analyzes his mistake, and the corrections he comes up with. I know it takes time, so cut the amount of material you plan to cover, and maybe do 3 videos instead of 1.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.