$30 off During Our Annual Pro Sale. View Details »

業務駆動OSS開発 / Job Driven OSS Development

業務駆動OSS開発 / Job Driven OSS Development

Yoshiki Iida

August 18, 2021
Tweet

More Decks by Yoshiki Iida

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. ログラスについて

    View Slide

  5. ログラスについて

    View Slide

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

    View Slide

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

    View Slide

  8. Metabaseとは
    ● OSSのBIツール
    ○ Cloud版とセルフホスティング版があ

    ○ エンタープライズ版はOSSに加えて認
    証や埋め込みなどのカスタマイズが可
    能になる
    ● Clojure, React
    ● Metabase, Inc.が開発

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide