인프런 영문 브랜드 로고
인프런 영문 브랜드 로고
NEW

マルチパラダイムプログラミング第1回:イテレータパターン & LISP (with TypeScript, Clojure, Kotlin)

中高級開発者として成長するための高度なプログラミング言語活用能力と、関数型、オブジェクト指向、LISPパラダイムが結合されたソフトウェア設計および実装能力を養います。

multi-paradigm Programming
TypeScript
Functional Programming
oop
software-design

中級者のための講座です。

こんなことが学べます

  • 高度プログラミング言語活用

  • 型システム

  • 関数型プログラミング

  • オブジェクト指向プログラミング

  • リスト処理

  • マルチパラダイムプログラミング

22年目のソフトウェアエンジニア、
県マープルコーポレーションCTO、
元カカオ、NCソフト開発者の
TSKotlinプログラミングパラダイム講義


オブジェクト指向、関数型、命令型パラダイム
すべてをサポートする
現代のプログラミング言語
効果的に活用する方法
は何ですか?


プログラミング言語は、過去に主に関数型、オブジェクト指向、手続き型言語に分かれてきました。しかし、今日では、この傾向が変わりました。関数型とオブジェクト指向の両方の機能を持つハイブリッドプログラミング言語が登場し始め、Java、C#、Scala、 TypeScript 、JavaScript、 Kotlin 、Swiftなど、ほとんどの主要なプログラミング言語がマルチパラダイム言語になりました。この変化は、現業で広く使用されている言語の共通の特徴となりました。

これらの言語は、クラス、継承、インタフェースなどのオブジェクト指向機能だけでなく、一級関数、リスト処理、遅延評価、非同期/並行処理などの関数型プログラミング機能も幅広くサポートしています。また、堅牢で柔軟なタイプシステム、タイプ推論、ジェネリック、ユーティリティタイプなどを提供し、さらには静的タイプと動的タイプを混合することも可能です。


もしそうなら、ほとんど
現代のプログラミング言語
なぜマルチパラダイム言語になったのですか?


いくつかの問題は関数型で解決することが優勢な場合があり、ある問題はオブジェクト指向プログラミングで解決することがより優勢な場合があります。プログラマは、もはや関数型が良いのか、オブジェクト指向が良いのか、静的型が良いのか、動的型が良いのかを議論する必要はありません。言語を作成し、標準を定義する団体と企業は、1つの言語が複数のパラダイムをサポートするように発展させ、おかげで私たちは1つのプロジェクト、ひとつの関数内でも様々なパラダイムを組み合わせてプログラミングできるようになりました。

もう一度基本、
しっかりした基本基盤は明らか
優れた応用力を導きます。


今、私たちはたぶん、特定のライブラリやフレームワークに依存し、それに合った限定的なパラダイムに従い、言語レベルのさまざまな機能とパラダイムを十分に活用できないかもしれません。関数型プログラミング言語やオブジェクト指向プログラミング言語に適用されてきた多くの技術は、非常に深い歴史と本格性を持ち、すでにさまざまな問題を解決して検証されています。言語レベルのさまざまなスキルを持つプログラマーは、より多くの問題を迅速かつ安全かつ柔軟に解決できます。 また、特定のライブラリに縛られることなく、より基本的な方法でコードを書くことができます。


パラダイムは特定の言語に限定されない概念であり、
マルチパラダイムプログラミングは
現代のプログラミング言語全体で広く普及しています。


このレッスンシリーズでは、 TypeScript( TypeScript )とCotlin( Kotlin )を主要言語として使用していますが、 Java、C#、Scala、Swiftなどの他の言語でも適用できる技術と概念について説明します。既存の環境と言語を維持しながら、関数型プログラミングを実務に適用するのに役立ちます。また、オブジェクト指向プログラミングと関数型プログラミングを混ぜて問題を解決するコードを提示することで、マルチパラダイム言語を効果的に扱う技術力と応用力を高めて問題解決能力を拡張できるようにします。

中高級開発者として成長するために
より本格的な技術とプログラミング言語
パラダイムの深い探求が不可欠です。


そしてこの旅は本当に面白くて楽しいです。この講義を通じてマルチパラダイム言語の多様な可能性を実感し、高度なプログラミング言語活用能力はもちろん、関数型、オブジェクト指向、LISPパラダイムが結合されたソフトウェア設計および実装能力を養い、何よりコンピュータプログラミングとソフトウェア工学の楽しさを一層深く享受できるきっかけになれば幸いです。


この講義を通じて、 TypeScript開発者は Kotlin、
Kotlin開発者はTypeScriptを
マルチパラダイムプログラミングと呼ばれる
同じ視点で一緒に学習できます。


マルチパラダイムプログラミング』講義シリーズ 🔎🧑‍💻🚀

マルチパラダイムプログラミング図書に基づいて、幅広く深い講義を提供します。


1: TS - イテレータパターン & LISt Processing (with TypeScript, Kotlin, Clojure)

「このレッスンでは、オブジェクト指向と関数型プログラミングの交差点であるイテレータを中心に、マルチパラダイムイテレーションとリストプロセッシング全般を扱います。

  • イテレータ、ジェネレータ、イテレーションプロトコル、リスト処理

  • 関数型、型システム、クラス、ジェネリックプログラミングを組み合わせた抽象化

  • コード: オブジェクト: 関数 = Generator: Iterator: LISP = IP: OOP: FP

  • コトリンを試す

  • 関数合成と遅延評価の概念の深化

  • リスト処理による実用データの取り扱い


  • より多くの問題に拡張する


2編TS - 非同期/同時性プログラミング(公開予定)

「このレッスンでは、非同期プログラミングの言語の設計とスキームを調べ、非同期作業の結果を値で扱う方法と、遅延評価とリスト処理を使って非同期/同時性ロジックを作成する方法、非同期プログラミングをタイプにハンドリングする方法を紹介します。」

  • 値で扱う非同期プログラミング

  • 遅延性を扱う同時実行プログラミング

  • タイプシステムと非同期、AsyncIterationプロトコル


  • 非同期エラー処理

3編Kotlin - マルチパラダイムイテレーション(公開予定)

「このレッスンでは、Kotlinが提供するイテラブル(Iterable)、イテレータ(Iterator)、シーケンス(Sequence)を学習し、これを通じてKotlin特有の洗練された組み合わせ性と拡張性を見て、リスト処理全体を扱います。 」

  • イテラブル(Iterable)とイテレータ(

    イテレーター)

  • コトリンの洗練された組み合わせ性と拡張性

  • シーケンス(Sequence)

  • リスト処理と遅延評価

  • コトリン拡張関数

  • リスト処理による実用データの取り扱い

  • より多くの問題に拡張する

4編TS - バックエンド/実務中心マルチパラダイムコードとパターン(公開予定)

「バックエンドプログラミングの実践に必要なコードを中心に、MSA環境で分離されたサービス間のデータ同期を合わせるためのスケジューラをリスト処理ベースで実装し、並列性や要求サイズ制限などのバックエンド必須技法もリスト処理の観点から取り上げます。プロセッシング(関数型)を導入するのか、どのような問題に命令型方式を選ぶのかという基準を立てる例もまとめています。

  • カレンダーを描く


  • リスト処理のパターン化

  • バックエンド非同期プログラミング:MSAを処理するリスト処理

  • ハッシュベースの最適化、要求サイズの制限、並列性を活用した効率の向上


  • ネストされたデータと再帰的ロジックを解決するマルチパラダイム手法

  • オブジェクト指向、命令型、関数型を組み合わせた並行処理の拡張

5編: Kotlin - マルチパラダイムイテレーション実戦編(公開予定)

「Coroutine、Flowなど、Deferred、Channelなど、さまざまな並行性メカニズムを学習し、マルチパラダイム同時処理の手法を深く見ていきます。また、本番バックエンドの非同期プログラミングシナリオを通じて、これらの機能を効率的に適用する方法を紹介します。」

  • コルーチン、フロー

  • Deferred, Channel


  • マルチパラダイム同時処理

  • 本番バックエンド非同期プログラミング


第6編TS - マルチパラダイムフロントエンドプログラミング(公開予定)

「Web API(バニラ)ベースのフロントエンド開発を扱い、オブジェクト指向ベースのコンポーネント設計とマルチパラダイム実装の手法を見てみましょう。クラス、インタフェース、継承、抽象、イベント、状態管理から、Headless UI、ジェネリッククラス、戦略パターン、状態パターン、デコレータなどを幅広く学習します。」

  • Web API(バニラ)ベースのフロントエンド開発


  • オブジェクト指向ベースのコンポーネント設計とマルチパラダイムの実装

  • クラス、インタフェース、継承、抽象、イベント、状態管理

  • ヘッドレスUI、ジェネリッククラス、戦略パターン、ステータスパターン、デコレータ

  • ヒューリスティックDiffアルゴリズムとUIレンダリングの最適化

  • 非同期UIハンドリング、コンポーネント間通信設計

7編マルチパラダイムバイブコーディング(公開予定)

講義の特徴と追加資料🚀


👨‍🏫さまざまな言語と技術経験に基づいたカリキュラム

  • インストラクターは、TypeScript、Objective-C、iOS、Java、Android、Node.js、PostgreSQL、Clojure、Kotlin、Ruby on Rails、Web APIs、Canvasなど多様な言語・技術経験に基づいて、オブジェクト指向・関数型・コマンド型パラダイムを効果的に組み合わせる方法を提示します。

  • また、堅牢なタイプシステムやジェネリックからクラス・インタフェース・デザインパターンに至るまで、これらの基盤と設計、そして実戦型コード実装過程を深く取り上げます。

🏢ネクソン・ネイバー・カカオなど主要IT企業技術教育

  • ネクソン、ネイバー、カカオ、LGU+、SKプラネットなど、主要なIT企業を対象に進んだ様々な技術教育のすべての内容を集約しました。


🛠サンプルコードと設定

  • サンプルコードと環境のインストール方法は、マルチパラダイムプログラミングとタイプスクリプトの公式GitHubリンク)で確認できます。

🌐オンラインコミュニティとYouTubeチャンネル

🧡 収益の寄付🏥 👶 🧒

  • 本講義の収益の15%と本の著者収益の全額は、ソウル牙山病院児童病院に寄付されます。

📖マルチパラダイムプログラミング:

オブジェクト指向、関数型、命令型を組み合わせた
ソフトウェアの設計と実装

  • 本書では、追加の理論的内容と見解を盛り込んで、本講義の内容をさらに裏付けています。本書と一緒に勉強すれば、より深い学習と探求が可能です。

  • この書籍には、Haskell、Clojureなどの他の言語に関する教育資料もあります。


  • おすすめの投稿を見る

    1-3章プレビュー

  • 本を見る - 教文庫、 yes24 アラジン



多くのシニア開発者がこの講義をお勧めします( 抜粋🌟

「このレッスンは、遅延評価、ジェネレータ、イテラブルなどの現代的な手法を通じて、非同期プログラミングをさらにシンプルで直感的に扱うように案内し、バックエンド並列処理やエラー処理などの複雑な部分もリスト処理手法で優雅に解決できるという事実を悟らせてくれます」

「オブジェクト指向と関数型プログラミングのマルチパラダイム的融合を自然に身につけることができ、単にコードが「動作」することを超えてコードの本質と設計を深く理解し、実戦型パターンを柔軟に適用できる洞察力を得ることになります。」

「中級開発者から高級開発者に成長したい方なら、関数型の純度と不変性からオブジェクト指向のカプセル化と責任分担まで幅広く活用し、さらに拡張された視野で多様なプロジェクトに能動的に対応できるはずです」

「遅延評価でデータフローを最適化し、ジェネレータ・イタラブルを活用して並列処理やエラー処理などの難しい問題を直感的に解決する過程をたどってみると、「どうすればより少ないコードでより多くの価値を作れるか」という究極の質問に対する答えを探すことになります。」

「この講義は「コードの本質」を見つめる目を育ててくれ、単純な文法知識よりも実務志向的なマルチパラダイム設計とパターン適用ノウハウを体得し、様々な状況で最適な解法を提示できるプログラマーとして生まれ変わる機会をプレゼントします。」

こんな方に
おすすめです!

学習対象は
誰でしょう?

  • しっかりとした基礎を身につけたい開発者

  • 中級開発者

  • フロントエンドエンジニア

  • TypeScript を使用するバックエンドエンジニア

  • マルチパラダイム言語の基盤と活用を学びたい Kotlin/Java/Swift 開発者

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

  • 現代プログラミング言語 基本文法

  • TypeScriptの基本文法

こんにちは
mdunivです。

22,210

受講生

758

受講レビュー

454

回答

4.9

講座評価

4

講座

もっと見る

カリキュラム

全体

48件 ∙ (5時間 15分)

講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価を受けていない講座です。
みんなに役立つ受講レビューを書いてください!