On Backend Development
In this course we will learn backend development with Ruby on Rails and with node.js.
There are many frameworks in different languages that could also be used. If you learn Laravel (with PHP) or Django (with Python) or Play (with Java) one of many other frameworks you are doing just fine.
We decided on Ruby on Rails in 2008 because the framework seemed well rounded and modern then, and we have not been disappointed. Rails has not stopped innovating and improving. In 2024 we can still recommend it both for learning and for building production ready software. In 2013 we added node.js to cover different aspects of backend development.
Ruby on Rails
- Ruby Commandline
-
The essential ruby you need to know to understand rails
- Models and ActiveRecord
-
How does Rails use the database? Use the rails console to find out.
- Database and Migrations
-
How does Rails use the database? How are models and database tables related?
- Associations and Validations
-
How are relations between models implemented? How can we put restrictions on the data?
- Routing, View and Controller
-
How Rails gets from a HTTP Request to a finishd HTML document
- Simple Authentication
-
How do we implement "logging in" over statless HTTP? Sessions in rails. Logging in with Passwords or with another service like github, twitter, facebook (using devise and omniauth)
- The Asset Pipeline and Importmaps
-
How CSS, Fonts, Images and JavaScript are prepared for publishing
- Getting started with Testing
-
Write your first unit tests and integration tests for Rails
- Refactoring Rails
-
How to improve your code in a systematic way.
- Deploy to PAAS
-
How to deploy a web app to the cloud with "Platform As A Service"
- Ruby Gems for your Rails Project
-
How bundler helps with dependencies, and some gems you might need for your first Rails project
- Deploying Rails
-
Several options for deploying a Rails App
Ruby on Rails - Advanced Topics
- Deploy to PAAS
-
How to deploy a web app to the cloud with "Platform As A Service"
- REST API
-
Offer an REST stype API as part of your Rails app
- GraphQL API
-
Offer an GraphQL API as part of your Rails app
- Websocket in Rails
-
Websockets offer a permanent connection between client and server. With Actioncable you can use websockets for publish-subscribe communication
- Jobs and Tasks in Rails
-
Your web application will need code that is run outside the HTTP Request-Response cycle. Learn about Jobs that run automatically and Tasks that you can start from the commandline
- Rails Security
-
How Rails framework helps with web security
Overarching Concerns
- Security
-
Some Security Aspects of using Rails, Node and Next.js
- Advanced Authentication
-
Different Scenarios demand different authentication methods - Web Auth, OAuth, JWT,...
- Caching
-
Speed up your web app through caching
- Advanced Testing
-
More testing with test doubles and a headless browser
- Internationalization (I18n)
-
How to prepare you app for many languages, many countries
- Git Rebasing
-
How to work with feature branches and rebasing in git
Nodes.js
- Node vs. Rails
-
What are the differences, and why should I learn both?
- Node Basics
-
Program your first web server in node
- Node Websockets
-
Program a chat app with socket.io
- Node Web App
-
write a web app in node with express
- Scaling Node
-
how to scale node up with cluster.js