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
Pedantic Elixir Builds
Search
Andrew Summers
January 23, 2019
Technology
170
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Pedantic Elixir Builds
Setting up pedantic Elixir builds in 2019
Andrew Summers
January 23, 2019
More Decks by Andrew Summers
See All by Andrew Summers
Domain Specific Languages and Metaprogramming
asummers
1
470
Gardening An Elixir Application
asummers
1
99
Other Decks in Technology
See All in Technology
アップデートで何が変わった?デモで学んで使いこなすIBM Bob2.0
muehara
0
180
AIが当たり前の組織で エンジニアはどう育つか
nishihira
1
230
生成AI×AWS CDK×AWS FISで"振り返れる"ミニGameDayをつくろう
yoshimi0227
1
450
AI時代のPlaywright活用(システムテストを自動化する ー 実行エンジンにPla ywrightを選んだ理由)
ynisqa1988
1
740
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
240
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
240
AI、CDK と協働する Full TypeScript アプリケーション開発 / Full TypeScript Application with AI and CDK
geekplus_tech
2
420
第67回コンピュータビジョン勉強会CVPR2026読会前編
tsukamotokenji
0
160
GoでCコンパイラを作った話
repunit
0
140
AmplifyHostingConstructからSSRフレームワークのためのホスティング設計を考察する/amplify-hosting-construct
fossamagna
1
260
企業でAWS Organizationsを動かすための組織設計の考え方
nrinetcom
PRO
1
120
タスクの複雑さでモデルを選ぶ ── Thompson Samplingで動かす“トークン/コスト最適化
satohy0323
0
590
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Writing Fast Ruby
sferik
630
63k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
220
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
40k
Building the Perfect Custom Keyboard
takai
2
810
AI: The stuff that nobody shows you
jnunemaker
PRO
8
830
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.9k
Balancing Empowerment & Direction
lara
6
1.2k
Code Review Best Practice
trishagee
74
20k
Transcript
Pedantic Elixir Builds Andrew Summers 2019-01-23
None
Who? • Backend Software Engineer at albert.io • Wrote Dialyzer
pretty printer • Maintainer of Dialyxir, Erlex, elixir-lsp packages • Contributor to many others!
What? • Set up CI with pedantic builds • Recipe
for contributing to open source • Improve code quality at work using tools
How? • Turn on all current tooling to maximum pedantry
• Add extra checks according to your team's conventions • Set up continuous integration every build using e.g. Travis, Circle CI, Jenkins • Reject pull requests that do not satisfy all checks
• Travis (Continuous Integration) • Compiler (warnings as errors) •
Formatter • Credo (linter) • ExUnit (tests) • Dialyzer (type checker) • Sobelow (security)
• Good first PR to fix warnings and prevent them
in future • Surprising how many open source projects have errors! mix compile --warnings-as-errors
• Elixir 1.6+ • Consistent code in ecosystem mix format
--check-formatted
• Elixir linter • Turn on as many optional rules
as you can handle • Add your own rules to e.g. enforce defp type specs mix credo list --strict
• Write more tests, you don't have enough. • Consider
property testing mix test
• Erlang type checker, sometimes lies • Full PLT analysis
cache rebuild on Elixir, Erlang version change, partial rebuild on dependency changes mix dialyzer --halt-exit-status
• Security analysis tool • Scans for e.g. String.to_atom/1, SQL
injection mix sobelow --exit low
Other tools • coveralls, via ExCoveralls for coverage analysis •
dependabot for keeping dependencies up to date • inch for documentation analysis
• https://bit.ly/2Mumw25 •
asummers _asummers Thanks!