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

Gitmoji, a journey to commit like a hipster

Gitmoji, a journey to commit like a hipster

"TMP"
"Fix some bugs" "
I changed that shit"

This may bring back bad memories and that's why commit message conventions are important. As a developer you probably already applied them, but have you tried Emojis?

They are by nature expressive, very readable. I'll show you why there are useful and how to use them in your developer life to commit like a hipster 😎 !

[email protected]

November 03, 2020
Tweet

Other Decks in Programming

Transcript

  1. 😎
    A journey to commit like a hipster

    View full-size slide

  2. 🖖 Hello!
    @spontoreau
    Sylvain Pontoreau
    How it’s going
    🌹

    😐
    How it started
    -<@
    O=|====>
    o_o
    Emo(ticons/jis), I’m in that business since 1998 ©
    And I like to do funny things with them 😬
    🎪 Co-organizer
    📕 Book writer
    Microsoft
    󰳕 Work with

    View full-size slide

  3. 🤔 what is the problem?

    View full-size slide

  4. 💬 Commit messages…
    (The guy who left the company)
    Friday afternoon:
    (You, trying to understand what is going on…)
    Monday morning, outage on prod:

    View full-size slide

  5. 😞 But it’s not that easy!
    (Maybe you everyday) (The guy who’s joining your team)

    View full-size slide

  6. 📘 Convention to the rescue
    The conventional commits specification

    View full-size slide

  7. 📚 Conventional Commits
    A set of rules for creating explicit commit history
    • How it works:
    Format
    types(context): message
    Breaking changes
    !
    • Types can be extended easily (impr, chore, refactor, perf, docs, …)
    • Automation made simple (changelog, semantic versioning, …)
    Types
    fix / feat

    View full-size slide

  8. 💩 Is Conventional Commits bad?

    View full-size slide

  9. 👀 Predictability of the human eye
    Do you know F-Pattern?
    • In text-heavy content, most humans scan information by making an “F”
    • F-Pattern is bad for user
    • Optimize horizontal movement of the eye is a key point
    • This is why Conventional Commits specification is not that great

    View full-size slide

  10. ❓ Why consider emojis instead?
    (No need to explain what it stands for)
    First, the are super expressive!
    🎉 ✅ 📱 🚧 💩 🐛 🗑

    View full-size slide

  11. 🎉 Tada!
    ✅ Test are ok!
    🚧 We are working on it!
    🗑 Let’s drop that!
    🐛 It’s not working
    👁 Why consider emojis instead?
    Where is the bug?
    👀 Your eyes directly look here
    Secondly, they optimize reading!
    😉 Optimized scan

    View full-size slide

  12. A convention based on emojis!
    📒Gitmoji
    https://gitmoji.carloscuesta.me/

    View full-size slide

  13. 😜 Gitmoji
    The basic ones!
    🐛
    :bug:
    Fix a bug.

    :sparkles:
    Introduce new feature.

    View full-size slide

  14. 😍Gitmoji
    Refacto / Improvement

    :recycle:
    Refactor code.

    :zap:
    Improve preformance.
    🚚
    :truck:
    Move or rename
    resources
    🏗
    :building_construct
    ion:
    Make architectural
    changes.
    🎨
    :art:
    Improve structure /
    format of the code.

    View full-size slide

  15. 😆 Gitmoji
    Package management

    :heavy_minus_sign:
    Remove a dependency.

    :heavy_plus_sign:
    Add a dependency.

    :arrow_up:
    Upgrade dependencies

    :arror_down:
    Downgrade
    dependencies.
    📌
    :pushpin:
    Pin dependencies to
    specific versions.

    View full-size slide

  16. 🤡
    :clown_face:
    Mock things.
    🧪
    :test_tube:
    Add a failing test.
    😳 Gitmoji
    Testing

    :white_check_mark:
    Add, update, or pass
    tests.

    View full-size slide

  17. 😂 Gitmoji
    Other useful emojis
    🚨
    :rotating_light:
    FIx compiler / linter
    warnings.
    👷
    :construction_work
    er:
    Add or update CI build
    system.
    🙈
    :see_no_evil:
    Add or update a
    .gitignore file.
    💥
    :boom:
    Introduce breaking
    changes.
    🔧
    :wrench:
    Add or update
    configuration files.

    View full-size slide

  18. 󰠁 for developers 󰞵

    View full-size slide

  19. 💻 Gitmoji CLI
    There is a CLI for that 🤩
    https://github.com/carloscuesta/gitmoji-cli

    View full-size slide

  20. 🖥 Gitmoji plugins/extensions
    For people who don’t like terminals 😅
    https://gitmoji.dev/related-tools
    And more:
    - atom
    - sublim
    - macOS app
    - …
    Browser extensions IntelliJ VS Code

    View full-size slide

  21. 📝 Changelog
    No more excuses 😊
    https://github.com/frinyvonnick/gitmoji-changelog

    View full-size slide

  22. 🔖Semantic versioning
    Major
    messages.contains(💥)
    Minor
    !messages.contains(💥)
    &&
    messages.contains(✨)
    Not a big deal 🦸
    Patch
    !messages.contains(💥)
    &&
    !messages.contains(✨)

    View full-size slide

  23. 🥳 conclusion

    View full-size slide

  24. 💪 Conclusion
    🐛FIX EMAIL VALIDATION
    FIX EMAIL VALIDATION
    FIX
    SHOW ME THE
    REAL COMMIT MESSAGE
    I SAID THE
    REAL COMMIT MESSAGE
    PERFECTION

    View full-size slide

  25. Questions❓
    Feel free to ask! 󰢨󰢧

    View full-size slide

  26. 🙏 Thanks! 󰢛
    https://speakerdeck.com/spontoreau

    View full-size slide