Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
Programming

/

Programming Tool/Software

自分で作って学ぶGit Internals

バージョン管理ツールの事実上標準であるGitの動作を深く学び、自分で作ってみてください!

  • byjayce
git
internals
Git
Go
system-programming

こんなことが学べます

  • Gitの内部動作

  • システムプログラミング

自分で作って学ぶGit Internals 📖

Build From Scratch ! Build Your Own Git !

git checkoutgit commitコマンドをGitに入力すると、Gitの内部でどのような動作をするのか説明できますか?


受講対象/講義目的 🙆‍♀️

知識共有者が考える受講生の種類

  • よく使う技術のUnder the hoodを探求したい人
  • 工学的に深い探求の経験を望む人
  • Gitの動作原理をより正確に理解したい人

受講生の悩み&解決方法

  • 🥲 面接で求める技術に対する深い探求はどうするのか?
  • 🧐Gitを書くだけで、どう動作するのか気になったこと?
  • 🤨システムプログラミングプロジェクトとして適切なものはありませんか?

講義を聞いた後、受講生の変化

  • 非常に有名なツールの深い工学的原理を探求した経験を持つ開発者
  • よく使う言語でシステムプログラミングプロジェクトを進めた開発者
  • Gitの動作を正確に知って使用できる開発者

講義の特徴✨

  • 講義はGitの内部動作を実装する実践を進めます。
  • 講義の練習はGo言語で行われますが、すべての言語で簡単に置き換えられる文法のみを使用します。
  • 使用されるGo文法の説明も含まれています。
  • システムプログラミング学習と重要なシステムプログラミングの練習を進めることができます。

学習内容📚

  • Intro:講義を聞きやすくするための基本的なGoの説明、システムプログラミングのための関数について簡単に説明し、授業の概要を盛り込んでいます。
  • Git Internals: Gitの内部コンポーネントを一つずつ開発し、具体的な動作を勉強します。
  • Git Overview: Git のコア動作であるバージョン管理とブランチング、リモートの動作が具体的にどのようなステップに沿って、どの内部コンポーネントを使用して動作するか探索します。

予想される質問 Q&A 💬

Q. 講義はGo言語で進行しますが、Goを知る必要がありますか?
A. 講義で他の言語とマッチングする基本的な制御や繰り返し構文、割り当て型などを説明します。文法が非常に単純な言語です。

Q. システムプログラミングを行うことを知っておくべきですか?
A. 講義で基本的なシステムプログラミングを教えてくれます。 講義の実習で使うシステムプログラミングは複雑ではありません。

Q. Git命令講義は含まれていますか?
A. レッスン中に Git 命令を説明しますが、Git を初めて見る人に説明するほど詳細ではありません。


受講前の注意事項📢

学習資料

  • 理論学習のための講義資料PDF
  • 結果コードを確認できるGithub Repository

選手の知識と注意事項

  • 自分の言語で500文字以上のプログラムを書く能力

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Gitの内部動作が気になる人

  • Deep Diveで魅力的な開発者になりたい人

  • 世界的なオープンソースを深く勉強したい人

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

  • 独自のプログラミング言語

こんにちは
です。

386

受講生

14

受講レビュー

4

回答

4.8

講座評価

2

講座

안녕하세요. 저는 Jayce입니다. 현재 유니콘 스타트업의 플랫폼 엔지니어로 일하고 있습니다.

저는 창업도 하고 대규모 서비스를 위한 개발도 하고 개발자를 위한 플랫폼을 만들기도 하면서 짧은 시간 동안 서비스 개발자라고 불리는 역할도 수행해보고 플랫폼 엔지니어라고 불리는 역할도 수행했습니다. 그 과정에서 "잘하는 Software Engineer는 어떤 특징이 있고 어떻게 해야 그런 사람이 될 수 있구나"를 나름대로 정립할 수 있었습니다.

저는 짧게 말해서 Deep Dive 하는 사람들을 함께 일하는 엔지니어로서 매력적이라고 느낍니다. 단순히 주어진 일을 기계처럼 쳐내는 사람은 어떤 상황에 대한 최선의 선택을 내리기까지 비교적 오랜 시간이 걸리는 것 같아요. 반면 왜 이런 결정을 해야하는지 기술 내면의 공학적인 이유를 파고들며 이해하는 사람들은 금방 다른 의사 결정에서도 공학적으로 설득력 강한 주장을 할 수 있는 사람이 됩니다.

제가 만드는 강의는 새로운 기술을 얕게 익히는 것을 목표로 하지 않습니다. 저는 주니어 개발자들이 훌륭한 팀 동료, 매력적인 개발자, 단단한 기술자가 될 수 있는 방법을 알려주고 싶습니다. 더욱 매력있는 엔지니어가 되기 위해 조금 더 깊은 내용을 공부해보고 싶은 사람들에게 적합한 강의를 제 최선의 노력으로 만들어보겠습니다. 🙂

カリキュラム

全体

36件 ∙ (6時間 46分)

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

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

受講レビュー

全体

1件

4.0

1件の受講レビュー

  • devgmonk6353님의 프로필 이미지
    devgmonk6353

    受講レビュー 1

    平均評価 4.0

    修正済み

    4

    100% 受講後に作成

    9〜10講くらいまで受講しました。 9講の後半が途中で切れています。講義中に話が終わっていないのに、映像が止まります。 10講は前半が切れていると見ましたが、9講の内容の後半から始まっていました。一部編集されており、9講の最後の部分と一致する部分がないため、9講の終わりからすぐに始めるのは難しいです。 コード説明時、Go固有の文法やGoのテストフレームワークを使用していますが、該当文法やフレームワーク関数についての説明がありません。 講義紹介および講義序盤の説明では、他の言語の使用者も簡単に学べるとありますが、そうではないようです。(検索してみたところ、Pythonが似た文法を使うとのことです) 6講では実際の実行を見せなかったため、元々このように講義が終わるのかと思いましたが、9講と10講を見ると、もしかすると6講も実際にテスト実行した部分が切れているのではないかと思いました。 ---------------------------------------------------------- 以前の1点から修正しました。 迅速なフィードバックと修正が良かったです。 完講後の評価ですが、各機能のテストコード作成、機能実装の順で講義が進む点が残念でした。 テストコードを作成する映像の時間が実際の実装より長いのですが、この講義の核心はタイトルのように直接Gitの内部機能を実装することであるため、テストコードは事前に作成したものを機能実装講義の前か後に「この機能にはこのようなテストケースが必要です」と見せる方が、講義のテーマにより集中できると思います。実装の方がむしろ短いため、テストケースを作成する勉強をしている感じの方が強かったです。 講義はGitをこれから始める方や、少し知っているレベルであれば、もう少し勉強した後に聞くことをお勧めします。内部動作の基礎から教えてくれますが、適切な知識があった方が理解がより楽になると思います。 お疲れ様でした。

    • byjayce
      知識共有者

      こんにちは。ご不便をおかけしているとのこと、申し訳なく思います。言い訳がましくなってしまい、申し訳ございません。 1. Goの文法はレッスンの冒頭で簡単に説明しておりますが、おっしゃる通りフレームワークについて説明はしておりません。理由は、テストという方式は実はGoにおいて特別な方式ではないためです。むしろGoで特殊な方式のテスト方法より、一般的に知られているBDDフレームワークを使って作成いたしました。それでも、私の書いたコードに慣れていなかった可能性もあるかと思います。 2. 途中で途切れている部分があるとのこと、大変申し訳ございません。どうなっているのかと思います。過去にアップロードした時と少し変わっているように見えます。修正してプラットフォームに問い合わせてみます。

    • byjayce
      知識共有者

      確認してみました 승녕님。6講の後半部分はなぜか実装部分が消えていました。私がアップロードした形跡はあるのですが、講義からなくなっていて少し腑に落ちません。現在、再度アップロードしました。 9講と10講(現在の10、11講)は仰る通り急に終了していますが、10講の冒頭部分と9講の後半部分が繋がる講義で間違いありません。テストを先に作成し、具体的な実装を作成する部分を分けて作った箇所です。 いずれにせよ、不注意によりご迷惑をおかけして申し訳ありません。

¥11,791

byjayceの他の講座

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

似ている講座

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