初めに
今期、僕が所属しているJISOUというコミュニティにて、HARD DAYというイベントがありました。
簡単にいうとみんなで一緒に作業するだけではなく、コミュニケーションを取りながら作業をして、時には筋トレも挟むというまあまあハードなイベントです!
ハードですが、イベントを通して得られた学びが膨大にあるので、その内容を以下に共有させていただきます。
他の人と作業をするメリット
結構React学習している人には多いんじゃないと思うのですが、自己学習って基本1人で作業することが多いです。
僕自身も1人で学習することが多いです。
これが今回のイベントで一番参加して良かったと思うことなんですが、みんなと作業することで自分のレベルの低さを知ることができました!
まさに「井の中の蛙」状態になっていたので、他の人のレベルの高さを実感することで、まだまだやれるなと感じました
コードのリファクタリングについて
以下の記事を参考にしています。
リファクタリングというと、長いコードをコンポーネント化して見やすくすること。
このように考えていました。
ですが本質はコードを読みやすくすることです。
例えば以下の2つのコードどちらがみやすいですか?
if(line.split(":")[0].trim() === "admin"){
// 処理
}
// 説明変数を定義する
const user_authority = line.split(":")[0].trim()
if(user_authority === "admin"){
処理
}
最初の方がコードの記述量が少なくスマートに見えますが、いざ読むとなると2つ目のコードの方が読みやすくないですか?
このようにただ短くするだけが、リファクタリングではないことを学びました。
それ以外にも
・関数名をわかりやすくする
const getRecord = ....
こちらは学習記録アプリのコードの一部です。
こちらの変数だと、何か記録を取得する関数だとわかりますがなんの記録かわかりません。
以下のように修正することで、わかりやすくなります。
const getStudyRecord = ...
・処理の内容をコメントアウトで記述する
useEffect(() => {
const getAllRecords = async () => {
const StudyRecordsData = await GetAllStudyRecords();
setTodos(StudyRecordsData);
setIsLoading(false);
console.log(StudyRecordsData);
};
getAllRecords();
}, []);
useEffect(() => {
const getAllRecords = async () => {
//supabaseから取得したすべての学習記録をStudyRecordsDataに格納
const StudyRecordsData = await GetAllStudyRecords();
//recordsの内容を取得したデータに書き換える
setRecords(StudyRecordsData);
//Loading状態をfalseにする (これは関数名から処理が予測できるので無しでもいいです)
setIsLoading(false);
};
getAllRecords();
}, []);
最初と後の記述だと、後の記述の方が断然見やすいと思います。
このようにコンポーネント化することだけが、リファクタリングではないことを学べました!
ポモドーロテクニックについて
あまり詳しくはないのですが、今回のイベント内での作業はポモドーロテクニックを使用して作業しました。
ポモドーロテクニックとは25分作業して、5分休憩。
これを1セットとして、最大4セット行います。
その後の休憩は5分ではなく長めの休憩を取る方法です。
これを実践することで、わからなくて嫌になりそうな気持ちも一度リセットできるので、集中力が長続きした気がします!
作業の合間の筋トレ
これは僕も以前から実践していたのですが、筋トレの後の作業ってめっちゃ捗るんですよね。
あと自己学習って自分との勝負する場面が本当に多いのです。
辛い筋トレを行なって体の脂肪だけではなく心の脂肪を落とせるメリットもあります。
もうこれは言葉ではなく体感してみてください!!
(僕のおすすめはバーピージャンプ 30秒 × 5セットです!)
まとめ
今回のイベントに参加して、Reactの知識を学習する上で自分1人では学べないことが本当に多くな学べました。
僕自身1人で作業することが嫌いではないのですが、自分のスキルアップのためにも、他の人と作業することは本当に重要だなと感じました!
最後に
プログラミングコーチングJISOUではメンバーを募集しています。
日本一のアウトプットコミュニティでキャリアアップしませんか?
気になる方はぜひHPからお願いします👇