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
98
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
120
The Shape of a Service Object
inem
0
1.1k
The Curse of Service Object
inem
0
320
Откуда берется сложность в Rails-проектах и куда бы её деть?
inem
0
290
Rails без боли и оверинжиниринга
inem
0
520
Painless Rails: наводим порядок в контроллерах
inem
0
280
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
設計やレビューに悩んでいるPHPerに贈る、クリーンなオブジェクト設計の指針たち
panda_program
6
1.4k
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
310
GoのGenericsによるslice操作との付き合い方
syumai
3
690
Deep Dive into ~/.claude/projects
hiragram
8
1.5k
LINEヤフー データグループ紹介
lycorp_recruit_jp
0
890
Go1.25からのGOMAXPROCS
kuro_kurorrr
1
800
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
160
XP, Testing and ninja testing
m_seki
3
190
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
230
第9回 情シス転職ミートアップ 株式会社IVRy(アイブリー)の紹介
ivry_presentationmaterials
1
240
AIプログラマーDevinは PHPerの夢を見るか?
shinyasaita
1
120
KotlinConf 2025 現地で感じたServer-Side Kotlin
n_takehata
1
230
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
72
4.9k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
A Modern Web Designer's Workflow
chriscoyier
694
190k
For a Future-Friendly Web
brad_frost
179
9.8k
Designing for Performance
lara
609
69k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Building Adaptive Systems
keathley
43
2.6k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Building an army of robots
kneath
306
45k
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