見出し画像

これからWebアプリ開発をはじめる方へ!『RubyとSinatraではじめるWebアプリケーション開発の教科書』近刊紹介

2021年7月下旬発行予定の新刊書籍、『RubyとSinatraではじめるWebアプリケーション開発の教科書』のご紹介です。
同書の「まえがき」を、発行に先駆けて公開します。

画像1

***

まえがき

この本を手にとられた方は、おそらくインターネットを毎日のように使っているのだと思います。インターネットはすでに、水道や電気のように数秒でも止まっては困る社会的なインフラとなりました。インターネット上で提供されているメールや通信対戦ゲームなどのいくつものサービスのうち、最も重要なものは間違いなくWebでしょう。AmazonやTwitter、Facebookなど枚挙にいとまがありません。

本書では、上の例に挙げたようなWebアプリケーションを開発する基本を解説しています。プログラミングとLinuxコマンドの基礎さえ知っていれば、本書に書かれている手順を1つ1つ追いかけていくことで、その他の前提知識なしにWebアプリケーション開発の基礎に関する知識を身につけることができます。プログラミング言語については、本書ではRubyという言語を使いますが、何かほかの言語で簡単なプログラミングをした経験があれば十分です。Linuxコマンドについても、ファイルやフォルダといった言葉が理解できていて、テキストエディタを使った編集やファイルのコピーなどをしたことがあれば十分です。

手元のWindows(あるいはmacOS)パソコン上に何もないところからスタートして、仮想的なLinuxサーバーを構築し、Webブラウザでコンテンツを表示できるようにします。サーバーの裏側でデータベースを動かして、最終的には、データベースの内容を整形してWebブラウザに返すようなWebアプリケーションの開発を目標とします。

Webアプリケーションとサーバー構築は、ハードウェア関連以外の知識を総動員しなければ攻略できない世界です。プログラミング、ネットワーク、UNIX、英語など、本書の範囲だけではまかないきれないので、各自で自分にあったテキストを用意して知識を広げていってもらいたいと思います。本書を読み進めていくと、この本はUNIXの本なのかHTMLの本なのかRubyの本なのかネットワーク(TCP/IP)の本なのか区別がつかず混沌としてくると思いますが、それこそが、Webアプリケーションの開発や運用があらゆる知識の総動員になるということの裏返しです。

本書にはコマンドの実行例がところどころに掲載されていますが、自分の手でも必ず確認するようにしてください。また、入力例にあるコマンドを単に入力しているだけの作業になってしまってはいけません。いまそこでなぜそのように入力するのか、その結果ファイルや出力がどうなっているべきなのかをきちんと考えながら実習するように心がけてください。

本書がWebアプリケーション開発の第一歩として役に立つことを期待しています。

***

著:伊藤祥一

手を動かしながら「作り方」と「考え方」が身につく一冊。

シンプルな記述で可読性の高いRuby言語と、小規模のアプリを作りやすいフレームワークSinatraを利用することで、余計な環境設定に煩わされることなく、Webアプリの学習に集中することができます。

なぜこのプログラムが必要なのか、コンピュータの内部ではどのように処理されているのか。「何となく動かせる」ではなく、「Webアプリの中身をきちんと理解してプログラミングできる」ようになります。

サンプルプログラムのソースコードや、演習として本書の随所に配置されたトレーニング、チャレンジの解答は、森北出版Webサイトで公開しています。

VirtualBoxで作る仮想環境にWebサーバーを構築するので、PC一つですぐに始められます。
まずは実行してみて、Webアプリがどう作られ動くのか見てみましょう。

【目次】
第1章 Webアプリが動くしくみ
 1.1 ローカルアプリとWebアプリ
 1.2 インターネット経由でアプリケーションが動くしくみ

第2章 PC上に仮想環境を構築しよう―Webアプリ作成前の準備―
 2.1 仮想環境の構築
 2.2 Windows10でのVirtualBoxのインストール
 2.3 macOSでのVirtualBoxのインストール
 2.4 仮想マシンの作成
 2.5 OSインストール後の作業

第3章 Rubyのコーディングに慣れよう
 3.1 Rubyについて
 3.2 最新版のRubyをインストールする
 3.3 プログラムの編集と実行
 3.4 はじめはここから
 3.5 引用符の扱い
 3.6 条件分岐
 3.7 ループ
 3.8 メソッド
 3.9 変数やメソッドの命名規則
 3.10 Rubyは型を宣言しない
 3.11 配列変数とeach
 3.12 コマンドライン引数
 3.13 時刻
 3.14 クラスの作成
 3.15 クラスの継承
 3.16 擬似変数
 3.17 カレンダーの作成

第4章 Webカレンダーを作ろう―いちばん簡単なWebアプリ―
 4.1 Sinatra
 4.2 ライブラリのバージョンを管理する―BundlerとGemfile
 4.3 WebアプリでHello World
 4.4 処理本体と見た目を分離する
 4.5  hello.rbで処理した結果を埋め込む
 4.6 静的なコンテンツの置き場
 4.7 カレンダーWebアプリ

第5章 シンプルな掲示板Webアプリを作ろう―データベースと連携する―
 5.1 まずはデータベースを作ろう
 5.2 軽量なデータベースサーバーSQLiteを利用する
 5.3 データベースのテーブルを作る
 5.4 アプリケーションディレクトリの初期化
 5.5 YAMLでデータベースとRubyプログラムをつなぐ
 5.6 ActiveRecordでデータベースにアクセスする
 5.7 Webブラウザへの表示
 5.8 HTTPメソッドとSinatraでのルーティング
 5.9 データを追加できるようにする
 5.10 データを削除できるようにする
 5.11 セキュリティ面で気をつけるべきこと

第6章 パスワードの管理のしかた―ログイン機能をつけるための基礎知識―
 6.1 データの指紋―ハッシュ値を計算する
 6.2 パスワードの安全な保存
 6.3 パスワードデータベースを作る
 6.4 ユーザー認証

第7章 Cookieの使い方―セッションを継続させるための基礎知識―
 7.1 HTTPだけではセッションは継続されない
 7.2 セッションを継続する必要性
 7.3 SinatraでCookieを使ってセッションを継続する
 7.4 Cookieを中身から理解する
 7.5 セッションID

第8章 掲示板Webアプリを完成させよう―より実用的なWebアプリ―
 8.1 Webアプリにログイン機能をつける
 8.2 Cookieを書き換える実験
 8.3 掲示板アプリとユーザー管理
 8.4 ファイルのアップローダ
 8.5 同時書き込みへの対応
 8.6 画像掲示板への改良
 8.7 ファイルの受信
 8.8 表示への反映
 8.9 書き込みの削除
 8.10 アイコン画像の設定

付録
 A.1 文字コード
 A.2 HTML
 A.3 sshによるログイン
 A.4 Mozilla Firefox のインストール

参考文献
索引

この記事が気に入ったらサポートをしてみませんか?