Slide 1

Slide 1 text

仕事ではじめるOSS 2021/08/18 #osscontributelt Yoshiki Iida 業務駆動OSS開発

Slide 2

Slide 2 text

Yoshiki Iida (@ysk_118) エンジニアに始まり、スクラムマスター、プロダクトオーナー、マネージャー、執行 役員を経験し、現場のチームビルディングから部署を超えた会社全体の改善な ど、アジャイルな組織づくりの推進を行ってきました。現在は株式会社ログラスに てソフトウェアエンジニアとしてプロダクト開発に携わっています。 書籍「Scrum Boot Camp The Book 増補改訂版」コラムニスト。 一般社団法人アジャイルチームを支える会 理事。 $ whoami

Slide 3

Slide 3 text

ログラスについて       は、事業進捗を可視化することで 柔軟で高精度な経営推進を実現する プランニング・クラウドサービスです。

Slide 4

Slide 4 text

ログラスについて

Slide 5

Slide 5 text

ログラスについて

Slide 6

Slide 6 text

● Metabaseの紹介 ● 学びやポイントなど Topic

Slide 7

Slide 7 text

ログラスとMetabase ● 経営ダッシュボード機能で MetabaseをEmbedして利用 ● お客様でBIツールを用意していなく ても、財務データの可視化をログラ ス上で行える

Slide 8

Slide 8 text

Metabaseとは ● OSSのBIツール ○ Cloud版とセルフホスティング版があ る ○ エンタープライズ版はOSSに加えて認 証や埋め込みなどのカスタマイズが可 能になる ● Clojure, React ● Metabase, Inc.が開発

Slide 9

Slide 9 text

Metabaseとは ● https://github.com/metabase/ metabase/ ● 多言語展開していることもあるからな のかIssueがとても多い ● 開発は活発でリリースも多い

Slide 10

Slide 10 text

● ダッシュボードの絞り込みUIで複数選択すると表示がおかしくなるバグ ○ 具体的にはプレースホルダが正常に処理されない ● 使えなくないが、埋め込みでお客様に提供していてかなり目立つところな ので修正したかった 今回修正したバグ

Slide 11

Slide 11 text

Metabaseの多言語対応 ● POEditorで翻訳プロジェクトを管理 している ○ https://poeditor.com/join/project/ynjQmwSsGh ● poファイルからフロント、サーバーサ イドそれぞれの翻訳JSONを生成し 読み込んでいる ● フロントはttagというライブラリを使っ ている

Slide 12

Slide 12 text

● 今回のような複数選択できるUIだと、一つ選択しているときは1 selection、二つ以上選択しているときは2 selectionsとなる ● 日本語では一つの場合も二つ以上の場合も「n個の選択」なのでpoファイ ルからJSONに変換する際に言語間の違いを考慮する必要がある 言語間の複数形の取扱の違い ※Pluralのほうが複数形のプレースホルダ

Slide 13

Slide 13 text

● 当初は翻訳プロジェクト側だけ修正すれば直ると思っていたがそれだけで は直らなかった JSON生成ロジックの修正 ↓

Slide 14

Slide 14 text

● 複数形の文字列に関してもプレースホルダがあれば変換処理が行われる ように修正 JSON生成ロジックの修正

Slide 15

Slide 15 text

● 複数言語で検証して修正を確認! JSON生成ロジックの修正

Slide 16

Slide 16 text

● poファイルからJSONを生成するロジックを追うのが難しかった ○ Shell ScriptからClojure Scriptを実行していてjsonファイルを生成し ているコードをgrepして追っていった 難しかったポイント

Slide 17

Slide 17 text

● 開発環境構築はDeveloper Guideが整備されており特段つまづくことは なかった ○ https://www.metabase.com/docs/latest/developers-guide.html ● 関連Issueが多く一気に倒せた(逆に言えば結構放置されていた😇) よかったポイント

Slide 18

Slide 18 text

● 大きいプロダクトの多言語対応の仕組みを学べた ● 大きいプロダクトなので追いついていないIssueも多くあり、 貢献感を感じられる機会が結構ありそうということがわかった ● 泥臭いコードもあり自信をもらえる ● 業務上の必要性が高いところにOSSを利用していると コントリビュートのモチベーションは高めやすい ○ 属人性などのリスクはさておき、一エンジニアの機会創出としてはよい 学びとまとめ

Slide 19

Slide 19 text

https://job.loglass.jp/ We are hiring