1. ktarow

    Posted

    ktarow
Changes in title
+新卒研修で作ったアプリケーションをNode.jsで書き直していく話(序章)
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,108 @@
+# はじめに
+この記事は株式会社アイスタイルアドベントカレンダーの11日目の記事です。
+
+2日目に「[複数の言語を同時に触ることになった俺は](http://qiita.com/ktarow/items/b5f33c573873e6829b0e)」という記事を書いた@ktarowが再度お送りします。
+
+今回のタイトルは__「新卒研修で作ったアプリケーションをNode.jsで書き直していく話(序章)」__です。
+
+言語選びは慎重に!と先日の記事内で言っておきながらと思うかもしれませんが、__完全に個人的な趣味__として書き直すので、そのへんはあしからず。
+
+とりあえず次章から弊社の新卒研修について説明していきたいと思います。
+
+# 新卒研修について
+私は、株式会社アイスタイルに新卒として入社しました。(ただいま新卒2年目です!)
+おそらくどの企業でもあるともいますが、弊社にも新卒研修があります。
+
+私達が配属される技術開発部では、毎年、座学や複数あるチームでのOJTを行いながら、__同期とともにWebアプリケーションの開発__を行います。
+
+私の代は、私を含め2名の新卒エンジニアが入社しているの2人でのチーム開発になりました。
+(ちなみに、今年は初の新卒デザイナーが採用されたので、3人でアプリケーションの開発を行っていました!)
+
+新卒研修では、このWebアプリケーションを開発するための基本的な知識を身につけていきます。
+
+# 開発するWebアプリケーションについて
+開発するWebアプリケーションは、基本的に__今ある社内での課題を解決する__という目的にそって企画や設計、開発を行います。
+また、開発はスクラムを用い、教わりながらバックログを作成したり、短いスプリントを回していきます。
+(この辺の詳しい内容は社内のスクラムマスターである、@trtrakiさんがアドベントカレンダーに書いてくれると思います。)
+
+さて、そんななか私たちが選定した課題はというと・・・
+
+__コーヒーの注文・発注・引換管理をWebで簡単に行えるようにしたい!__
+
+というものです。
+
+# 社内のコーヒー事情について
+弊社には、ネス○フェアンバサダーを担っている社員が在籍しているため、毎月定期的にコーヒーのカプセルの注文を行うことができます。
+
+注文したカプセルは、バリスタマシーンでいつでも利用でき、美味しいコーヒーがいつでも飲めるようになっています。(バリスタマシーンも提供してくれています。便利!)
+
+![IMG_4486.JPG](https://qiita-image-store.s3.amazonaws.com/0/23741/8fe5706d-059f-ffe6-b514-ff5799adc7c0.jpeg)
+
+
+また、コーヒー以外にもお茶や紅茶なども注文することができます。
+
+これらのカプセルの注文や発注、引換は私が入社した時点では、すべて__社内の共通フォルダ内のエクセルファイル__で管理されていたため、非常に不便でした。
+
+# 技術選定と仕様について
+開発は下記のような構成で行いました。
+
+| |構成 |
+|:-----:|-----|
+|言語 |PHP (5.4)|
+|WAF |CakePHP (2.x}|
+|DB |MySQL (5.x) |
+|OS |CentOS 6.4 |
+
+特にこれといってこだわりをもった技術選定は行っていません。
+(あのころの私は無知だった…)
+
+また、仕様は下記の通り。
+
+|機能|詳細|
+|:------:|---|
+|新規登録機能|ユーザーの新規登録|
+|マイページ|発注、購入履歴を確認できるページ|
+|注文機能|カプセルの注文機能。定期便と臨時便があります。(値段が違います!)|
+|管理者機能|アンバサダーの方が、商品追加、商品引換、発注処理を置こうためのページ。アンバサダーのフラグをもったユーザーがマイページ内から利用します。|
+
+そんなこんなで、約2ヶ月間かけて作成したアプリが以下になります!!!(一部抜粋)
+
+![cd8e8ac1446735c4202c0d6857049940.png](https://qiita-image-store.s3.amazonaws.com/0/23741/360cfdcd-b026-bbb8-1561-7a050488605d.png)
+
+![c81284a11f924219f91e6d4edc14cd39.png](https://qiita-image-store.s3.amazonaws.com/0/23741/de4177e6-71ca-24ea-daa7-265c458117ee.png)
+
+※デザインは、デザイナーの先輩の力をお借りしました。
+
+# 課題
+こういった経緯で開発されたアプリケーションですが、約1年たった今、以下のような課題か浮上しました。
+
+1. __リリースされてから一度もメンテナンスされていない__
+2. __一度も利用されることのない機能があり、今後も利用されることはない(臨時便注文機能)__
+3. __管理機能を別に分けたい__
+4. __新規登録時のパスワードの暗号化アルゴリズムがSHA-1__
+5. __紅茶とコーヒーが区別されてない__
+6. __発注の際のバッチが手動起動__
+7. __テストがない__
+
+ざっと5分間考えただけでも、これだけの課題が・・・
+ひどい・・・
+
+# フルスクラッチで書き直す決意
+前置きが長かったですが、ここからが本題です(しかもまとめです)。
+
+こちらのWebアプリケーションを今この瞬間から__Node.jsで書き直していきます。__
+なぜNode.jsで書き直すのかというと・・・
+
+__Node.js(JavaScript)が久々に書きたかったから__
+
+です。
+2日目に言語選定の記事をあげましたが、完全に__趣味コード__であり許可も取得済みなので書きたい言語で書きます。
+
+こちらの進捗については、アドベントカレンダー22日目の「新卒研修で作ったアプリケーションをNode.jsで書き直していく話(最終章)」で発表したいと思います。
+
+Githubのリポジトリはこちら → [ktarow/es2015-app](https://github.com/ktarow/es2015-app)
+※アプリ開発終了後リポジトリ名を変更します。
+
+というわけで、主に新卒研修の内容でしたが、これにて今回の記事の締めとさせていただきます!
+
+明日は@nakahararuuさんの「Twitter Bootstrap Tips (Mixin編)」です。