一日目はインターン参加前にお願いした事前課題の講評をCTOのid:motemenから行いました。人事からのオリエンテーションや環境設定など、はてなで一か月インターン生活を過ごしてもらう為のセットアップが行われます。夜はお待ちかねの歓迎会です。東京、京都オフィスをテレビ会議でつなぎ、個性豊かなインターン生の自己紹介で盛り上がりました。
現代の Web アプリケーションを構成する技術スタックと、それを実装する方法について講義を行いました。 Web アプリケーションを構成する技術スタックは、HTTP の基礎的な話題から、セキュリティなどの文脈を踏まえた現在のベストプラクティスについて紹介しました。また、Go 言語で Echo フレームワークを用いてシンプルな Web アプリケーションを実装することで、実際に手を動かしながらそれらの技術を一通り習得できるよう目指しました。
講義では関係データベースの基本的な概念と、実際にデータを操作するためのMySQLで使えるSQLについて学びます。また気をつけてもらいたい基本的なパフォーマンス対策のことについても触れ、後半過程でチーム配属された際にも意識できるようにします。 課題では、前半過程で作成するブログアプリケーションのスキーマ設計やアプケーションからデータベースに接続する実装を行います。
Webアプリケーションのセキュリティについて、およびWebアプリケーションの提供するAPIについての二本立てです。セキュリティについては、Webアプリケーションにおけるセキュリティの重要性や、典型的な脆弱性やその対策について学びます。またAPIについては、WebアプリケーションのAPIとして広く使われるRESTやGraphQLといった形式についてそれぞれの特性に加え、GraphQLサーバーの実装について学習します。課題では、自身の作成しているアプリケーションに各種セキュリティ対策を施し、またGraphQLを使って、翌日のフロントエンド開発の下地となるAPIを実装します。
Webブラウザ上で動作するリッチなWebページを構築する技術について学びます。 講義では HTML, CSS, JavaScript の基礎知識から Yarn や webpack などのフロントエンドエコシステム、TypeScript と React を用いたシングルページアプリケーションの実装方法までをカバーします。 課題では React を活用した動的なページ遷移や、4日目で作成した GraphQL API の呼び出し、CSS フレームワークを活用した UI の構築を実践します。
5日目まではアプリケーションの講義でしたが、インフラ講義では"それ以外"、そのアプリケーションをプロダクションレベルで動かすために必要な要素や技術を一通り講義しました。 Webサービス黎明期〜最近のサーバーレスな世界観まで歴史に沿って広い範囲をカバーしました。
前半講義では、新しいものをつくる際のデザイナーの思考プロセスについて講義しました。無の状態からどのようにしてコンセプトを決めてデザインに落とし込んでいくか、実際の事例を交えつつ紹介しました。 後半講義では、WebサービスにおけるデザインとUIの基本的な考え方と作り方を軸に、それをどのように実際のサービスに落とし込んでいるかを事例を交えて紹介しました。
Amazon Web Service(AWS)様より講師をお招きしての講義とハンズオンを行いました。 前半はAWSのサービスついての講義を行い、最近では当たり前に使えるようになったクラウドサービスについての理解を深めました。 後半ではより進んだ内容として、AWS Fargate を利用して自分のアプリケーションを動かし、さらに修正を加えてデプロイするフローを回す、というハンズオンに取り組みました。
「企画とは何か」から始まり、Webサービス企画の歴史の変遷から現在のWebサービスを取り巻く企画の概要と、その周辺領域について解説しました。加えて、飛躍的な発想が必要な企画をする時のために「アイデアの閃き方」についても分解して解説し、ワークショップを通じて実践までを行いました。
はてなのコミュニティはユーザーが投稿するコンテンツを軸に自然発生的に形成されており、そのようなコミュニティを設計し運営するにはさまざまな課題があります。この講義では、はてなで一番長い歴史を持つサービス「人力検索はてな」を取り上げ、サービス設計の特色や、サービス成長のため行われたさまざまな施策とその結果を失敗事例も含めて検証し、持続的に価値を提供できるコミュニティの設計とその意義について考えることを狙いとします。
後半課程でPerlを使うインターン生に向けて、2時間でPerlを書けるようになるというブートキャンプを実施しました。文法から始まり、Perlによるオブジェクト指向プログラミングが行えるようになれば完了です。強行軍でしたが、みんなちゃんと最後まで食らいついてきてくれました。サーイエッサー!