Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Modern Make for modern (Rails) programmers
Ivan Nemytchenko
August 05, 2021
Programming
0
15
Modern Make for modern (Rails) programmers
Ivan Nemytchenko
August 05, 2021
Tweet
Share
More Decks by Ivan Nemytchenko
See All by Ivan Nemytchenko
Откуда берется сложность в Rails-проектах и куда бы её деть?
inem
0
160
Rails без боли и оверинжиниринга
inem
0
110
Painless Rails: наводим порядок в контроллерах
inem
0
170
Less Abstract! Surprising effects of expressing OOP in pictures
inem
1
230
Pure functions and side effects
inem
0
19
Solving architectural problems with OOP in pictures
inem
1
3.7k
Embrace multi-model thinking!
inem
1
55
Embrace multi-model thinking
inem
0
95
What’s missing?
inem
0
49
Other Decks in Programming
See All in Programming
How useEvent would change our applications
koba04
1
1.5k
heyにおけるSREの大切さ~マルチプロダクト運用の「楽しさ」と「難しさ」および今後の展望~
fufuhu
3
1.5k
LOWYAの信頼性向上とNew Relic
kazumax55
4
330
機能横断型チームにおける技術改善
takeshiakutsu
3
430
mrubyを1300円のボードで動かそう
yuuu
0
180
Practical Advanced Kotlin in Practice
rock3r
3
130
【Qiita Night】新卒エンジニアによるSwift6与太予想
eiji127
0
160
TSDサービスRecap ~PMBOK®ガイド第7版超速まるわかりガイド~|ミツエーリンクスTSD
mlctsd
0
100
脱オブジェクト指向講座(5分LT資料)
kishida
8
11k
The future of trust stores in Python
sethmlarson
0
180
よりUXに近いSLI・SLOの運用による可用性の再設計
kazumanagano
3
470
roadmap to rust 2024
matsu7874
1
650
Featured
See All Featured
Infographics Made Easy
chrislema
233
17k
The Mythical Team-Month
searls
208
39k
Imperfection Machines: The Place of Print at Facebook
scottboms
253
11k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
151
12k
How New CSS Is Changing Everything About Graphic Design on the Web
jensimmons
212
11k
Building Flexible Design Systems
yeseniaperezcruz
310
33k
Practical Orchestrator
shlominoach
178
8.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
396
62k
Happy Clients
brianwarren
89
5.5k
Why Our Code Smells
bkeepers
PRO
324
54k
Mobile First: as difficult as doing things right
swwweet
212
7.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
337
17k
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