未経験からエンジニアになるまでの道のりを記録していきます。

毎週土曜日〆、月曜日更新。

ログ:2020/08/16~2020/08/22

実績

学習時間・・・56h/32h

3月〜現在・・・954.5h(目標:転職完了までに1000h)

 

ポートフォリオ作成

- ECSによるシステム稼働成功

- ELB→railsアプリへのヘルスチェックエラー解消

- EC2の変更によりCPU不足解消

- circleCIによるCI/CD

 

チーム開発

- メンバーフォロー

 

所感

先週分でお伝えしていた503エラーの原因はELBのヘルスチェック失敗。

railsの設定でhttp接続されたときにhttpsにリダイレクトする設定をONにしてしまっていた。

 

ELBからの接続およびヘルスチェックはHTTPを用いていたため、レスポンスは301。

ヘルス条件は200が返ってくること、だからヘルスではないと判定。

その後再起動。

という流れでした。

 

railsアプリの設定を切ると動くように。

 

念の為、アクセス負荷テストも実施すると

以前とは挙動は異なるが再度、503エラー。

CPU使用率が上がっていることを確認したので、EC2をt2.microからt2.microに変更。(CPUが1つ多い)

変更後は問題なく動きました。

 

ようやくコンテナ実装が終わったので、次はcircleCIによるCI/CD導入。

長期戦になるかな?と覚悟していましたが、意外とすぐできました笑

 

コンテナへの理解があったため、テスト環境を構築する概念、とかいうところもすんなり受け入れられたことが大きい。

 

来週からは実際にアプリをリリースする準備に入ります。

 

グループ課題の方は、スプリントレビューにて一点だけ指摘をいただいたものの、必須実装項目はすべてLGTM。

次回、最終回には完了する見込みです。

 

来週の予定

ポートフォリオ

- 初期データ注入

- DBバックアップ手法の確立

- UI改善

 

チーム開発

- ぼちぼちレビュー

 

その他

Spotifyの創業者、ダニエルエクの伝記を読みました。

願わくばいつか、Spotifyのような素晴らしいサービスを作りたいものです。

 

今週の報告は以上です。

ログ:2020/08/09~2020/08/15

実績

学習時間・・・65h/32h

3月~現在・・・898.5h(目標:転職完了までに1000h)

ポートフォリオ作成

- ECSタスク定義 railsアプリ+unicornmysql接続

- コンテナ環境に再設定 DNSSSL接続、ファイアウォール設定

- railsアプリのコンテナ軽量化

- ECSサービス設定 オートスケール、ロードバランサ設定

 チーム開発

- クレカ登録/削除、商品購入機能デプロイ完了・動作確認

- マイページリファクタリング(パーシャル化、html/css見直し)

- パンくず機能実装

 

所感

ECS週間。

一旦はECSにて動作することができました。

さらにrailsアプリのコンテナが1.4GBとものすごい容量になっていたので440MBまで圧縮する作業もしました。

本番と統合だ!ということでmasterにマージしたのは良いものの、そこから謎の503エラーが発生。

次週はこれに立ち向かうことに・・・。

 

チーム開発の方は最後の必須実装機能のクレカ登録、商品購入機能をデプロイまでかこつけました。

この週報の日程の次の日の8/16にあるスプリントレビューで晴れてタスク完了!?なるか!?

 

来週の予定

ポートフォリオ

- 本番環境にてDocker運用開始

- CircleCI導入

 

チーム開発

- ぼちぼちレビューしつつ、気晴らしにリファクタリングしたりする

 

その他

退職に向けた動きも一通り完了して、8/14には業務最終日でした。

残タスクとしては人事面談と私物回収、PC返却などで2日ほど予定があります。

来週からはばりばりポートフォリオの作成進めるぞ!

 

今週の報告は以上です。

 

 

ログ:2020/08/02~2020/08/08

実績

学習時間・・・43h/32h

3月~現在・・・833.5h(目標:転職完了までに1000h)

 

ポートフォリオ作成

- Docker実装のためのインプット(動画教材)

- docker-composeを用いたローカル起動

ECSタスク定義

- mysql起動

- nginx起動

- railsアプリ+unicornmysql接続(途中)

 

チーム開発

- クレカ情報表示画面マークアップにレコード反映

- 取引終了商品へのアクセス制限

- その他 クレカ登録・削除・購入機能のエラー修正

- モデルテスト:クレカ登録、商品購入機能のクラスメソッド

- その他メンバーフォロー

 

所感

今週はDocker週間でした。

dockerの操作やエラーの確認の仕方、必要な設定などの理解がかなり深まりました。

山勘ではなくエラーを見て冷静に手を打っていけているのが要因。

 

今回だと、Dockerという新しい概念にチャレンジしているわけですが、例えば今後、新しい言語に取り組む際にも、「エラーの把握の仕方を抑える」ことは最優先でやるべきだと感じました。

 

エラー内容が分からなければ、場当たり的に解決できたとしても、理解できないままになってしまいます。

逆に、エラーが分かって手を売っていけば理解のスピードも上がって、習得の効率もあがるのではないでしょうか。

 

来週の予定

ポートフォリオ

- ECS上でサービス起動

- ECSにてproduction環境の設定

- 本番環境にてDocker運用開始

 

チーム開発

- クレカ登録機能、商品購入機能実装完了

→必須実装項目を完了

 

その他

退職に向けて活動中です!今月末までには引き継ぎ終わらせて有給消化に移る目標で動きます。

 

今週の報告は以上です。

ログ:2020/07/26~2020/08/01

実績

学習時間・・・33.5h/32h

3月~現在・・・790.5h(目標:転職完了までに1000h)

 

ポートフォリオ作成

- セキュリティ対策 ReCapthca(API)実装 

- APIに関するコントローラテスト(mock使用)

- APIに関する統合テスト

 

チーム開発

クレカ登録機能

- payjpサーバへのカード情報登録

- カード登録機能エラーハンドリング

商品購入機能

 

所感

グループ課題でもポートフォリオでもAPI関連の機能を実装してきたわけですが、今週はそれらの実装が完了しました。

APIサーバ側からのエラーメッセージを利用すればかなり詳細なアナウンスをユーザーに返すことができると学びました。

またモックを用いたrspecテストはこれまで実装してこなかったので良い経験になりました。

 

来週の予定

個人アプリ

dockerローカル起動

ECS(AWSのコンテナオーケストレーションサービス)でサービス起動

 

チーム開発

※しばらくメンバーのフォローに回ります。

 

以上です。ありがとうございました。

ログ:2020/07/19~2020/07/25

実績

今週の学習時間・・・53h/32h

3月〜現在・・・757h(目標:転職完了までに1000h )

ポートフォリオ作成

- 統合テスト全5残3モデル分

- ドメイン取得

- ACM+ELBを用いたhttpsアクセスの実現

- インプット:Docker入門、実践コンテナ開発入門

- ローカル起動成功(Rails + Unicorn + MySQL)

- セキュリティ対策 ReCAPTCHA(API)途中※

※よく見かける信号機の写真を選択させてボット判定するアレ。

 

チーム開発

商品出品機能(レビュー指摘事項の修正)

- カテゴリ選択時のサブカテゴリ表示js

- 画像テーブルの分離 from 商品テーブル

 

クレカ登録機能

- APIを用いた登録(MySQL&payjpサーバ)※payjpサーバは顧客情報のみ

 

所感

ついにDocker着手しました。

概念やコマンドの動作は十分理解したつもりだけど実際にdockerfileやオーケストレーションソフトにどんなコードを書いていくのか、が今の所分かっていません。

またウンウン悩みながら所望の状態を実現して、成長するチャンスです!

また週末にはかねてより触ってみたいと思っていた、APIに2つもチャレンジすることができました。

API連携のために必要な項目をざっくり書くと

  1.  認証キーの設定、適切な場所への記述
  2. サービスごとの関数 or NetHTTP or JSを用いた通信
  3. その後、Rails側の動作(サービスから帰ってきた値の処理や保存)

と思います。特に2番に苦戦中です。

 

個人アプリは来月の半ばにはβ版としてリリースしてユーザに使用してもらう目標のため、セキュリティ周りの整備ということでhttps通信やreCAPTCHA、その他Railsの標準セキュリティの機能の適用を行いました。

素人だけど、人に使ってもらうということは妥協はできません。

 

来週の予定

個人アプリ作成

- ReCAPTCHA実装

- 本番環境へのDocker適用50% AmazonECSの設定、Dockerfileの修正、環境変数の見直しなど

チーム開発

- クレカ登録機能

- クレカ購入機能

 

以上です。

ありがとうございました。

 

 

ログ:2020/07/12~2020/07/18

1週間更新が遅れました。

現職の仕事が急に立て込んできたため、時間が圧迫されたことが理由です。
あくまで学習時間の確保を優先しました。

 

まずは先々週分の投稿です。

 

実績

46h/32h

ポートフォリオ作成

- モデル単体テスト全7中残1モデル

- コントローラテスト全7コントローラ

- 統合テスト シナリオ案検討

- 統合テスト2モデル分

チーム開発

商品出品機能

- enum日本語化

- モデルテスト

ユーザ登録機能

- モデルテスト

 

所感

テスト週間でした。有名なrspecの資料(使えるrspec入門やeveryday rails)を読みながら手を動かしました。

テストを実施することで見つけたエラーがあったり、テストで動作を担保した上で、リファクタリングを行っていく考え方が身につきました。

直感的に何をやっているかわかりやすいテストコードを実現したのがrspec、と学んだのでそうなるように実践しました。

ただボタンやリンクではない普通のdiv要素をjsの起動ボタンとして実装してしまっていた部分があったため、そこに関係する統合テストは余り直感的ではないものができてしまいました。

ユーザの体験としては同じでも、それは分かりづらいコード、バグが出るコードだということなので、今後は用意されているものを積極的に使用し、折を見て既存の部分も改善していこうと思います。

 

チーム開発においてもテストを担当しました。学習したばかりのものだったのでサクサク進みました。

 

予定

個人アプリ

- 統合テスト完了

- https通信化

- docker導入

 

チーム開発

- カード登録機能

 

その他

読書

先々週からなぜ、なぜとタイトルに入っている書籍ばかり読んできた極めつけが「史上最強の哲学入門」

ついに哲学していました。

理想追求と現実に役に立つ考え方2つの考え方が交互に現れて、哲学が進化してきたことが面白く感じました。
哲学者ではなく、かつてのミュージシャンとしての私も同じように葛藤し、ベストなポジションを探してきました。

これからエンジニアになってもきっと同様なのでしょう。

 

以上です。

ありがとうございました。

 

ログ:2020/07/05~2020/07/11

実績

55h/32h

 

ポートフォリオ作成

- お試しログイン機能実装

- マイページ機能(基本情報の表示、練習曲管理+フロントデザイン)

-  ユーザ情報の編集/削除

- レスポンシブ対応(最低限)

- グローバルナビ/サーチのUI改善

- 全7テーブルのバリデーション/エラーメッセージ設定

- 全7中6テーブルのモデル単体テスト(validates, dependent: destroy, counter_cache)

- モデル単体テストリファクタリング

 

チーム開発(スクール課題)

商品出品機能

- データ登録 view〜ストロングパラメータ~保存まで

- carrierwaveを用いた画像の複数登録to AWSのS3

- フロント(javascript): カテゴリの動的表示、画像のサムネイル表示

- フロント適用: メンバーが作成したHTML/CSSRailsのフォーム適用

 

所感

今週の個人アプリ作成では、あとに回していた小さな機能や修正を淡々とこなしました。

バリデーションや最低限のレスポンシブ対応も必要とわかっていながら後に置いていたのでだいぶすっきりしたー!

週後半は、ようやくのテスト着手できました。

先週の週報を見ると、テスト着手までは視野にいなかったのでかなり良い進捗!

なんなら日曜日時点でモデルテストは完了しています。

(この週報は土曜日〆のため、上のリストには書いていませんが)

あとはコントローラテストと統合テストを残すのみ!

 

チーム開発については画像アップロードを担当しました。

ポートフォリオサイトでは実装することのない機能だったものの、現場では使う機会もあるだろう機能でもあるので、この機会にさわれてよかったです。

 

チーム開発では積極的に、個人アプリで触れることのなかった機能にチャレンジしていくと良さそうです!

 

日曜日にはメンターさんからのレビューがあり、それなりにハイペースで進んでいるということが分かりました。

今週も同じペースでやっていましたが、ついてくるのがしんどそうなメンバーもいるのでもう少しペースを落とす必要がありそうです。

 

ペース落としたら落としたで個人アプリでもやることたくさんあるし、暇にはなるまい。

メンバーのためにも引っ張りすぎることは良くないですから。

 

来週の予定

個人アプリ

- コントローラテスト

- 統合テスト50%

 

チーム開発

商品登録機能

- バリデーションとエラーメッセージ

- 登録失敗→ロールバック時のフォーム再入力にjsを対応する

- モデルテスト着手

 

先週はチーム開発50%、個人アプリ50%くらいで進めていました。

歩調を合わせる意味でチーム開発30%、個人アプリ70%くらいの比重で進めてみようと思います。

 

その他

読書

オブジェクト指向でなぜつくるのか

なぜ人と組織は変われないのか

 

先週の「世界のエリートはなぜ美意識を鍛えるのか」にひきつづき、なぜなぜとタイトルに入っているのが面白い。

 

常に自問自答しながら生きている現れですね(?)

 

チーム飲み

スクールのチーム開発メンバーで飲みに行きました。

アホな話したり、今の仕事の話、こだわりの話、結婚と子供の話など楽しかった!

 

2次会はエルビス・プレスリーなバーでええウイスキーを頂きました。

お酒には詳しくないから言葉で表現するのは難しいけど、ええお酒は立体的、という話は、ええ音楽も立体的なのでなんとなく理解できましたよ。

ええコードはどんなコードなんやろう。。。

 

以上です。ありがとうございました!

今週も頑張りましょう!