当前位置:   article > 正文

AI编程工具报告

AI编程工具报告

    AI工具是基于已有数据之上的数据分析结果,这些结果在大量的案例数据下能够快速的给出最接近案例的结果。这种工具意味着只能对有大量数据积累的场景做自动化或优化处理,对于意外情况或者风险,无能为力。一般情况AI工具在处理用户请求时,一般是接收用户请求、将用户请求解析并匹配模型、获得模型数据、根据模型生成请求对应的数据结果,返回处理结果。在整个过程中,如果用户请求匹配不到模型或者模型不准确,那么AI工具就是无效的,不需要再去管AI工具有多么先进。为了提高模型匹配度和准确度,现在的AI工具都是针对某些具体场景,同时这些场景积累了足够的数据,因此场景主要集中在具体工具的使用上,如使用画图工具、使用文字编辑工具、使用编程工具等。这些工具的使用一般是某些行业的专业岗位,AI工具主要冲击这些岗位。

   AI编程工具已经有很多,主要集成的编程工具有Idea、vscode、eclipse。从集成AI编程工具插件的数量上来讲,Idea和vscode是相差不多的,eclipse集成的AI插件数量比前面两个编程工具少多了。这从某一个方面上来讲,eclipse已经进入明显的衰退趋势。由于eclipse编写的项目仍然存在,等待这部分项目被淘汰时,eclipse也将落幕。vscode适合编写前端项目,Idea适合编写java项目。

   eclipse作为一款免费工具,可以支持大部分开发场景。idea社区版也是免费的,但是相对于eclipse来讲,有点弱,很多场景是支持度不够。vscode现在也是免费的,相对于eclipse来讲支持场景类似,属于轻量级的。idea旗舰版是付费的,工作效率提升,但是这种效率的最终受益者决定了这种工具的使用,决定权不在开发人员手中,特别是规模大的项目。

    

    以vscode为IDE,演示TONGYI Lingma的情况,该类为springboot应用中controller层的某个控制器类的下的生成情况:

    案例一:编写一个具体的函数方法,但是该方法在controller层中:

  1. //create a method for '/index' request , this request has one parameter named 'id'
  2. public String index(String id){
  3. return "index";
  4. }

    案例一中生成情况是仅能生成一部分,缺少了此函数上下文环境的信息,导致id应该是http请求带来的参数,同时方法上还缺少注解信息。

案例二:生成某个具体的服务函数,且该方法在controller层:

  1. //打印杨辉三角
  2. public void printYangHuiTriangle(int n){
  3. int[][] arr = new int[n][n];
  4. for(int i = 0; i < n; i++){
  5. for(int j = 0; j <= i; j++){
  6. if(j == 0 || j == i){
  7. arr[i][j] = 1;
  8. }else{
  9. arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
  10. }
  11. System.out.print(arr[i][j] + " ");
  12. System.out.println();
  13. }
  14. System.out.println();
  15. }
  16. }

    案例二的情况是生成了但是又好像缺点什么,距离到正式可用代码不远了

  案例三:生成观察者模式

  1. //生成观察者模式
  2. public void generateObserverPattern(int n){
  3. for(int i = 0; i < n; i++){
  4. for(int j = 0; j < n; j++){
  5. if(i == 0 || j == 0 || i == n-1 || j == n-1){
  6. System.out.print("*");
  7. }else{
  8. System.out.print(" ");
  9. }
  10. }
  11. System.out.println();
  12. }
  13. System.out.println();
  14. }

 案例三的情况说明我们的输入信息在模型匹配中是没有匹配到很准确的模型,虽然我就是想为难AI工具,想找点超纲的内容试试。

    综合以上三个案例,这款AI编程工具仅能提供函数级别且上下文环境无关的代码生成。上下文环境无关的代码基本上属于单元测试覆盖的代码,而且仅仅只是不调用其他函数的。这个工具它虽然有用,但是好像距离实用范围有点远。

    根据我的要求,AI编程工具如果不能解决上下文环境有关的生成编程,AI编程工具只能当娱乐工具。同样如果它只能根据我的要求生成代码也是不够的,因为我有很大可能会忽略掉一些生成要求,如果AI编程工具不能在生成时自动补充这部分信息,AI编程工具只能当娱乐工具。在代码层级的问题如果能够解决,那么多文件代码,依照设计模式进行生成是否也可以,目前算是超纲,仅从数据上生成是解决不了设计模式层级的生成的,这是经验层级的复用。

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号