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 or Django or any number of 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 2019 we can still recommend it both for learning and for building production ready software with it. 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
- Database and Models
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)
- Assets and Webpacker
Rails style remote forms and links
- Getting started with Testing
Write your first unit tests and integration tests for Rails
- Ruby Gems for your Rails Project
How bundler helps with dependencies, and some gems you might need for your first Rails project
- 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
- Refactoring Rails
How to improve your code in a systematic way.
How a backend framework helps with web security
- Advanced Authentication
Different Scenarios demand different authentication methods - Web Auth, OAuth, JWT,...
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