第23回 デザイナー向けプログラム部 #p4d に参加しました

http://connpass.com/event/2639/
前々回のP4Dから作り始めたRailsアプリがあるので、それを進めたく参加。
既存のModelをhas_manyしてるModelを作りたかったのだけど、Rails Guides とか見て1人でやってみたんだけど詰んだので、教えていただいた。

色々わかったこととかやったこととか
  • イチからやり方聞いてどうしたらいいんですかー、ってなりがちなんだけどそれよくない。やってみてわからなかったことをはっきりさせて、わからない部分だけきくのがよいと思った。
  • 自分がわからないこと聞くだけで、デザイン知りたくて来てるエンジニアさんもいるのにあまりフィードバックできず申し訳なかった。ので、せめてわしが答えられる事を…と思い帰ってから急いで駄エントリ書いたらまさかの800ブクマ超えでびびった。
  • モデリング、色んなやり方が考えられるが、今回のケースの場合は中間テーブルをもたせず、特定のカラムが特定の値だったものだけ紐付けるという条件付きhas_manyをやるのがいいと教わった。ググってみたらなんかわかったような気がしたので今度やってみよう。
  • データベース設計は難しい。。
  • Rails3 レシピブック便利。何か具体的な方法を知りたくなったら見るべし。
  • 毎週月曜日始まり日曜終わりでstart_dateとend_dateを持つテーブルがあるのだけど、どうやってデータを作るべきか。(そのデータはある程度未来のぶんまで必要である)
    • 何か別のユーザーアクションをトリガにしてデータを作るのも良いけどおそらく色んな矛盾が出る。
    • crontab回すほどのことでもない
    • イケてないけど、カレンダー見ながら最初にある程度の未来まで手入力でデータを入れておけば、とりあえずそれで良さげということになった。動くのが正義だ!
  • わからないことググってコピペ駆動でやってると、やはり限界が生じる。どうしたらいいか。
    • Rails Tutorial をやるのがよい。MVCの基本的なことも結構書いてある。日本語版も作ってくださっているし、英語の勉強がてら英語でやってみてもいいかも。
    • Ruby on Rails Guides をちゃんとイチから読むのもよさそげ
    • Rails 頻繁に色々変わるので、本とかよりも公式に近いドキュメントを見る方が良さそう)
  • 何かどこかで変なことやってるらしくて、Herokuにpushする前に、なぜかいちいちassets:precompile しないとassetsの変更がHerokuに反映されない問題がありめんどい
    • ローカルのprecompile されたassets を一度クリーンするとHerokuが勝手にコンパイルするようになるっぽい
  • Gitでデザインのcommit、どのくらい分けてる?って聞かれたので以下のように答えた
    • デザインは割とページ単位(というか一つのviewファイル単位)で考えていて、1view内のデザインをイチからガッツリ作ったときは特に細かく分けない傾向にある。
    • Viewのマークアップと、SassとかのCSSは、"Markup for hoge#index" "Sass for hoge#index" みたいにしてcommitを分けてる。(後でSassだけ別branchにcherry-pickとかすることが多いので)
    • あと、commitわけても、デザイン部分は誰もコードレビューしてくれない・・・
    • 逆にViewにロジック入れてたり、Controllerを少しいじったり、JSやCoffeeScriptでなんかした場合は、レビューする人が見やすそうな範囲でcommit分けるようにしてる
    • 後から部分的にデザイン修正した場合は、できるだけ分割して、後から何を変えたかわかるようにしている…(が、細かすぎる変更をちょこちょこ色々やった場合は Fix detail of design みたいなので済ませてる)
  • (書き忘れた)デザイナーがプログラミング覚えるのって、デザイナーっぽいやり方をどうしてもしちゃうよね。抽象的な思考がやはり苦手だ、って話が面白かった。ホントそう。

みなさま、今回もありがとうございました。
Rails アプリ作るのが楽しくてしょうがないのだが、仕事の合間に気分転換、気分転換…と自分に言い訳しながらやってついつい夢中になってしまい本業に支障をきたすため、しばらく封印してる。。

Rails3レシピブック 190の技
高橋 征義 松田 明 諸橋 恭介
ソフトバンククリエイティブ
売り上げランキング: 169,162