Upgrade to Pro — share decks privately, control downloads, hide ads and more …

gtb_presen

 gtb_presen

Tatsumi0000

May 29, 2020
Tweet

More Decks by Tatsumi0000

Other Decks in Programming

Transcript

  1. 2

  2. 5

  3. 使った技術 • フロントエンド ◦ Vue.js(JavaScript) ◦ Vuetify ◦ VueRouter •

    バックエンド ◦ Go言語 ◦ gorilla ◦ gorm ◦ jwt-go • インフラ ◦ ConoHaVPS ◦ nginx ◦ MariaDB • その他 ◦ git(GitHub) ◦ ESLint ◦ GitHub Actions ◦ GitHub Wiki ◦ Netlify ◦ ZenHub Renée French 6
  4. フロントエンド • Vue.js(JavaScript) • Vuetify ◦ Vueアプリケーションで使える UIフレームワーク。簡単に「美しくモダンな UIデザイン」を実装することが 可能*1。

    • VueRouter ◦ ルーティングを制御するための公式プラグイン *2。 7 *1 Vuetifyアプリを作成するための環境設定 https://rightcode.co.jp/blog/become-engineer/vuetify-create-application-environment (2020/05/28 アクセス) *2 今さら聞けない?Vue Router https://qiita.com/hshota28/items/765cf903f055754f7557 (2020/05/28 アクセス) GitHubリポジトリ
  5. バックエンド • Go言語 ◦ 2009年にGoogleで開発されたコンパイル言語。 • gorilla/mux ◦ 軽量なWEBツールキット。ツールご毎にリポジトリが切られているため使用しない機能はインストール が不要。gorilla/muxはルーティングを提供。

    • gorm ◦ ORM(オブジェクト関係マッピング)。カラムの中身は作ってくれない。 • jwt-go ◦ Go言語でJWT(JSON Web Token)を取り扱うためのライブラリ。 8 GitHubリポジトリ
  6. JWT(JSON Web Token) • 属性情報(Claim)をJSONデータ構造で表現したトークンの仕様*3。 • 署名、暗号化ができる。 • <ヘッダ>.<ペイロード>.<署名>で構成。 11

    • 属性情報(Claim)の一部*4 ◦ sub ・・・ ユーザの識別子 ◦ name ・・・ フルネーム ◦ exp ・・・ 有効期限 ◦ iat ・・・ 発行した日付 *4 JSON Web Token (JWT) https://openid-foundation-japan.github.io/draft-ietf-oauth-json-web-token-11.ja.html (2020/05/28 アク セス)
  7. 14 バックエンドのディレクトリ構成 Makefile ・・・ Makefile go.mod ・・・ 依存関係のパッケージを管理* go.sum ・・・

    パッケージごとのチェックサムを管理 *6 main.go ・・・ エントリポイントを管理 pkg ・・・ パッケージを管理  auth ・・・ 認証を管理  db ・・・ データベース操作を管理  handler ・・・ ハンドラを管理  model ・・・ データベースのモデルを管理 *6 Golangのパッケージ完全に理解した←わかってない https://note.crohaco.net/2019/golang-package/(2020/05/28 アクセス)
  8. インフラ関連 15 • NginxによるWebサーバ機能の実装 ◦ Vue.jsで作成したWebページを公開できるよう、設定変更を行った。 • オレオレ証明書を用いたSSL機能の実装 ◦ httpsでアクセスできるようにはできたが、ドメイン取得までは行わなかったので、

      証明書エラーまでは取り除けなかった。 • MariaDBを用いたデータベースの実装 ◦ 今回は実装に至らなかったが、このサービスで使用できる仮のテーブルの作成。
  9. その他 • git(GitHub) • ESLint ◦ JavaScriptのための静的検証ツール *7。コーディング規約に準じていないとエラーを出す。スタイルは Airbnbスタイルにした。commit時に自動整形する。 •

    GitHub Actions ◦ CI/CDツール。今回は、フロントエンド開発でのみ使用。 GitHubにpushすると自動でビルドし、 Netlifyへ デプロイする。高速でビルドするために、依存関係をキャッシュするようにした。 • GitHub Wiki ◦ VSCodeの設定やPR中のコードを手元でレビューする方法を記述。 • Netlify ◦ 静的サイトをホスティングするための Webサービス。 • ZenHub ◦ Issueをチケットとしてカンバン方式で進捗を管理できるプロジェクト管理ツール。 *8 16 *7 ESLint最初の一歩 https://qiita.com/mysticatea/items/f523dab04a25f617c87d(2020/05/28 アクセス) *8 「ZenHub×GitHub」を軸としたアジャイルプロセスの作り方 https://codezine.jp/article/detail/11346 (2020/05/28 アクセス)