はじめに
エンジニアとして技術力を磨きたいと思い、実際にアプリを設計から実装まで一貫して体系的に学習することを実践しました。
ただ、作りたいアプリがパッと思いつかなかったためQiitaを参考に必要な機能に絞ったクローンアプリを選択しました。
使用技術
案件では主に保守運用として調査タスクをメインとしているためコードリーディングは行いますが実装する機会は少ないため技術部分を深く理解できていないところがあるなと自分で感じることがあります。
そのため技術に関しては案件で利用しているrailsとnuxtを選択して実際にその言語で実装をしてみることによりベースとなる実装面での知識を深めていきたいなと思いました。
Ruby on rails 7.0.6
Nuxt 2.15.8
Mysql 8.0
Docker
アプリ概要
Qiitaといえばエンジニアがアウトプットや質問を投稿できるプラットフォームですが、今回はアウトプットを投稿できる簡易的なTODOアプリに絞って開発をしていくことにしました。
- ログイン機能
- ユーザー登録情報を元に認証し、ユーザー独自のユーザーエクスペリエンス(UX)を実現します。
- 投稿機能
- ユーザーがマークダウン記法で記事を書くことができます。
-ユーザーは自身が登録した投稿内容を編集または削除することができます。
- 検索機能
-キーワードやカテゴリを使用して記事を簡単に検索できます。
- いいね機能
-記事に「いいね」をすることができ、自身が獲得した「いいね」の数はダッシュボードで確認できます。
どのように開発を進めたか
タスク管理
notionでタスクボートを設けてタスク毎にチケットを作成し自分が何をすべきなのかを明確にして進めました
設計フェーズ
要件定義から始め、DB設計や画面設計、開発規約の整備等も併せて行いました。
実装フェーズ
いきなり実装するのではなく必ず実装前にアウトラインを作成する事を行いました。
またPRのレビューに関してもセルフレビュー時にChatgptを利用して実装の良し悪しの確認を行っています。
#命令書:
あなたは、シニアエンジニアです。
以下の制約条件と入力文をもとに、 最高のコードレビュー結果を出力してください。
#レビュー箇所
記事の検索機能におけるrspecのテストコード
#制約条件:
・ジュニアデベロッパーに対してレビューが分かるようにお願いします。
・今回はrailsで{#レビュー箇所}。
・railsのお作法的におかしなところがないか重点的に見てほしいです。
・バグやアンチパターンの有無検証。
・コードの可読性やパフォーマンスに関する改善提案。
#入力文:
ここにコードを貼る
#出力例:
・良いところ
・ここに良いと思うところを具体的に書く
・よくないところ
・ここに良くないと思うことを具体的に、またコード例等を示しながら記載する
#出力文:
おわりに
今回初投稿をさせていただきました!
本稿では作成したQiitaのクローンアプリの概要や進め方を中心にお伝えさせていただきました。
実際に自分でアプリを作成してみると一見動くから問題ないという実装でも、パフォーマンス面を考えると書き振りが良くなかったりなどの今まで触れてこなかった面の視野を広げることができ、非常に勉強になりました。
具体的に設計や実装面においての詳細的なアウトプットに関しては別途投稿でお伝えさせていただければと思いますのでよろしくお願いいたします。