はてなサマーインターン成果報告 ~xyz記法とマイクロサービス~

はてなサマーインターン成果報告 ~xyz記法とマイクロサービス~

C44d9ff0fb47045ae04e3183694c7d68?s=128

TagawaHirotaka

September 11, 2020
Tweet

Transcript

  1. はてなサマーインターン 成果報告 xyz記法とマイクロサービス 2020年9月11日 id: wafuwafu13

  2. 自己紹介 • 名前: 田川裕隆 • id: wafuwafu13 • 所属: 同志社大学社会学部2回

    • ポートフォリオ: https://tagawa.netlify.app/
  3. やったこと • goldmarkによる記法実装、テスト ➢ xyz記法の実装、テスト ➢ goqueryによるタイトル自動取得機能の実装、テスト • タイトル自動取得機能のマイクロサービス化(gRPC, k8s)

    ➢ クロール禁止サイト検証機能のマイクロサービス化を検討
  4. xyz記法の実装 • goldmark[1] のextensionにあったtasklist.goのnode[2]を拡張 • - [x] , - [y],

    - [z] に応じたinputのtypeを実装 • [y:30%] や [z:#ffffff] に対応させたかった...... [1] https://github.com/yuin/goldmark [2] https://github.com/yuin/goldmark/blob/master/extension/ast/tasklist.go#L30
  5. xyz記法のテスト • goldmarkのtestutil[3] を活用 • テキストファイルを組み込むだけ • 複雑な構造のテストが11行で済み、効率的&視覚的! [3] https://github.com/yuin/goldmark/tree/master/testutil

  6. goqueryによるタイトル取得 • スクレイピングにgoquery[4] を使用 • jQueryライクにDOMの指定ができる • HTML取得、DOM解析が10行程度で済み、視覚的&効率的! [4] https://github.com/PuerkitoBio/goquery

  7. クロール禁止サイト検証機能のマイクロサービス化を検討 • robots.txt[5] を解析するpythonモジュールurllib.robotparser[6] が便利そうだった • fetcherをpythonで書き直す or 新たなinspectサービスを作る •

    inspect.protoやDockerfileを定義、pythonのコードを生成、robotparserで解析 • ドメインモデルとして正しかったか[7] [5] https://arxiv.org/help/robots [6] https://docs.python.org/ja/3/library/urllib.robotparser.html [7] https://github.com/hatena/Hatena-Intern-2020-Lecture/blob/main/microservice/presentation.md
  8. おまけ 予習 • Go言語で作るインタプリタ[1] • The complete gRPC course [2]

    • Docker/kubernetes 実践コンテナ開発入門 [3] • マイクロサービスアーキテクチャ [4] [1] https://www.oreilly.co.jp/books/9784873118222/ [2] https://www.youtube.com/playlist?list=PLy_6D98if3UJd5hxWNfAqKMr15HZqFnqf [3] https://gihyo.jp/book/2018/978-4-297-10033-9 [4] https://www.oreilly.co.jp/books/9784873117607/