はじめに
ある日突然、業務でWebアプリを作ることになりました。
しかし、私にはWebアプリの開発経験がありません。
さらに、あいまいな要件と低コストという厳しい現実もありました。
低コストのレンタルサーバを選んだものの、当時はLaravelなどは使えず…1
また、当時は、AIを用いたコード生成は一般的な手法ではないため、AIにも頼れません。
目の前には「やるしかない」という現実だけがありました。
そこで、まずは「60点」のアプリを目指すことにしました。
この記事では、未経験から25時間の独学を経て、実質 約3か月でWebアプリを要件定義からデプロイまで行った経験をもとに、未経験者が意識すべきポイントをまとめます。
※ 業務で得た知見は一般論にとどめて記載しているため、物足りないかもしれません。
これから初めてWebアプリを作る方や、同じような制約で悩んでいる方の参考になれば幸いです。
前提
本記事は、私がWebアプリ開発に取り組んだ当時(数年前)の立場・スキルレベルを前提として書いています。
- 情シス担当であること。
- クラサバアプリの開発経験があり、アプリの作り方やテーブル定義の基礎は理解していること。
おそらくは汎用的に使える内容と思われるため、状況に合わせて、工夫が必要になります。
なぜ「60点」なのか?
「60点」は大学の単位がギリギリ取れる点数、つまり「可」に相当します。
未経験でいきなり完璧を目指すことは難しいため、まずは「最低限使える」アプリを作り、徐々に改善していく方針にしました。
「60点」のアプリとは?
- 必要最低限の機能を備えていること。
- テーブル定義をしっかり行っていること。
- セキュアな実装になっていること。
意識したこと
1. 機能を絞る
最も重要かつ難しいポイントです。
要件定義の段階でユーザーの要望を深掘りし、必要最低限の機能を見極めて提案しました。
不明点は積極的に質問し、代替案を提示することで要件を調整しました。
「どうしても難しい要件」については理由を説明し、「まずは半年使ってみて、本当に必要なら追加しましょう」と提案して乗り切りました。
2. セキュリティ
XSSやWeb Shellなどの脆弱性は致命的です。
したがって、Webアプリ開発にあたっては、IPAの「安全なウェブサイトの作り方」や『体系的に学ぶ 安全なWebアプリケーションの作り方 第2版』を参考に基本的なセキュリティ対策を実施しました。
3. テーブル定義
データ構造が適切でない場合、後から修正することは非常に困難です。
特に未経験の場合、コードが煩雑になり、保守性が低下し、将来的にシステムを作り直す必要が生じることもあります。
データ構造さえ適切であれば、アプリのロジック部分を修正・再実装するだけで済み、大幅な作り直しが比較的容易になります。
したがって、設計段階で慎重にテーブル構造を検討しました。
要件定義後は、データの流れを意識して外部キー制約を設定し、正規化は第三正規化まで行いました。
さいごに
未経験からWebアプリを実装する場合、以下の3点を意識すればなんとかなります。
- 必要最低限のシンプルな機能
- セキュアな実装
- テーブル定義
この3つを意識することが、未経験での開発成功のカギだと感じました。
余談
Laravelなどが使えるなら積極的に使ったほうが楽です。
最近では、一部のレンタルサーバサービスの公式の記事で動作確認しており、利用しやすくなっているようです。
参考文献
-
無理やり導入できるレンタルサーバもあったようですが、確実に動くことを優先しました。 ↩