DEV Community

Arthur Kh
Arthur Kh

Posted on • Updated on

Challenging Bugs and Solutions of the Week: Share Your Stories! 🐞

Hello Dev.to Community! It's Friday, 08.09.2023, and it's a good time to share what bugs you have faced during the week.

We all know that development is far from a smooth journey; it's rife with obstacles and challenges that test our problem-solving skills. One of the best ways to grow as a developer is to learn from these challenges β€” both ours and others. So let's share some of our battles with bugs this week!

Guidelines:

  1. Be Specific: Mention the tech stack, context, and what led you to encounter the bug.
  2. Describe the Problem: Share the specific behavior or performance issues caused by the bug.
  3. Share the Solution: Briefly describe how you resolved it. Did you find an elegant fix or a temporary workaround?
  4. Key Takeaways: Are there any lessons learned or insights that others could benefit from?
  5. Code Snippets: If applicable, feel free to share code snippets but make sure to redact sensitive information.
  6. Be Respectful: Different skill levels are at play, so let’s be constructive and respectful with our comments and responses.

Happy debugging! πŸ› 

Top comments (5)

Collapse
 
shawn2208 profile image
Shawn2208

Where do I start πŸ˜‚

Collapse
 
mainarthur profile image
Arthur Kh

You can just made a list :D

Collapse
 
shawn2208 profile image
Shawn2208

Okay you asked for it haha,
Throughout the development of my pseudo-code to JavaScript interpreter, I've
encountered several issues (bugs) and found solutions to them.

Parsing Errors:

Issue: Parsing errors occur when the code doesn't conform to the expected grammar rules.

Solution: Handled parsing errors by throwing exceptions with descriptive error messages. Provided clear feedback on what went wrong in the code.

Tokenization Issues:

Issue: Tokenization errors occur when the tokenizer doesn't correctly identify or extract tokens from the input code.

Solution: Carefully define and test regular expressions for each token type. Ensured that tokens are correctly identified and extracted from the input.

Operator Precedence:

Issue: Handling operator precedence correctly can be challenging when parsing expressions.

Solution: Implemented a parsing strategy that respects operator precedence and associativity. You might use techniques like recursive descent parsing or precedence climbing to achieve this.

AST Node Structure:

Issue: The structure of AST nodes may not correctly represent the semantics of the code.

Solution: Reviewed and adjusted the structure of AST nodes to accurately represent the language's semantics. Added new AST node classes as needed.

Testing and Coverage:

Issue: Insufficient test coverage resulted in undetected bugs or regressions.

Solution: Wrote comprehensive test cases to cover different language features and edge cases. Regularly run tests to ensure that new changes do not break existing functionality.

Code Generator Issues:

Issue: Generating incorrect JavaScript code from the AST.
Solution: Review and debug the code generation logic. Ensured that the generateJS function correctly handles each AST node type and produces valid JavaScript code.

That is just that project, I've also recently finished my chatapp that basically realtime stackoverflow-like and i had so many issues with that too especially with CORS, session management, user authentication, showing stored messages from the database, showing messages immediately when sent. and the solutions to most of that was cause the project was the biggest ive done i kinda lost my self in the folder and files i had a good file structure going but i duplicated code a little bit and it caused unusual behavior, it was very frustrating. then i had an issue with when every user registers and goes into a room i wanted each user to have a username that starts with dev and a random number but instead for simplicity when a user joins a room they will be given a user called dev123 and random number but if they leave and join again user would be different to there last one. thats been my adventure for the past 3 weeks :)

Collapse
 
mainarthur profile image
Arthur Kh

From your story, I can definitely say that you had a great 3 weeks! :)
The last time I played with AST, I was trying to create my own math expression calculator. It ended up being my mini Wolfram Alpha, which also calculates a lot of statistics and other stuff. :D

Collapse
 
shawn2208 profile image
Shawn2208

wow that sounds more complicated lol i suck when it comes to math stuff but i realised been studying for like 6 months now and i come across maths quite alot but i just use a calulator haha. with my interpreter im trying to make it easier for learners to go from my own pseudo code language to javascript and have alot similarities.