Do you keep them in your IDE, or elsewhere? Do you have an app for that? Are they easily shared?

I realized I have no system at all but could use one to make it easier to find code I’ve written and might need again some day.

By snippets, I am referring to any chunk of code / text in any format or language, of any length.

Thanks!

EDIT A DAY LATER: Thanks you all! Reading all these ideas, I got inspired to create my own little web app. Wish me luck… :)

  • Lysergid@lemmy.ml
    link
    fedilink
    arrow-up
    26
    ·
    1 year ago

    Please, can you give an example of such code snippets? I’m wondering what people consider reusable in different projects.

      • xmunk@sh.itjust.works
        link
        fedilink
        arrow-up
        1
        arrow-down
        9
        ·
        1 year ago

        If a library or framework requires boilerplate code it’s a bad library or a bad framework.

        • lysdexic
          link
          fedilink
          English
          arrow-up
          7
          arrow-down
          1
          ·
          1 year ago

          If a library or framework requires boilerplate code it’s a bad library or a bad framework.

          I think this take is uneducated and can only come from a place of inexperience. There’s plenty of usecases that naturally lead to boilerplate code, such as initialization/termination, setting up/tearing down, configuration, etc. This is not a code smell, it’s just the natural reflection of having to integrate third-party code into your projects.

          • shnizmuffin@lemmy.inbutts.lol
            link
            fedilink
            English
            arrow-up
            2
            arrow-down
            1
            ·
            1 year ago

            Yes, in my experience, boilerplate typically comes into play when you’re using two libraries that don’t know about one another, or have no business touching each other’s concerns. (Using Alpine’s x-cloak with Tailwind comes to mind.)

            That and every single *-pipelines.yaml CI/CD config I’ve ever written.

          • xmunk@sh.itjust.works
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            It depends how much boilerplate you need - there’s obviously some stuff that needs to be the same all over but if there’s significant amounts of code you constantly need to replicate that’s when it’s a code smell for me. I probably could’ve been more precise in my initial statement.

    • derpgon
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      In PHP, a lot. Unit test are boilerplate 90% of the time, getters and setters (although they can be done via Generate), ORM classes with your default shebang (autoincrement ID), and I could go on and on.

      I dislike snippets for code like “key this array by some logic” - this should be reusable via a dedicated helper or service.

      • xmunk@sh.itjust.works
        link
        fedilink
        arrow-up
        2
        arrow-down
        2
        ·
        edit-2
        1 year ago

        Getters/setters can also be done automatically by __get, __set or __call it’s even possible to write a base class or trait that does this automatically.

        I am a PHP guru, if you’ve ever got questions I’m happy to help.

        • derpgon
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          Sadly that’s against best practices, it does not work with IDE autocomplete, and neither with PHPStan / PHPCS. You also don’t get coverage from PHPUnit. And renaming a property does not rename the usage across the whole project. __get and __set should not be heavily used, and the project shouldn’t be based on them.

          Some libraries, like Eloquent, uses them well, but you still need to annotate your class with @property if you want to stay sane.

    • otl@lemmy.srcbeat.com
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      3
      ·
      1 year ago

      Let’s say a function, about 20 lines. Something too small to warrant an external dependency but tricky enough that you don’t want to keep rewriting it.

      I have things like a function to read through a file of newline delimited text of key-value pairs separated by whitespace. It skips comments (lines beginning with “#”), and returns the pairs. I’m happy to do a little copying instead of having a little dependency.