back to indexMove Fast Break Nothing: Dedy Kredo

00:00:21.160 |
Remember GANs, Generative Adversarial Networks. 00:00:27.000 |
They represented a very compelling architecture, in my opinion. 00:00:39.080 |
Then came Transformers, that changed everything. 00:00:46.840 |
and the focus became solely on the generative. 00:00:50.120 |
And they became the state-of-the-art for a variety of use cases. 00:00:59.520 |
We believe that in order to generate code that actually works as intended, 00:01:05.520 |
the right architecture is actually GAN-like architecture. 00:01:10.480 |
And what I mean by that is not the actual neural network. 00:01:16.400 |
It's the concept of having two different components. 00:01:29.040 |
It actually analyzes the outcomes, the generation of the code gen component, 00:01:38.160 |
It tries to figure out all the different edge cases, 00:01:41.280 |
in order to generate high-quality code that works as intended, 00:01:49.600 |
This is our focus at Codium AI, on the critic piece. 00:01:54.160 |
We help developers understand the behaviors of their code. 00:02:02.640 |
is a more useful metric than actual code coverage. 00:02:06.400 |
We help them generate tests for these behaviors, 00:02:12.160 |
And we do that throughout the developer lifecycle, 00:02:15.840 |
leveraging our IDE extensions for both JetBrains and VS Code, 00:02:22.960 |
And then soon in the future, in the near future, 00:02:33.040 |
So, we're going to focus the majority of the time in a live demo, 00:02:40.960 |
which is a risky thing to do in this situation here. 00:03:03.600 |
We now have around 200,000 installs across both JetBrains and VS Code. 00:03:10.480 |
I have here an open source project that's called AutoScraper. 00:03:13.840 |
It's basically a scraping class that automates the process of 00:03:18.720 |
generating the rules for scraping information from websites. 00:03:28.320 |
But the problem is that it doesn't have any tests. 00:03:31.920 |
So, it's very hard to make changes to a project 00:03:35.920 |
where it doesn't have any tests because there's nothing that protects you from making changes. 00:03:40.560 |
So, I'm going to go ahead here and trigger Codium AI on this class. 00:03:49.440 |
And you can see that I can trigger Codium AI either on the class level or at the method level. 00:03:55.760 |
So, I'm starting on the class. I'm actually going to re-trigger it. 00:03:58.480 |
The first thing that happens is that Codium analyzes the class. 00:04:18.560 |
It also generates a code explanation, detailed code explanation, 00:04:25.280 |
The example usage, the different components, the methods, very detailed. 00:04:40.000 |
As you can see, we look at different examples, both happy path, edge cases, variety of cases. 00:04:46.400 |
Okay, so here I have the different behaviors that were generated. 00:05:01.440 |
We're basically mapping the different behaviors of this class, 00:05:07.040 |
And for each one of them, we can drill deeper down and see the sub behaviors below them. 00:05:12.000 |
And we can generate tests for anyone that is important for us. 00:05:15.920 |
So, let's pick a few and add additional tests. 00:05:24.480 |
Maybe here we'll generate another one for an edge case. 00:05:32.000 |
A few clicks, and I have a test suite that is built out. 00:05:49.200 |
You can see some of these very complex tests are actually passing. 00:05:55.920 |
What happens in a failure is that the model actually analyzes, reflects on the failure, 00:06:02.160 |
and then it tries to generate a fix in an automated manner. 00:06:19.840 |
This reflection process in order to get to a high-quality test suite. 00:06:26.320 |
So, I'm going to start with these eight tests. 00:06:52.560 |
So, now I'm going to go ahead and take the next step. 00:06:58.240 |
Let's use Codium AI to actually enhance this code. 00:07:00.720 |
Now that I have a test suite that protects me. 00:07:07.200 |
The build method that has a lot of the main functionality of the class. 00:07:14.800 |
And now let's focus on the code suggestions component of Codium AI. 00:07:26.960 |
And it basically recommends different improvements, enhancements. 00:07:33.200 |
We're not talking about linting or things like that. 00:07:37.680 |
We're talking about things related to performance, security, best practices, readability. 00:07:50.240 |
Maybe the first one that looks quite important for performance. 00:07:54.800 |
Basically, it recommends to replace the hash leave with Blake 3. 00:09:00.160 |
So, I'm going to go ahead here and commit these changes. 00:09:08.960 |
And I'm going to go to the code you may I PR assistant. 00:09:11.600 |
And I'm going to do a slash commit to get a commit message. 00:09:27.200 |
And now that I committed my changes, I can then go ahead to the last step and prepare for the PR. 00:09:34.880 |
And that's basically a review process that code you may I would do. 00:09:41.520 |
And it will try to see if there is any issues, anything I may have missed. 00:09:48.720 |
And then we can see if there is anything that maybe I have missed here. 00:09:58.960 |
You can see that it's basically telling me that it's pretty well structured. 00:10:10.160 |
But it says that it does introduce a potential security vulnerability. 00:10:14.240 |
So, I'm going to do a slash improve to try to fix that. 00:10:18.320 |
And it looks like I forgot an API key in my code. 00:10:23.040 |
So, CodeMai will then suggest a fix for this. 00:10:46.320 |
And this is where I actually have the API in my code. 00:11:02.560 |
So, basically, it's saying here's the API key. 00:11:06.560 |
I'm going to click on this and it will launch me to where I actually forgot 00:11:14.960 |
So, with that, I'm going to conclude the demo so we can go back to the slides. 00:11:20.960 |
So, we were able to see how we were able to use CodeMai to map our behaviors, to generate tests, 00:11:29.520 |
to review our code, and to do it throughout the entire life cycle. 00:11:32.320 |
We also have, as I mentioned, a Git plugin that enables us to do that inside of GitHub as well. 00:11:47.840 |
While we were on the plane on the way here, the Hamas terrorist organization launched a vicious attack on Israel. 00:12:07.920 |
They entered into towns, they slaughtered men, women, and children, innocent people in their home, and abducted many. 00:12:21.280 |
This is the picture that my co-founder and CEO, Itamao, sent me. 00:12:27.520 |
He left his eight months pregnant wife at home, and is now in military reserve duty. 00:12:34.400 |
In the screen, you can see a chart that shows the CodeMai usage constantly increasing.