どんなものを作ったのか
そんな凝ったものは作れていないですが、
簡単な社内タスク管理システムを作りました。
ポートフォリオとして押していくには
差別化もないパンチの弱いシステムとなっていますが、
今回は練習と称して妥協しています。
まだまだ私はエンジニア修行僧ですので
ぜひ本システム触っていただき
ご意見ご感想いただけますととても嬉しいです。
AIとの仮想受託開発
ことの発端は
「AI最近すごいな…実務でもCursorのバイブコーディング手放せないし。
もうこれは一人で従来のチーム開発的なことができてしまうんではないか?」
という疑問からでした。
タイトルで表現している仮想受託開発とは
AIを小中規模のシステムを必要としているお客様としてロールプレイしてもらう
ということになります。
行動力がない私にとっては
いきなり案件を獲得して受託開発はじめることは難しいので、
とりあえずAIにお客様として振る舞ってもらいながら、壁打ちで
要件定義〜開発〜デプロイ までを体験したいなと思った次第です。
どう進めたか
まずはChatGPT(チャッピー)に相談
システムが欲しいお客様として振舞ってもらい、
今回のシステムの大まかな要望を出してもらいます。
その後、各要件を壁打ちで固めていき、
どこまでをゴールとするかを決めます。
(今回のゴールはドメイン発行してブラウザにデプロイするところまででしたが、
お金はかけたくなかったのでEC2とRDSで簡易的に構築しました)
今回は個人的な目標としては、最短最小機能でデプロイするところを目標としていたので
凝った機能などはMVP開発と称して省きました。
その後、ある程度要件が決まったら
あとはこちら手動で画面を作り、モックをチャッピーに見せてFBをもらうを繰り返しました。
ゴリゴリ開発
ある程度方針が決まれば、あとはCursorを使ってゴリゴリ開発するだけです。
アプリケーションルートに.cursorrulesにて
ある程度コーディングのお作法(Cursorのロールプレイや、MVCやそれぞれの領域の細かな書き方)
を定義しておき、
各機能はバイブコーディングで
開発 ▶️ レビュー といった流れで
進めていきました。
特にこだわった点とかはないですが、
強いて挙げるとするならば、最小限の工数で開発したという点ですかね…(無理ある
VPSにデプロイ
エンジニアを5年ほどやっていますが、
実際にサーバーを個人で借りてリリースした経験がなかったので
せっかくなら今後のためにもやってみたいと思い
XServerのVPSを借りました。
諸々の設定を行い、
SSHからサーバー初期化、デプロイ作業までもCursorで対話しながら進めました。
Linuxの知識は多少あったので、そんなにつまずくことなく設定できました。
こだわった点を挙げるとすれば、
Githubにサーバー初期化のシェルファイルとプロジェクト初期化のシェルファイルの
2つをアップロードし、サーバーからcurlでダウンロードして実行することで、
手順書としても管理できるようにしたことです。
#!/bin/bash
# Xserver VPS - 初期セットアップスクリプト
# Ubuntu 25.04 対応版
set -e
echo "=========================================="
echo "サーバー初期セットアップ開始"
echo "=========================================="
# システムアップデート
echo "[1/8] システムアップデート..."
apt update && apt upgrade -y
# タイムゾーン設定
echo "[2/8] タイムゾーン設定..."
timedatectl set-timezone Asia/Tokyo
# 基本パッケージ
echo "[3/8] 基本パッケージインストール..."
apt install -y curl git unzip vim software-properties-common
# Nginx
echo "[4/8] Nginx インストール..."
apt install -y nginx
systemctl start nginx
systemctl enable nginx
# MySQL
echo "[5/8] MySQL インストール..."
apt install -y mysql-server
systemctl start mysql
systemctl enable mysql
# PHP 8.3 (Ubuntu 25.04標準)
echo "[6/8] PHP 8.3 インストール..."
apt install -y php-fpm php-mysql php-mbstring php-xml \
php-curl php-zip php-gd php-intl php-bcmath php-cli
# PHPバージョン確認
php -v
# Composer
echo "[7/8] Composer インストール..."
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer
# Node.js 20.x
echo "[8/8] Node.js 20.x インストール..."
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs
echo ""
echo "=========================================="
echo "✅ 初期セットアップ完了!"
echo "=========================================="
echo ""
echo "インストール済みバージョン:"
php -v | head -1
node -v
npm -v
mysql --version
echo ""
echo "次のステップ:"
echo "1. mysql_secure_installation を実行"
echo "2. deploy-gpter.sh でアプリをデプロイ"
echo ""
あとはGithub Actionを設定し
mainブランチにマージしたタイミングで自動的にデプロイするよう設定しました。
こちらも初の試みでしたが、
そんな難しい設定はなかったです。
結論
AIやべえな。
この一言に尽きます。(チープな言葉ですが、いろんな意味でこの言葉に着地しました)
設計から開発、テストからリリースまで
AIを用いて最速に行うことができるので、
今後のエンジニアの立ち位置としては
市場に刺さる要件だったり顧客満足を高める機能を考えることに注力し、
システム全体の品質を高めるために
AIと協働していくことが重要なんだなっと思いました。
まだまだこのシステムを作るにおいて、
プロンプト生成方法など工夫した点があるので、
別記事にてまとめようかと思います。
※ 特にAI生成サービスを使用するにあたり、
「コード×AIーソフトウェア開発者のための生成AI実践入門」は
LLMの概念理解とプロンプト記述など
AIとの向き合い方について学べてとてもためになりました。


