Core Tech Blog

株式会社Coreのエンジニアチームが日々習得した技術やTipsを公開するブログです

新人が2ヶ月で新機能をリリースしました

f:id:coreinc:20181018194109j:plain 開発部のFです。

弊社では10月にKeywordmapの新機能である「アルゴノート」をリリース致しました。 私は8月に入社し、初のPJとしてこの「アルゴノート」の開発を担当しました。 そこで、私が入社してから新機能をリリースするまでの2ヶ月間で得た気づきなどを紹介したいと思います。

自己紹介

私は某企業でSEとして1年ほど働いた後、8月に株式会社Coreへ入社しました。 前職もIT企業ではあったものの、プログラミングはほとんどやっておらず、実質実務未経験での採用となりました。

今回作ったもの

「アルゴノート」とそれを管理する社内用の管理画面を作成しました。 「アルゴノート」の方は、PHP, MySQLで、 「管理画面」の方は、PHP, Laravel, MySQLで作成しました。

この時、PHP, Laravelについてはほとんど触ったことがなかったため、2週間ほど勉強する時間をいただきその後、開発に着手することとなりました。

blog.keywordmap.jp

はじめてプロダクトを開発してみて感じたこと

プログラミングだけできればいいわけではない

今回のプロジェクトでは、画面の設計からリリースまでをすべて担当しました。 コーディングに関しては個人でも勉強はしていましたが、インフラ・サーバ周りやその他諸々のことについてはほとんど知識がありませんでした。 DBの設計、AWS、Jenkins、などなど初めて触れることだらけでたいへん苦労しましたが、一方で幅広い領域に触れることができて良い刺激を受けました。

技術以外の視点も必要

今までは個人での開発しか行ってこなかったため「いかに良いコードを書くか」ということに集中しがちでした。 しかし、自分が書いたコードをプロダクトとして売るということは、ビジネス側の視点も必要になってきます。 どういう設計にすれば、ユーザが見やすくそして使いやすいものになるかを考えなければなりません。 UIを変えただけで売上が大きく変わることがあることからも、このあたりの重要性がわかります。

今までサーバサイドを主に行ってきた自分にとってフロントエンドの設計には苦しめられました。 コーディングに関しては、有名な原理原則・デザインパターンなどが存在しますが、ユーザビリティにはこういったものはあまり存在しないため、より苦労しました。

Laravelは使いやすい

今回、管理画面ではLaravelを採用しましたが、Laravelを使っていて良いなと思ったことが2つあります。 1つ目は、Webサービスを作成する際に必要となる機能を直感的かつ簡単に実装することができるということです。

例えばペジネーションであれば、 フレームワークを使わないPHPだと、

// ページ数を取得
$page_count = $db->fetchCount();
$pagination = ceil($page_count / 10); // 10個ずつ表示する場合
echo '<ul>';
for ($i = 1; $i <= $pagination; $i++)
{
  $isActive = ($i === $page) ? 'active' : '';
  echo '<a class="' . $isActive . '">' . $i . '</a>';
  echo '</li>';
}

となります。

これを、Laravelを使って書き換えると以下になります。

// $itemはSQLから取得してきた値
// links()でペジネーションを生成
{{ $item->links() }}

もう1つは、Laravelを使うことで、自然とMVCの考え方が身につくことです。 LaravelのプロジェクトはMVCを元に作成されており、Controllerviewsといったディレクトリがあらかじめ用意されいるため、こちらにファイルを追加していけば、自然とMVCを元にしたプログラムを作成することができます。

終わりに

今回、初めてのプロジェクトということで、分からないことだらけだったのですが、周りの方々の助け得てなんとかリリースまで至ることができました。こういう風に周りにすぐ聞くことができる環境があるというのは非常にありがたいなと感じています。