강의

멘토링

로드맵

Inflearn brand logo image
BEST
Programming

/

etc. (Programming)

コーディングで学習するリファクタリング

リファクタリングは、ソフトウェアエンジニアが備えなければならない基本的な素養の一つです。このレッスンでは、IntelyJとJavaを使用して、より実用的な方法でさまざまなコードの匂いとリファクタリング技術を説明し、直接練習することができます。

  • whiteship
실리콘밸리
시니어의 비법
Refactoring
Java
IntelliJ IDEA

学習した受講者のレビュー

こんなことが学べます

  • 合計24のコード臭と7つのリファクタリングカタログ

  • Javaのサンプルコードで表示して直接練習できる43のリファクタリング

  • IntelliJが提供するリファクタリング関連機能

単純な実装を超えて
より良いコードを作りたいすべての開発者に💌

リファクタリング

コードの機能は維持しながら、クラス、関数、フィールドなど、複数のプログラミング要素を変更することでより良い
コードで改善するプロセスまたはそのような技術を指します。
同じように動作するコードも、より理解しやすく柔軟にすることができます。

こんなコード

これにより、もう少し読みやすいコードを作成できます。

私たちはリファクタリング
学ぶべき理由

最初は変わらないようだった家庭と最善だと思っていたコードも時間が経ち、環境が変わり、技術が発展してみると「コードを一体なぜこんなに編んだの?」という話をしましょう。
リファクタリングでカバーされている合計24のコードの匂いで、そのようなコードを見つける方法と43を超えるリファクタリング技術を使用してコードを改善する方法を学ぶことができます。
大丈夫ですが、このレッスンの後にあなたのコードをもう一度見ているなら、きっとより良いコードで修正することができます。


コード生産
増やしたい場合

IntelliJ
インテリジェイのような統合開発環境(IDE)は、単純なエディタとは異なり、高度な演算と分析機能です。
コードのリファクタリングに役立ついくつかの機能を提供しています。
このレッスンで紹介する機能を活用することで、コードの生産性を向上させることができます。

リファクタリング
必要な人は?

基礎文法は学びました。
今何をすべきですか?

今より
より良い開発者として
成長したいですか?

より良いコードで
改善したいのですが

臭いのコード
どのように改善するか
知りたいなら?

インテリジェイ
もっとよく書きたいのですが

リファクタリング機能を100%
活用したいですか?

リファクタリング?
実際に見たいのですが

グローリーディングリファクタリング
見ないで
学びたいなら?

📢お知らせします

  • 円滑な講義の受講にはJavaプログラミング言語の理解が必要です。
  • JavaとIntelyを使用してリファクタリングを紹介していますが、特定の言語やIDEに依存するものではありません

コーディングで学ぶ
リファクタリング

このレッスンでは、合計24のコードの匂いと各匂いを解決するためのいくつかのリファクタリング技術を取り上げています。
各リファクタリング技術はIntelliJが提供する機能を積極的に活用し、あなたが直接練習するためのサンプルコードを提供しています。

  1. 奇妙な名前 (Mysterious Name)
  2. 冗長コード (Duplicated Code)
  3. 長い関数 (Long Function)
  4. 長いパラメータリスト(Long Parameer List)
  5. グローバルデータ(Global Data)
  6. 可変データ (Mutable Data)
  7. 混乱の変更 (Divergent Change)
  8. 散弾銃手術 (Shotgun Surgery)
  9. 機能偏愛(Feature Envy)
  10. データの束 (Data Clumps)
  11. 基本型こだわり(Primitive Obsession)
  12. 繰り返される swtich ステートメント (Repleated Swtiches)
  13. 繰り返し文 (Loops)
  14. 姓のない要素 (Lazy Element)
  15. 推測性一般化 (Speculative Generality)
  16. 一時フィールド(Temporary Field)
  17. メッセージチェーン(Message Chains)
  18. モデレーター(ミドルマン)
  19. インサイダー取引 (Insider Trading)
  20. 巨大なクラス (Large Class)
  21. 異なるインターフェイスの代替クラス (Alternative Classes with Different Interfaces)
  22. データクラス(Data Class)
  23. 継承の放棄 (Refused Beques)
  24. コメント(コメント)

すべての開発者の必読書
リファクタリング

リファクタリング 1999年に1版を出版し、2018年に2版が出ており、GoFの著書《デザインパターン》とともに
すべての開発者に推奨される必読書の1つです。
過去と今、そして今後も業務でいつでも役に立つ技術なので、ぜひ学習してください。

Refactoring(リファクタリング2版)
Amazonに基づく評価 4.7/5
オブジェクト指向ソフトウェアデザイン分野8位(2022.02基準)
すべての開発者に推奨されるおすすめの書籍の1つ

Martin Folwer
オブジェクト指向分析設計、UML、エンタープライズパターン、
極端なプログラミングに関するいくつかの執筆と発表で
有名なソフトウェアエンジニア

📢参考にしてください

    • この講義はマーティン・ファウラーの著書『リファクタリング』を参考にして作成しました。


この講義がリファクタリング本と違う点

  • リファクタリング本は、各コードの匂いを簡単に扱った後、カタログごとにリファクタリング技術を詳しく説明します。
    しかし、このレッスンでは、問題の認識と解決策が続くように、コードの匂いと各匂いを解決するのに役立つリファクタリング技術を詳しく説明した後、リファクタリングカタログを調べて復習する方法を使用しています。
  • また、リファクタリングの第2版では、サンプルコードがJavaScriptで書かれており、完全なサンプルコードを提供していませんが、このレッスンではJavaで書かれたサンプルコードを提供して、あなたが自分で練習できるように準備しました。

  • 最後に、本ではIDEを使用しないという仮定のもとでリファクタリング方法を説明しますが、現実的にJava開発者の90%に近い開発者がIDEを使用しているため、この講義ではインテリJの機能を積極的に活用し、より実用的なリファクタリングを紹介しています。

予想される質問 Q&A

Q. 開発者ならリファクタリングを必ず学ばなければなりませんか?

A. 「どうすれば動作すればいいのか」ではなく、「どうすればより良いコードで動作させることができるのか?」を悩む開発者であれば、リファクタリングを必ず学習しなければなりません。

Q. リファクタリングはいつすべきですか? 実務でリファクタリングをする時間がありません。

A. リファクタリングは時間を決めておいても良いし、新しいコードを作成する時や既存のコードを修正して機能を改善したり変更するときのように進めることもできます。パラメータ化」を使用すると、かなりの数の重複コードを削除し、もう少し読みやすいコードを作成して送信し、コードレビューを待っています。

Q. Java基礎だけ勉強した状態なのにこの講義を受講してもいいですか?

A. はい、Javaの基礎を学んだら、本講義を受講することができます。

Q. 講義の難易度ややり方が私に合うのか気になります。

A. この講義でプレビューで「理解しにくい名前」、「関数宣言を変更する」、「変数名を変更する」の授業を公開しておきました。

マイクロソフトのシニア開発者に学ぶリファクタリング!

「開発者として仕事をしてみると、一度はコードを「たわごと」に例える言葉を聞いたことがあるでしょう。これらのコードは業務処理を遅らせ、要求の変更に対処するのが難しくなります。
このようなコードをきれいで安全に整理する方法がリファクタリングであり、これにより、より読みやすく、変化に柔軟に対処可能な構造でコード変更が可能です

こんな方に
おすすめです

学習対象は
誰でしょう?

  • リファクタリングに初めて接する開発者または学生

  • より良いコードで改善する方法を学びたい開発者や学生

  • IntelliJをより活用して生産性を高めたい開発者や学生

前提知識、
必要でしょうか?

  • Javaの基礎

こんにちは
です。

92,242

受講生

4,207

受講レビュー

2,010

回答

4.8

講座評価

20

講座

네이버와 아마존을 거쳐 현재 Microsoft에서 시니어 소프트웨어 엔지니어로 일하고 있습니다.

아인슈타인은 "교육이란 사실을 가르치는 것이 아니라, 생각할 수 있는 힘을 기르는 것이다."라고 말했습니다. 그리고 저도 그 말에 깊이 공감하며 강의를 만들고 있습니다.

유튜브:
'백기선' 채널에서 개발자 고민 상담 및 개발자에게 유용한 지식 공유
번역: 스프링 및 하이버네이트 관련 서적 다수 번역
저술: 쉽게 따라하는 자바 웹 개발

カリキュラム

全体

78件 ∙ (9時間 39分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

135件

4.9

135件の受講レビュー

  • Eil님의 프로필 이미지
    Eil

    受講レビュー 3

    平均評価 5.0

    5

    17% 受講後に作成

    디자인 패턴에 이어 두 번째 강의입니다. 내용이 정말 좋아요... 특히 쉽게 알려주세요. 먼저 타겟에 대한 인사이트를 알려주고 스스로 공부해야 한다는 특징이 있어요. 1부터 10까지 모든 것을 알려주는 강의를 원한다면 추천하지 않습니다. 다만, 독학으로 전혀 감이 오지 않는 생소함을 제거하고 흥미가 생기고 싶으신 분이라면 추천드려요. + 가끔씩 나오는 잡기술(?)이나 노하우가 어디서도 듣기 힘든 좋은 꿀팁입니다.

    • snu님의 프로필 이미지
      snu

      受講レビュー 2

      平均評価 3.5

      3

      67% 受講後に作成

      제대로 공부하시려면 책을 보시는 것을 추천드리고 리팩터링에 대해 빠른 기간 내에 무엇인지 훝어보고자 하는 분들은 이 강의를 추천드립니다.

      • Truestar님의 프로필 이미지
        Truestar

        受講レビュー 26

        平均評価 4.9

        5

        100% 受講後に作成

        리팩터링 책에 없는, 실무적 관점의 강사님의 여러 의견들을 들을 수 있어서 좋았습니다. 솔직히 책 만으로는 부족하다 생각합니다. 리팩터링 할 실무적 상황이 필요하기 때문이죠. 강의를 듣는 와중에도, 여러 설명을 통해 상황을 시뮬레이션 할 수 있어서 실무적 관점의 궁금증이 어느정도 해소가 되기 때문에 좋았습니다. 그리고 마지막 추천하신 책이 난이도가 높아 과거에 사두고서 책장 박아놨던 책인데, 강의에서 언급해주셔서 책을 처분 안하길 잘했다고 안도를 하게 된 해프닝이 있었습니다 ㅎ 좋은 강의 감사드립니다.

        • 강의 수집가님의 프로필 이미지
          강의 수집가

          受講レビュー 48

          平均評価 5.0

          5

          100% 受講後に作成

          수집 완료!

          • 박순영님의 프로필 이미지
            박순영

            受講レビュー 18

            平均評価 5.0

            5

            100% 受講後に作成

            제가 만들었던 코드도 읽기 어려운 적이 많아 나름대로의 리펙토링을 해봤었는데 썩 마음에 들지는 않았습니다. 이번 강의를 통해서 많은 기술들을 배웠고 책을 꼭 읽어봐야 겠다는 생각이 드네요. 언제나 감사합니다.

            ¥9,036

            whiteshipの他の講座

            知識共有者の他の講座を見てみましょう!

            似ている講座

            同じ分野の他の講座を見てみましょう!