YouTube

【テックエキスパート】制作物 納期迫る!40日で学んだことを語る 〜プログラミングスクール「TECH::EXPERT」の40日後体験談〜

更新日:

どうも、てぃかしです。テックエキスパートの40日後の経過報告です。

------------------------------
〜最大2万円分お得!&無料相談キャンペーン〜
てぃかしの本名を紹介欄に書いて、TECH::EXPERTを受講される方は、1万円分のAmazonギフト券がもらえます。無料カウンセリング当日のお申し込みの場合は、さらに1万円OFFとなります。TECH::CAMPを受講される方は受講料が5%OFFとなります。詳細は本記事の最後に記載しています。
------------------------------

テックエキスパートでは、制作物を2つ作ることになるのですが、1つ目にチャットアプリ(ChatSpace)を作ることになるのですが、実はそれには納期があるんです。

今回は、40日で学んだことと、その納期との戦いの結果をお伝えします。

※本記事の内容は2019年11月初旬にYouTubeで公開した内容とほぼ同じです。

今回の内容は下記の通りです。

テックエキスパート40日で学んだこと

目次に書いてあること以外にも実は色々学んでいます。

ここでは単語だけ挙げておきます。

  • IPアドレス
  • Linuxコマンド
  • Linuxサーバ
  • SSH
  • クラウド
  • EC2インスタンス
  • Nginx
  • Capistarano
  • S3

以上が目次に記載したもの以外で学んだことです。

それでは主に学んだことを紹介します。

非同期通信

非同期通信は、pictweetのコメント、ChatSpaceメッセージ機能の箇所でカリキュラムに沿って実装していきました。(pictweetとは、テックエキスパートのカリキュラムで制作するTwitterの簡易版アプリみたいなものです。)

非同期通信 とは、リクエストを投げた直後からブラウザ側での操作ができるような通信をいいます。

サーバからの応答があり次第、コールバック(あらかじめ登録された関数)を実行します。通信中にもブラウザ上での操作ができるので、ユーザビリティを高めることができます。

実装前はメッセージを送信するたびに送信画面にリダイレクトしているため、ビューが毎回再描画されてしまいましたが、JavaScript, jQueryで非同期通信を使って、メッセージの送信を非同期で行えるようにしました。

実際に見てもらった方がいいですよね。こんな感じです。

非同期通信

で、これは、メンターにLGTMをもらわないと次に進めないものでした。

模範となるような回答はカリキュラムに用意されてないものだったので、結構苦労しました。丸1日はかかりました。

インクリメンタルサーチ

ChatSpaceのユーザー検索をインクリメンタルサーチで行えるように実装しました。

インクリメンタルサーチは、文字が入力されるごとに検索をかけ、結果を表示できる仕組みのことです。

皆さんも体験したことはあると思います。

例えば、Googleの検索で、「あ」と入力したら、「アマゾン」「明日の天気」とか、検索候補の単語が表示されます。それがインクリメンタルサーチの機能です。

仕組みを図にするとこんな感じです。(参考程度に)

インクリメンタルサーチ

で、このインクリメンタルサーチの課題もメンターにLGTMをもらわなければいけません。これまた大変でした。丸1日はかかりました。

自動更新機能

チャットが自動で更新されるようにしました。

実装前は自分が投稿した場合は、非同期通信で画面に投稿したメッセージが表示されますが、別のユーザーが別の画面から投稿したメッセージはリロードしなければ表示されません。

これではチャットとは言えないので、自動でチャット画面が更新されるようにしようという課題ですね。

完成はこんな感じです。

インクリメンタルサーチ

仕組みを簡単に言うと、

数秒おきに自動で、(ブラウザに表示されているメッセージのうち)最新のメッセージのidをサーバにリクエストして、サーバ側ではそれよりも後に投稿されたメッセージのみを取得してレスポンスし、最後にそれをクライアント側のJavaScriptで加工、メッセージ一覧に追加します。(jQueryには、一定時間が経過するごとに処理を実行することができる関数があります。それがsetInterval()関数です。)

で、これもメンターのLGTMが必要で、めちゃ苦労しました。これも丸1日はかかりました。

AWSによるデプロイ

AWS

AWSとは、Amazon Web Servicesのことです。

アプリケーションを世界中に公開(デプロイ)したい場合、サーバを用意しWebアプリケーションをそこに設置する必要があります。

AWS(Amazon Web Services)のうちのEC2(Elastic Computing Cloud) が、そのWebアプリケーションを公開するのを非常に簡単にしてくれるサービスです。

これらを使ってデプロイをしていきました。

AWSの手順は下記の通りです。

  1. AWSのアカウント作成
  2. EC2インスタンスの生成
  3. Linuxサーバ構築
  4. MySQLの設定
  5. Railsを起動する
  6. Nginx経由でRailsにアクセスする
  7. Capistrano(カピストラーノ)によるデプロイ作業の自動化

チャットアプリ理解度テスト(Ruby,Ruby on Rails)

で、そんなこんなで、理解度テストがありました。

内容は、Rubyアルゴリズム、Railsエラー問題です。

チャットスペース でやった内容が理解できれていれば、できる問題です。

ChatSpase(チャットスペース)には納期がある!

はい、ということで、納期の話ですが、正直、この納期には悩まされました!疲れました。

テックエキスパートで制作するチャットアプリ、通称「ChatSpace」というのですが、その納期は2種類あり、簡単に書くと、

  1. 返金保証を受けるための納期
  2. チーム開発に参加するための納期

があります。

上記の1は、受講開始から40日間まで(僕の時代は35日まで)にライフコーチが動作確認をして、OKをもらわなければいけません。

この納期を過ぎてしまうと、返金保証が無くなります。まあいうたら、「怠け者には返金しないぜ」ってことです。笑

万が一、期限を過ぎてしまっても、返金保証がなくなるだけで、期限内に納品した人と変わらないサービスを変わらず受けることができます。

なので、そこまで問題視することではないのかなと思います。納期は自分のペースを保つための一種の目安(目標)と思うと良いと思います。遅れていれば、「もうちょっと僕は頑張るべきだ」って感じね。

2の納期は、1の納期の1週間後だったので、47日後だと思います。チーム開発決めのための納期に遅れると、同期で編成されるチームに入れなくなり、後輩のチームと一緒にチームを組むことになります。

で、僕は返金保証のための納期に間に合ったのかというと…

納期

……

間に合いました!

セーフ

ギリでしたね。

風邪もひいていて、なんとか作り上げたという感じです。

でも、仕上げた時の達成感は半端なかったですね。(提出後3日は寝込みましたが…)

ちなみにチーム決めのための納期に遅れると、延長料金を払わなければいけないんです。

2019年当時は月額69,800円でした。まあ、普通にしてれば、2ヶ月以上遅れることはほぼありえないと思います。延長したとしても1ヶ月かな。僕の従来のチームは4人全員、新チーム決めのための納期には間に合っていました。10人に1人くらい間に合わない人がいたかなという感覚です。

次回予告

色々ありましたが、一件落着ということで、次回は個人アプリやチーム開発について書いていきたいと思います。

今回はここまで。次回は50日後の経過報告です。お楽しみに!

動画でご覧になりたい方は、ぜひYouTubeの方もチェックしてください。

〜最大2万円分お得!&無料相談キャンペーン〜
てぃかしの本名を紹介欄に書いて、TECH::EXPERTを受講される方は、1万円分のAmazonギフト券がもらえます。無料カウンセリング当日のお申し込みの場合は、さらに1万円OFFとなります。TECH::CAMPを受講される方は受講料が5%OFFとなります。又、私の紹介で受講決定された方限定で受講最初(2週間)悩むことがあれば、LINE@で相談乗ります。
TECH::EXPERT、TECH::CAMPのどちらかを受講をお考えの方は下記のいずれかの連絡先に、「受講コース」、「フルネーム」、「受講地域」をご連絡ください。

LINEでのご連絡は下記をタップしてください。
友だち追加
LINE ID検索はこちら→ @rfh1332u (@も入れて検索してください)

TwitterのDMでもOKです。
Twitter→ https://twitter.com/engineer_sakai

お申込み後にご連絡頂いた場合、割引が適用できない場合があります。必ず無料カウンセリングお申込み前にご連絡ください。

YouTubeでも役立つ情報を配信しています!

ボタンをクリックしてチャンネル登録お願いします!

-YouTube
-, , , , , ,

Copyright© てぃかしのブログ , 2020 All Rights Reserved Powered by AFFINGER5.