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
81
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
81
The Shape of a Service Object
inem
0
930
The Curse of Service Object
inem
0
290
Откуда берется сложность в Rails-проектах и куда бы её деть?
inem
0
270
Rails без боли и оверинжиниринга
inem
0
450
Painless Rails: наводим порядок в контроллерах
inem
0
260
Less Abstract! Surprising effects of expressing OOP in pictures
inem
1
590
Pure functions and side effects
inem
0
45
Solving architectural problems with OOP in pictures
inem
1
5.9k
Other Decks in Programming
See All in Programming
[JAWS-UG横浜 #79] re:Invent 2024 の DB アップデートは Multi-Region!
maroon1st
0
130
動作確認やテストで漏れがちな観点3選
starfish719
5
870
ゼロからの、レトロゲームエンジンの作り方
tokujiros
3
1.2k
BEエンジニアがFEの業務をできるようになるまでにやったこと
yoshida_ryushin
0
260
知られざるDMMデータエンジニアの生態 〜かつてツチノコと呼ばれし者〜
takaha4k
3
1.1k
混沌とした例外処理とエラー監視に秩序をもたらす
morihirok
18
3.3k
Оптимизируем производительность блока Казначейство
lamodatech
0
990
WebDriver BiDiとは何なのか
yotahada3
1
100
Amazon ECS とマイクロサービスから考えるシステム構成
hiyanger
1
180
DevinとCursorから学ぶAIエージェントメモリーの設計とMoatの考え方
itarutomy
1
500
ASP. NET CoreにおけるWebAPIの最新情報
tomokusaba
0
200
SpringBoot3.4の構造化ログ #kanjava
irof
2
780
Featured
See All Featured
Being A Developer After 40
akosma
89
590k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Done Done
chrislema
182
16k
Thoughts on Productivity
jonyablonski
68
4.4k
It's Worth the Effort
3n
184
28k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Fireside Chat
paigeccino
34
3.2k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Navigating Team Friction
lara
183
15k
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