Back to News
Advertisement

Ask HN: Is AI code verification becoming your main bottleneck?

oochidaniel4 about 4 hours ago 2 comments
I am a beginner in programming and honestly I have been using AI to code a lot but I am scared to ship because of the countless stories of AI code silently breaking, AI code not being reliable long term and all that.Please share your stories with me how you handle AI code reliability and verification and what I can do to be more confident before I ship
Advertisement

⚡ Community Insights

Discussion Sentiment

75% Positive

Analyzed from 355 words in the discussion.

Trending Topics

#code#things#llm#help#cases#may#claims#writes#product#deploy

Discussion (2 Comments)Read Original on HackerNews

jmathaiabout 1 hour ago
This may not be a popular opinion but I’ll say it anyways. I’ve done a lot of this and am sharing anecdotal information.

The claims that AI writes inefficient code may often be right. If and when it’s an observed problem, you can use AI to improve performance.

The claim that AI writes insecure code is probably also correct. You’ll want better safeguards here based on your product. The infrastructure you choose to deploy on can help as well - the LLM can help you design for this.

The claims that AI will delete your database are unlikely and an indication that permissions were too loose. You can also sandbox the code which runs. Again, AI can help you design this.

This is not an endorsement to blindly deploy code you haven’t verified.

My feedback is to be as optimistic as possible. Learn where the edges are. Find ways to patch them systematically. And let your confidence grow or shrink from your own experience.

jpcomabout 3 hours ago
Congrats and welcome to the wonderful world of ports.

I would say yes, verifying that the code not only does what you expect but also doesn't do anything of the things you do not expect, is the main bottleneck.

That is: do-all-the-things, please, and don't-do-all-the-non-things, as well.

Ideally, one can reason through their application at a high-level and have a "spec" or specification that the LLM can build from and check against.

You can also have the LLM go back through and tell you about any vulnerabilities you need to address before shipping.

I don't know exactly what you are shipping, but in general: never give the LLM root access or command-line access in a deployed app. Give it the minimal permissions necessary to accomplish its work/role. Pin versions [if you're working with version 5, explicitly say that, rather than just using the "latest" one since that's a moving target].

Some things are not obvious until deployed to a live environment, so do thorough testing. You can have an LLM generate test cases and run a "test suite" to check your code does all-the-things and none-of-the-non-things [undesirable outcomes] this way.

But again, when you have many moving gears finally coming together in a product, in a real, online environment, your best bet is doing lots of testing first to give yourself confidence you've caught most of the edge-cases, and that there are no "catastrophic" edge-cases lurking, unaccounted for.

If you still have any specific questions or want to zoom in on any aspect of software creation, please ask us