Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ElixirConf 2017 TL;DR

Bruce Park
September 20, 2017

ElixirConf 2017 TL;DR

A sweet short update on ElixirConf 2017 for the ElixirLA meetup.

Authors:
Bruce Park

Talk licensed under Creative Commons Attribution 4.0 International License (CC BY 4.0): https://creativecommons.org/licenses/by/4.0/

Bruce Park

September 20, 2017
Tweet

More Decks by Bruce Park

Other Decks in Technology

Transcript

  1. 9/20/2017 Spectacle http://localhost:3000/#/?export& 2/28 THE COST OF THIS TALK... $$

    Conference Ticket $$ This talk is free - The value of this talk is priced at... -
  2. 9/20/2017 Spectacle http://localhost:3000/#/?export& 6/28 ELIXIR UPDATES: ADOPTION IN NON- ENGLISH

    SPEAKING COMMUNITIES Module -> Beam File -> chunks of module meta data w/:atoms - Chunks were in Latin-1, but now they are UTF-8 - So now you must use Erlang 20 -
  3. 9/20/2017 Spectacle http://localhost:3000/#/?export& 7/28 ELIXIR UPDATES: BETTER DEBUGGING MESSAGES Demo:

    How it Works - Access.fetch(:foo, :bar) -> 1.4 vs. 1.5 - Better dev experience! -
  4. 9/20/2017 Spectacle http://localhost:3000/#/?export& 8/28 ELIXIR UPDATES: BREAKPOINTS FROM IEX **

    (RuntimeError) could not set breakpoint, you are running on an earlier OTP version than OTP 20 (iex) lib/iex.ex:647: IEx.break!/4 ** (RuntimeError) could not set breakpoint, module URI was not compiled with debug_info (iex) lib/iex.ex:647: IEx.break!/4 break! URI.decode_query/2 - Dbgi chunk - allow Elixir metadata to be emitted -
  5. 9/20/2017 Spectacle http://localhost:3000/#/?export& 9/28 DID I JUST PAY >$1000 FOR

    COMPLEMENTARY HOTEL COFFEE? Most of this is covered in Elixir v1.5 released -
  6. 9/20/2017 Spectacle http://localhost:3000/#/?export& 10/28 ELIXIR UPDATES: GOALS/R&D Code Formatter (productivity)

    - Property Testing (maintainability) - "Property-based testing is a technique for testing your code by considering general properties of the functions you write. Rather than using explicit values in your tests, you instead try to de ne the types of the values to feed it, and the properties of the results produced." --pragdave - Bene t: test invariants and things you might not have considered when writing manual tests... - Releases (reliability) ~ long term goal - use Distillery for now -
  7. 9/20/2017 Spectacle http://localhost:3000/#/?export& 12/28 PHOENIX 1.3/1.4 UPDATES Phoenix 1.3. book

    due by end of 2017 - Contexts at Hexdocs - Trying to gure out what makes a good program (generators) - Goals: easy to write, understand, & change -
  8. 9/20/2017 Spectacle http://localhost:3000/#/?export& 13/28 PHOENIX 1.3 - CONTEXTS You can't

    tell people to write "modules and functions" - A de nition for contexts: "Dedicated modules that expose and group related functionality" - New directory structure for 1.3 - see Werewolf repo from LA Elixir -
  9. 9/20/2017 Spectacle http://localhost:3000/#/?export& 14/28 PHOENIX 1.1 TO 1.3: SASA JURIC

    Experienced team started on 1.1 and went to 1.3...Lessons... - "Framework plays an important role in determining the code organization. Even as experienced devs, we simply stuck to defaults promoted by Phoenix at the time." - "It's much harder to refactor the code post-fact. Having worked on some terrible legacy (and sadly produced some of my own), I strongly feel that your only chance of keeping the control of your code is to pay attention to it from the very start.* -
  10. 9/20/2017 Spectacle http://localhost:3000/#/?export& 15/28 PHOENIX 1.1 TO 1.3: SASA JURIC

    "Keeping the Phoenix part of the code (controllers, sockets) focused only on HTTP related tasks, basically making it just the interface to the rest of the system is a very good way to structure any production app." - https://elixirforum.com/t/contexts-a-barrier-too-high-for- newbies/5929/19 -
  11. 9/20/2017 Spectacle http://localhost:3000/#/?export& 16/28 PHOENIX 1.4 - MONITORING/METRICS DataDog, Skylight,

    NewRelic, AppSignal, etc. - All implement their own data collection agents on your server - A basic APM (application performance monitoring) library interface that handles the data collection for the Erlang VM. - Data collection must not reduce your application to single thread performance (sending a reporting request on every single HTTP request) - Metrics should provide actionable insights for non- experts -
  12. 9/20/2017 Spectacle http://localhost:3000/#/?export& 17/28 PHOENIX 1.4 - MONITORING/METRICS Gauge, Meter/Timer,

    Instrumenter (...let's give it to compile time hooks into application events such as Ecto.Query) - Feature: You just write a function to collect the data you want - Feature: Set a breakpoint from the browser (via Plug) - Developer Dashboard (/dashboard endpoint) - currently there is a phoenix stats library -
  13. 9/20/2017 Spectacle http://localhost:3000/#/?export& 21/28 DEFMODULE TALKS.BEGINNER DO... Thinking in Ecto

    - Darin Wilson - Elixir by the Bellyful - Bryan Hunter - It's Better Unstated - TJ Stankus - Managing Tables With Elixir and OTP - Robert Beene -
  14. 9/20/2017 Spectacle http://localhost:3000/#/?export& 22/28 DEFMODULE TALKS.COMMUNITY DO... Idea Scaling by

    Hannah Howard - ElixirBridge: How Do We Shape Community? by Anna Neyzberg -
  15. 9/20/2017 Spectacle http://localhost:3000/#/?export& 23/28 DEFMODULE TALKS.UNIQUE DO... Elixir Native UI

    - Body Multerer - Patience: Using Phoenix.Presence in a Primary Care Clinic - Keith Gautreaux - Keep an Eye on The Sky with Nerves and Phoenix - Je Smith - Anything Nerves... -
  16. 9/20/2017 Spectacle http://localhost:3000/#/?export& 24/28 DEFMODULE TALKS.WARSTORIES DO... Scaling Up Elixir

    at TpT - Shanti Chellaram (Teachers Pay Teachers) - Cajoling the Bird: How we squeezed more out of Phoenix PubSub - Simon Zelazny (Grindr) -
  17. 9/20/2017 Spectacle http://localhost:3000/#/?export& 26/28 COMMUNITY & NOT SO DISTANT FUTURE

    Phoenix Guide Sprint - ~600 attendees - Increase in packages and downloads - Back in Seattle, WA 2018 -
  18. 9/20/2017 Spectacle http://localhost:3000/#/?export& 27/28 COMMUNITY & RESOURCES CodeCorps.org - Coding

    for good - Last USA Elixir conference in 2017? - Elixir with Love - Talk/Slide Links by Poteto - Kitchen Sink repo -