☄️

はじめてのポートフォリオサイトを作りました。

2023/08/28に公開

はじめに

フロントエンド学習の一貫で、はじめてポートフォリオサイトを個人開発で作りました。
本記事では、ポートフォリオサイトを作ったモチベーションと技術構成について紹介しようと思います。

※2024/07/19 内容が少し古くなっていたため、ポートフォリオサイトと当記事の内容を一部変更しています。

https://www.bono-website.com/
https://github.com/norm02/bono-website

モチベーション

フロントエンドの基礎レベルの学習を一通り終えたので、今できる技術でシンプルなポートフォリオサイトを作りたいという気持ちがありました。
https://bonomodel.hatenablog.com/entry/2023/07/11/183505
ちょうどTechTrainで「あなたのポートフォリオ、拝見します。」というイベントが開催されるタイミングだったので、これを機にポートフォリオサイトを作成し、レビューしていただこうと思いました。
https://lp.techtrain.dev/

サイト概要

コンセプト

どうせ作るなら、できるだけ軽量シンプルで、ある程度誰でもアクセスしやすいポートフォリオサイトにしようと思っていました。
また、テスト自動化をするにあたりユーザーのふるまいを意識した実装を行うことが多いので、サイトもできるだけユーザビリティ、アクセシビリティのあるものになるよう心がけました。
※2024/07/14 はてなブログやZennの記事を、APIを通じてポートフォリオサイトにのせるようにしました。
Articles
※参考にした記事
https://korosuke613.hatenablog.com/entry/2019/06/27/223528
https://zenn.dev/h_ymt/articles/5e44b4967f6764

技術スタック

技術スタック 用途
Next.js,TypeScript,Tailwind.css UI
Vercel Hosting・CI/CD
Vitest ユニットテスト
Cypress,※Playwright E2Eテスト
Github Actions CI

※2024/07/14 Playwrightを追加しました。

ポートフォリオ作成中に、取り組んだ学習教材

Learn Next.js

https://nextjs.org/learn/foundations/about-nextjs

GitHub Actions - The Complete Guide

https://www.udemy.com/course/github-actions-the-complete-guide/

JavaScript Unit Testing - The Practical Guide

https://www.udemy.com/course/javascript-unit-testing-the-practical-guide/

PickUp

軽量シンプル

Next.js&Vercelで、静的サイトを自動ビルドと自動デプロイすることができます。
実機(Web/スマホ)でも確認したりしましたが、スマホアクセス時の軽さに自分でびっくりしました。

PageSpeed Insights

https://pagespeed.web.dev/
※ 2024/07/14時点での結果
sp
pc

テスト自動化

サイト自体がシンプルなので、凝ったテストスクリプトは作っていません。
ユニットテストをVitestで実装し、E2EテストをCypressで実装しています。
※2024/07/14 Playwrightを追加しました。
GithubActionsでCIを回したいと思い、Cypressをworkflow_dispatchで、Playwrightをschduleで実装しています。
https://docs.github.com/ja/actions

アクセシビリティ

テスト自動化をするにあたり、ユーザーの振る舞いに着目することが多いです。
そのため、自分でポートフォリオサイトを作る時は、ある程度ユーザビリティ・アクセシビリティを確保しようと思っていました。レスポンシブ対応もしています。

lighthouse

アクセシビリティといっても、Material DesignTest Automation Universityの講座などで少し学習した程度です。
そのため、lighthouseを使って、お手軽にチェックしていました。
https://chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk
lighthouse

taba11y

キーボード操作は、アクセシビリティにおいて重要です。
私はマウスをよく使うタイプなのですが、プログラミングをやるようになってショートカットキーやTABキーを幾分使うようになりました。
Chrome拡張機能でさくっと使えるので、便利です。
https://chrome.google.com/webstore/detail/taba11y/aocppmckdocdjkphmofnklcjhdidgmga
tab11y

上記のように、TABキーによる移動順を教えてくれるので、これをもとにtabindexを振っていきました。
https://developer.mozilla.org/ja/docs/Web/HTML/Global_attributes/tabindex

さいごに

このポートフォリオサイトを作ろうと思い始めたときが、2023年7月末あたりでした。
TechTrainのメンターさんに2回レビューをいただきました。
自分ひとりで開発していると、気づかないことを数多く教えていただきました。
とてもありがたかったです。
今後もポートフォリオサイトとして、また、実装してみたい機能を追加する媒体としても、ちょくちょく触っていこうと思います。

Discussion