みんなのウェディング出張インターンの感想など
「TDDでWebサーバーを作ってみよう」
というお題でした。
はじめに会社の紹介やインターン生の自己紹介を軽く済ませて、テンポよく進んでいきました。
大事なことまず書いておくと、とても楽しかった!です。
Rubyを触るのは初めてで、TDDについてもなにそれ?って感じの初心者感満載なkousyでしたが、色々と学べました。
開発環境は
- Ruby2.42
- Git 2.15.0
- Atom
- Terminal
という感じで僕はやりました。
そして内容は
「テスト駆動開発とは」
「Webサーバーとは」
「HTTPとは」
などの基本を@1syoさんにご教授いただきました。
目次を引用しますが、その後はこんな流れでした。
- HTTPリクエストを受け取る
- パーサーを作る
- リクエスト行を解析する
- リクエスト行を配列で受け取る
- リクエスト行がない場合
- ヘッダーフィールドを解析する
- リクエスト行も一緒にする
- リクエスト行の格納先を作る
- 解析結果を格納する
- リクエストボディを扱う
- リファクタリングする
- HTTPレスポンスを作る
- レンダーする
- ファイルがない場合
- リファクタリングする
- レスポンスボディを表示する
- HEADメソッドか判定する
- ファイルサイズを動的にする
- 配信日時を動的にする
- ContentTypeを動的にする
- ファイルの情報を集約する
- Responseクラスから使う
- 手動テストしてみよう
- ネットワークに公開する
- デーモンにする
Ruby初心者には盛り沢山な内容でした。
この後にまたProgateでRubyIIやRailsを触ったのですが「あ、これインターンで説明してたやつだ!」って感じの発見があって、普段よりも学びが加速していた気がします。
やはりこういう場に参加していくのは大事ですね。
分からないところも多々あったのですが、mwed社のお二人やまささんやその周りの方に助けて頂いてなんとかついていけました。
正直自分の頭の中でコードとその挙動が一致していないところが多く、近いうちに完璧に理解してやろう!と思っています。
ところで、最近親戚が結婚したこともあって、ウェディング業界に少し興味をもってました。
新郎新婦専用のWebページがあって、そこで名簿を作ったり色々なリストを作ったりできるものがありました。僕はタイピングが速いということもあって、そのWebページを少し触りました。
エンジニアリングで効率化できる要素は色々とあるんだろうなーなんて思っていました。
そういう意味でもこのウェディング×エンジニアリングの組み合わせは面白いと思います。
懇親会で聞いた話ですが、ゼ○シィ一強のウェディング業界の構造はあまりよくなさそうです。
結婚式場は寡占状態のゼ○シィに掲載してもらうために高い掲載料を払っているそうです。
他にも、結婚式場の不透明な料金体系があるため、ユーザーとの間での情報の非対称性が生じているとか。
今はプログラミングの勉強ばっかりで、コード書くことに集中していますが、いずれはこういう大きな問題を解決していきたい!と思いました。
そんなわけでみんなのウェディングさん、学びの機会をありがとうございました。