-
Ruby,
project example
Ruby is an excellent way to interpret your thoughts and ideas to any machine through Object-oriented
programming tools and with the assistance of unique Ruby community (who also creates awesome gems,
patterns, education resources, etc.)
-
Ruby on Rails,
project example
I think about RoR like a General Contractor. First of all I set a task, decide what models should
I have. Second step is define key scenarios of an app. Next I draw views projects that help me
understand what gems, frameworks would be better for front-end (Webpack + Bootstrap + Puma looks
great for new apps, but sometimes the best way to choose Asset Pipeline way if I won't use a lot
of CSS, JS, JS libraries) and it would be connected through controllers and routes. After all it
is time to code, test, edit multiple times and coordinate with colleagues, deploy to server.
-
WebSocket,
project example
There is an opportunity to use Application Cable framework, directly in RoR, that is based on WebSocket technology.
Kabulchat app is a bright example of simple chat system where users get messages without refreshing HTML
page or element: back-end controllers ('channels' - conventionally for RoR) + Front-end
(JS/JQuery/Coffeescript files in Asset Pipeline) + DB (Redis for production for the best user experience).
-
Web scraping,
project example
Nokogiri and OpenURI gems help to retrieve data from the Web according to individual settings and then Ruby
built-in methods allow to transform this data to any preferable format (output text to terminal console,
.xlsx tables, etc.).
-
Tests (RSpec),
project example
Currently I use RSpec tests (with FactoryBot and Capybara gems) for checking RoR models, controller actions,
policies, etc. For me tests are 'internal auditors', so 'due diligence' of an app is good technical and
business practice, so I am on my way to learn RSpec and other tests more deeply.
-
HTML + CSS +
JQuery, project example
Front-end is very important part of any web app because customers interact with app through web pages.
-
Vanilla JS
JavaScript = 'brain' of Front-end. I'm just at the beginning of the learning JS and I plan to improve
my JS skills.
-
Bootstrap +
Webpack
Webpack + Bootstrap = one of the best ways to organize Front-end. Webpack has excellent performance
optimizations, it really helps for working with JS and JS frameworks, and Bootstrap is intuitively
understandable HTML-CSS-JS library, so it is a pleasure to work with Front-end.
-
PostgreSQL, SQLite,
Redis
Almost all web apps interact with object-relational database systems for saving and retrieving data.
For production mode I use PostgreSQL because of client-server architecture and for development
simple SQLite that is embedded into the end program.
-
App deploying to vps ( Heroku,
Digital Ocean +
Nginx)
One of the purposes of web apps is remote access for its functionality, so deploying apps to IaaS
(Digital Ocean) and PaaS (Heroku) solutions is essential and enjoyable part of technical sophistication.
-
AWS,
Google Cloud Platfrom
Diversification of media needs in cloud solutions that make app development more flexible.
-
Kafka
One of the necessary tools to develop APIs.
-
Kubernetes
Effective way to manage projects in remote servers.
-
Docker
Docker has Linux kernel's functionality and uses resource isolation, so it helps for app development
in teams.
-
Git & GitHub
Git and GitHub are essential part of developing process — you make key notes (commits) after updating
or fixing of app code and that is why your way of thinking becomes clear for other developers and
for you in future.
-
Logz.io, New Relic, Helios
It really helps to investigate and fix errors.
-
Linux /
Windows
There are much more commons (for developing purposes) between Linux and Windows since WSL2 was
presented.