• 0 Posts
  • 39 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle












  • The main problem with JavaScript and TypeScript is that there is such a little entrybarrier to it, that way too many people use it without understanding it. The amount of times that we had major issues in production because someone doesn’t understand TypeScript is not countable anymore and our project went live only 4 months ago.

    For example, when you use nest.js and want to use a boolean value as a query parameter.

    As an example:

    @Get('valueOfMyBoolean')
    @ApiQuery(
      {
        name: 'myBoolean',
        type: boolean,
      }
    )
    myBooleanFunction(
      @Query('myBoolean') myBoolean: boolean
    ){
      if(myBoolean){
        return 'myBoolean is true';
      }
      return 'myBoolean is false';
    }
    

    You see this code. You don’t see anything wrong with it. The architect looks at it in code review and doesn’t see anything wrong with it. But then you do a GET https://something.com/valueOfMyBoolean?myBoolean=false and you get “myBoolean is true” and if you do typeOf(myBoolean) you will see that, despite you declaring it twice, myBoolean is not a boolean but a string. But when running the unit-tests, myBoolean is a boolean.





  • JSON would be perfect if it allowed for comments. But it doesn’t and that alone is enough for me to prefer YAML over JSON. Yes, JSON is understandable without any learning curve, but having a learning curve is not always bad. YAML provides a major benefit that is worth the learning curve and doesn’t have the issues that XML has (which is that there is no way to understand an XML without also having the XSD for it)




  • DrM@feddit.detoProgrammer Humor@lemmy.mlNo rest for the virtuous
    link
    fedilink
    arrow-up
    20
    arrow-down
    1
    ·
    edit-2
    1 year ago

    I don’t really code in my free time, every merge request for a FOSS project I wanted to do so far was for company projects where a feature was missing or buggy. My GitHub and Gitlab accounts are full of outdated forks we needed for a minor change in the FOSS project which I was not allowed to merge upstream