[2022-06] 第18章で制作するショッピングカートのサンプルプログラムについて、同じ内容を現代の技術で作り直しました。rails7/Book2SampleShop · main · netsphere / rails-examples · GitLab Ruby 3.1, Ruby on Rails 7.
Recommendation 機能まで付いていてビックリしましたが、実装があまりに naive (未熟) に過ぎるので、そこは作り直そうと思います。
書名 | 基礎から学ぶWebデータベースプログラミング |
---|---|
著者 | 堀川 久 |
判型 | B5変形・336ページ |
発行所 | オーム社 |
ISBN | 4-274-06529-4 |
定価 | 本体 2,600円+消費税 |
Google ブックスにて、70ページほどを読むことができるようになりました。基礎から学ぶWebデータベースプログラミング - Google Books
本書は、データベースを活用したWebアプリケーションを製作するための入門書です。本書では、次のことに注目します。
データベースの操作(データの追加、検索、更新など)にはSQL言語を使います。私はSQLのラッパ (O/Rマッパ) であるActiveRecord (Ruby on Rails) も使いますが、その場合でもSQLの知識が不要になるわけではありません。効率のよいデータベース操作のためには、ActiveRecordが内部でどのようなSQLを内部で生成するか、意識する必要があります。
本書は、幅広く活用できるように、データベース管理システム(DBMS;OracleやPostgreSQLなど)に依存しない標準SQLに準拠しました。DBMSの差異はつど脚注しています。Webアプリケーションの開発にとって重要なものに内容を絞り、その分、実際的な表や図を多用して理解しやすくしています。
DBMSとしてPostgreSQL、MySQL、また軽量SQLライブラリであるSQLiteで動作確認しています。
本書では、第3部で、実際的なWebアプリケーションとして、ショッピングカートとタスク管理サービスを製作します。いずれもデータベースを活用し、関連商品の提案を行ったり、ユーザー権限の管理・タスクの履歴の管理を行ったりします。
さらに、効率的なセッション管理、Webアプリケーションのセキュリティなどについてもページを割き、品質の高いWebアプリケーションを製作するために注意すべき点などを盛り込みました。
本書では、「テンプレートエンジン」と呼ばれる、HTMLデータとプログラムとを分離するライブラリを活用し、この問題を解消しています。テンプレートエンジンとしては、Amritaを使っています。
メールなどで頂いたご感想などです。有難うございます。
●2003.10.02、ruby-listメーリングリストにて。
|書店にモノが届いても分類とかがありますから、実際に並ぶのは来週になるの |では、と思います。 先々日再び出撃して無事見つけて買ってきました。 SQLの入門,Rubyの入門,CGIの入門ができちゃう本です。rubyでDBを利用す るcgiを書くとき(オレの仕事じゃん!)は,これ一冊あれば済んでしまいま す。セッションやセキュリティに関する解説があるのも助かります。 これに続く中級編,上級編を読みたくなりました。
●2003.09.26、とあるメーリングリストにて。
一通り目を通しました。私は、今、グループウェアを WEB 上で 作ることができないかと、考えていたので、とても役立ちます。 必要なことが一通り網羅されています。 簡単なアプリケーションを作ってみようと思います。 また、今まで eruby でサイトを作っていたのですが、 Amrita のようなテンプレート・エンジンを見てしまうと、 わくわくするものを感じます。
●Webサイトで紹介いただきました。
第1章 データベースとは 第2章 SQLの基礎 第3章 データベースの設計 第4章 正規化 第5章 表の作成・変更・削除とデータ型 第6章 整合性制約 第7章 問い合わせ 第8章 関数と演算子 第9章 集計とグループ化 第10章 データ操作 第11章 表の結合 第12章 ビュー
第13章 Rubyの概要 第14章 データベース操作 第15章 ページ生成とフォームデータの扱い 第16章 クッキーとセッション管理 第17章 Webアプリケーションのセキュリティ
第18章 顧客情報管理 第19章 コラボレーションツール
サンプルプログラムの配布はこちら; http://www.ohmsha.co.jp/data/link/4-274-06529-4/ [リンク切れ]
誤:また、第19章のショッピングカートの 正:また、第18章のショッピングカートの
誤:リスト7.9はサブクエリの結果を 正:リスト7.8ではサブクエリの結果を
誤:次のリスト7.10は、T_仕入表から 正:次のリスト7.9は、T_仕入表から
誤:inputタグなので因ることになります。 正:inputタグなどで困ることになります。
誤: リスト17.8は、セッションIDを 正: リスト17.7は、セッションIDを
誤: row = @dbi.select_one "SELECT userid, 名前 FROM T_CR_User" 正: row = @dbi.select_one "SELECT userid, 名前 FROM T_CR_User WHERE userid = ?", userid
誤:著書に、『Rudy de CGI』 正:著書に、『Ruby de CGI』
誤:基礎から学ぶCGIプログラミング(左下の方) 正:Ruby de CGI
ページ数の関係で本書に収録できなかった資料を公開します。
また、Ruby Centre にも文書があります。
2003.12.26 この節追加。2004.01.05 修正。
Rubyバージョン1.8.1でCGIライブラリに非互換な変更があり、本書のサンプルプログラムでエラーになる箇所があることが判明しました。
Ruby 1.8.0では、CGI#[]の戻り値はStringの派生クラスであるCGI::QueryExtension::Valueのインスタンスでした。このクラスはRuby 1.8.1でStringの派生クラスではなくなりました。CGI#[]の戻り値が文字列(Stringインスタンス)であることを期待している部分で、軒並みエラーが発生したりします。
この変更は正しい理解から行われたとは思えません。
Ruby 1.6と1.8の両方でCGIスクリプトを動かすにはで、Ruby 1.6との差異も含めて修正を加えています。ご参照ください。
本書では開発版であるAmrita 1.8.2を使いましたが、HTMLの解釈などでバグが多く、回避策を講じなければならない場面があります。
安定版であるAmrita 1.0.2に以下のパッチを当てることで、より安定した環境にすることができます。このパッチはバグ修正が主で、Amrita 1.8.2に動作を合わせる以外、既存のプログラムに対する副作用はありません。