Денис Евграфов. Доставка, тестирование кода и его...
Transcript of Денис Евграфов. Доставка, тестирование кода и его...
![Page 1: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/1.jpg)
ДОСТАВКА КОДА. ПОДДЕРЖКА ЕДИНОГО СТИЛЯ КОДА
Денис Евграфов Тимлид
![Page 2: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/2.jpg)
ДЖЕНТЛЬМЕНСКИЙ НАБОР ГЕМОВ
![Page 3: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/3.jpg)
АУТЕНТИФИКАЦИЯ
■ devise■ sorcery
![Page 4: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/4.jpg)
АВТОРИЗАЦИЯ
■ pundit■ cancancan ■ authority
![Page 5: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/5.jpg)
РАБОТА С ДАННЫМИ
■ seedbank■ pghero■ backup
![Page 6: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/6.jpg)
ГЕНЕРАЦИЯ JSON
■ active_model_serializers■ responders
![Page 7: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/7.jpg)
РАБОТА С ИЗОБРАЖЕНИЯМИ
■ carrierwave ■ jquery-fileupload-rails
■ remotipart
![Page 8: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/8.jpg)
СТАТУСЫ / ВЕРСИИ / УДАЛЕНИЕ
■ aasm■ paper_trail■ paranoia
![Page 9: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/9.jpg)
ROLLBAR
![Page 10: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/10.jpg)
ОТПРАВКА ПОЧТЫ / ОЧЕРЕДИ
■ letter_opener■ mailgun_rails■ premailer-rails
■ sidekiq
■ sitemap_generator
■ whenever
![Page 11: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/11.jpg)
ФОРМЫ / ОТОБРАЖЕНИЕ
■ bootstrap■ bootstrap_generators■ simple_form■ ransack■ select2-rails■ ckeditor
■ cocoon■ recaptcha■ show_for■ kaminari■ errgent■ high_voltage
![Page 12: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/12.jpg)
ПОМОЩЬ В РАЗРАБОТКЕ
■ awesome_print ■ annotate ■ switch_user
![Page 13: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/13.jpg)
ТЕСТИРОВАНИЕ / ДЕБАГ
■ capybara■ database_cleaner■ simplecov■ poltergeist
■ faker / ffaker■ factory_girl_rails■ vcr■ byebug
![Page 14: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/14.jpg)
ЛИНТЫ
■ rubocop (rubocop-rspec)
■ haml_lint■ scss_lint■ brakeman■ coffeelint / eslint
![Page 15: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/15.jpg)
OVERCOMMIT
![Page 16: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/16.jpg)
ДЕПЛОЙДоставка кода на сервер
![Page 17: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/17.jpg)
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: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/18.jpg)
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: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/19.jpg)
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: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/20.jpg)
ПЛАГИНЫ
■ 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: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/21.jpg)
АВТОМАТИЗАЦИЯContinuous Integration
![Page 22: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/22.jpg)
![Page 23: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/23.jpg)
VEXOR
![Page 24: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/24.jpg)
![Page 25: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/25.jpg)
![Page 26: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/26.jpg)
![Page 27: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/27.jpg)
СТАЖИРОВКАcareer.evrone.ru
![Page 28: Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016](https://reader034.fdocuments.net/reader034/viewer/2022042520/587080251a28ab57368b62a5/html5/thumbnails/28.jpg)
СПАСИБО ЗА ВНИМАНИЕ!ВОПРОСЫ?
@stereodenis