Groongaの管理画面の改良案 - 2014-06-17 - ククログ

ククログ

株式会社クリアコード > ククログ > Groongaの管理画面の改良案

Groongaの管理画面の改良案

クリアコードは今年もインターンシップを実施します。インターンシップをどのように実施するかを3行で説明すると次の通りです。

  • 目的: インターンがクリアコードで実践している開発方法を体験する
  • 内容: クリアコードのメンバーと一緒にフリーソフトウェアを開発する
  • 対象: プログラミングが好きでフリーソフトウェアに関心がある16歳以上の方(学生、社会人、休職中などは問わない)

詳細はインターンシップページを確認してください。過去に実施したインターンシップの詳細はGitHubにあるメモを参照してください。興味のある方はぜひ応募してください。

今回は、インターンシップで開発する題材として使えそうな開発内容を久しぶりに紹介します。

現在のGroongaの管理画面

Groongaという全文検索エンジンがあります。HTTPサーバーとして全文検索機能を提供できます。GroongaをHTTPサーバーとして使うと、Webブラウザーで管理画面を使えます。管理画面では、データベースのスキーマを定義したり、登録されている文書を確認することができます。

どのようなUIになっているかはgroongaでブラウザベースの管理ツールを使うには - Qiitaを参照してください。

この管理画面を改良する、というのが今回紹介する題材です。どのように改良するかを紹介する前に現状のよいところを整理します。

よいところ

現在の管理画面のよいところは次の通りです。これらは改良後も維持したい点です。

  • すべてクライアント側で動作する実装1である。
  • 全文検索機能(selectコマンド)の動作をWebブラウザー上で確認できる。

少し補足します。

まず、すべてクライアント側で動作する点についてです。これにより、別途Webアプリケーションを用意する必要がなく、簡単にインストールできます。これが魅力的です。

次に、全文検索機能の確認についてです。Webブラウザー上で確認できると、手軽に試行錯誤できます。これは開発時に魅力的な機能です。

改良したいこと

前述の現在のよいところを維持した上で、管理画面を次のように改良したいです。

  • 国際化対応
  • 全文検索機能の結果をわかりやすく表示
  • トークナイズ結果の確認機能を追加
  • プラグインで追加したトークナイザーやノーマライザーに対応
  • よい見た目とよい使い勝手

それぞれの項目の詳細は[groonga-dev,02321] 管理画面を改良したい!を参照してください。

実現方法案

現在の管理画面はjQueryとjQuery UIで実装していますが、それをAngularJSを使って実装するのはどうかという案があります。AngularJSにはいくつか国際化対応のためのライブラリーもあるよう2なので、改良したいことを実現しやすい雰囲気があります。

AngularJSベースにする場合は、一気に現在の管理画面を置き換えるのではなく、別のサブパスに配置して、現在の管理画面と共存しながら徐々に機能を移していく方法をとります。現在の管理画面は意外と機能が多く、一気に書き換えると途中で挫けてしまうかもしれないからです。

関連技術

この開発内容では次の技術を使うことになるでしょう。

  • HTML5
  • CSS3
  • JavaScript
  • AngularJS(もしかしたら使わないかもしれない。実装時に相談して決める。)
  • C(プラグインで追加したトークナイザーやノーマライザーに対応するなら。)

まとめ

久しぶりにインターンシップの題材になりそうな開発内容を紹介しました。プログラミングが好きでフリーソフトウェアに関心がある方はぜひ応募してください。

  1. HTML + CSS + JavaScriptで実装している。

  2. メッセージそのものを翻訳時のキーとして使うという点からangularjs-i18nがよさそうな印象です。