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
70
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
20
The Shape of a Service Object
inem
0
520
The Curse of Service Object
inem
0
240
Откуда берется сложность в Rails-проектах и куда бы её деть?
inem
0
260
Rails без боли и оверинжиниринга
inem
0
360
Painless Rails: наводим порядок в контроллерах
inem
0
240
Less Abstract! Surprising effects of expressing OOP in pictures
inem
1
540
Pure functions and side effects
inem
0
38
Solving architectural problems with OOP in pictures
inem
1
5.6k
Other Decks in Programming
See All in Programming
XStateでReactに秩序を与えたい
gizm000
0
730
エラーレスポンス設計から考える、0→1開発におけるGraphQLへの向き合い方
bicstone
5
1.5k
LangChainでWebサイトの内容取得やGitHubソースコード取得
shukob
0
160
rbs-inlineを導入してYARDからRBSに移行する
euglena1215
1
270
オートマトン学習しろ / Do automata learning
makenowjust
3
130
私のEbitengineの第一歩
qt_luigi
0
450
Desafios e Lições Aprendidas na Migração de Monólitos para Microsserviços em Java
jessilyneh
2
150
大公開!iOS開発の悩みトップ5 〜iOSDC Japan 2024〜
ryunakayama
0
190
Scala におけるコンパイラエラーとの付き合い方
chencmd
2
430
Google Sign-inの移行から始めるCredential Manager活用
clockvoid
0
290
Jakarta EE meets AI
ivargrimstad
1
490
Ebitengineの1vs1ゲーム WebRTCの活用
ponyo877
0
380
Featured
See All Featured
What's new in Ruby 2.0
geeforr
340
31k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
23
1.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
1
48
Practical Orchestrator
shlominoach
185
10k
Why You Should Never Use an ORM
jnunemaker
PRO
53
8.9k
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
The World Runs on Bad Software
bkeepers
PRO
64
11k
Designing for humans not robots
tammielis
248
25k
How To Stay Up To Date on Web Technology
chriscoyier
786
250k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
36
6.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
3k
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