Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

wafuwafu13
September 11, 2020

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

wafuwafu13

September 11, 2020
Tweet

More Decks by wafuwafu13

Other Decks in Programming

Transcript

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

    View Slide

  2. 自己紹介
    ● 名前: 田川裕隆
    ● id: wafuwafu13
    ● 所属: 同志社大学社会学部2回
    ● ポートフォリオ: https://tagawa.netlify.app/

    View Slide

  3. やったこと
    ● goldmarkによる記法実装、テスト
    ➢ xyz記法の実装、テスト
    ➢ goqueryによるタイトル自動取得機能の実装、テスト
    ● タイトル自動取得機能のマイクロサービス化(gRPC, k8s)
    ➢ クロール禁止サイト検証機能のマイクロサービス化を検討

    View Slide

  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

    View Slide

  5. xyz記法のテスト
    ● goldmarkのtestutil[3]
    を活用
    ● テキストファイルを組み込むだけ
    ● 複雑な構造のテストが11行で済み、効率的&視覚的!
    [3] https://github.com/yuin/goldmark/tree/master/testutil

    View Slide

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

    View Slide

  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

    View Slide

  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/

    View Slide