「みんなのウェディング出張1dayインターン@沖縄 2018」に参加してきました。
概要
去年は就活生として参加したインターンに、今年は内定者として参加しました。
あの何も分からなかった頃から約10ヶ月経つのかーと感慨深い思いに浸っていました。 前日に慌ててRubyを勉強して参加した記憶があるので、Ruby歴も約10ヶ月ということになります!
やったこと
Ruby, RSpecとRailsに一通り入門した後に、プロダクションコードにユーザーページのカバー画像を変更する機能を追加するというのをやりました。
Ruby入門
まずはRuby入門ということで変数定義から、最後はライブラリの読み込みやアクセサ定義までを解説されていました。 分かりやすかったです。
RSpec入門
ユニットテスト、インテグレーションテスト、アクセプタンステストなどテストの種類からRSpecの簡易テンプレの使い方までを解説されていました。 普段テストを書かないという人が多かったみたいなので、多くの人にとって有用だったと思います。 自分が一番勉強になっていたかもしれません。笑
Rails入門
Railsの歴史やディレクトリ構成などの基本から解説されていました。scaffoldもやりました。 短時間で解説なんてRailsの大きさを考えると不可能ですが、要点を絞りに絞った感じだったので初めての人もなんとなく理解出来たんじゃないでしょうか。
プロダクションコードを触って、カバー画像の変更機能を開発
hamlに慣れていなくてインデントをミスったり、メソッド定義の順番を間違えたりしつつも何とか最後まで辿り着けました。 一番最後にファイルサイズのバリデーションを実装しようという応用問題があったのですが、慌てていて普通にモデルから書いてしまいました。 この時はTDDを完璧に忘れていたので、反省。 テスト書くの好きになったので、もっと書いていきたいです。 あるべき振る舞いを先に定義していると、向かう先が分かっているので普通にコードを書きやすいと思います。
感想
プログラミング経験があればRuby,Railsを触ったことがなくても何とかついていける内容だったと思います。 ペースは少し速めでしたが。 去年とは内容も開発環境も変わっていましたが、確実に良くなっていました。 学生としては実際に動いているサービスのコードを触れるのは嬉しいですよね。 Cloud9は不慣れな人が多かったと思いますが、環境依存の問題を排除できるというのはメリット大きいですね。 会社のセキュリティ的にも良いはずですし。 デフォルトのファイル検索機能があまり精度が高くないっぽいので、c9コマンドを初めに入れておくと良かったのでは?とか思いました。 そうすればc9 openとか出来ますし。 個人的に学びになったことは色々あったんですが、印象的だったのはテストコードを書くときにtruthyとfalsy(スペルはfalseyではないですよね??)の話が出てきたことです。 英語で語尾にyをつけるときは「~っぽい」という意味ですよね。 つまり、「真っぽい」と「偽っぽい」というのがあるということです。 覚えていなかったところなんで、調べたことを載せておきます。
True and False vs. "Truthy" and "Falsey" (or "Falsy") in Ruby, Python, and JavaScript · GitHub
この記事に以下のように書いてあります。 "In Ruby only false and nil are falsy. Everything else is truthy (yes, even 0 is truthy)."
直訳すると、
Rubyにおいてはfalseとnilのみがfalsy。他の全てはtruthy(そう、0ですらもtruthy)。 ということらしいです。
Rubyの公式ドキュメントにもこのように書いてあります。
とにかく、Rubyの場合はfalseとnil以外は全て真なのですね。シンプルです。
前日の飲み会も懇親会も楽しかったです。 参加者の皆さん、mwed社の皆さんありがとうございました。 実験やって卒論書きつつ、入社前課題を頑張っていきます!!
追記
こんな面白いクイズも見つけました。