blogソフトウェア開発と人生をやっていきますこの広告は、90日以上更新していないブログに表示しています。AWS最近まとまった時間ができたので、Web開発手法の勉強をしていました。Railsチュートリアルが体系的に学べて良いという話を聞いていたので、これを軸にしながら自分のWeb知識の穴を埋めていくことにしました。学ぼう一区切りついたのでまとめておきたいと思います。以下は勉強を始める前の私の知識です。Migrationなどの言葉は聞いたことがあるRubyを一行も書いたことがない普段はPythonとC++を書いている趣味でJSも少し書くCS的なインフラの基本技術は知っているが、IaaSやPaaSなどにはあまり明るくない*1参考書Railsチュートリアルをやる前に、参考書でWeb技術に基礎を固めました。最初にWebを支える技術を読みました。見るRESTの基本を学ぶのに非常に役立ちました。ステートレスやリソースなど、「なんとなく意味はわかるけど正確には知らない」知識を得ることができたり、実践的なAPI設計などが書かれていたりして非常に良い本だと思います。途中microformatsやAtomなど、今ではあまり使われていない技術に多くのページが割かれているので、興味がない人は適当に読み飛ばせばいいと思います。(Webの栄枯盛衰を感じる歴史としては面白いと思います。見る名著だと言われていますが、教科書的で結構退屈です。知っている知識が多かったので、私は適当に読み流しました。低レイヤーを学んだので、次は高レイヤーのIaaSやPaaSを学ぶことにしました。今回はAWSを選択しました。見る評判が良くて比較的出版が新しかったのでこの本を選びました*3。スクリーンショットなども多く、手を動かしながらサービスを満遍なく学習できて面白かったです。無料枠で十分遊べます。AWSはRailsチュートリアルにはあまり関係ないかと思っていましたが、一部ストレージサービスのS3を使う部分などがあり、学んだ知識を生かすことができました。Worldも書けない状態で特攻するのは嫌だったので、簡単に言語仕様をさらいます。公式ドキュメントを読みました。公式ドキュメントは量が少なく、あまりにもあっさりとしているので他の資料にあたりました。QiitaASCII.jp:Ruby超入門(前編)|Rubyで学ぶRuby特にRubyで学ぶRubyは面白かったです。Railsチュートリアルに取り掛かりました。基本的には演習問題に取り組み、erb(HTML)とCSS以外はコピペしない方針で進めました。Twitterライクなアプリを作る中でGitの使い方からマイグレーション、PaaSへのデプロイ、テスト駆動開発などを実践的に学ぶことがでます。思っていたよりもにWebの広範囲な知識が得られてやってよかったと思います。Gitのコミットの粒度やコメントの書き方などは普段の開発にも活かせる部分があり、Masterブランチ一本で開発していた自分のプロジェクトを見直すきっかけにもなりました。たくさんのことが学べる素晴らしいチュートリアルですが、それは裏を返せば非常に長大なチュートリアルであるということです。電子書籍版のPDFに換算すると800ページ以上あるので*4、結構挫折感は強いです。個人的には勢いに任せて一気にやるといいと思います。Railsチュートリアルのメモ以下はチュートリアルを進めながらのTipsやエラー回避、感想です。進めながらメモをとっているので、適当なことを言っている可能性があります。言語仕様ここはサラッと流せそうRailsの拡張も結構ある単なるRubyのコードを書くのであれば、モジュールを作成するたびに明示的にインクルードして使用するのが普通ですが、Railsでは自動的にヘルパーモジュールをインクルードしてくれるので、include行をわざわざ書く必要がありません。このfull_titleメソッドは自動的にすべてのビューで利用できるようになっている、ということです。http://qiita.com/tadsan/items/7baab2605a4d8ac1858epythonのスライスとrubyのスライスは仕様が違うので注意[0..7]としたときに、7自体も含まれる5章CSSを書くのが結構めんどくさい自分が普段書かないからサラサラかけなくてストレスなのかもHTTP技術の話これは、HTTP標準では技術的にリダイレクト後に完全なURLが要求されるためです。ほとんどのブラウザではどちらの方法でも動作します。Stampの値がおかしいことに気付くデフォルトではUTCになっている。:local正規表現がでてきた読むのがめんどくさくて、たぶんあってるだろうと思ってコピペする普段から正規表現に対してはこのスタンス。passwordはハッシュ化して保存するなぜ世の中のWebサービスはたまにパスワードを流出させてしまうのか平文でパスワードを保持していないのであれば、流出は起こり得ないのではないかどうやらハッシュを解読しているらしいhttp://www.itmedia.co.jp/enterprise/articles/1509/11/news050.html7章RESTに従ってデータベースを取得したサービスを設計し始めたResourceとしてデータを扱うdebuggerメソッド、とても便利。Params)すべての要素を送ろうとするとエラーが発生するpluralize英語を複数形にするメソッド。生PHPだと明示的にescapeしないといけないし、世の中を良くするためにはデフォルトで対策したほうがよい記憶トークンの使用はセッションハイジャックの対策にもなって一石二鳥PythonのselfとRubyのselfは似たような感じ?署名と暗号化を同時に行う。ほうがわかりやすいという説明、いまいちピンとこない前者のほうが何をしているか明確でいいと思うPython的な考え方かもしれないCookieをユーザが手動で削除してフォームを送信する場合を考慮してテストされてて、なかなか細かいブラウザはネイティブではDELETEリクエストを送信できないらしい知らなかった...。11章このへんでようやくedit_account_activation_urlの意味がわかってきた@がURLで使えないということを初めて知ったどうやってメール受信のテストをやるのかなあと思いながら読み進めていたけど、簡単にプレビューする方法がRailsで提供されているらしい。本番環境でメールがなかなか届かなくて失敗してるかと思ったけど、時間がかかっているだけだった。12章この章の序盤は本当に11章とやっていることの本質は変わらないっぽいチュートリアルで一番難しいのは、漏れがないようにテストを書く演習な気がしてきたようやくこの章でログインの管理が終わった。あることに注目してください。これはプログラミング言語によくある文法で、古くは1950年代中ごろに開発されたALGOLまで遡ります。;を使わない言語をはじめに使う人達も増えてきたんだろうな...。»プロフィールid:drilldripperプログラミングと将棋が好きです。(1)月別アーカイブはてなブログをはじめよう!drilldripperさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。