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 |