Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Modern Make for modern (Rails) programmers
Search
Ivan Nemytchenko
August 05, 2021
Programming
0
99
Modern Make for modern (Rails) programmers
Ivan Nemytchenko
August 05, 2021
Tweet
Share
More Decks by Ivan Nemytchenko
See All by Ivan Nemytchenko
Code Topology Notation
inem
0
130
The Shape of a Service Object
inem
0
1.2k
The Curse of Service Object
inem
0
320
Откуда берется сложность в Rails-проектах и куда бы её деть?
inem
0
300
Rails без боли и оверинжиниринга
inem
0
520
Painless Rails: наводим порядок в контроллерах
inem
0
290
Less Abstract! Surprising effects of expressing OOP in pictures
inem
1
630
Pure functions and side effects
inem
0
54
Solving architectural problems with OOP in pictures
inem
1
6k
Other Decks in Programming
See All in Programming
SQLアンチパターン第2版 データベースプログラミングで陥りがちな失敗とその対策 / Intro to SQL Antipatterns 2nd
twada
PRO
10
1.1k
React は次の10年を生き残れるか:3つのトレンドから考える
oukayuka
7
1.9k
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
180
NEWT Backend Evolution
xpromx
1
140
スタートアップの急成長を支えるプラットフォームエンジニアリングと組織戦略
sutochin26
1
7.3k
dbt民主化とLLMによる開発ブースト ~ AI Readyな分析サイクルを目指して ~
yoshyum
3
1.1k
#QiitaBash MCPのセキュリティ
ryosukedtomita
1
1.5k
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
2
15k
NPOでのDevinの活用
codeforeveryone
0
900
Python型ヒント完全ガイド 初心者でも分かる、現代的で実践的な使い方
mickey_kubo
1
240
ニーリーにおけるプロダクトエンジニア
nealle
0
950
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
170
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
430
65k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Become a Pro
speakerdeck
PRO
29
5.4k
Optimizing for Happiness
mojombo
379
70k
A designer walks into a library…
pauljervisheath
207
24k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
990
The World Runs on Bad Software
bkeepers
PRO
70
11k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Testing 201, or: Great Expectations
jmmastey
43
7.6k
Transcript
Modern Make for modern (RAILS) developers Ivan Nemytchenko, @inem, inem.at
RubyConf Brasil 2020 CRASH COURSE
Ivan Nemytchenko • rubyist since 2006 • former GitLabber •
teacher • railshurts.com author • freelance/consulting
• painlessrails.com
http://urban-connect.ch
What to expect here • What’s the problem? • The
basics • Advanced stuff • Examples from real project • Principles
Make?
What’s the problem?
Modern Developer? • Dev+Ops • Multiple stacks (Rails + JS
for example) • Multiple projects • Multiple environments (dev, ±docker, ssh)
Command line interface tools • git • ssh • rails
• bundle • docker • docker-compose • heroku • aws • ansible • ansible-playbook • yarn • …
Command line interface tools
What’s the problem? ansible-playbook -i inventory/production -- tags "deploy" app-server.yml
--become- user=app --extra-vars=extra.txt --vault- password-file="~/.ansible/vault.txt" -vvv
What’s the problem? ansible-playbook -i inventory/production -- tags "deploy" app-server.yml
--become- user=app --extra-vars=extra.txt --vault- password-file="~/.ansible/vault.txt" -vvv Imperative, not declarative!
• Imperative, not declarative • Implementation, not semantics • Have
to remember a lot of low-level details • Outdated README-s What’s the problem?
Deployment ansible-playbook -i inventory/production -- tags "deploy" app-server.yml --become- user=app
--extra-vars=extra.txt --vault- password-file="~/.ansible/vault.txt" -vvv
How about? make deploy
make deploy
Run tests MINITEST_REPORTER=SpecReporter bundle exec bin/rails test
Make test
Yay! • You can use Make now!
Modern Make In practice
Why not … ? • Rake • Yarn • Bash
scripts
USE Make AS GLUE BETWEEN TECHNOLOGIES!
Principles • No instructions in Readme! • Semantics first! •
Duplication is ok! • StackOverflow → Makefile
Modern make http://makefile.site http://re.dopo.st/201015204327 http://inem.at