最近の勉強をノート代わりにまとめていきます。
主に自分の学習の流れを振り返りで残す形なので色々、省いてます。
Webエンジニアの諸先輩方からアドバイスやご指摘を頂けたらありがたいです!
プログラミングを早くするためのステップ
今回はこの勉強会に参加して勉強になった個人的に参考になった内容をまとめました。
自分はエンジニアとしてまだまだ未熟物なのでひとつひとつ実行していこうと思いました。
【生配信】ステップアップ!プログラミング高速化【サポーターズCoLab勉強会】
step1 書いて覚える
人によってコードを書く際にコピペを多用する人もいるが基本コピペは使用しない様にする。
Q:なぜコピペするのか?
A:失敗が怖い!
コンパイルエラーは怖い→そうや!コピペしよう!
コピペは常に悪とは言わないけど単語レベルなら書いた方が早い
基礎的な構文はかける様にする。
IDEを味方にしてしっかり使う
すらすら書けるまでひたすら書いてトレーニングしよう!
Step2 丁寧に書く
急いで書くとバグるの?これは生産性が結局、悪い
急いで書いてもバグが起きてバグ修正が起きてしまったら結局時間がかかる
丁寧に書くのが遅いのではなく、丁寧に書くのに慣れてないから遅い
適当な書き方では頭の生理ができなくなり時間がかかる
修正コストは急いで書いたものより丁寧に書いた方が
長期スパンで考えると良い!
修正は絶対起きる!
なぜなら、ソフトウェアは変化するものだから、
いずれツケを誰かが払う時がくる
技術的負債を残さない為にも丁寧に書く
綺麗なプログラムを書きなさい→綺麗とは何?
各種原則に則る?
誰にでも読みやすいコード、可読性の高いコード?
可読性は幻想!!
可読性は幻想、追い求めてはいけない
if文ばっかで書かれたコードは可読性があるがダメ!
自身が思う綺麗さについて妥協していないコード?
その人が本気で書く事
どんなときも自分ができる精一杯の丁寧なコードを
書いてトレーニングしよう!
step3 書き方を覚える
プログラミングを遅くする原因
- プログラミング中
- これをどこに書こうかな?
- この書きかたでいいのかな?
- 似た様な処理、書いてないかな?
人の行動を遅くする原因は迷い
迷いをなくす = 早くなる
数学は公式
プログラミングはパターン
XXXの時はYYYする
パターンに落とし込むのが大事
デザインパターン
ある問題を解決する実装のパターンGOF(Gang of four)が有名
覚えておくと適応できる、または応用できる。
Q:どのパターンにも当てはめれない時は?
A:自分のパターンを作成する。
何がパターンなのかを把握する為に、原則を学び、みんなの書き方を参考にする。
単一責任の原則:クラスは一つの事に集中しなさい
開放・閉鎖原則:ロジックを変えずに動作を変える、拡張できる様にする
人間はシングルスレッドの方が得意
書き方を覚える際
- 皆の書き方
- オープンソース
- プロダクトのコード
玉石混合:
気をつけるべき:なぜこの様な記述をするのかを考えてるコードリーディングする
step2と並行すると効果は抜群
step4 プログラムをするプログラムを書く
ここまでのトレーニングをすれば上がる
指の速度に限界がある,誰も追いつけない速度に行くには
プログラムをするプログラムを書く
例:似た様な作業が何度も必要なコーディングは存在する。
肩代わりするツールを作成する。一般的な実例:snippet,スキャフォールディング
ツールを作るメリット
ツールを作ると
step2のトレーニングができる
step3で学んだ事が実験できる
ツールを作るデメリット
根気がいる作業なのでモチベーションが大事!
ツールを作るのが大変?
入力を解釈してデータを出力する
いつもの仕事と変わりない
プログラムを書くライブラリー
ツールを作ると自分の実力が分かる
ツールが間違ったら→間違い方に法則がある。
ヒューマンエラーの様な予測できないものよりましじゃない?
実践の場をプロダクトだけにするといつまでもトレーニングできない
気軽にツールを作ってトレーニングしよう
そして