Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

クロール禁止サイト検証機能のマイクロサービス化を検討 ● 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

Slide 8

Slide 8 text

おまけ 予習 ● 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/