Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
K
kb
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 2
    • Issues 2
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • granite
  • kb
  • Wiki
    • Code review
  • spider_master_yanglb

Last edited by ylb Dec 16, 2021
Page history

spider_master_yanglb

评审目标

1. 实现方案的正确性
2. 代码的坏味道
3. 规范性

评审日期

2021-12-16

评审人

袁波,蒋家升,杨龙斌

被评审人

章一峰

参考链接

  • 代码入口

流程

1. 被评审人需先整体描述需要解决的问题、解决流程 (被评审人讲解过程中,评审人可以记录问题,不要打断被评审者的思路)
2. 被评审人讲完,评审人和与会人员可以提问题
3. 评审人进行评审 (被评审者或者与会人员记录评审待改进的内容,有时并不是只针对被评审者,而是所有编码者)
4. 评审完成之后,落实待修改项,主要是缺陷和规范性

值得学习的地方

1. 对于常用的item类型进行封装,减少错误发生,增强不同项目间的一致性
2. 测试环境与生产环境切换的方式比较好,简洁的同时也减少了错误的发生
3. Task类的实现,有简单的单个任务模式,也支持了多线程对同一任务的读写

建议

  • deploy.sh部署脚本 文件地址

    • init函数中需要先update_app,再update_collie,否则可能导致collie_version.txt文件找不到
    • 部署脚本与项目名称的相关性,新的项目需要更改一些参数
  • 优先级任务相关的一些问题 文件地址

    • redis_keys = [i.decode() if isinstance(i, bytes) else i for i in redis_keys] # a bytes-like object is required, not 'str'
    • redis_key = random.choice(self.redis_key)
    • for循环不应该覆盖变量
    • redis_key = self._random_priority(p_map) # 缩进错误
    • index = ''
  • parse_response相关的建议 文件地址

    • 不易测试,如果引入测试用例,建议将parse_response和parse_text分开。
    • parse_response接收response对象并在内部调用parse_text解析文本,主要进行逻辑控制,重试,返回Item对象,返回其他请求。
    • parse_text接收文本,返回简单的python列表或字典。可能解析会用到meta中的信息,需要完善。
    • 测试用例就只测试请求类的parse_text方法。
  • check_task_end方法是否应该直接返回Item对象 文件地址

  • retry_or_error方法涉及到yield self 文件地址

    • 可以用yield self.copy()返回一个新的对象,之前的对象就会结束
  • 文件引入方式混用

    • 建议统一使用项目绝对路径

改进落实

时间:

改进人:

监督人:
Clone repository
  • README
  • basic_guidelines
  • basic_guidelines
    • basic_guidelines
    • dev_guide
    • project_build
    • 开发流程
  • best_practice
  • best_practice
    • AlterTable
    • RDS
    • azkaban
    • create_table
    • design
    • elasticsearch
    • elasticsearch
      • ES运维
    • logstash
View All Pages