Slide 1

Slide 1 text

Over-Dependent with External Libraries or Packages: Why You Shouldn't Do That Monthly Meetup March 2024

Slide 2

Slide 2 text

Hello, i’m Wahyu! ● Udayana University : Information Technology (2018-2022) Education Work Experiences ● 2020 - Present: Freelance SE ● 2022 - 2023: QA Engineer (Djoin) ● 2023 - Present: SE (Taksu Tech)

Slide 3

Slide 3 text

Today’s Discussion ● The inspiration of this topic ● What is external packages/library ● What could go wrong with “just import it”? ● Why is this “culture” become concerning? ● When is the right time to use one and how to choose the right packages/libraries? ● Conclusion

Slide 4

Slide 4 text

The inspiration of this topic

Slide 5

Slide 5 text

Tech bros debate on Twitter 😂

Slide 6

Slide 6 text

What is external packages/library

Slide 7

Slide 7 text

Simple explanation (thanks ChatGPT) Third-party code to extend functionality; not part of core software (but sometimes it does lol).

Slide 8

Slide 8 text

What could go wrong with “just import it”?

Slide 9

Slide 9 text

Nah, nothing could go wrong, until i add that last 20+ “very-important-and-a -must-have” packages

Slide 10

Slide 10 text

Quick Quiz

Slide 11

Slide 11 text

Answer Honestly Imagine yourself being a front-end engineer that given a mission to make this feature possible: Which option suits you the most? a. Discuss with team, estimate the time, make the task card, then code it. b. Discuss with team, estimate the time, make the task card, then npm install react-data-grid

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Why is this “culture” become concerning?

Slide 14

Slide 14 text

We become overly dependent on someone else's code (and lazy too).

Slide 15

Slide 15 text

Hiding behind “Don’t reinvent the wheels” statement This is the common strategy that they use to justify their decision for importing packages/libraries *lazy and lame moves tbh

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Bloated project size

Slide 18

Slide 18 text

Not giving a damn about the maintainability and security when using external packages/libraries.

Slide 19

Slide 19 text

When is the right time to use one and how to choose the right packages/libraries?

Slide 20

Slide 20 text

The right time to use external package/library? Before you use one, ask yourself and the team this question: 1. Is this problem too big or too complex for the internal packages or libraries to handle ? 2. Did I word my query correctly when searching on Google to express what I am really looking for? 3. What actions haven't I tried before using an external packages/libraries? Special case: Some services require you to installing external dependencies (example: Inspector)

Slide 21

Slide 21 text

How to choose the right external packages/libraries Some of many things you need to consider before installing packages/libraries: 1. Package/library published & last updated date 2. Number of open issues 3. The version that's supported with your code 4. Features offered and extra features you might need in the near future 5. Is there any compatibility issues with other libraries you are currently using 6. How much content is readily available (Docs, Stackoverflow, Articles) 7. Who are the people behind the package/library 8. Projected future improvements to the package/library 9. Community support 10. Licensing status

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

Conclusion

Slide 24

Slide 24 text

1. Tech bros debate on Twitter inspire me to make this talk 2. An external package/library is someone else’s code distributed to many people, intended to help solve repetitive problems, not to become an excuse for avoiding writing code. 3. PLEASE avoid relying too heavily on someone else’s code. This will make you lazy and start blabbering some bullsh*t to justify your laziness. 4. Arrange some discussion, question some things, and do research with team before deciding to use external packages/libraries. 5. Meme

Slide 25

Slide 25 text

“Using external packages/libraries is okay; just don’t overuse them to the point where 90%~ of your project consists of someone else’s code.” - Wahyu

Slide 26

Slide 26 text

Article Version: Scheduled to be released on 1 April 2024 https://medium.com/@wahyuivan plz follow hehe 🗣🤓

Slide 27

Slide 27 text

Thank you! Terima kasih! why.u9 @wahyuivan @ivanwahyu195