<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      對比測評:為什么AI編程工具需要 Rules 能力?

      通義靈碼 Project Rules

      在開始體驗通義靈碼 Project Rules 之前,我們先來簡單了解一下什么是通義靈碼 Project Rules?
      大家都知道,在使用 AI 代碼助手的時候,有時候生成的代碼不是自己想要的,或者說生成的代碼采納后還需要人工修改一部分。這其實就是當(dāng)模型對于你的描述不能正確理解,或者說理解了你的描述,但是沒有適當(dāng)?shù)姆桨笗r,大模型會根據(jù)自己的規(guī)則來生成相似的自己認(rèn)為對的代碼,這就是我們常說的模型幻覺。
      那么當(dāng)模型生成代碼不精準(zhǔn)的時候,是否有什么手段可以硬控 AI ,根據(jù)你的代碼風(fēng)格和偏好生成代碼和回復(fù)?現(xiàn)在有了,你可以感受一下通義靈碼 Project Rules 的效果。

      舉個例子

      這里我們來舉個小例子。比如我想要使用阿里云百煉服務(wù)平臺的模型在自己的項目中引入一個 DeepSeek 調(diào)用,那么我就可以拿到阿里云百煉服務(wù)平臺的 curl 的調(diào)用方法

      復(fù)制 curl 的調(diào)用內(nèi)容放在通義靈碼的對話框中,輸入我想要的內(nèi)容

      curl -X POST "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
      -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
          "model": "deepseek-r1",
          "input":{
              "messages":[      
                  {
                      "role": "user",
                      "content": "你是誰?"
                  }
              ]
          },
          "parameters": {
              "result_format": "message"
          }
      }' 生成java代碼
      

      以下是通義靈碼為我們生成的使用 Java 調(diào)用 DeepSeek 的 API 接口的調(diào)用工具類:

      這里通過截圖我們可以看到,生成的代碼基本上沒有注釋,生成的效果功能上稍作改動就可以用,采納率 95% 以上。

      下面我們再來為通義靈碼定義 AI 編碼規(guī)則,定義完 AI 編碼規(guī)則之后再來看一下基于上面的 curl 調(diào)用方法生成的 Java 代碼的效果。

      環(huán)境準(zhǔn)備

      在配置通義靈碼 Project Rules AI 編碼規(guī)則之前,首先需要我們確認(rèn)一下我們的通義靈碼插件版本要在 v2.1.5 及以上。

      規(guī)則配置

      這里我們在 IDEA 開發(fā)工具的 setting 彈框中找到【Lingma】,勾選啟用并點擊【編輯】。

      在編輯頁面輸入具體的編碼規(guī)則 Project Rules ,這里的規(guī)則我們直接使用官方提供的 Java 編碼規(guī)則,具體規(guī)則內(nèi)容的 markdown 語法格式如下:

      你是一個資深的 java 專家,請在開發(fā)中遵循如下規(guī)則:

      • 嚴(yán)格遵循 SOLID、DRY、KISS、YAGNI 原則
      • 遵循 OWASP 安全最佳實踐(如輸入驗證、SQL 注入防護(hù))
      • 采用 分層架構(gòu)設(shè)計,確保職責(zé)分離
      • 代碼變更需通過 單元測試覆蓋(測試覆蓋率 ≥ 80%)

      技術(shù)棧規(guī)范

      技術(shù)棧要求:

      1)框架:Spring Boot 3.x + Java 17

      2)依賴:

      • 核心:Spring Web, Spring Data JPA, Lombok

      • 數(shù)據(jù)庫:PostgreSQL Driver 或其他關(guān)系型數(shù)據(jù)庫驅(qū)動

      • 其他:Swagger (SpringDoc), Spring Security (如需權(quán)限控制)

      應(yīng)用邏輯設(shè)計規(guī)范

      分層架構(gòu)原則

      核心代碼規(guī)范

      1. 實體類(Entity)規(guī)范

      @Entity
      @Data // Lombok 注解
      public class User {
          @Id
          @GeneratedValue(strategy = GenerationType.IDENTITY)
          private Long id;
          @NotBlank(message = "用戶名不能為空")
          @Size(min = 3, max = 50)
          private String username;
          @Email
          private String email;
          // 關(guān)聯(lián)關(guān)系使用懶加載
          @ManyToOne(fetch = FetchType.LAZY)
          private Department department;
      }
      

      2. 數(shù)據(jù)訪問層(Repository)規(guī)范

      public interface UserRepository extends JpaRepository<User, Long> {
          // 命名查詢
          Optional<User> findByUsername(String username);
          // 自定義 JPQL 查詢
          @Query("SELECT u FROM User u JOIN FETCH u.department WHERE u.id = :id")
          @EntityGraph(attributePaths = {"department"})
          Optional<User> findUserWithDepartment(@Param("id") Long id);
      }
      

      3. 服務(wù)層(Service)規(guī)范

      @Service
      public class UserServiceImpl implements UserService {
          @Autowired
          private UserRepository userRepository;
          @Transactional
          public ApiResponse<UserDTO> createUser(UserDTO dto) {
              // 業(yè)務(wù)邏輯實現(xiàn)
              User user = User.builder().username(dto.getUsername()).build();
              User savedUser = userRepository.save(user);
              return ApiResponse.success(UserDTO.fromEntity(savedUser));
          }
      }
      

      4. 控制器(RestController)規(guī)范

      @RestController
      @RequestMapping("/api/users")
      public class UserController {
          @Autowired
          private UserService userService;
          @PostMapping
          public ResponseEntity<ApiResponse<UserDTO>> createUser(@RequestBody @Valid UserDTO dto) {
              try {
                  ApiResponse<UserDTO> response = userService.createUser(dto);
                  return ResponseEntity.ok(response);
              } catch (Exception e) {
                  return GlobalExceptionHandler.errorResponseEntity(e.getMessage(), HttpStatus.BAD_REQUEST);
              }
          }
      }
      

      數(shù)據(jù)傳輸對象(DTO)規(guī)范

      // 使用 record 或 @Data 注解
      public record UserDTO(
          @NotBlank String username,
          @Email String email
      ) {
          public static UserDTO fromEntity(User entity) {
              return new UserDTO(entity.getUsername(), entity.getEmail());
          }
      }
      

      全局異常處理規(guī)范

      1. 統(tǒng)一響應(yīng)類(ApiResponse)

      @Data
      @NoArgsConstructor
      @AllArgsConstructor
      public class ApiResponse<T> {
          private String result; // SUCCESS/ERROR
          private String message;
          private T data;
          // 工廠方法
          public static <T> ApiResponse<T> success(T data) {
              return new ApiResponse<>("SUCCESS", "操作成功", data);
          }
          public static <T> ApiResponse<T> error(String message) {
              return new ApiResponse<>("ERROR", message, null);
          }
      }
      

      2. 全局異常處理器(GlobalExceptionHandler)

      @RestControllerAdvice
      public class GlobalExceptionHandler {
          @ExceptionHandler(EntityNotFoundException.class)
          public ResponseEntity<ApiResponse<?>> handleEntityNotFound(EntityNotFoundException ex) {
              return ResponseEntity.status(HttpStatus.NOT_FOUND)
                  .body(ApiResponse.error(ex.getMessage()));
          }
          @ExceptionHandler(MethodArgumentNotValidException.class)
          public ResponseEntity<ApiResponse<?>> handleValidationErrors(MethodArgumentNotValidException ex) {
              String errorMessage = ex.getBindingResult()
                  .getFieldErrors()
                  .stream()
                  .map(error -> error.getField() + ": " + error.getDefaultMessage())
                  .collect(Collectors.joining(", "));
              return ResponseEntity.badRequest().body(ApiResponse.error(errorMessage));
          }
      }
      

      安全與性能規(guī)范

      1. 輸入校驗:

      • 使用 @Valid 注解 + JSR-303 校驗注解(如 @NotBlank@Size

      • 禁止直接拼接 SQL 防止注入攻擊

      2. 事務(wù)管理

      • @Transactional 注解僅標(biāo)注在 Service 方法上
      • 避免在循環(huán)中頻繁提交事務(wù)

      3. 性能優(yōu)化

      • 使用 @EntityGraph 預(yù)加載關(guān)聯(lián)關(guān)系
      • 避免在循環(huán)中執(zhí)行數(shù)據(jù)庫查詢(批量操作優(yōu)先)

      代碼風(fēng)格規(guī)范

      1. 命名規(guī)范:

      • 類名:UpperCamelCase(如 UserServiceImpl
      • 方法/變量名:lowerCamelCase(如 saveUser
      • 常量:UPPER_SNAKE_CASE(如 MAX_LOGIN_ATTEMPTS

      2. 注釋規(guī)范

      • 方法必須添加注釋且方法級注釋使用 Javadoc 格式
      • 計劃待完成的任務(wù)需要添加 // TODO 標(biāo)記
      • 存在潛在缺陷的邏輯需要添加 // FIXME 標(biāo)記

      3. 代碼格式化

      • 使用 IntelliJ IDEA 默認(rèn)的 Spring Boot 風(fēng)格
      • 禁止手動修改代碼縮進(jìn)(依賴 IDE 自動格式化)

      部署規(guī)范

      部署規(guī)范

      • 生產(chǎn)環(huán)境需禁用 @EnableAutoConfiguration 的默認(rèn)配置
      • 敏感信息通過 application.properties 外部化配置
      • 使用 Spring Profiles 管理環(huán)境差異(如 devprod

      擴(kuò)展性設(shè)計規(guī)范

      1. 接口優(yōu)先:

      服務(wù)層接口(UserService)與實現(xiàn)(UserServiceImpl)分離
      2. 擴(kuò)展點預(yù)留:

      關(guān)鍵業(yè)務(wù)邏輯需提供** Strategy 或 Template 模式支持?jǐn)U展

      3. 日志規(guī)范:

      使用 SLF4J 記錄日志(禁止直接使用 System.out.println)核心操作需記錄 INFO 級別日志,異常記錄 ERROR 級別

      在增加了 rules 規(guī)則之后,我們再來執(zhí)行一次上面基于 curl 請求生成 java 調(diào)用代碼的需求。執(zhí)行之后,我們可以看到對第一次生成的 DeepSeekClient.java 類進(jìn)行了按照 rules 規(guī)則的變更:

      可以看到已經(jīng)按照我們添加的異常處理規(guī)則以及編碼規(guī)范進(jìn)行了優(yōu)化。

      編輯后的靈碼規(guī)則文件的的位置在項目的具體目錄位置如圖,如果沒有看到的話刷新一下磁盤就看到了:

      總的來說,通義靈碼 IDE 插件提供 AI 規(guī)則的設(shè)置功能,開發(fā)者可以通過設(shè)定個性化規(guī)則提示詞,在智能問答和 AI 程序員中,引導(dǎo)模型生成更為精準(zhǔn)、符合個人偏好或項目風(fēng)格的代碼與回答。

      posted @ 2025-04-29 18:30  通義靈碼  閱讀(77)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 浪潮av色综合久久天堂| 九九热视频免费在线播放| 亚洲精品天天影视综合网| 晋宁县| 成人久久精品国产亚洲av| 久久夜色精品国产噜噜亚洲sv| 少妇真人直播免费视频| 偷拍专区一区二区三区| 伊人久久大香线蕉av五月天| 国产日韩精品秘 入口| 午夜成人性爽爽免费视频| 成人综合人人爽一区二区| 蜜芽久久人人超碰爱香蕉| 久九九精品免费视频| 国产蜜臀在线一区二区三区 | 免费观看全黄做爰大片| 综合亚洲网| 精品亚洲国产成人av| 国产a在视频线精品视频下载| 亚洲国产精品自产在线播放| 成人免费亚洲av在线| 国产亚洲精品成人aa片新蒲金| 国产综合色产在线精品| 午夜射精日本三级| 亚洲国产成人久久一区久久| 男人狂桶女人高潮嗷嗷| 夹江县| 欧美精品一区二区三区中文字幕| 日本熟妇XXXX潮喷视频| 扶绥县| 亚洲精品日韩在线观看| 丰满人妻AV无码一区二区三区| 午夜男女爽爽影院在线| 国产精品青草久久久久福利99| 成人无码精品免费视频在线观看| 日韩av片无码一区二区不卡| 国产在线国偷精品产拍| 久久国产精99精产国高潮| 国产综合久久99久久| 日韩av一区二区三区不卡| 亚洲AV无码国产永久播放蜜芽|