初心者エンジニアが0ベースでのwebサービス開発を経験して学んだこと

プログラミングを初めて1ヶ月の初心者エンジニアが、インターン先で企画提案から0ベースでのwebサービス開発を経て学んだことを備忘録に記事にします。

 

開発したプロダクトデータ

採用言語

Vue.js 2.5

PHP 7.2

Laravel 5.5

開発環境

laradock(docker)

nginx

MySQL 5.7

redis

 

企画・企画提案

複数人と企画のすり合わせを重ねて、アイデアを効率的にまとめたり、他人に仕様を伝えやすくすることの重要性を学びました。これらを手助けしてくれるツールを紹介します。

アイデア出し

【使用ツール】

Xmind(マインドマップ作成ツール)

ホーム: 無料で使えるマインドマップ ソフト | XMind

【利点】

頭の中のアイデアやアプリの仕様が可視化しやすい。何の仕様が足りなくて何が足りていないのかがわかるようになる。

【概要】

アイデアをより具体的な仕様にしやすく、実際にタスクにまで落とし込みやすくしてくれるツール。どんなプロジェクトにも使えそうな神ツールであると思う。また、ここでまとめたマインドマップをスクショしてPowerPointに貼り付ければ、爆速で仕様書が作れるという技もあるらしい。

 

モックアップ

【使用ツール】

紙、PowerPoint

【利点】

紙はすぐに手直しできるので、複数人関わるプロジェクトの場合は重宝する

【概要】

レイアウトがある程度固まるまでは、紙にページ単位でレイアウトを簡単に書いていくとスムーズ。レイアウトが固まったらPowerPointなどで正書するとわかりやすい。

 

サイトマップ

【使用ツール】

Excel、Xmind(マインドマップ作成ツール)

【利点】

Excelは多くのPCに対応しているし使いやすい。Xmind(マインドマップ)は素早くサイトマップを作ることができる

【概要】

モックを参考にExcelでディレクトリごとにをサイトマップにおこす。また、ここでもマインドマップは活躍できます!マインドマップを仕様すると、文字を打つだけで階層のデザインが勝手にできるのでとても高速にサイトマップを作ることができます。

 

仕様書・サイト概要資料

【使用ツール】

紙、PowerPoint

【利点】

紙はすぐに手直しできるので、仕様の確認をこまめにできる。PowerPointは多くのPCに対応しているし使いやすい。

【概要】

マインドマップに洗い出した仕様・機能をページ・ディレクトリごとにまとめる。まとめたマインドマップをスクショしてPowerPointに貼り付ければ、爆速で仕様書が作れので楽かと思われる。

 

データベース設計(ER図)

【使用ツール】

Xmind、MySQLworkbench

MySQL :: MySQL Workbench

【利点】

MySQLを使用する場合MySQLworkbenchはER図からそのままテーブルが作成できるので非常に楽。Xmindは、素早くデータベース設計をするのに向いていると思う

【概要】

まずは、Xmindで全てのテーブルを書き出し、各テーブルのカラム名を決めていく。ここでリレーションも含めて決定してもよい。使用するデータベースがMySQLの場合、決まったテーブル設計をMySQLworkbenchで作成する。NoSQLなどMySQL以外の場合は、違う方法を模索する必要がある。

 

開発

開発環境の構築の仕方やgitflowでの運用方法など幅広く学んだのでメモ。

開発環境構築

【使用ツール】

Vagrant + Laradock(docker)

【利点】

軽量で動作するdocker環境を簡単に構築(Laravelを使用する場合)

【概要】

VagrantでLaradock(php-fpm、redis、mysql、nginx)を起動させて、開発する

 

プロジェクト管理

【使用ツール】

backlog(Git)

【利点】

git、ファイル共有などチーム開発で便利な機能が集約されている

【概要】

Gitfrowを導入してgit管理・運用していく。WIP(Work in Progress)Pull Requestを使った開発フローについても学んだので、以下の記事にまとめた。

WIP(Work in Progress)Pull Requestを使った開発フロー
「WIP(Work in Progress)Pull Requestを使用した開発フロー」とは、ソースコードを書く(編集)前に空のコミットを作り、Pull Requestを投げた状態で開発していく開発フローである。僕のチームで実際に導入して...

 

プログラミング

【使用ツール】

phpstorm(IDE)

PhpStorm: The Lightning-Smart IDE for PHP Programming by JetBrains
PhpStorm is a perfect PHP IDE for working with Symfony, Laravel, Drupal, WordPress, Zend Framework, Magento, Joomla!, CakePHP, Yii, and other frameworks.

【利点】

強力な補完機能やデータベース、Git管理(gitflowプラグイン)まで1つに完結できる

【概要】

学生なら1年間無料でJETBRAINSのライセンスが取得できるのでおすすめ。