create an empty project and add a Gemfile
cd ~/Desktop
mkdir project-name
cd project-name
touch Gemfile
Написать микросервис, который принимает 2 запроса: | |
1) на создание входящего платежа | |
2) на его подтверждение | |
После чего сервис должен сохранять транзакцию (возможно обновлять статус транзакции) | |
и подсчитывать конечный счет пользователя. | |
Пример эндпоинтов: | |
POST /api/transactions - создание |
1. Знание основ Ruby, фреймворка Ruby on Rails | |
- http://guides.rubyonrails.org/ | |
- http://rusrails.ru/ | |
Вопросы: | |
1. Чем отличается статическая и динамическая типизации в языках программирования? | |
2. Какие виды наследования поддерживаются в Ruby? | |
3. Что такое модуль? Какая разница между классом и модулем? | |
4. Какие есть уровни контроля доступа к методам для классов и модулей? | |
5. Какие есть способы вызова методов в Ruby? | |
6. Что означает ключевое слово self? |
#Reference | |
#https://devnotcorp.wordpress.com/2012/08/21/usage-examples-of-rubys-openssl-lib/ | |
#!/usr/bin/ruby | |
require 'openssl' | |
require 'date' | |
require 'time' | |
def binary_search(arr, value) | |
floor = 0 | |
ceiling = arr.length - 1 | |
counter = 0 | |
winner = nil | |
while floor <= ceiling | |
counter +=1 | |
guess = (floor + ceiling)/ 2 | |
print "Attempt #{counter}: " | |
if arr[guess] == value |
Алгоритмы: | |
1) Стивен Скиена "Алгоритмы. Руководство по разработке" | |
2) Томас Кормен "Алгоритмы. Построение и анализ" | |
3) Дональд Кнут "Искусство программирования" (никто в реальности не читал этот многотомный труд целиком...) | |
Общее: | |
1) Род Хаггарти "Дискретная математика для программистов" | |
2) Романовский И.В. "Дискретный анализ" | |
Паттерны проектирования: |
# BasketsController < ApplicationController | |
class BasketController | |
# всё сразу в одном методе | |
def add_to_basket | |
# могут быть одинаковые названия, поэтому искать лучше по id товара | |
item = Item.find_by_title(params[:item_title]) | |
# непонятно зачем глобальная переменная |
#Model | |
@user.should have(1).error_on(:username) # Checks whether there is an error in username | |
@user.errors[:username].should include("can't be blank") # check for the error message | |
#Rendering | |
response.should render_template(:index) | |
#Redirecting | |
response.should redirect_to(movies_path) |
type below:
brew update
brew install redis
To have launchd start redis now and restart at login:
brew services start redis
require 'rails_helper' | |
RSpec.describe TodosController, :type => :controller do | |
describe "GET #index" do | |
#describe "POST #create" do | |
#describe "GET #show" do | |
#describe "PATCH #update" do (or PUT #update) | |
#describe "DELETE #destroy" do | |
#describe "GET #new" do |