Next-L Enju 第1回開発ワークショップ資料

1,475 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,475
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Next-L Enju 第1回開発ワークショップ資料

  1. 1. Next-L Enjuの構成 Next-L Enju 第 1 回開発ワークショップ ( 2011 年 1 月 28 日) 田辺浩介
  2. 2. 本体とモジュール <ul><li>本体 </li><ul><li>資料管理(受入・検索) / 利用者管理 / 図書館管理 </li></ul><li>機能ごとのモジュール </li><ul><li>貸出・返却 / レファレンス / ブックマーク / 書誌名寄せ / 相互貸借 / 件名 / 催し物 / お知らせ / 検索ログ / メッセージ送信 / 購入依頼 / 蔵書点検 / NDL接続 / 機関リポジトリ など </li></ul><li>新規機能追加はモジュールで行う </li></ul>
  3. 3. Next-L Enjuがねらうもの
  4. 4. Webを介した他のシステムとの連携 <ul><li>EnjuはほぼすべてのデータをWebAPIを通して扱うことができる </li><ul><li>資料だけでなく、利用者登録や貸出も </li></ul><li>WebAPIを備えた他のシステムとのやりとり </li><ul><li>「資料検索はEnju、利用者管理は既存のシステム」という構成も可能
  5. 5. 図書館システムだけに限らない </li></ul></ul>
  6. 6. 機材の簡略化 <ul><li>ASP・クラウド環境での動作を前提
  7. 7. 月25ドル(2000円)から始める自前のシステム </li><ul><li>15ドル(Herokuの共用データベース使用料) + 10ドル(Solr用のAmazon EC2使用料) </li></ul></ul>
  8. 8. 図書館システムの普遍化 <ul><li>誰でもさわれる、誰でも試せる </li><ul><li>->誰にでもわからないところを聞ける </li></ul><li>誰でも自分で作れる
  9. 9. 誰でも図書館システムや図書館サービスの高度化に貢献できる </li></ul>
  10. 10. Next-L Enjuの開発環境
  11. 11. Enju用語
  12. 12. Enjuで使われる特殊な用語 <ul><li>Manifestation(マニフェステーション) </li><ul><li>本来はFRBRの「体現形」
  13. 13. enju_leafでは「書誌」 </li></ul><li>Item(アイテム) </li><ul><li>同じくFRBRの「個別資料」
  14. 14. enju_leafでは「所蔵」 </li></ul><li>Patron(パトロン) </li><ul><li>本来は図書館の「利用者」
  15. 15. enju_leafでは「人物・団体」の総称 </li></ul></ul>
  16. 16. 動作環境 <ul><li>以下の動作するUnix系OS
  17. 17. Ruby 1.9.2以上
  18. 18. PostgreSQL 8.4以上 </li><ul><li>MySQL 5.0以上、SQLite3でもたぶん動く </li></ul><li>Apache Solr </li><ul><li>3.5.0を推奨。masterブランチでは同梱 </li></ul><li>Ruby on Rails 3.1.3以上 </li><ul><li>enju_leaf 1.1では3.2以上 </li></ul></ul>
  19. 19. <ul><li>$ ssh 192.168.11.84 -l kosuke
  20. 20. $ cd
  21. 21. $ mkdir tanabe (tanabeは自分の名前)
  22. 22. $ cd tanabe </li></ul>
  23. 23. ログイン後 <ul><li>$ ssh 192.168.11.84 -l kosuke
  24. 24. $ cd tanabe/enju_leaf </li></ul>
  25. 25. 開発系統 <ul><li>masterブランチ </li><ul><li>最新のEnju
  26. 26. 新機能の追加など、大規模な変更が行われる
  27. 27. 今回はこちらを使用する </li></ul><li>1.0ブランチ </li><ul><li>安定版Enju
  28. 28. 基本的に不具合修正のみ行われる </li></ul></ul>
  29. 29. 開発のポリシー <ul><li>可能な限りRailsの基本的な機能を使う </li><ul><li>scaffoldを基本とする。難しいことはやらない
  30. 30. コントローラにはpublicなメソッドを追加しない </li></ul><li>masterブランチは積極的に最新のライブラリを使用する </li><ul><li>ベータ版を含む </li></ul></ul>
  31. 31. Next-L Enjuのインストール
  32. 32. Next-L Enjuのインストール <ul><li>今回はdevelopment環境(開発環境)で動かします </li><ul><li>ファイルを変更したときに、Enjuを再起動しなくてもよい </li></ul><li>wikiの「インストール」ページのうち、 “production”を”development”に置き換えて進めてください </li></ul>
  33. 33. ファイルのダウンロードと確認 <ul><li>$ git clone git://github.com/nabeta/enju_leaf.git
  34. 34. $ cd enju_leaf
  35. 35. $ ls -la </li></ul>
  36. 36. ファイルの配置 <ul><li>app/models </li><ul><li>モデル(データの作成・変更・保存を行う) </li></ul><li>app/views </li><ul><li>ビュー(データを表示する) </li></ul><li>app/controllers </li><ul><li>コントローラ(Webからの入力を受け取って、 モデルとビューを操作する) </li></ul></ul>
  37. 37. ファイルの関連 <ul><li>人物・団体を例にする </li><ul><li>app/models/patron.rb
  38. 38. app/views/patrons/index.html.erb
  39. 39. app/views/patrons/show.html.erb
  40. 40. app/views/patrons/new.html.erb
  41. 41. app/views/patrons/edit.html.erb
  42. 42. app/views/patrons/_form.html.erb
  43. 43. app/controllers/patrons_controller.rb </li></ul><li>人物・団体に関する部分を変更したかったら、
  44. 44. これらのファイルを変更することになる </li></ul>
  45. 45. ファイルの配置 <ul><li>Gemfile </li><ul><li>Enjuの動作に必要なライブラリを記述する
  46. 46. Enju用のモジュールもここで定義する </li></ul><li>db/migrate </li><ul><li>データベースのマイグレーションファイル(定義ファイル)
  47. 47. データベースにカラム(項目)を追加するためのファイルが置いてある
  48. 48. 基本的には手動では編集しない </li></ul></ul>
  49. 49. ファイルの配置 <ul><li>solr/ </li><ul><li>検索用のインデックスと設定ファイルがあるディレクトリ
  50. 50. solr/conf 以下にある設定ファイル以外は基本的に いじる必要がない </li></ul></ul>
  51. 51. データ項目 <ul><li>各モデルのファイルの末尾に記載されている
  52. 52. テスト用のファイルを見てもよい </li><ul><li>spec/fixtures/patrons.yml </li></ul></ul>
  53. 53. 新しく項目を追加する
  54. 54. 項目の追加 <ul><li>追加したい項目が、どのモデルに属するのかを決める </li><ul><li>書誌->manifestationモデル
  55. 55. 所蔵->itemモデル
  56. 56. 人物・団体->patronモデル
  57. 57. 利用者情報->userモデル </li></ul></ul>
  58. 58. 項目の追加 <ul><li>追加したい項目が、文字なのか数字なのかを決 める </li><ul><li>文字( 255 文字以下)-> string
  59. 59. 文字( 255 文字以上)-> text
  60. 60. 数字-> integer </li></ul></ul>
  61. 61. 項目の追加 <ul><li>マイグレーションファイルを作成する
  62. 62. $ rails g migration AddStudentYearToPatron student_year:integer </li><ul><li>student_year という項目をpatronモデルに追加する
  63. 63. student_yearは数字とする </li></ul><li>マイグレーションを実行する $ rake db:migrate </li></ul>
  64. 64. 項目の追加 <ul><li>入力フォームを追加する vi app/views/patrons/_form.html.erb <%= f.label :student_year %> <%= f.text_field :student_year %>
  65. 65. 画面表示を追加する vi app/views/patrons/show.html.erb <%= @patron.student_year %> </li></ul>
  66. 66. 検索対象に追加する <ul><li>検索対象のモデルを開く vi app/models/patron.rb
  67. 67. 以下の行を追加する </li><ul><li>searchable do </li><ul><li>integer :student_year </li></ul><li>end </li></ul><li>インデックスを再作成する
  68. 68. $ rails c >> Patron.reindex </li></ul>
  69. 69. 新しい項目を検索する <ul><li>フォームからいくつかデータを入力する
  70. 70. 検索フォームに以下のように入力する student_year_i: 2012 </li></ul>

×