2022夏季jig.jpオンラインインターンシップまとめ―ャュョ



どうもャュョです!!5日間お疲れさまでした!

作品は結局完成はしなかったけれど、ひとまずは動くものができました。
インターンシップは終わったけれど、開発はしばらく続ける予定です!
メンターさんだった方々にも引き続き面倒を見て頂けるそうです!!

さて、これがインターンシップでの最後のブログになります。
5日間を振り返ってみようと思います!

ドロップダウンなのをいいことに絶望的な文字量なのでとばしてもらって構いません(笑)

というか、ドロップダウン使えるようになったのがうれしくて
わざと中身を長めにしてみた感じですw

なので、本当に真面目に読まなくてもいいので;; もちろん読んでもいいですが!ww


畳み込み要素


content
content
▲閉じる


5日間の開発

来たる初日。

ャュョはDチームに配属されてから、最初はアイデア出しやそのまとめから始まりました。

また、初めのうちは開発環境に慣れておらず、GitHubの使い方を教わりました。
このように1日目は基本的にチュートリアルを行いました。

2日目。

イデアがまとまったので実装にあたってToDoリストを作成しました。
またアジャイル開発という考え方を教わり、PO(ProjectOwner)をウノくんにお願いしました。

作業の際は集中力が持続するようポモドーロタイマーなる技を使用して、
適宜休憩を取りながら進めるはずが結局ぶっ通しで作業していたかもしれない。

この過程でフロントエンド担当はデザイン案を考え、
バックエンド担当はオープンデータの取得を実装していました。
2日目は充実していました。

3日目。

充実したと思えば中間地点です。あっという間です。

フロントエンドの人たちは簡単にWebページを実装してから、
CSSについての記事をあさっていました。

ちなみに僕はバックエンドの担当で、この日データベースとの連携に取り組み始めていたのですが、
構文は理解できないやら環境設定が意味不明やらで丸一日を潰しておりました。
雲行きが怪しいですね。

4日目。

5日目は発表会があるので実質この日が開発できる最後の日でした。

ウノくんが前日にキャラデザインやその他もろもろのイメージファイルを用意していたので、それをWebページに置き換えることをしていました。

一方、僕は前日に夜間も調べてようやく構文は理解したのですが環境設定が未だに意味不明な状況にありました。
そのせいかフロントエンドも手詰まりになってきており、開発は一気に滞り始めました。
結局僕はメンターさんに付きっ切りでサポートして頂き、ようやく導入が完了した訳です。
実のところ大した設定もいらなかったようで、内容からするとサポートなしでも十分理解できたと思うのですが、ただただビビっていました。
メンターさん助けてくれて本当にありがとうございます。

その後APIを揃え、ようやくWebに組み込める状態に。もう遅い。

最終日。

前日の名残でログインページにログインAPIを割り当てることは叶いました。
温度取得APIも用意していたのですがWeb側の準備も必要で、間に合いませんでした。

こうして最終日の時点で出来上がっていたものが次の状態となります。
Meltian fire it!
それが今ではこうなっています
jigintern-2022-summer-1-d.deno.dev
少しでも変わっていることを祈る今現在。


▲閉じる


イベント

アイスブレイク

今回やったのは
福井県クイズ
福井県鯖江オフィスに関するクイズ!
○○なものさがし
>家の中で一番かわいいものや一番いらないものを探してくるというもの
お絵描き
>1つのチームがお題の絵をかいて他のチームがお題を当てるゲーム

自己紹介

自分についてと「猛暑」をテーマとしたアプリのアイデアを発表しました。

jigBOX開封

届く前、jigBOXとは⁇みたいな感じでした。
届いた後、なにやら大きな箱が。
開封後マジで豪華特典が入っているという。
無料の参加ですよ?羽振り良すぎですよね?!
しかも、もちろんインターンシップ中に使うものもいくつかありましたけど(それにしても親切すぎる)、単純にプレゼントのものの方が若干多いのですよ。
内容としては、めがねのグッズ、ふわっちのグッズ、福井県のグッズがたくさん。
鯖江への愛が感じられました。

ライブコーディング

やまじさんによるリアルタイムコーディングイベント。
テーマはAlpine.jsを用いたWebページの実装でした。
具体的にはSPAをalpine.jsで実装するというものだった気がします。

カレー会

3日目はjigBOXの中身の一つである梵GOLD・純米酒カレーこと梵カレーを食べる会がありました。
梵GOLD・純米酒カレーはワールド株式会社の商品で、アルコールは飛ばしてあるか飛ぶので子供でも食べられます。
公式サイト
梵 純米酒カレー GOLD 中辛 ワールド 株式会社(※当社は未成年者にお酒の販売は致しません!)
商品をお勧めするというよりは公式サイトに寄ってみてほしい。

もちろん商品としてもおすすめできますが!

鯖江オフィス見学

2つある拠点のうち鯖江市にある方のオフィスの見学。
エントランスにフルカラーLED表示もあるらしい。

IchigoJam体験

ふくっちさんによるIchigoJamの紹介と使い方の説明
及び簡単なゲーム作成の実演
我々はふくっちさんに続きました。
実機はないので代わりに用いたのが
IchigoJam web
IchigoJam web by jig.jpでいつでもアクセスできる。

会社説明

仕事内容や採用情報などの説明を受けました。
淡々と説明するのではなく、メンターインタビューや社員インタビューのように
インタビュー形式にしてjig.jpの魅力や鯖江市の魅力もお話しいただきました。


▲閉じる


自分の活躍や成長
さて本題です。
僕はこの5日間、バックエンドを担当してきたわけですが、言い方を変えると
バックエンドしか担当しなかったんですよね。
それも相当遅い作業スピードでです。というか、作業が遅かったためにそっちしか担当できなかったのでしょう。

活躍について

まず、他のチームのバックエンド担当がどの程度活躍していたのか調べてみることにしました。
すると、案の定どのバックエンド担当者も必ずフロントエンドに携わっていることが分かりました。
とくに、バックエンドでの貢献が大きい人ほどフロントエンドにも手が回っている印象でした。

ここで一つの指標として、データベースが導入されたタイミングの早さをまとめた結果、
やんまくんが2日目14時
ハコシくんだと3日目16時
しんくんが3日目18時

自分は4日目15時
自分のデータだけでも絶望的なことは一目瞭然ですが、比較してみるとさらに悲惨な状況は浮き彫りになります。
まず、自分の開発速度の低さがチームの足を引っ張ったことが一点。

他にもコミュニケーションが取れていなかったなど他にも反省すべき点はいくつかありますが、
具体的に自分が貢献したこと、成長したことに焦点を当ててお話ししたいと思います。

まず、大雑把に自分の貢献した内容を書き並べると次のようになります。
主にAPIの実装

  • 緯度と経度を渡すと温度を返すAPI
  • プレイヤーデータAPI
  • ログインAPI

細かくかみ砕いていきます。

緯度と経度を渡すと温度を返すAPI

この実装にあたり、
気象庁CSVオープンデータのJsonファイル化国際地点番号のテキストデータのJsonファイル化を行いましたが、これがまた手こずりました。
気象庁CSVオープンデータは取得したい時間帯によってURLが異なるので時間帯によってURLを生成する処理も実装しています。
手こずったのは国際地点番号のデータです。壁は大きく分けて3つありました。

①概念を理解する

国際地点番号というのが何者なのか理解する必要がありました。
結局世界中の地点に番号が振られただけに過ぎず、これといって簡単な規則性があるわけでもありませんでした。

②テキストデータ

タブ文字と改行文字で区切られており、まずはそれを配列にするなり処理する必要がありました。
量も多かったので、なるべく絞り込んでから細分化していくなど工夫を凝らしていたのですが、その時間は必要だったのだろうか?
あとは、RegionがJAPAN のものを抽出し、国際地点番号と緯度及び経度の値のみを取得してJsonデータにまとめれば完了でした。

③緯度経度が60進数

2の名残で、改行文字やタブ文字で区切る点は案外問題なかったのですが、問題は緯度経度はテキストから数値に変換しなければならず、
あろうことか60進数表示のままで東西,南北の区別があるものでした。具体的には「123 45 67N」という形式の文字列でした。
まずは末尾のNEWSを取り除き、ついでに+-の場合分けに使います。
その後で空白文字で分割し、数値化して10進数に直すというのが全体の流れとなりました。

ひとつひとつはありがちな処理でもまとめてかかってくると割と手強いですね。
それでもこれは2日目には完了していたので、3日目にデータベースが使えていることも十分可能だったはずなのですよ。
他の人たちは本当にメンターさんに頼らなかったんだろうか?

プレイヤーデータAPI

GetリクエストではIDが渡されたらプレイデータを返すAPIを、
PostリクエストではIDとプレイデータが渡されたらデータベースに上書きするAPIを実装しました。
前述通り、データベースの利用までに相当苦戦しました。
ただ、逆に言えば4日目の15時にようやく使えるようになってそこからデータベースと要連携のAPIを取り揃えられたことは、
案外優秀だったのではないか?と自分を褒めてみます。どうですかね。

ログインAPI

GetリクエストではIDとパスワードが渡されたとき、承認の可否を返すAPIを、
PostリクエストではIDとパスワードが渡されたとき、アカウントを新規登録するAPIを実装しました。
また、ログイン機能の実装にあたってAPIの呼び出しをindex.htmlに組み込む作業だけは担当しました。
そのおかげでログイン機能だけはまともに動かすことができました。

成果物だけ見ると、自分の貢献はログイン機能だけになってしまう、
一歩間違えればそれすらなくて「ユーザー目線でのャュョの手柄は皆無」となるところでしたが
一事を免れました。

自分の活躍についてはこの辺にしておき、成長についてお話ししましょう。

成長について

まず、明らかに大幅にレベルアップしたと思います。
これはもちろん自分だけでなく他の人もです。

他の人たちの事前課題のしりとりを拝見させていただいた限り、自分はむしろクオリティが高い方だと思いました。(はいウザww)
slackのチャットで尋ねたのにハコシくんしか反応してくれなくてみんな気づいてないのかな?と思ってましたが訳が分かりました。(本日二回目)
(むしろオフラインの人たちがちらほら反応してくれていたんですが次元が違ったようです。上です。彼らの方が。遥か上です。)
しかし、このインターンシップを通じて、自分も大幅に成長したにも関わらず、
自分では足元にも及ばないほど成長した人もいれば、自分が埋もれるレベルまで水準そのものが上がってすらもいました。
きっとカリキュラムが恐ろしく優秀なんだと思います。
コンセプトとして、

  • チーム開発におけるGitHubに慣れる
  • オープンデータを利用する
  • データベースサービスを利用する
  • Webフレームワークを利用する

まだあるかと思いますが少なくもこの4点を抑えているからこそ底上げ的なレベルアップが実現するのではないかと思いました。
実際、自分が得たものもこれに相当します。
こんなに素晴らしい企画を用意してくれて本当にありがとう!!
ぶっちゃけ、jigBOXのどの中身より素敵なプレゼントだったとおもってます。

どんなにカリキュラムが良くても、使ってないと忘れます。
これから先、継続して開発をつづけていくことが大事ですね。一生大切にします!


▲閉じる


気に入った画像



▲閉じる
ここまで読んでいただきありがとうございました。
そして、こんなに楽しい企画を用意してくださったjig.jpの皆さん、
本当にありがとうございました!!