28
ДОСТАВКА КОДА. ПОДДЕРЖКА ЕДИНОГО СТИЛЯ КОДА Денис Евграфов Тимлид

Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

Embed Size (px)

Citation preview

Page 1: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

ДОСТАВКА КОДА. ПОДДЕРЖКА ЕДИНОГО СТИЛЯ КОДА

Денис Евграфов Тимлид

Page 2: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

ДЖЕНТЛЬМЕНСКИЙ НАБОР ГЕМОВ

Page 3: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

АУТЕНТИФИКАЦИЯ

■ devise■ sorcery

Page 4: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

АВТОРИЗАЦИЯ

■ pundit■ cancancan ■ authority

Page 5: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

РАБОТА С ДАННЫМИ

■ seedbank■ pghero■ backup

Page 6: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

ГЕНЕРАЦИЯ JSON

■ active_model_serializers■ responders

Page 7: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

РАБОТА С ИЗОБРАЖЕНИЯМИ

■ carrierwave ■ jquery-fileupload-rails

■ remotipart

Page 8: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

СТАТУСЫ / ВЕРСИИ / УДАЛЕНИЕ

■ aasm■ paper_trail■ paranoia

Page 9: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

ROLLBAR

Page 10: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

ОТПРАВКА ПОЧТЫ / ОЧЕРЕДИ

■ letter_opener■ mailgun_rails■ premailer-rails

■ sidekiq

■ sitemap_generator

■ whenever

Page 11: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

ФОРМЫ / ОТОБРАЖЕНИЕ

■ bootstrap■ bootstrap_generators■ simple_form■ ransack■ select2-rails■ ckeditor

■ cocoon■ recaptcha■ show_for■ kaminari■ errgent■ high_voltage

Page 12: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

ПОМОЩЬ В РАЗРАБОТКЕ

■ awesome_print ■ annotate ■ switch_user

Page 13: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

ТЕСТИРОВАНИЕ / ДЕБАГ

■ capybara■ database_cleaner■ simplecov■ poltergeist

■ faker / ffaker■ factory_girl_rails■ vcr■ byebug

Page 14: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

ЛИНТЫ

■ rubocop (rubocop-rspec)

■ haml_lint■ scss_lint■ brakeman■ coffeelint / eslint

Page 15: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

OVERCOMMIT

Page 16: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

ДЕПЛОЙДоставка кода на сервер

Page 17: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

MINA / CAPISTRANO$ mina init ==> Created config/deploy.rb.# config/deploy.rbrequire 'mina/bundler’require 'mina/rails’require 'mina/git'require 'mina/puma'

set :user, 'username'set :application, 'my_project’set :domain, 'your.server.com’set :deploy_to, "/home/#{user}/projects/#{application}"set :repository, "[email protected]:stereodenis/#{application}.git"set :keep_releases, 3

set :shared_paths, %w(tmp/pids public/system public/uploads config/secrets.ymlconfig/database.yml log)…

Page 18: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

SETUPtask setup: :environment do queue! %(mkdir -p "#{deploy_to}/shared/log") queue! %(chmod g+rx,u+rwx "#{deploy_to}/shared/log")

queue! %(mkdir -p "#{deploy_to}/shared/config") queue! %(chmod g+rx,u+rwx "#{deploy_to}/shared/config")

queue! %(touch "#{deploy_to}/shared/config/database.yml") queue %(echo "-----> Be sure to edit 'shared/config/database.yml'.")

# Puma needs a place to store its pid file and socket file. queue! %(mkdir -p "#{deploy_to}/#{shared_path}/tmp/sockets") queue! %(chmod g+rx,u+rwx "#{deploy_to}/#{shared_path}/tmp/sockets") queue! %(mkdir -p "#{deploy_to}/#{shared_path}/tmp/pids") queue! %(chmod g+rx,u+rwx "#{deploy_to}/#{shared_path}/tmp/pids")end

> mina setup

Page 19: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

DEPLOYdesc 'Deploys the current version to the server.'task deploy: :environment do deploy do invoke :'git:clone' invoke :'deploy:link_shared_paths' invoke :'bundle:install' invoke :'rails:assets_precompile' invoke :'rails:db_migrate' invoke :'deploy:cleanup'

to :launch do invoke :'puma:restart' end endend

> mina deploy

Page 20: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

ПЛАГИНЫ

■ mina-data_sync■ mina-faye■ mina-foreman■ mina-hooks■ mina-multistage■ mina-nginx

■ mina-puma■ mina-rbenv-addons■ mina-rollbar■ mina-sidekiq■ mina-tail■ mina-whenever

Page 21: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

АВТОМАТИЗАЦИЯContinuous Integration

Page 22: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер
Page 23: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

VEXOR

Page 24: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер
Page 25: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер
Page 26: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер
Page 27: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

СТАЖИРОВКАcareer.evrone.ru

Page 28: Джентльменский набор гемов. Поддержка единого стиля кода. Доставка кода на сервер

СПАСИБО ЗА ВНИМАНИЕ!ВОПРОСЫ?

@stereodenis