Laravel4でこなすプログラム術 Getting Stuff Done
Laravel4でこなすプログラム術 Getting Stuff Done
$29.99
最低販売価格
$39.99
希望販売価格
Laravel4でこなすプログラム術 Getting Stuff Done

この本は 100%完全です

2014-02-26に完了

本書について

PHPコミュニティーを騒がせているフレームワークについて学びましょう。この実践的なガイドブックは、あなたにアプリケーション設計とコンソールアプリケーション、Webアプリケーションの作成を経験させてくれます。中級の開発者にピッタリですが、初心者でも理解できます。「Laravel4でこなすプログラム術 Getting Stuff Done」で楽しくLaravelを学べます。最後まで学習すれば、あなたのワークフローにピッタリとあった道具を手に入れることができるのです。「仕事をこなす」ためにです。

購入金額の10%がLaravelプロジェクトへ寄付されます。

この本は典型的な参考書ではありません。設計を重視した手順書です。どのようにアプリケーションを設計するかの真の姿をお見せすることに焦点を置き、実装の最初から最後までを説明しています。今回のアプリケーションに必要ないLaravelコンポーネントには触れていません。もし、皆さんがLaravelを使った開発の正直な一冊を探し求めているのでしたら、この本こそ正にぴったりです。

(翻訳者追記:この書籍はバージョン4.1の頃に出版され、4.2でも動作します。2014年にリリースされるLaravel5.0では、ディレクトリー/ファイル構造が変更されるため、パスが大きく変更になります。そのため、書籍の内容と一致しない部分が発生します。予め、ご了承ください。)

  • 本書をシェアする

This book is a translation into 日本語 of Getting Stuff Done with Laravel 4 which was originally written in English.

著者について

Chuck Heintzelman
Chuck Heintzelman

「こんな、中年のおやじが、オヤジギャクをばんばん言っている本をどうやって訳せばいいんだろう?」と随分悩みました。しかし、「なんだ、いつもの俺のまま、訳せばいいんじゃん」と気付き、楽になりました。パンチカード?読み込ませたことあります。ええ、ほんの数回ですけど。緊張しました。(何のこと?本書をお読みください。)

さて、本書は多少癖がありますが、ソフトウェア開発のポイントを現実に即して解説しています。LaravelはWeb開発のフレームワークですが、コマンドラインツールの開発を使用し、設計のポイントを解説しています。本格的なWebシステムを構築するとなると、コマンドラインツールの実装も必要となるでしょうから、知っていて損はないでしょう。

Web開発編では、BootstrapとJavascriptを使用した開発を大まかに体験します。実際、コマンドライン編までで、APIの基礎部分は完成しているため、手間がかからず実装されて行きます。

読むだけなら、あまり役立ちそうもありませんが、内容を一緒に実行すれば、初心者から中級者の方のレベルを一段引き上げることができるでしょう。

Hirohisa Kawase
Hirohisa Kawase

「こんな、中年のおやじが、オヤジギャクをばんばん言っている本をどうやって訳せばいいんだろう?」と随分悩みました。しかし、「なんだ、いつもの俺のまま、訳せばいいんじゃん」と気付き、楽になりました。パンチカード?読み込ませたことあります。ええ、ほんの数回ですけど。緊張しました。(何のこと?本書をお読みください。)

さて、本書は多少癖がありますが、ソフトウェア開発のポイントを現実に即して解説しています。LaravelはWeb開発のフレームワークですが、コマンドラインツールの開発を使用し、設計のポイントを解説しています。本格的なWebシステムを構築するとなると、コマンドラインツールの実装も必要となるでしょうから、知っていて損はないでしょう。

Web開発編では、BootstrapとJavascriptを使用した開発を大まかに体験します。実際、コマンドライン編までで、APIの基礎部分は完成しているため、手間がかからず実装されて行きます。

読むだけなら、あまり役立ちそうもありませんが、内容を一緒に実行すれば、初心者から中級者の方のレベルを一段引き上げることができるでしょう。

Table of Contents

    • 謝辞
    • 改訂履歴
      • 感謝の辞
    • 協力のお願い
      • 翻訳
    • Github上のソースコード
  • ようこそ
    • 第1章 この本の目的
      • この本で行わないこと
      • では、何を教えるのでしょう。
    • 第2章 読んでいるのは、誰ですか?
    • 第3章 私は誰でしょう?
    • 第4章 Laravelって、何?
    • 第5章 Laravel使用の正当性
    • 第6章 なぜプログラマーはLaravelを好むのか
    • 第7章 Wordpress:良い点、悪い点、ひどい点
    • 第8章 本書の規約
      • どんなOSを使用しているか?
  • パート1 設計哲学と原則
    • 第9章 ヤッハー!カウボーイコーディングは最高だぜ
    • 第10章 プログラマーは全員違う
      • 素早い試金石
    • 第11章 分離は素敵
      • 全ては脱毛のために
      • シンプルな分離の例
    • 第12章 WETプログラムを行うな
    • 第13章 依存注入
      • ステップ1 依存の決定をクラスのレベルへ移動する
      • ステップ2 手動で注入する
      • ステップ3 自動注入を使用する
    • 第14章 制御の逆転
      • 一般的な例
      • IoCコンテナ
    • 第15章 契約としてのインターフェイス
      • インターフェイスはコードを隠す
    • 第16章 堅牢(SOLID)なオブジェクト設計
      • 単一責任原則
      • 開放/閉鎖原則
      • リスコフ置換原則
      • インターフェイス分離原則
      • 依存逆転原則
    • 第17章 設計の汚い、小さな秘密
      • 小説家のようにプログラミングする
  • パート2 アプリケーションの設計
    • 第18章 どんなアプリケーションを作成するのか?
      • アプリケーションの名前
      • GTDとは何?
    • 第19章 Laravelのインストール
      • プロジェクトを作成する
      • プロジェクトの構成
      • 不必要なディレクトリーを削除する
      • ソースディレクトリーを作成する
      • Composerをupdateする
      • インストール結果を確認する
    • 第20章 ToDoリストを設計する
      • データーを設定する
      • Laravelの設定と環境
      • ToDoリストはどの様な感じになるのか
      • 最初のリストとタスクオブジェクト
      • TodoRepositoryInterface
    • 第21章 タスクについて考える
      • TodoTaskInterface
      • TaskCollectionInterface
      • 素晴らしきFacadeの世界
    • 第22章 TaskListInterfaceの作成
      • TaskListInterface
      • 小さな再利用
    • 第23章 テキストファイルのフォーマット 
      • ファイルフォーマットのルール
      • リスト上のタスクのルール
      • それぞれのリストをどう分類するか
    • 第24章 アプリケーションの機能
      • 機能のながーーいリスト
      • Todoファサードの使用
    • 第25章 ファサードの計画
      • ファサードの要素
      • Todoファサードクラスシェル
      • Todoファサードの実装
      • Todoファサードの実装をテストする
      • 一緒にする
      • Todoファサードをテストする
    • 第26章 途中のリファクタリング
      • 霧立ち込める森林の中で
      • TaskListInterface
      • TaskCollectionInterface
      • TodoTaskInterface
      • テストで締めくくる
    • 第27章 TodoManagerクラスに取りかかる
      • TodoManager::makeList()
      • Mockeryのインストール
      • TodoManager::makelist()をテストする
    • 第28章 TodoManagerクラスを仕上げる
      • TodoManager::allLists()を作成する
      • TodoManager::allLists()をテストする
      • TodoManager::get()を作成する
    • 第29章 ListInterfaceを実装する
      • TodoListシェルを作成する
      • ListInterfaceを結合する
      • The TodoList::__construct()
      • TodoList::save()の実装
      • TodoList::set()とTodoList::get()を実装する
      • TodoList::set()とTodoList::get()をテストする
      • TodoList::save()をテストする
    • 第30章 TodoListクラスを仕上げる
      • 「リスト属性」メソッドを完了させる
      • TodoList::load()の削除
      • TodoList::archive()の実装
      • TodoList::taskAdd()の実装
      • 最後の3つ、TodoList::tasks()、TodoList::taskSet()、Todo::taskRemove()
    • 第31章 タスクコレクションとタスククラス
      • TaskCollectionクラス
      • Taskクラス
      • インターフェイスを結合する
    • 第32章 TaskCollectionとTaskクラスをテストする
      • Taskクラスをテストする
      • Taskクラスの中の間違いを修正する
      • タイムゾーンの設定を修正する
      • TaskCollectionクラスをテストする
    • 第33章 TodoRepositoryの実装
      • リファクタリングを少々
      • TodoRepository
      • テストデーターを作成する
      • リポジトリーのテスト
  • パート3 コンソールアプリケーション
    • 第34章 Artisanをスッキリさせる
      • 30秒でArtisan
      • コマンドはどこにあるの?
      • デフォルトのコマンドを取り除く
    • 第35章 コマンドの計画
      • 計画の計画…メタ計画
      • アプリケーションのコマンドリスト
      • 新しいリストを作成する
      • 全リストのリスト
      • リストを編集する
      • リストのアーカイブ
      • リストのリネーム
      • タスクの追加
      • タスクを完了にする
      • タスクの一覧
      • タスクの編集
      • タスクの削除
      • タスクの移動
      • 最終的な全コマンドの一覧
    • 第36章 擬似コーディング
      • リスト作成擬似コード
      • リスト削除擬似コード
      • 全リスト一覧表示擬似コード
      • リスト編集擬似コード
      • リストアーカイブ擬似コード
      • アーカイブの解除擬似コード
      • リスト名変更擬似コード
      • タスク追加擬似コード
      • タスク実行擬似コード
      • タスク一覧表示擬似コード
      • タスク編集擬似コード
      • タスク削除擬似コード
      • タスク移動擬似コード
      • 擬似コードで最後に考えたこと
    • 第37章 ヘルパー関数を使用する
      • よく使われる関数
      • ヘルパー関数を作成する
      • ヘルパー関数のユニットテスト
      • pick_from_list()の作成
      • pick_from_list()をテストする
    • 第38章 ListAllCommand
      • 計画
      • ListAllCommandの作成
      • ArtisanにListAllCommandについて知らせる
      • fire()メソッドを少し肉付けする
      • Symfonyのテーブルヘルパーを使用する
      • taskCount()のリファクタリング
      • リストIDのソート
    • 第39章 CreateCommand
      • 計画
      • CreateCommandの作成
      • all_null()ヘルパーを追加する
      • CommandBaseを拡張する
      • fire()の実装
    • 第40章 UncreateCommand
      • 計画
      • UncreateCommandを作成する
      • コマンドのスタックトレースを取得する
      • 実在するリストのため、askForListId()を実装する
      • 小さなクリーンアップ
      • ユニットテストの修正
    • 第41章 EditListCommand
      • 計画
      • CommandBaseの使用
      • EditListCommandを作成する
      • ArtisanにEditListCommnadを知らせる
      • EditListCommandの事前テスト
      • EditListCommand::fire()を仕上げる
    • 第42章 ファイルと設定のリファクタリング
      • 設定をリファクタリングする
      • LaravelのFileクラスを使用するようにリファクタリングする
    • 第43章 AddTaskCommand
      • 計画
      • AddTaskCommandの作成
      • fire()メソッドにコードを追加する
      • 手動テスト
    • 第44章 DoTaskCommand
      • 計画
      • DoTaskCommandを作成する
      • CommandBaseを更新する
      • DoTaskCommandをテストする
      • バグを潰す
    • 第45章 ListTasksCommand
      • 計画
      • ListTasksCommandを作成する
      • ListTasksCommandをテストする
    • 第46章 自分のドックフードを食べる
      • 「自分のドックフードを食べる」とは何ですか?
      • gsd ToDoリストの準備
    • 第47章 EditTaskCommand
      • 計画
      • str2bool()ヘルパーを追加する
      • EditTaskCommandを作成する
      • TodoList save()のリファクタリング
      • EditTaskをテストする
      • ドッグフードする
    • 第48章 ArchiveListCommandとUnarchiveListCommand
      • 計画
      • コマンドを作成する
      • ArchiveListCommandを更新する
      • CommandBaseのバグ修正
      • UnarchiveListCommandを修正する
      • ドッグフードする
    • 第49章 RenameListCommand
      • gsd:listのタイトル後の空行
      • RenameListCommandの計画
      • RenameListCommandを作成する
      • ListInterface::delete()を実装する
      • ドッグフードする
    • 第50章 もう一度、リファクタリング
      • CommandBase::abort()を追加する
      • askForListId()への追加
      • gsdヘルプの整合性を確認する
      • ListInterface::delete()を使用する
      • 変更したファイル
      • ドッグフードする
    • 第51章 RemoveTaskCommand
      • 計画
      • RemoveTaskCommandを作成する
      • ドッグフードする
    • 第52章 MoveTaskCommand
      • 計画
      • MoveTaskCommandを生成する
      • ドッグフードする
    • 第53章 リスト間のタスク一覧
      • 計画
      • ListAllCommandの更新
      • ドッグフードする
    • 第54章 コマンドの別名とgsdシェルスクリプト
      • コマンドの別名
      • エイリアスとマクロの計画
      • 別名の実装
      • Bashスクリプト
      • ドッグフードする
    • 第55章 コンソールアプリの次は何?
  • パート4 Webアプリケーション
    • 第56章 Webサーバーを準備する
      • Webサーバーのパーミッション
      • Apacheを使用する
      • Nginxを使用する
      • PHPの組み込みサーバーを使用する
      • You have arrived
    • 第57章 Webアプリケーションの計画
      • 最初のアイデア
      • AJAXコールの計画
      • Javascriptオブジェクトの設計
      • ドッグフードする
    • 第58章 Webページをモックアップする
      • Bootstrapを用意する
      • 基本的なテンプレート
      • モックアップのために、テンプレートを拡張する
      • ドックフードする
    • 第59章 ユーザーへのフィードバックを追加する
      • ビューの構造
      • スケルトンを構築する
      • gsdのスタイルとJapvascriptを追加する
      • メッセージボックスの追加
      • メッセージボックスを関数にする。
      • エラーメッセージ関数を実装する
      • ドックフードする
    • 第60章 AJAXルートのセッテング
      • リソースコントローラーを使用する
      • ルートを完成させる
      • コントローラーを作成する
      • ListControllerスケルトンを完成させる
      • ListControllerメソッドをテストする
      • ドッグフードする
    • 第61章 トップナビバーを追加する
      • パーシャルビューを作成する
      • デフォルトリストをロードする
      • ナビバーを構造化する
      • 最初のAJAX呼び出しを作成する
      • サーバーサイドでREST対応する
      • ドックフードする
    • 第62章 トップナビバーを仕上げる
      • ナビバーにJavascript関数を結びつける
      • 結果をナビバーにロードする
      • ドッグフードする
    • 第63章 サイドナビゲーション
      • レイアウトを更新する
      • サイドバーを作成する
      • AJAXの呼び出しを完成させる
      • Javascriptを更新する
      • ドッグフードする
    • 第64章 タスク
      • 反復 No.1 基本構造
      • 反復 No.2 アクティブなタスクを表示する
      • 反復 No.3 完了済みタスクの表示
      • ドッグフードする
    • 第65章 タスクの削除
      • TaskInterfaceのリファクタリング
      • コントローラーを更新する
      • doDelete() Javascriptメソッドの更新
      • 完了フラッグを切り替える
      • ドッグフードする
    • 第66章 タスクの追加と編集
      • モーダルタスクフォーム
      • Javascript
      • taskboxSaveを仕上げる
      • ドックフードする
    • 第67章 リストのアーカイブとアーカイブ解除
      • AJAX archiveメソッドを実装する
      • AJAX archive()メソッドを呼び出す
      • AJAX unarchiveメソッドの実装
      • AJAX unarchive()メソッドを呼び出す
      • ドッグフードする
    • 第68章 リストの作成とリネーム
      • リストモーダルを追加する
      • リスト生成Javascriptを追加する
      • AJAX storeを呼び出す実装
      • 名前変更Javascriptの実装
      • AJAX rename呼び出しの実装
      • ドックフードする
    • 第69章 移動と、それから…
      • タスク移動コマンド
      • 次はどこへ行くのでしょうか
      • 最後に、ありがとうございました。
  • 追補
    • 追補1 Composer
    • 追補2 PHP Unit
    • 追補3 Apacheの準備
      • Apacheのインストール
      • パーミッションの修正
      • 名前付き仮想ホストの使用
      • Ubuntu/Mintで仮想ホストを設定する
    • 追補5 Nginxの準備
      • Nginxのインストール
      • パーミッションを修正する
      • Ubuntu/Mintで仮想ホストを準備する

Leanpubは無条件かつノーリスクで100%の満足を保証します

Leanpubでお買い上げいただいた書籍は、ご購入後45日以内であれば全額返金いたします。払い戻しはわずか2クリックで完了します。払い戻し処理は手作業で行うため、完了まで数日かかる場合があります。詳しくは利用規約をご覧ください。

Write and Publish on Leanpub

Authors and publishers use Leanpub to publish amazing in-progress and completed ebooks, just like this one. You can use Leanpub to write, publish and sell your book as well! Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks. Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. It really is that easy.

Learn more about writing on Leanpub