• 6 Posts
  • 156 Comments
Joined 1 year ago
cake
Cake day: June 23rd, 2023

help-circle

  • Having to pass in null values seems a bit weird. You can define functions and optional parameters like this:

    function myFunction(a = 1, b = 1, c = null, d = null, e = true) {
      return a * b;
    }
    

    Then people don’t have to call your function with

    myLibrary.myFunction(1, 7, null, null, true);
    

    they just call your library with

    myLibrary.myFunction(1, 7);
    

    You could add a default inside the method signature, like:

    function myFunction(a = 1, b = 1, c = null, d = null, e = true) {
      if (c === null) {
        c = 5;
      }
      return a * b * c;
    }
    

    because if you define it in the method:

    function myFunction(a = 1, b = 1, c = 5, d = null, e = true) {
      return a * b * c;
    }
    

    then if people still call it with

    console.log(myFunction(5, 2, null));
    

    Then the default c = 5 is overwritten by null, and results in 0.

    I don’t know if you really need to handle all that though, instead of just doing c = 5 - if people intentionally call your library with null, and things go wrong…? well yea ok, don’t do that then.

    But it depends on the use-case. If this is some method deep within a library, and some other calling method might be unintentionally dumping null into it, you could default it inside the method, and handle it



  • Since others already suggested mostly on-topic suggests, here’s an alternative suggestion:

    Instead of looking specifically for a mentor - look for an open source project that you can help with. Ideally one with a discord or something to it’s easy to be in contact the the lead dev. A lot people don’t mind mentoring juniors, but in my experience it doesn’t happens that explicitly - “be my mentor” - and it might sound like you’re asking them a lot.

    If you invert it into “Hey I wanna help you with your open-source project, but I don’t really know what to do, what your expectations are, how to implement a specific feature” - then you’re offering to do work them, instead of asking for something. And implicitly you’ll get mentorship in return.

    And “real” projects probably also look better on your github / portfolio than only some dummy projects for learning purposes










  • Omg it’s sooo daammmn slooow it takes around 30 seconds to bulk - insert 15000 rows

    Do you have any measurements on how long it takes when you just ‘do it raw’? Like trying to do the same insert though SQL Server Management Studio or something?

    Because to me it’s not really clear what’s slow. Like you’re complaining specifically about the Microsoft ODBC driver - but do you base that on anything? Can you insert faster from Linux or through other means?

    Like if it’s just ‘always slow’ it might just be the SQL Server. If you can better pinpoint when it’s slow, and when it’s fast(er) that probably helps to tell how to speed it up


  • When I stopped, subversion was what we used. I’m trying to understand Git, but it’s a giant conceptual leap.

    It’s probably not ‘that much of a leap’ as you imagine. If you’re looking at Git tutorials, they’re usually covering all kinda complex scenarios of how to ‘properly use Git’. But a lot of people barely care about ‘properly using Git’ and they just kinda use it as a substitute for SVN… You create branches, you merge them back and forth, and that’s about it.

    Like if you want to contribute to an open source project, all you have to do is create a fork (your own branch in SVN terms) - commit some stuff to it, and create a pull request (request to have your changes merged) back to the original branch. git pull is just svn update - getting someone elses commits

    Not saying there aren’t more complex features in git, or that learning git properly isn’t worth it, just saying, I don’t think you have to see it as a ‘giant conceptual leap’ that’s preventing you from jumping back into programming. Easiest approach just to get started would be probably to just download a GUI like Sourcetree or Fork, and you just kinda pretend you’re still using SVN - approach wise