VOYAGE GROUPさんのインターン「Treasure」に参加してきたお話【講義パート3】

インターン振り返り
Tomu Obata
📅2019/9/5

Treasureという3週間で、講義+チーム開発を行うインターンに参加してきた時の振り返りになります!本記事では講義パートについて書いています📝

4日目 8/15(木)

データベースの講義

データベースの種類について

RDB

DWH

KVS

データベースの選択と特性

ACID

1. Atomicity(原子性)

2. Consistency(一貫性)

3. Isolation(独立性)

4. Durability(永続性)

BASE

などの内容を最初の講義で学びました。

グループワークのモデリング実践入門

そして、次はグループワークに入る前にモデリングの講義がありました。

データモデリング

データ≠情報

エンティティとは

モデリングの技法

1. 論理モデルの作成

2. 論理モデルから物理モデルへの変換

モデリングの講義の後は、3人チームとなって架空サービスのデータモデリングを行い、migrationを適用しました。なぜ、このようなテーブル設計にしたのか3人で何度も見つめ直すことで仕様漏れの防止に繋がったと思います。

社内LTにも参加しました

どれも非常に楽しい内容で充実した時間になりました。(進捗を最高にするイヤホン・ヘッドホンの選び方やBash Scriptで3分APIサーバー作成など笑)

美味しくいただきました!
美味しくいただきました!

5日目 8/16(金)

中間課題

5日目は中間課題の発表がありお題は、「最高に面白い何かを作ってください!!」というものでした。何を作ろうかと考えた時に、最近困っていることは何だろうと思い書き出していきました。

困っていること

1. 前に見ていたページを探したいと思った時に、開いているタブが多いと、ページタイトルが見切れてしまい切り替えることが困難

2. 見ているページをスマートフォンやiPadですぐに見たいときに、Slackなどで送るのは手間

3. Chromeのタブをたくさん開いていると、メモリを沢山消費しているので開いているが不要なタブを削除したい

タブを開きすぎている様子
タブを開きすぎている様子

上記の問題の解決策

  1. 開いているタブの一覧を表示して、タップするとそのページに遷移できるようにする
  2. 開いているタブのQRコードを読み取ることで、スマートフォン・iPadでも別のサービスを経由することなく瞬時に開くことができるようにする
  3. 複数ページを開いている際に「いくつタブを開いているのか」すぐに見ることができ、知りたい情報が記載されているタブがどれだったのか、「タイトル」「ロゴ」を表示して知ることができるようにする

そして、Chrome APIを使ったChromeプラグインを作ろうと決めて開発していきました。

8/17,18(土日)

オフィスで行き中間課題に取り組んでいました。今回のChrome拡張を作る上で使用した技術は、 React, ChromeAPI, Material-UIです。Chrome拡張のデバッグでは、React Developer Tools を使うことができなかったので大変でした笑

Reactは、あまりキャッチアップし切れていない現状でしたが、少しずつ書けるようになってくると、ライブラリ・ドキュメントの充実度が高くて楽しくなってきました。今回の中間課題に取り組んだことで、Material-UIやAtomic Designを意識したコンポーネント分割には少しずつ慣れてきて、後半のチーム開発でも活かしていけたかなと感じています。

6日目 8/19(月)

中間発表

最終的に出来上がった僕の成果物は以下のような画面になります。

Chromeプラグインの動作画面
Chromeプラグインの動作画面

「QRコードを表示」ボタンにマウスオーバーすると、それぞれのQRコードが表示されます。 実装したかった機能は動作するので、UIを少し整えてchromeウェブストアにリリースしようと思います。

【2019/12/19 追記】リリース!

Active Tab Listerというアプリ名でリリースしました!良ければ使ってみてください😄

セキュリティの講義

午後からは様々なセキュリティリスクや、攻撃手法(XSS, SQL Injection, セッションハイジャックなど)について学びました。今後は、脆弱性が生まれてしまうコードは書かないように気をつけていきたいです。

7日目 8/20(火)

認証の講義

午前中は認証の講義で、自前で行う古典的Cookie認証やOpenID Connectなどついて学びました。OpenID Connectのよくない実装例と、推奨する実装例として以下のようなものがあります。

よくない実装

推奨する実装

講義で学んだ重要なことを要約すると、ライブラリを選定できる知見が必要

途中で株式会社fluct COO 望月さんのLTがありました

内容をまとめると、

インフラの講義

午後はインフラの講義で、Application Load BalancerやCI/CDについて学びました。講義を受けて、後半のチーム開発ではCI/CDを回して動く状態を継続し小さいスプリントを回していきたいと思いました。

チーム開発はその4へ!

SHARE

スポンサーリンク