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
87
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
110
The Shape of a Service Object
inem
0
1.1k
The Curse of Service Object
inem
0
310
Откуда берется сложность в Rails-проектах и куда бы её деть?
inem
0
280
Rails без боли и оверинжиниринга
inem
0
490
Painless Rails: наводим порядок в контроллерах
inem
0
270
Less Abstract! Surprising effects of expressing OOP in pictures
inem
1
610
Pure functions and side effects
inem
0
50
Solving architectural problems with OOP in pictures
inem
1
6k
Other Decks in Programming
See All in Programming
fieldalignmentから見るGoの構造体
kuro_kurorrr
0
130
Road to RubyKaigi: Making Tinny Chiptunes with Ruby
makicamel
4
530
GitHub Copilot for Azureを使い倒したい
ymd65536
1
300
設計の本質:コード、システム、そして組織へ / The Essence of Design: To Code, Systems, and Organizations
nrslib
10
3.7k
カウシェで Four Keys の改善を試みた理由
ike002jp
1
120
Jakarta EE Meets AI
ivargrimstad
0
750
大LLM時代にこの先生きのこるには-ITエンジニア編
fumiyakume
7
3.3k
Lambda(Python)の リファクタリングが好きなんです
komakichi
4
230
「理解」を重視したAI活用開発
fast_doctor
0
270
note の Elasticsearch 更新系を支える技術
tchov
9
3.4k
一緒に働きたくなるプログラマの思想 #QiitaConference
mu_zaru
78
20k
RuboCop: Modularity and AST Insights
koic
2
2.3k
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Raft: Consensus for Rubyists
vanstee
137
6.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
[RailsConf 2023] Rails as a piece of cake
palkan
54
5.5k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.3k
Making Projects Easy
brettharned
116
6.2k
The World Runs on Bad Software
bkeepers
PRO
68
11k
Designing Experiences People Love
moore
142
24k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Scaling GitHub
holman
459
140k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
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