ビルディットにインターンしてきた ( 2018夏期 )

はじめに

5月中盤から8月の中盤までにかけてビルディットインターンとしてコードを書いていました。 もともとは友達にインターンできるところがあると聞き、ホームページを見て行くことに決めました。
BuildItは京王八王子駅から徒歩五分程度で主にweb系の開発をしている会社です。 インターンの課題としてtwitterのいいねをしたリストを分析することで、ユーザーの興味のあるツイートを分析するサービスを製作しました。

f:id:sakakendo0321:20180903000934p:plain なんかうまい具合にかっこよくなってしまったraspberry pi側のui画面。フォント、写真のソースことなどについて教えてもらい、色の組み合わせとかを相談した。

f:id:sakakendo0321:20180902235736p:plain

念願のフルカラーledを買ってもらって試しに光らせているところ

実際に作成したアプリケーション
友達の書いたブログの記録

設計

自分はweb系の分野に対しての興味がありながらフロントのhtmlやcssの仕事内容、考え方についての理解が浅いという問題意識があり、このインターンを通じて、web系の分野を俯瞰できるような知識を身に着けたいという気持ちがあったので、今回の製作ではバックエンド、フロントエンドの多岐にわたるプログラムを書きました。 デザインでは少し勝手が違い、タスクとしての切り出し方や、はじめ時、切り上げ時を考えることが難しかったことなどの知見を得られることができました。またworkerとwebでpython,node.jsという違う言語を使いそれぞれの言語の特性の違いを身をもって学びました。開発のフローのこともたくさん教えてもらい、インセプションデッキ、kptを使った振り返り、gitを使ったworkflowや、dockerを使った環境の統一などを実際に行いました。

反省点

  • 設計段階
    設計の段階で、決定事項に具体的なライブラリなどを組み込んでしまい、実際に着手してみるとうまい具合に動かないことがあったりした。いままで使いたい技術だけを先に決めてしまいどんどん詰んでいくみたいなことがあった。今回設計のサポートをしてもらって、最初は内部の仕様よりも外部から見た動作や、要件に絞って決定すべきということを学んだ。
  • dbの設計
    今回、データベースにはuserというテーブルのみを作成したのですが、実際に実装していく中でどんどん情報が増えてきてしまい、細かいデータはどんどんjsonに入れたり、一度更新するとデータを全部取得してしまうので、今までのが消えてしまうみたいな問題が発生してしまいました。今回はサービスの規模が小さかったのでその場その場の対処で何とかしのいだのですが、これによりあきらめた機能も何個かあったので、次回からはよりデータベースの設計に時間をかけて詳細なことまで考えるべきだなと感じました。
  • raspberry piとnode.jsの相性
    今回ledを使って、ユーザーに通知をするシステムを作成するにあたり、raspberry piでpigpioを使ったプログラムを製作しました。最初の段階ではとくにpythonでもnode.jsでもライブラリは用意されているので問題は起きないだろうと思っていたのですが、gpioを触るときにはsudo 権限が必要で、そのためにユーザーごとにインストールして使っているnode.jsは少し相性が悪いかなという印象を受けました。

一緒にインターンした友達

一緒にコードを書いていた友達です。うまい具合に分担、消化してくれて本当にありがたかったです。 何回かじぶんのわがままで友達を振り回してしまうようなことはあったのですが、コミュニケーションをとりながら無事にお互いが納得できるものを作ることができてよかったです。
https://github.com/Akari000

雑感

社員さんにはインターン期間中には自分の質問に忙しいなか答えてくださり周辺知識も教えてくださったり、 仕事終わりにご飯に連れてってもらったりとても充実した経験をすることができ、本当によかったです。 また社員さんの面倒見がよく優しかったのですが、質問も痛いところを突かれたりして、自分もこういうことができるようになりたいなという刺激になりました。 今後はアルバイトとして勤務させてもらえることになったので、アルバイトのための勉強もしながら、 より深い知識や広い知識を身に着けていきたいと考えています。