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

Getting Help |> Ways to Contribute

Getting Help |> Ways to Contribute

Shared at the first meetup of Elixir Shanghai.

Where to get help when developing your own project? How to contribute back to the Elixir community?

Lou Xun

June 04, 2016
Tweet

More Decks by Lou Xun

Other Decks in Programming

Transcript

  1. Ge#ng&Help&
    &|>&Ways&to&Contribute
    [email protected]$/$Ela$Workshop

    View Slide

  2. Topics
    1. Where'to'start'learning'about'Elixir
    2. Tools'to'use'during'project'development
    3. Where'to'get'help'when'wri>ng'code
    4. How'to'contribute'back
    [email protected]$/$Ela$Workshop

    View Slide

  3. Elixir:'Ge*ng'Started
    [email protected]$/$Ela$Workshop

    View Slide

  4. Elixir&Homepage&(elixir/lang.org)
    • Always(up+to+date
    • Install,(Ge4ng(Started,(Learning
    • Crash(course(for(Erlang(developers
    • Links(to(the(community
    • Code(Editor(support
    [email protected]$/$Ela$Workshop

    View Slide

  5. Books
    • Programming)Elixir)1.2
    • Elixir)in)Ac2on
    • Metaprogramming)Elixir
    • Programming)Phoenix
    • The)Li:le)Elixir)&)OTP)Guidebook
    • redfour.io
    [email protected]$/$Ela$Workshop

    View Slide

  6. Tutorials,+Screencasts,+Podcasts...
    • Elixir'School
    • Elixir'Sips,'LearnElixir.tv
    • Elixir'Fountain
    [email protected]$/$Ela$Workshop

    View Slide

  7. Down%to%Erlang
    • Programming)Erlang"&"Erlang)Programming
    • Learn)You)Some)Erlang)for)Great)Good
    • Erlang)and)OTP)in)Ac9on
    • Designing)for)Scalability)with)Erlang/OTP
    [email protected]$/$Ela$Workshop

    View Slide

  8. Developing*an*Elixir*Project
    [email protected]$/$Ela$Workshop

    View Slide

  9. To#Elixir,#You#mix
    • From&Ruby?&mix&~=&gem&+&
    bundle&+&rake
    • Create,&compile,&run,&test&your&
    applica:on
    • Manage&dependencies
    • Generate&docs,&publish&both&
    app&and&docs
    • Credo,&Dialyzer,&etc..
    [email protected]$/$Ela$Workshop

    View Slide

  10. mix new
    • Provides*sane*defaults*(project*
    structure)
    • Encourages*"best*prac:ces"
    • Umbrella*project
    [email protected]$/$Ela$Workshop

    View Slide

  11. Documenta*on+and+
    Typespec
    • @moduledoc (false)
    • @doc
    • Use%Markdown
    • Include%some%examples%and%
    get%them%tested%as%well!
    • mix docs
    • @typedoc,%@type,%@typep
    • mix dialyzer
    [email protected]$/$Ela$Workshop

    View Slide

  12. [email protected]$/$Ela$Workshop

    View Slide

  13. Tes$ng
    • ExUnit.Case,#async
    • Filter#tests#based#on#tags
    • Seed#random#numbers
    [email protected]$/$Ela$Workshop

    View Slide

  14. Ge#ng&Help
    [email protected]$/$Ela$Workshop

    View Slide

  15. Finding&Libraries
    From:
    • awesome(elixir
    • hex.pm,1mix hex.search
    • git,1or1GitHub
    • rebar?
    • Erlang1libs
    To:
    • :only
    • :optional
    [email protected]$/$Ela$Workshop

    View Slide

  16. Documenta*on
    • Elixir,(EEx,(IEx,(Mix,(ExUnit,(
    Logger
    • Plug,(Ecto,(ExDoc...(and(
    Phoenix
    • devdocs.io
    • hexdocs.pm
    • h()
    [email protected]$/$Ela$Workshop

    View Slide

  17. h()
    [email protected]$/$Ela$Workshop

    View Slide

  18. General'Help
    • Style'Guide:'niftyn8/elixir_style_guide
    • Stack'Overflow...
    • IRC,'Slack'(#china),'mailing'lists
    • Meetups
    • Elixir'Radar'(weekly'newsleGer)
    [email protected]$/$Ela$Workshop

    View Slide

  19. Contribute
    [email protected]$/$Ela$Workshop

    View Slide

  20. Publish(your(Library
    • hex.pm/docs/publish
    • Register5with5mix hex.user register
    • Add5package5metadata5in5mix.exs
    • mix hex.publish
    • mix hex.docs
    [email protected]$/$Ela$Workshop

    View Slide

  21. Contribute*by*Coding
    • github.com/elixir1lang
    • Other5libs
    • Other5tools:5devdocs.io,5kiex,5Dockerfile...
    [email protected]$/$Ela$Workshop

    View Slide

  22. Contribute*by*Wri-ng
    • Elixir'School
    • Fix/Improve'documenta8ons
    • Answer'ques8ons'on'Stack'Overflow,'etc..
    • Your'own'blogs,'etc..
    [email protected]$/$Ela$Workshop

    View Slide

  23. Contribute*by*Talking
    • Join&Slack,&IRC,&mailing2list...
    • Ask&&&answer
    • Summarize&good&ones&into&gist,&blog&post..
    • Give&talks&at&Meetups!
    [email protected]$/$Ela$Workshop

    View Slide

  24. Thanks
    [email protected]$/$Ela$Workshop

    View Slide