30多线程爬虫与ES新闻搜索引擎

项目地址

从零开始

  • GitHub - new
  • 建立新项目|
    • mvn archetype
    • IDEA 一 new
    • 直接从别人那儿抄一个
  • .gitignore 忽略提交的
  • README 说明
  • 配置基本的代码质量检查插件
    • 越早代价越低

项目的演进:正确性

如何保证改动代码不会破坏原先的功能?

  • 国内大部分会 改完代码开始测,人肉测试,关键的功能测试,测试完提交;有问题回滚,排查问题。
  • 自动化测试
    • push代码的时候都会触发circleci测试
    • 根据业务

好的代码习惯

  • 不要妥协
  • 不要自己造轮子
  • 不要做一个只会从网上抄代码的人
  • 如何阅读和使用官方文档?

测试的原则

  • 测试包放在test目录下
  • 每一个测试是一个类,负责一个很小的功能模块,这个类中的每个方法用于测试一个关键的功能点。

使用Flyway数据库自动化迁移工具

mvn flyway:clean && mvn flyway:migrate

SpotBugs插件引入

  • Maven的生命周期
    • 默认的生命周期,比如执行test,就会把test前面所有阶段从头都执行一遍
    • 先声明的先执行
  • Maven的插件与目标
    • 目标与生命周期阶段的绑定 使用Flyway数据库自动化迁移工具
    mvn flyway:clean && mvn flyway:migrate
    

docker容器

  • 非持久化
    docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:5.7.29
    
  • 数据库持久化映射 -v
    docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -v  E:/git/sina-crawler/mysql-data:/var/lib/mysql -d mysql:5.7.29
    
  • 移除数据库
    docker rm -f mysql 
    
    docker run -d -v E:/git/sina-crawler/esdata:/usr/share/elasticsearch/data --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.0
    

    -d 后台运行
    --name 容器的名字
    -p docker容器的端口和本地的端口映射

mysql

  • mysql 乱码

    ALTER DATABASE news CHARACTER SET =utf8mb4 COLLATE = utf8mb4_unicode_ci;
    
    <configuration>
    <url>jdbc:mysql://localhost:3306/news?characterEncoding=UTF-8</url>
    </configuration>
    
  • mysql 建索引(建议看官方文档)
    CREATE INDEX created_at_index
      ON NEWS (created_at)
    

    explain 解释当前语句以什么样的方式执行

  • explain select * from NEWS where created_at = '2019-02-18'
    

Github上的merge

  • Create a merge commit
    创建一个合并提交
    将所有提交合并到基本分支

  • Squash and merge
    压缩和合并
    把所有的提交压缩成一个提交

  • Rebase and merge
    重新建立基础并合并
    会把分支的Commits合并平移到Code Commits

Windows下git bash的一些坑

  • 解决 .bashrc 文件每次打开终端都需要 source 的问题
    ~/.bash_profile文件中输入source ~/.bashrc
    保存退出后,重新打开终端

  • 解决git bash乱码问题

  1. 打开GitBash(git-bash.exe)后,对窗口右键->Options->Text->Locale改为zh_CN,Character set改为UTF-8;

  2. 直接输入

    vi ~/.bashrc
    PATH=$PATH:$HOME/bin
    export PATH
    unset USERNAME
    export LANG=zh_CN.UTF-8
    export LESSCHARSET=utf-8
    

git 命令行不小心提交

  • 不小心提交了不想提交的代码
    • git reset Head~1 把当前分支代码向后回滚1个提交
    • idea的9:Version Control 鼠标右键到想回滚提交 Reset Current Branch to Here然后Reset
  • 不小心commit还push了
    • 如果是在自己的分支上,那就用不小心提交了不想提交的代码的方式操作,并且force push
    • 如果在主干上,把多提交的文件删掉。
  • git commit --amend
    • 提交修正

how to write a commit message

  • 将标题行限制为50个字符,写重要的
  • 用72个字符一行写正文,详细描述提交的变更在做什么
  • 用空行将主体与主体分开

「资料来源:饥人谷」

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注