はじめまして、2018年入社の田島です。 今回は入社まで web アプリケーション開発にほとんど触れてこなかった私が、新人研修に参加した模様についてお届けしたいと思います!
はじめての web アプリケーション開発
web アプリケーション開発の基本の「き」も知らない私が取り組んだのは、CakePHP を利用して二週間で web サービスをシステム要件から設計して実装するということでした。すなわち、web アプリケーションの実装はもちろんのこと、どのような人を対象とした何のサービスを作成するか考え、必要な機能の洗い出しや DB の設計まで一通りの行程を全て行いました。もちろん一人では分からないことばかりであったため、メンターの先輩に適宜教えていただきつつ進めました。
実装は実際の業務と同様に実装内容をタスクに分割し、実装予定時間を決めてスケジュールを立てながら行いました。また、Bitbucket を用いてタスク毎にプルリクエストを出し、先輩方からコードレビューをいただきながら進めました。
成果物について
私が作成したのはユーザ投稿型の web アプリケーションであり、記事の投稿や編集、ユーザ登録やログイン/ログアウトの認証などを実装しました。 システム要件を設計した段階では色々な機能を考えていたのですが、工数との兼ね合いにより、実装は基本となる機能に絞って行いました。また、同じく工数の兼ね合いにより実装の最初の部分のみ bake を用いた自動コード生成を利用しました。
こちらが成果物のスクリーンショットです。 (デザインは CakePHP のデフォルトのものです。デザインまで手を回すことができなかったのが痛恨の極みです。)
作成後はチーム内で成果物発表と脆弱性のチェックテストを行いました。
感想
MVC モデルがどのようなものなのかであったり、具体的な web アプリケーションの実装方法について学ぶ非常に良い機会となりました。そして、知れば知るほど CakePHP がいかに開発者が web アプリケーションを開発しやすいように作られているかがよく分かりました(笑)脆弱性に関してもCakePHPが標準対応しているものが多く、少しのコードの追加でチェックテストをクリアすることができました。
また、今回は web アプリケーションの実装だけでなく、システム要件の設計から取り組みましたが、これも大変勉強になりました。実装をしていく中で、システム要件があいまいであったためにどのように実装すれば良いのか迷うようなこともあり、サービスの要件や DB 設計の精密さが実装に非常に影響することを実感しました。
実装面ではコーディングの姿勢という点で学ぶべきことを多く感じました。学生時代はもっぱら動作することを第一としたコーディングをしていたのですが、レビューをいただく中で、「次にそのコードを触る人が理解しやすいか」というチーム開発を前提としたアドバイスをいただくことが多く、姿勢として変えるべき点に気づくことができました。思い出してみれば昔の私のコードは時が経つと自分自身でも読めなくなっていたのでした(笑)
最後に
まだまだ社会人としてもエンジニアとしても未熟な私ですが、これから努力を重ねて成長していきたいと思います。またトピックがあり次第ここで発信していきたいと思いますので、これからよろしくお願いいたします!