Yahoo! JAPAN Hack Day 2019 ハッカソン 参戦記

12/15(日)

メンバー

2年前にドワンゴのインターンに参加した6人。我々のチーム以外からも当時のインターンメンバーが2人出場していた。得意分野の内訳はフルスタック・フロント・フロント・フロント・フロント・低レイヤー。

作ったもの

サーバーの異常事態などの通知を受け取ったときに、ラズパイ経由で予め指定したルーティンでデバイスに通電して物理的な通知を行えるソリューション。推しはビジュアルプログラミングができるルーティン作成画面と、ラズパイ側がシングルバイナリであること。デモンストレーションではパトランプとウォシュレットを用いた。

プレゼン動画

1:20:18辺り、24番秘密結社Dev。

やったこと

フロントエンド人材が余ってたので特に技術的なタスクはなかった。が、そういうポジションにいたおかげで個別の技術にとらわれず全体でモデルを共有する重要性がわかった感じはある。

  • リーダーと一緒に諸手続き
  • 買い出し
  • 適当にメンバーの後ろに座って悩みを聞く
  • HTMLペラ1枚書いた
  • プレゼンのアイデア出し
  • 寸劇に出演

学び

技術的な貢献の少なさに反して大きな学びがあった

firebaseがすごい

FunctionsとFirestoreを使った。サーバーやDBの設定を自分でしなくても、Firebaseが提供するAPIをTypeScriptで叩くだけでシームレスに連携できる。細かいチューニングをしたいときには不向きだろうが、素早くプロダクトを世に出すという点ではとても便利なサービスだと感じた。

DDDの意義がわかった

最近は『エリック・エヴァンズのドメイン駆動設計』を読んでいる。この本の序盤では作るべきものをよく考えてモデルに落とし込むことの重要性が語られている。仕事だとすでに完成して動いているプログラムを改修することが多いのであまり実感が湧かなかったが、チームで新しいプロダクトを一から作るとなると書かれていることの意味がよくわかった。具体的にはエンティティと値オブジェクトの区別とか、仕様を精査しながら本当に必要な概念を抽出して名前やオブジェクト構造に反映するとか。

その他お気持ち

  • 軽い気持ちで徹夜しようとしたらめちゃくちゃしんどくて、結局効率を落としてしまった。会社員になったせいで規則正しい生活に体が慣らされてしまっている。
  • ハッカソンで評価されるためにはクリエイターとしての視点の鋭さとエンジニアとしての腕前の高さを併せ持つ必要がある。僕はエンジニアのことを「技術を使って問題を解決する人」と考えているが、問題を見つけ出す能力も育てていく必要があるのか、別に気にしなくてもいいのか。答えは出ていない。
  • 開始前に参加者を集めてキメ台詞を叫びながら写真を取ったり、SNSバズ賞があったり、審査員にタレントを呼んだり、Yahooはハッカソンの参加者にある程度の社会性があることを想定しているんだなと思った。
  • スポンサーが提供してくれたCOMP完全食は未来の味がした。

至福のもたれかかり

12/12(木)

僕はエレベーターの閉まるボタンを押さずに自動で閉まるのを壁に寄りかかってボーッと待つのが好きだ。時間が至情の価値とされる現代においてこれほどの贅沢があるだろうか。

保護中: 私信20191215

このコンテンツはパスワードで保護されています。閲覧するには以下にパスワードを入力してください。

飲酒飲酒成人男性プログラミング

12/11(水)

我が家の天気をビジュアライズするsencha.chao.tokyoでマウスホバーでツールチップが表示されるようになった。サーバーサイドレンダリングをやめたからだ。

この変更は飲酒しながら同じく飲酒している成人男性に実況しながらやった。そうしたら難しそうな変更も一発で通った。天才だ。よってこのプログラミング手法を飲酒飲酒成人男性プログラミングと名付ける。

エヴァンズのDDD本が全然わからない

12/11(水)

かれこれ1ヶ月くらいエリック・エヴァンスのドメイン駆動設計を読んでいる。3章までは全然わからなくて、4章・5章で少しわかるかなと思ったが6章でまたわからなくなった。

内容が難しく僕の実力が追いついていないという面はもちろんあるが、それにしても文章が読みづらすぎる。構成も悪いし翻訳も悪い。時間をかけて頑張って読んでみたけど結局何も言ってなかったとか同じことを繰り返していたということが多い。腹が立つ本だ。

斜めにまっすぐ歩けますか?

12/9(月)

僕のデスクのディスプレイはパーティションに対してきれいに平行に設置されているが、パーティションの奥に見えるブラインドがパーティションに対して斜めなので、ブラインドとディスプレイを同時に視界に入れるとディスプレイが斜めに置かれているように錯覚してしまう。

道路を歩いていると、逆側の歩道に渡りつつ道に沿って進みたいことがある。こんなとき、最短ルートは車道を大胆に斜めに横切ることだ。これはなかなか難しい。どうしても渡ってから進んでしまう。

平行・直角であることに縛られて己の進むべき道を見失っていないか?