シード期スタートアップエンジニアの技術ブログ

仕事で得た知見や勉強した技術を書きます。

DAY9(2022 6/13) ~ DAY13(2022 6/17)

今週の目標

仕事をこなしているとあっという間に1週間が過ぎるので、1週間ごとに目標を作ることにしました。
f:id:yukiHaga:20220620090445j:image
■やると決めたこと

  • 7時間絶対寝る(0時〜7時)。できるだけ早く寝て朝勉強する
  • 7時30から8:00まで30分勉強する。この時間は極限まで増やす
  • 20時には絶対帰る。頭回っていないのに仕事してもあまり意味ないので
  • 今週の終わりまでに「Webを支える技術」を読み終える
  • 水曜日に洗濯をする
  • 朝はドーナツ、昼はパンを食う
  • 夜のうちに朝着る服とハンカチを用意する
  • 平日も土日も1日のやることが全て終わってから家のPCを見る
  • 土曜日の朝に15分だけツイッターを見る。ネタがあるなら何かしら投稿する
  • 土日は自分がやる必要があると思うことに、時間を投資する
  • Discordは自分のやることが全部終わったら見る。重要な話をしているときは優先して見る
  • 朝に重めのタスクをやる。頭が回転するので

■やらないと決めたこと

  • マターモスト(週一だけ見る)

DAY9(2022 6/13)

  • オーバーレイを追加した。めんどくさそうだったが、ライブラリですぐ実装できた。
  • 画像が取得できる機能を作成した。5時間くらいかかったけど何とか行けた。

 

DAY10(2022 6/14)

  • 画像が取得できる機能のレビュー修正をした。
  • レイアウトの背景が変わるように修正した。

 

DAY11(2022 6/15)

  • 処理が成功すると、画面に非同期で反映させるような機能を作成した。5時間くらいで行けた気がする。
  • 昨日のレイアウトの背景が変わるような機能を、別の実装方法で実装した。

DAY12(2022 6/16)

  • プルリクのレビュー修正をしていた。
  • 削除機能を50%くらい作った。
  • ログインしているユーザーが特定のコンテンツしか見れないように設定した。

 

DAY13(2022 6/17)

  • ユーザーがあるものを作成していない場合、外部公開できないような機能を作成した。
  • 条件によって、ユーザーがあるものを削除できないような機能を作成した。
  • 20%くらいレイアウトを整えた。

 

開発における気づき

  • react-railsだと初期レンダリング時にAPI通信でデータを取ってくる必要がない。
  • 稼働時間に見合ったアウトプットを出す。
  • optional: trueは、子モデルの外部キーidがnilでもバリデーションを通すオプション。
  • まとめてできることはまとめてやったほうがタスクの遂行スピードが早くなる。
  • 7時間睡眠をとると頭の回転が速くなる。
  • タスクがレビュー中もしくは聞かないと分からないけど聞けない状況でそのタスクを進行できない場合、別のタスク並行すると全体の終わるスピードが早くなる。
  • この時間には絶対帰るって時間を決めると、日中を集中して過ごそうって意識が湧く。
  • 何でもいいから、失敗してもいいから、発言すると当事者意識が湧く。
  • 探すことに脳のリソースを使わない。
  • 文字を追うのに時間がかかるなら、アイコンを見て判断する。(ビューファイルはアイコンで探したり、コントローラディレクトリの下にモデルがあったり、ディレクトリ構成覚えるとファイル探すスピードがさらに上がる)
  • 目が疲れてきたり、情報が追えなくて頭が回っていないと感じたら、瞬きをしたり、伸びをしたり、休憩を取ったりする。
  • どんなに小さな作業でも何時から何時までやるかを事前に決める。その作業中は決めた時間を意識して集中する。
  • sessionStorageとlocationを使って初めて開発をした。URLに関することならlocationを使った方が良い。
  • レビューのファイル修正するときは、ファイル名と行番号を見てすぐ検索をかける。
  • 何かを消すときは、それに関連して他に消すものがないかチェックする。
  • 名が体を成すようにする。実態に即した名前をアクションやエンドポイントにつける。
  • 一つのアクションでhtml やらJSONを返すなら、respond_toを使う。
  • 入力が何で出力が何かを事前に考えておいて知っておくと、スムーズに開発できる。
  • マルチテナントとは、SaaSASPサービスなどのように、同一のシステムやサービスを無関係な複数のユーザー(企業や個人)で共有するモデルを指す。マルチテナントを実現するようなgemもある。
  • 何が分かっていないのかを言語して説明できてない。もっと分かりやすく説明する。
  • 分割代入のインポートで最後にインポートしたものに,をつけないと、インポートするものを追加したときにコード変更差分が2行で出る。だからつけている。
  • プルリクでコミットした後にコミットidをコピーするのがめんどくさい。
  • タスクに取り掛かるときは、タスクのレポート→ 分からないことが何かを分かるためにまとめる → 分からないことを調査 → ループ → 解決策 or 実装方針を2〜3個考える → 実装。
  • 何かをやるためには、絶対にやらないことを決めることのほうが重要。フェーズによって変わるかもしれないが。
  • エラーでめんどくせーって感情的になる前に、客観的に自分が誰かに教える感じでエラーを紐解くと冷静に解決できる。
  • やりたくないことは過程を一つ追加する。やりたいことは過程を限りなく少なくする
  • 基本シングルタスクでやる。何かをやりながら何かをやるみたいなことは絶対しない
  • マックのファンの音とかキーボードの音とかうるさいと感じたとき、全く集中してないことに気づいた。対応策は未定。
  • コードレビューは答え合わせ。
  • なぜこの方法を思いついたのかを自分の中にストックしていく。数学と同じ。
  • 外に知り合いを作るのは大事。
  • 数をこなすとこういうことができるはずじゃね?ってのが思いつく。
  • もっと楽をしようってマインドがあると調べたりする。

所感

睡眠時間を7時間にしたことで、無意識にボーッとする時間が減ったような気がします。頭の回転も速くなった気がします。あと、帰る時間を早めたことでインプットの時間や寝る時間を増やすことができました。

今週から1週間の目標を作ったが、今後も継続したい。社会人やってるとどうしても成長している実感が湧きづらいので。

 

まだまだ、自分の開発スピードが遅いと感じるので、自分が想像している時間より早く実装できるようになりたい、、経験だったり数をこなすのが良いらしい。言語や技術、実装に対する理解も深めていきたい。

 

以上です。6/20からの5日間も頑張ってきます!