This page is intended for users in Malaysia. Go to the page for users in United States.

イタンジ株式会社で濃厚な1週間を過ごさせていただきました!

友輝 古賀

株式会社じげん - ライフメディアプラットフォーム事業本部 開発Unit

About my work experience

はじまりは、就職活動の一環として、サマーインターンシップに参加したいと考えてWantedlyを探していた時に、18卒も参加OKなサマーインターンシップをたまたま見つけたことからでした。

このインターンでは

- Ruby on Railsでのアプリケーション開発
- GitHubを使ったプルリクベースの開発
- 簡単なサンプルを使ってのTDD開発

という、3つの開発体験を1週間の間に行う、大変密な体験をしました。

今回はその密な体験の中でも、特に大きな成長を実感出来た Ruby on Rails でのアプリケーション開発 に関してのお話をここでは書きます。

このインターンシップの中での Ruby on Rails でのアプリケーション開発 は、社内に必要とされているシステムを5人のチームを組んで、2日間でゼロからつくり上げるというものでした。

私達のチームは、社内の蔵書管理システムをつくることに決定し、以下のような役割分担を行ないました。

- モデル層 : 1名 [DBとの接続・DBから検索を行う部分担当]
- ビュー・コントローラ層 : 3名 [ルーティングからCSSでの装飾まで広く担当]
- フロントエンド処理 : 1名(私) [JSを使ってフロントエンドでのAPI処理などを担当]

事前課題で全員 Ruby on Rails の基礎に関しては勉強をし、簡単なWebアプリを作ることは出来るようになっていました。
このため、私とモデル層担当の2名は普段からプログラミングでものづくりをし、ある程度の知識があったため、それぞれこのシステムの中で重要な部分を担当する形を取りました。

Difficulties I faced

このインターンの中で、自分にとって2つの問題に直面しました。

1つ目は技術的な問題で、Rails5 からデフォルトで有効化するようになった、 turbolinks とJSのイベント発火のタイミングについて知識がなかったことです。

私は Vue.js と Google Books API というAPIを使ってGoogleの検索窓のように、検索ワードに当てはまる本の候補を表示する機能を作っていました。
この機能では、Vueインスタンスを入力フォームに適用して仮想DOMと双方向バインディングを利用して簡単に実装しようと考えていたため、 初め、"addEventListener('DOMContentLoaded')"を使って各初期化処理を呼び出していました。
しかしながら、この方法ではVueインスタンスの初期化が2度実行され、うまく初期化が出来ませんでした。

2つ目の問題は、このインターンの中で気づいたことではないのですが、チーム開発を行うときに、どのような行動をすれば、全体の開発がうまく行くのか成功体験をしたことがなかったことです。

What I learned

1つ目の問題に対して、私は、メンターの方に質問をしたり、Railsに関する記事を調べることを行ないました。
それによって、「Rails5以降でload系イベントを使う際は turbolinks が用意しているイベントを使う必要がある」ということを知り、無事問題を解決することが出来ました。

2つ目の課題に対して、このインターンの中で私は、「一人で全てやらないよう」にすることに気をつけて行ないました。
その結果、

- 答えそのものだけではなく、検索ワードを教える方法も有効である。
- 序盤の間は、Gitのコンフリクトなどの摩擦部分の解消に注力しても開発が進むに連れて結果的に問題なく進むようになる。
- 決定権を明確にし、分担することで進みやすくなる

という知見と、それを行ったことによる成功体験を得ることが出来ました。

私はこの経験を通して、Ruby on Rails 上でのフロントエンド開発に関する知識と、1つの成功体験を得たことによって、チームで開発を行うときにチーム全体に良い影響を与えることが出来る可能性を見つけることが出来たと思います。

特に、チーム全体に良い影響を与える方法に関しては、今後とも使う機会があると思うので、実践して、より良い方法を見つけていけるように努力しようと考えています。

イタンジ株式会社 - エンジニアインターン
がっちゃんというニックネームで18年3月頃まで大阪周辺で活動をしていました。 現在は東京に引っ越し、コードを書いたり設計をしたり登壇したりちょこちょこしてます。 Webが大好きで特にフロントエンドを軸にデザインからビジネスも含めて勉強中です。 【自分について】 [TL;DR] - 明らかにプロダクト志向です - Web技術が好きで、特にユーザーに対してすばやくプロダクトや価値提供がしやすい技術について注力して習得・調査をしています(Vue.js / Ionic / Firebase / Go / Javascript(Node.js) など) - 0→1のプロダクト作成は個人でも行えて...
Read More