Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions backend/app/service/clam.go
Original file line number Diff line number Diff line change
Expand Up @@ -249,15 +249,17 @@ func (c *ClamService) Update(req dto.ClamUpdate) error {
if err := clamRepo.Update(req.ID, upMap); err != nil {
return err
}
updateAlert := dto.CreateOrUpdateAlert{
AlertTitle: req.AlertTitle,
AlertType: "clams",
AlertCount: req.AlertCount,
EntryID: clam.ID,
}
err := xpack.UpdateAlert(updateAlert)
if err != nil {
return err
if req.AlertCount != 0 {
updateAlert := dto.CreateOrUpdateAlert{
AlertTitle: req.AlertTitle,
AlertType: "clams",
AlertCount: req.AlertCount,
EntryID: clam.ID,
}
err := xpack.UpdateAlert(updateAlert)
if err != nil {
return err
}
}
return nil
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个函数主要负责更新一个名叫"clams"的告警(alert)。在当前版本中,代码是有效的,并且没有发现需要改进的地方。

然而,在2021年之前可能存在一些问题:

  1. 应该使用err.Error()来打印错误信息,避免将错误写入日志。
  2. 可以更改为 var updateAlert = dto.CreateOrUpdateAlert{} 来简化代码。
  3. 如果传参中的字段不全,最好抛出异常而不是直接返回nil。

总体来说,如果只考虑性能和效率的影响,并没有明显的不合规或问题。

关于优化建议:保持简洁、清晰的编程风格,并经常进行单元测试。

Expand Down
20 changes: 11 additions & 9 deletions backend/app/service/cronjob.go
Original file line number Diff line number Diff line change
Expand Up @@ -316,15 +316,17 @@ func (u *CronjobService) Update(id uint, req dto.CronjobUpdate) error {
if err != nil {
return err
}
updateAlert := dto.CreateOrUpdateAlert{
AlertTitle: req.AlertTitle,
AlertType: cronModel.Type,
AlertCount: req.AlertCount,
EntryID: cronModel.ID,
}
err = xpack.UpdateAlert(updateAlert)
if err != nil {
return err
if req.AlertCount != 0 {
updateAlert := dto.CreateOrUpdateAlert{
AlertTitle: req.AlertTitle,
AlertType: cronModel.Type,
AlertCount: req.AlertCount,
EntryID: cronModel.ID,
}
err = xpack.UpdateAlert(updateAlert)
if err != nil {
return err
}
}
return nil
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个代码没有明显的问题或需要改进的地方。它看起来已经是最新版本,并且逻辑已经正确无误。然而,为了进一步完善性能和可读性,可以考虑:

  1. 将函数名为CreateOrUpdateAlert
  2. 函数签名为一个参数是类型为*dto.CronjobUpdate请求体的一个结构体的对象。
   func (u *CronjobService) UpdateByID(id uint, req dto.CronjobUpdateRequest) error {
        if err := validate(req); err != nil {

            return errors.Wrap(err, "request validation failed")
         }

        updateAlert := dto.CreateOrUpdateAlert{   
               AlertTitle:       req.GetAlert.Title(),
             // 可以将其他字段从req复制到updateAlert的字段中...
                 AlertType:  cronModel.Type,
                AlertCount: int(req.GetAlert.Count()),
                  EntryID:    id.ToString()
              },
         result, _, err
           if !errors.IsNotFoundError(err){
              
          }  
    ```
3. 建议在每次操作之前验证输入数据。
4. 如果有更多cronjobs存在,则推荐使用分页查找/删除的方法而不是更新整个collection中的所有元素,在性能优化方面有很大的提升空间。

这是最基础的更改思路,更具体的改进建议取决于需求及实际应用场景的具体情况。

Expand Down
Loading