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

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

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

Aa5b922fefbf18bea89972521971dfea?s=128

Yoshiki Iida

August 18, 2021
Tweet

Transcript

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

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

    The Book 増補改訂版」コラムニスト。 一般社団法人アジャイルチームを支える会 理事。 $ whoami
  3. ログラスについて       は、事業進捗を可視化することで 柔軟で高精度な経営推進を実現する プランニング・クラウドサービスです。

  4. ログラスについて

  5. ログラスについて

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

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

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

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

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

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

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

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

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

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

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

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

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

    ◦ 属人性などのリスクはさておき、一エンジニアの機会創出としてはよい 学びとまとめ
  19. https://job.loglass.jp/ We are hiring