プログラミング中級者になりたい人のためのクリーンコード入門
What you'll learn
- 他の開発者の人が理解しやすいコードの書き方について学びます。
- 読んでいて疲れないコードの書き方について学びます。
- 無駄な部分まで読む必要がないコードの書き方について学びます。
- バグが混入しにくいコードの書き方について学びます。
- 改修箇所が限定されるコードの書き方について学びます。
- 改修による既存のコードへの影響が限定されるコードの書き方について学びます。
- 新規機能の追加が行いやすいコードの書き方について学びます。
- 冗長な記述がないコードの書き方について学びます。
- クラスの凝集度、結合度について学びます。
- SOLID原則について学びます。
Requirements
- JavaScriptの基本的な書き方を習得していること
Description
皆さんはどのようにすればプログラミングが上達するのか疑問に思ったことはありませんか?
なんとなくプログラムを記述しているだけでもプログラミング力は確かに向上します。ただ、これから紹介する3つのポイントを抑えながらプログラミングを行うとより効率的にプログラミングの上達を行うことが出来ます。
■ プログラミングの上達に欠かせない3つのポイント
- 1. 習うより慣れろ
これは巷(ちまた)でよく言われていることですが、プログラミング学習の初期段階では手を動かしてプログラミングに慣れることが重要になってきます。プログラミングのスキルを向上するためにはインプットと同じくらい、アウトプットが重要になってきます。例えるならば、自転車の乗り方をいくら口頭で説明されたところで、自転車に乗れるようにはなりません。それと同じで、プログラミングが書けるようになるためには、自分で手を動かして書くことが重要です。
- 2. 基礎を理解する
ここで言う基礎というのは、物事の根底にあるもののことです。例えば、React(JavaScriptの高機能なUIライブラリ)を使いこなしたいのであれば、Reactの元になるJavaScriptの挙動について理解することが重要になってきます。Reactを覚えれば、なんとなく動く機能を最短で作ることができるようになりますが、それ以上のレベルに行くためには合わせて基礎を理解している必要があります。
- 3. 他人のコードからノウハウを盗め
プログラミングを上達する過程では自分で試行錯誤しながらエラーを解消したり、より良いプログラムの記述方法を自分で考えることはとても重要です。ただ、過去の人たちが犯した失敗と同じ失敗をわざわざ犯す必要はありません。今日のIT技術の発展に至るまでには世界中の "頭の良い人" 達が何年も技術を磨き、失敗しながら導き出した最適なプログラミングのパターン(デザインパターンやクリーンコード)などが存在します。そうした知識を得ることで、彼らが何年もかけて到達した地点まで最短で行くことが出来ます。
プログラムの記述は一見創造的な行為に見えますが、実際には「過去にインプットした情報」の断片をたぐり寄せて、アウトプットする行為に過ぎません。そのため、他の人が書いた質の良いコードを見ることは、自身のアウトプットを高めるためには重要になってきます。
本コースでは上で挙げた3つ目のポイントであるクリーンコードについて学んでいくことになります。
■ クリーンコードとは?
皆さんは「クリーンコード」という言葉を聞いたことがありますか?
クリーンコードとは端的に言うと「きれいなコード」、または「コードをきれいに書く技術」のことを言います。
では、そもそもきれいなコード、汚いコードとはどのようなコードでしょうか?
■ 汚いコードに見られる特徴
汚いコードには次のような特徴があります。
・変数名があいまい。
・コードが読みづらい。
・規則性がない。
・記述が冗長。
・拡張性がない。
・保守性が低い。
・テストコードが書きづらい。
汚いコードに良くあるケースはコードの記述に一貫性がなく、何回も読み直さないと処理の内容が頭に入って来ないような記述になっているケースです。また、適切に処理が分離されていない状態では、新規機能の追加の際にも既存の機能に修正が必要になってくるケースも多々あります。このような状態のコードはあまり良いコードとは言えません。
■ きれいなコードに見られる特徴
一方で、きれいなコード(クリーンコード)には次のような特徴があります。
・変数が適切な名前になっている。
・楽に読むことができる。
・一貫した規則性がある。
・冗長な記述がない。
・拡張性に優れる。
・既存機能の改修がしやすい。
・テストコードが書きやすい。
処理の内容が追いやすく、コードからその処理の意図が伝わってくるようなコードはきれいなコードと言うことが出来ます。また、適切に処理の分離が行われ、新規機能の追加の際にも既存のコードに改修が発生しないと言った点も考慮して書かれたコードはより良いコードと言うことが出来るでしょう。
■ きれいなコードを書くために
では、きれいなコードを書くためにはどのようにすればよいのでしょうか?
一般的にコードをきれいに書くノウハウは実際の開発の中で失敗しながら少しずつ学んでいくものです。問題にぶち当たったときに次回への改善点としてきれいに書くことの重要性とそのノウハウを学びます。ただ、このような機会がない人は決して少なくないはずです。
幸い、先人たちはこれまでの開発で積み上げてきたノウハウをクリーンコードとして体系化してくれています。そのため、皆さんが長い期間をかけて実際の開発の中で学ぶはずのノウハウをショートカットすることができます。
■ 本コースで学ぶこと
本コースでは「良いコード」「悪いコード」の例を用いながら、クリーンコードの観点から、美しいコード、他の人から読みやすいコード、保守性や拡張性に優れるコードの記述方法について学習をしていきます。
本コースでは「他の人に読みやすいコードを記述しろ!」「保守性を高めろ!」「拡張性に考慮して記述しろ!」といった抽象的な説明は行いません。具体的な例を見ながら、何が良いのか?なぜ悪いのか?について一つずつ細かく確認していきます。
■ コースの対象者
・今後コードを書く上で気を付けるべき点を知っておきたい。
・後で見直して何がどうなっているのか分からない。
・コード量が増えていくとコードの整理できなくなっていく。
・ポートフォリオ用のコードを作成したいが自信がない。
・コードレビューで何度もダメ出しされてへこむ。
・チームメンバーのコードレビューを任されたため指標が欲しい。
このように感じる人は一度本コースを受けてみてください。
これはどんなプログラミング言語やフレームワークを使っていても汎用的に用いることのできる概念です。
本コースではJavaScriptを用いて説明を行うため、一部JavaScriptの言語仕様に依存するところはありますが、Python、Ruby、PHPなどの他のプログラミング言語を使う人にとっても有益な情報を盛り込んでいます。そのため、JavaScript以外のプログラミング言語を学んで居る方にとってもきっと役立つ知識を得ることができます。
また、React、Vue、Firebase、TypeScriptなどをこれから使いたい人にとっては是非一度触れておいていただきたい知識になります。
あなたがもし1年目のプログラマであれば、これから何万、何十万行というコードを書くことになります。
その中で、クリーンコードの概念を知っていると、より適切な記述の指針を得ることができ、より効率的にプログラミングの上達を行うことができます。
プログラミングを上達したいと考えている人は一度クリーンコードに触れてみてください。
あなたがこれまでに意識しなかったコードを読みやすくするテクニックがきっと見つかります。
Who this course is for:
- 自分のコードが汚くて、訳が分からなくなってしまう方
- チーム開発を行う予定がある方
- 綺麗なコードの指針について知りたい方
- 将来、エンジニアになりたい方
- コードレビューをする立場の方
- ポートフォリオの提出予定がある方
- 周りの開発者に好かれたい方
Instructor
皆さん、こんばんは。CodeMafiaです。
私はWEBプログラミングの初学者から中級者向けの学習コースに特化して提供しています。
私のコースの中では「なぜ?」「どうして?」の説明を必ずつけるように心掛けています。「なぜそうなるのか?」「どうしてその方法で実装するのか?」それは、私が駆け出しエンジニアだった時に一番知りたかったことでした。しかし、そこまで丁寧に答えてくれる人はなかなかいませんでした。そのため、私のコースの中ではなるべく生徒さん達にモヤモヤを持ってほしくないと思い、「なぜ?」「どうして?」をできる限り説明するようにしています。基礎が理解できれば、未知の状況でも自分で考えて応用することができます。私のコースが皆さんの基礎固めのお役に立てば幸いです。
- 授業を受けてくださった皆様へ
ご受講いただきまして誠にありがとうございます。
是非、皆様のコースに対する正直な意見をお知らせください。
フィードバックをいただけると大変モチベーションにつながりますし、コースの改善に大変役立ちます。
良い意見も悪い意見も大歓迎です。
是非忌憚のない意見をお知らせください。
- 近況報告
本を出版しました。JavaScriptの動作原理について詳しく書いた本になります。思い通りにコードが書けなくて悩んでいる方は是非一度ご覧いただけますと幸いです。(全国の書店でご覧いただけますので、書店にお立ち寄りの際は是非見てみてください。)
「独習JavaScript新版」翔泳社出版 2021/11/15発売
- 略歴
- 北海道大学 工学研究科 応用物理学専攻 修了
レーザーと超音波の研究やってました。超高解像の微弱な超音波を物体に派生させることによって物性を計測する研究に携わっていました。
- ソフトバンク SE兼、開発で新卒入社〜4年間勤務
大手IT企業がどんどん世界を変えていくのを目の当たりにして、ITに興味を持ちソフトバンクに入社しました。
数億円規模のプロジェクトの立ち上げに携わる一方、大規模WEBアプリケーションの長期保守とアジャイル開発に携わっていました。フロントエンドからバックエンドまで幅広い領域を担当していました。
- フィリピンで半年間語学留学
ソフトバンクをやめてからはフィリピンに半年間語学留学していました。英語はおおよそ思ったように喋れる様になりましたが、別のところで色々ありました。笑
- 起業~現在
世界の著名な起業家になりたいという中二病的発想で何も考えず会社をやめて独立しました。ただ、そんなに世の中うまくいくわけもなく、なかなか大変な時期もありました。笑
一歩ずつ前進していけるようにこれからも精進していきたいと思います!
- 強み
もともとソフトバンクで働いていましたが、今は独立してIT業界に携わっているため、大規模アプリケーションの開発の進め方から、小規模アプリのスピーディーな開発の進め方まで多様な開発手法について知っていると思います。そのような経験の中から有益な情報を皆様にお伝えできれば幸いです。
- 行動指針
失敗してもいいから「とりあえずやってみる」ことを心掛けています。
- その他
無料で公開しているコースについては初期に収録したコースになります。お見苦しいところもあるかと思いますが、少しでもお役に立てば幸いです。
では、皆様のより一層の飛躍を心よりお祈り申し上げます!