강의

멘토링

커뮤니티

BEST
Programming

/

Programming Language

Lập trình đa mô hình tập 1: Mẫu lặp & LISP (với TypeScript, Clojure, Kotlin)

Phát triển khả năng sử dụng ngôn ngữ lập trình nâng cao và khả năng thiết kế, triển khai phần mềm kết hợp với các mô hình hàm, hướng đối tượng, LISP, để phát triển thành nhà phát triển trung cấp/cao cấp.

(5.0) 30 đánh giá

344 học viên

  • mduniv
시리즈
이론 실습 모두
multi-paradigm Programming
TypeScript
Functional Programming
oop
software-design

Đánh giá từ những học viên đầu tiên

Bạn sẽ nhận được điều này sau khi học.

  • Ứng dụng ngôn ngữ lập trình nâng cao

  • Hệ thống kiểu

  • Lập trình hàm

  • Lập trình hướng đối tượng

  • Xử lý list

  • Lập trình đa mô hình

Biểu ngữ thời trang cao cấp (63)

22 năm kinh nghiệm làm kỹ sư phần mềm,
CTO hiện tại của Maple Corporation,
Cựu lập trình viên Kakao và NCsoft
TS · Kotlin · Bài giảng về mô hình lập trình


Mô hình hướng đối tượng, chức năng và mệnh lệnh.
Tất cả các ngôn ngữ lập trình hiện đại được hỗ trợ
Làm sao chúng ta có thể sử dụng nó một cách hiệu quả ?


Ngôn ngữ lập trình trong lịch sử chủ yếu được chia thành ngôn ngữ chức năng, ngôn ngữ hướng đối tượng và ngôn ngữ thủ tục. Nhưng ngày nay, xu hướng này đã thay đổi. Với sự xuất hiện của các ngôn ngữ lập trình lai có cả tính năng chức năng và hướng đối tượng, hầu hết các ngôn ngữ lập trình chính, bao gồm Java, C#, Scala, TypeScript , JavaScript, Kotlin và Swift, hiện nay đều là ngôn ngữ đa mô hình . Những thay đổi này đã trở thành đặc điểm chung của các ngôn ngữ được sử dụng rộng rãi tại nơi làm việc.

Các ngôn ngữ này cung cấp hỗ trợ rộng rãi cho các tính năng hướng đối tượng như lớp, kế thừa và giao diện, cũng như các tính năng lập trình chức năng như hàm hạng nhất, xử lý danh sách, đánh giá lười biếng và xử lý không đồng bộ/đồng thời . Nó cũng cung cấp một hệ thống kiểu mạnh mẽ nhưng linh hoạt, suy luận kiểu, kiểu chung, kiểu tiện ích và thậm chí cho phép kết hợp các kiểu tĩnh và kiểu động .


Nếu vậy, hầu hết
Ngôn ngữ lập trình hiện đại
Tại sao nó lại trở thành ngôn ngữ đa mẫu hình?


Một số vấn đề được giải quyết tốt hơn bằng lập trình hàm, trong khi những vấn đề khác được giải quyết tốt hơn bằng lập trình hướng đối tượng. Các lập trình viên không còn cần phải tranh luận xem hướng chức năng hay hướng đối tượng tốt hơn, kiểu tĩnh hay kiểu động tốt hơn. Các tổ chức và công ty tạo ra ngôn ngữ và xác định tiêu chuẩn đã phát triển để hỗ trợ nhiều mô hình trong một ngôn ngữ duy nhất, cho phép chúng ta lập trình kết hợp nhiều mô hình khác nhau trong một dự án duy nhất hoặc thậm chí trong một chức năng duy nhất.

Quay lại với những điều cơ bản,
Nền tảng vững chắc là rõ ràng
Mang lại khả năng ứng dụng tuyệt vời.


Hiện tại, chúng ta có thể đang dựa vào các thư viện hoặc khuôn khổ cụ thể và tuân theo các mô hình hạn chế phù hợp với chúng, do đó không tận dụng đầy đủ các tính năng và mô hình khác nhau ở cấp độ ngôn ngữ. Nhiều kỹ thuật được áp dụng cho ngôn ngữ lập trình hàm và ngôn ngữ lập trình hướng đối tượng có lịch sử và tính hợp pháp rất sâu sắc và đã được chứng minh là có thể giải quyết nhiều vấn đề khác nhau. Các lập trình viên có nhiều kỹ năng ngôn ngữ khác nhau có thể giải quyết nhiều vấn đề một cách nhanh chóng, an toàn và linh hoạt hơn. Nó cũng cho phép bạn viết mã theo cách cơ bản hơn, mà không bị ràng buộc vào một thư viện cụ thể nào.


Một mô hình là một khái niệm không giới hạn ở một ngôn ngữ cụ thể .
Lập trình đa mô hình là
Nó được sử dụng rộng rãi trong các ngôn ngữ lập trình hiện đại.


Chuỗi bài giảng này chủ yếu sử dụng TypeScript và Kotlin làm ngôn ngữ chính , nhưng cũng đề cập đến các kỹ thuật và khái niệm có thể áp dụng cho các ngôn ngữ khác như Java, C#, Scala và Swift . Giúp bạn áp dụng lập trình chức năng vào thực tế trong khi vẫn duy trì môi trường và ngôn ngữ hiện tại. Ngoài ra, bằng cách trình bày mã giải quyết vấn đề bằng cách kết hợp lập trình hướng đối tượng và lập trình hàm , nó giúp mở rộng khả năng giải quyết vấn đề bằng cách tăng cường các kỹ năng và khả năng ứng dụng để xử lý hiệu quả các ngôn ngữ đa mô hình .

Để phát triển thành một nhà phát triển cấp trung,
Công nghệ và ngôn ngữ lập trình chính thống hơn,
Việc khám phá sâu sắc mô hình này là điều cần thiết.


Và chuyến đi này thực sự thú vị và vui vẻ. Qua bài giảng này, tôi hy vọng rằng bạn sẽ trải nghiệm được nhiều khả năng khác nhau của ngôn ngữ đa mô hình , phát triển khả năng sử dụng ngôn ngữ lập trình cấp cao và phát triển khả năng thiết kế và triển khai phần mềm kết hợp các mô hình chức năng, hướng đối tượng và LISP . Trên hết, tôi hy vọng đây sẽ là cơ hội để tận hưởng sâu sắc hơn công việc lập trình máy tính và kỹ thuật phần mềm .


Khóa học này sẽ giúp các nhà phát triển TypeScript : Kotlin,
Các nhà phát triển Kotlin sử dụng TypeScript
Lập trình đa mô hình
Chúng ta có thể cùng nhau học hỏi từ cùng một góc nhìn.


Chuỗi bài giảng Lập trình đa mô hình 🔎🧑‍💻🚀

Chúng tôi cung cấp các bài giảng rộng và chuyên sâu dựa trên sách lập trình đa mô hình.


Phần 1: TS - Mẫu lặp & Xử lý danh sách (với TypeScript, Kotlin, Clojure)

“Khóa học này bao gồm lặp lại đa mô hình và xử lý danh sách nói chung, tập trung vào các trình lặp, là giao điểm của lập trình hướng đối tượng và lập trình hàm. Ngôn ngữ chính được sử dụng là TypeScript, và Clojure và Kotlin cũng được xem xét ngắn gọn để hiểu sâu sắc các khái niệm về xử lý danh sách và lặp lại đa mô hình.”

  • Trình lặp, trình tạo, giao thức lặp, xử lý danh sách

  • Sự trừu tượng kết hợp giữa lập trình chức năng, hệ thống kiểu, lớp và lập trình chung.

  • Mã: Đối tượng: Hàm = Trình tạo: Trình lặp: LISP = IP: OOP: FP

  • Hãy thử với Kotlin

  • Làm sâu sắc thêm các khái niệm về thành phần hàm và đánh giá lười biếng

  • Xử lý dữ liệu thực tế bằng cách xử lý danh sách


  • Mở rộng ra nhiều vấn đề hơn


Phần 2 : TS - Lập trình không đồng bộ/đồng thời (Sắp ra mắt)

“Bài giảng này giới thiệu về thiết kế và cấu trúc của ngôn ngữ lập trình bất đồng bộ, cách xử lý kết quả của các hoạt động bất đồng bộ dưới dạng giá trị, cách viết logic bất đồng bộ/đồng thời bằng cách sử dụng đánh giá lười biếng và xử lý danh sách, và cách xử lý lập trình bất đồng bộ dưới dạng kiểu.”

  • Lập trình không đồng bộ theo giá trị

  • Lập trình đồng thời với độ trễ

  • Hệ thống loại và bất đồng bộ, giao thức AsyncIteration


  • Xử lý lỗi không đồng bộ

Phần 3 : Kotlin - Lặp lại đa mô hình (Sắp ra mắt)

“Trong bài giảng này, chúng ta sẽ tìm hiểu về Iterable, Iterator và Sequence do Kotlin cung cấp, và thông qua những điều này, chúng ta sẽ xem xét thành phần tinh vi và khả năng mở rộng độc đáo của Kotlin, và bao quát toàn bộ quá trình xử lý danh sách. Ngoài ra, dựa trên Iterator và Sequence, chúng ta sẽ hiểu sâu sắc về thiết kế lặp lại của Kotlin, điều này sẽ giúp chúng ta hiểu chính xác và áp dụng các coroutine sau này.”

  • Iterable và Iterator(

    Trình lặp)

  • Khả năng kết hợp và mở rộng tinh vi của Kotlin

  • Sự liên tiếp

  • Xử lý danh sách và đánh giá lười biếng

  • Các hàm mở rộng của Kotlin

  • Xử lý dữ liệu thực tế bằng cách xử lý danh sách

  • Mở rộng ra nhiều vấn đề hơn

Phần 4 : TS - Mã và mẫu đa mô hình hướng đến thực hành/phụ trợ (sắp ra mắt)

“Tập trung vào mã cần thiết cho các hoạt động lập trình phụ trợ, chúng tôi triển khai một trình lập lịch dựa trên xử lý danh sách để đồng bộ hóa dữ liệu giữa các dịch vụ tách biệt trong môi trường MSA và cũng đề cập đến các kỹ thuật phụ trợ thiết yếu như song song và giới hạn kích thước yêu cầu theo góc nhìn xử lý danh sách. Chúng tôi cũng xem xét các trường hợp thiết kế và triển khai đa mô hình và đề cập đến các ví dụ có thể thiết lập tiêu chí cho các vấn đề nào cần áp dụng các lớp (hướng đối tượng), các vấn đề nào cần giới thiệu xử lý danh sách (chức năng) và các vấn đề nào cần áp dụng phương pháp bắt buộc.”

  • Vẽ một cuốn lịch


  • Mẫu xử lý danh sách

  • Lập trình bất đồng bộ Backend: Xử lý danh sách Xử lý MSA

  • Tối ưu hóa dựa trên băm, giới hạn kích thước yêu cầu và tính song song để đạt hiệu quả


  • Kỹ thuật đa mô hình để giải quyết dữ liệu lồng nhau và logic đệ quy

  • Xử lý đồng thời mở rộng kết hợp hướng đối tượng, mệnh lệnh và chức năng.

Phần 5: Kotlin - Lặp lại đa mô hình trong thực tế (sắp ra mắt)

“Tìm hiểu về nhiều cơ chế đồng thời khác nhau như Coroutine, Flow, Deferred và Channel, và xem xét sâu hơn các kỹ thuật xử lý đồng thời đa mô hình. Chúng tôi cũng trình bày cách áp dụng hiệu quả các hàm này thông qua các tình huống lập trình bất đồng bộ ở phần cuối thực tế.”

  • Coroutine, Dòng chảy

  • Trì hoãn, Kênh


  • Xử lý đồng thời đa mô hình

  • Lập trình bất đồng bộ Backend thực tế


Phần 6 : TS - Lập trình Front-End Đa mô hình (Sắp ra mắt)

“Chúng tôi bao gồm phát triển front-end dựa trên Web API (vanilla), và chúng tôi xem xét thiết kế thành phần hướng đối tượng và các kỹ thuật triển khai đa mô hình. Chúng tôi tìm hiểu nhiều chủ đề, từ các lớp, giao diện, kế thừa, trừu tượng, sự kiện và quản lý trạng thái đến giao diện người dùng không có giao diện, các lớp chung, các mẫu chiến lược, các mẫu trạng thái và trình trang trí.”

  • Phát triển front-end dựa trên Web API (Vanilla)


  • Thiết kế thành phần hướng đối tượng và triển khai đa mô hình

  • Các lớp, giao diện, kế thừa, trừu tượng, sự kiện, quản lý trạng thái

  • Giao diện người dùng không có đầu, lớp chung, mẫu chiến lược, mẫu trạng thái, trình trang trí

  • Thuật toán Heuristic Diff và Tối ưu hóa Kết xuất UI

  • Xử lý UI không đồng bộ, thiết kế giao tiếp giữa các thành phần

Phần 7 : Mã hóa Vibe Đa mô hình (Sắp ra mắt)

Tính năng của khóa học và các nguồn tài nguyên bổ sung 🚀


👨‍🏫 Chương trình giảng dạy dựa trên các trải nghiệm ngôn ngữ và công nghệ đa dạng

  • Giảng viên dựa trên kinh nghiệm của mình trong nhiều ngôn ngữ và công nghệ khác nhau, bao gồm TypeScript, Objective-C, iOS, Java, Android, Node.js, PostgreSQL, Clojure, Kotlin, Ruby on Rails, Web API và Canvas, để trình bày các phương pháp kết hợp hiệu quả các mô hình hướng đối tượng, chức năng và mệnh lệnh.

  • Nó cũng đề cập sâu hơn đến nền tảng, thiết kế và triển khai mã thực tế của hệ thống kiểu dữ liệu và kiểu chung mạnh mẽ, cũng như các lớp, giao diện và mẫu thiết kế.

🏢 Đào tạo công nghệ tại các công ty CNTT lớn như Nexon, Naver và Kakao

  • Chúng tôi đã biên soạn toàn bộ nội dung của nhiều khóa đào tạo kỹ thuật được tổ chức cho các công ty CNTT lớn như Nexon, Naver, Kakao, LGU+ và SK Planet.


🛠 Mã ví dụ và thiết lập

  • Mã ví dụ và cách cài đặt môi trường có thể được tìm thấy trên GitHub chính thức của Multi-Paradigm Programming và TypeScript ( liên kết ).

🌐 Cộng đồng trực tuyến và kênh YouTube

🧡 Hãy quyên góp số tiền thu được của bạn 🏥 👶 🧒

  • 15% số tiền thu được từ bài giảng này và toàn bộ số tiền thu được từ cuốn sách của tác giả sẽ được quyên góp cho Bệnh viện Nhi Seoul Asan Medical Center.

📖 Lập trình đa mô hình:

Kết hợp hướng đối tượng, chức năng và mệnh lệnh
Thiết kế và triển khai phần mềm

  • Cuốn sách này cung cấp thêm nội dung lý thuyết và góc nhìn để hỗ trợ thêm cho nội dung của bài giảng này. Học tập với cuốn sách này sẽ giúp bạn học tập và khám phá sâu hơn.

  • Cuốn sách này cũng cung cấp tài liệu hướng dẫn cho các ngôn ngữ khác, bao gồm Haskell và Clojure.


  • Xem các bài viết được đề xuất |

    Xem trước chương 1-3

  • Xem sách - Nhà sách Kyobo , yes24 , Aladdin


📖 Lặp lại đa mô hình Kotlin:

Phụ lục lập trình đa mô hình miễn phí công khai

  • Lập trình đa mô hình là một khái niệm độc lập với ngôn ngữ, không giới hạn ở một ngôn ngữ cụ thể và là phương pháp luận và kỹ thuật có thể áp dụng cho hầu hết các ngôn ngữ lập trình hiện đại.

  • "Kotlin Multi-Paradigm Iteration" là phần phụ lục của "Multi-Paradigm Programming" và là tài liệu giải thích một số nội dung của cuốn sách này theo cách chuyên biệt dành cho ngôn ngữ Kotlin.

  • Đi đến Dữ liệu công cộng miễn phí


Nhiều nhà phát triển cao cấp đề xuất khóa học này ( trích đoạn ) 🌟

"Khóa học này sẽ dạy bạn cách xử lý lập trình không đồng bộ đơn giản và trực quan hơn bằng các kỹ thuật hiện đại như đánh giá lười biếng, trình tạo và lặp lại. Khóa học cũng sẽ giúp bạn nhận ra rằng các lĩnh vực phức tạp như xử lý song song ở phía sau và xử lý lỗi có thể được giải quyết một cách tinh tế bằng các kỹ thuật xử lý danh sách."

"Bạn sẽ học được sự kết hợp đa mô hình của lập trình hướng đối tượng và lập trình chức năng, do đó bạn sẽ hiểu sâu hơn về bản chất và thiết kế của mã chứ không chỉ là mã 'hoạt động', và có thể áp dụng linh hoạt các mẫu thực tế."

"Nếu bạn muốn phát triển từ một lập trình viên trung cấp lên một lập trình viên nâng cao, bạn sẽ có thể chủ động phản hồi nhiều dự án khác nhau với góc nhìn rộng hơn bằng cách sử dụng rộng rãi tính thuần túy và bất biến về mặt chức năng, cũng như đóng gói hướng đối tượng và phân chia trách nhiệm."

"Khi bạn theo dõi quá trình tối ưu hóa luồng dữ liệu bằng cách đánh giá lười biếng và giải quyết trực quan các vấn đề khó khăn như xử lý song song và xử lý lỗi bằng cách sử dụng trình tạo và đối tượng lặp, bạn sẽ tìm thấy câu trả lời cho câu hỏi cuối cùng: 'Làm thế nào tôi có thể tạo ra nhiều giá trị hơn với ít mã hơn?'"

"Khóa học này sẽ giúp bạn phát triển khả năng nhìn thấu 'bản chất của mã' và mang đến cho bạn cơ hội tiếp thu kiến ​​thức thiết kế và ứng dụng mẫu đa mô hình thực tế vượt xa kiến ​​thức ngữ pháp đơn thuần, đồng thời trở thành một lập trình viên có thể đưa ra các giải pháp tối ưu trong nhiều tình huống khác nhau."

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Nhà phát triển muốn có nền tảng vững chắc

  • Nhà phát triển cấp trung

  • Nhà phát triển frontend

  • Kỹ sư backend sử dụng TypeScript

  • Nhà phát triển Kotlin/Java/Swift muốn học cơ sở và ứng dụng của ngôn ngữ đa mô hình

Cần biết trước khi bắt đầu?

  • Cú pháp cơ bản ngôn ngữ lập trình hiện đại

  • TypeScript cơ bản

Xin chào
Đây là

22,704

Học viên

794

Đánh giá

457

Trả lời

4.9

Xếp hạng

5

Các khóa học

Chương trình giảng dạy

Tất cả

48 bài giảng ∙ (5giờ 15phút)

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

30 đánh giá

5.0

30 đánh giá

  • jihoson94님의 프로필 이미지
    jihoson94

    Đánh giá 16

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    It's been a long time since I've had an experience where I could grow as a software person who programs, rather than just learning simple skills. While learning, I was amazed by Indong's insights every moment, and I was able to confirm that there were many other options besides the programming-related decisions I had made myself. I was able to grasp the fundamental design intentions of the technologies I had taken for granted, and to have more options, I need to develop the ability to mix various paradigms well and utilize them appropriately. I think that growth is just beginning. This course seems like a good start to that. I hope that other fellow developers will also be able to fully sympathize with and enjoy multi-paradigm programming through this course.

    • mduniv
      Giảng viên

      "Growth as a person who deals with software itself" is a really wonderful expression and perspective. I'm glad it seems like the message I wanted to convey through the lecture will be delivered. I hope Jiho will be filled with wonderful and enjoyable things in the field of software engineering in the future!

  • lignerdev1129님의 프로필 이미지
    lignerdev1129

    Đánh giá 3

    Đánh giá trung bình 4.3

    5

    98% đã tham gia

    A lecture where you can learn the 'multi' paradigm. I've worked with many languages and frameworks over the years, but it's been a long time since I've experienced programming that focuses on the paradigm itself as much as this lecture. It reminds me of when I was learning functional programming a few years ago. The way it explains object-oriented/functional/imperative programming was very impressive. I was able to think structurally about the iterator pattern, and it was a valuable time because I was able to learn practical ways to use it. I was able to experience how programming languages expand thinking, rather than just learning the language itself. I highly recommend this to anyone who wants to make a new turning point in their current coding style.

    • mduniv
      Giảng viên

      It's really admirable how modern languages have evolved to handle repetition and various traversal strategies by encapsulating them as values (objects) called iterators, allowing for a shift between different paradigms within a single loop. Thank you. :)

  • junni34님의 프로필 이미지
    junni34

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    As a developer with 9 years of experience, I've used various programming paradigms such as object-oriented, functional, and procedural, but I felt like I wasn't fully utilizing the differences or applications of each paradigm. After being deeply impressed by Indong's presentation at a developer conference for the first time, I encountered more content through Inflearn's functional programming course and YouTube. The newly released multi-paradigm course wasn't just about a specific development style or method; it changed my perspective on paradigms themselves. In particular, I was able to understand concepts such as lazy evaluation, iterable, iterator, and generator more deeply, not just in theory but also from a practical application perspective. It became an opportunity to think concretely about how these concepts can be applied in practice. I was stuck in a familiar pattern of development every day, but this course made me think about looking at code from a new perspective. Now, I want to share multi-paradigm programming with my team members and discuss how we can apply and improve it in our actual work code. 🔥 Hearing the course is planned to continue from Part 1 to Part 7, I'm really looking forward to the advanced content and application examples that will come out in the future. 👍

    • mduniv
      Giảng viên

      Thank you for taking the course. It's wonderful that you're thinking about applying it with your team members. I'm sure it will be helpful :) I'll do my best to help with good content! Let's work together!

  • gilsuk님의 프로필 이미지
    gilsuk

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    This lecture focuses on the Iteration Protocol. We will explore the principles of operation by implementing the protocol in various ways, moving between imperative, object-oriented, and functional paradigms. Additionally, we will explore how different languages define and utilize iteration in their own ways, providing diverse perspectives and insights. Through this learning, you will understand that the iteration protocol is a common convention, unconstrained by specific languages or paradigms. Thanks to this characteristic, multi-paradigm programming, which blends different paradigms harmoniously, becomes possible. In addition to its multi-paradigm nature, the iteration protocol offers functional advantages such as improved computational and memory efficiency, and convenient type inference through lambda expressions, making it an inherently attractive concept. If your primary language supports generics, you can apply it anywhere, making it highly versatile and worth learning. We believe that both those familiar with OOP and those who have worked with FP will undoubtedly gain a new perspective by exploring the characteristics of iteration as explained in this lecture.

    • mduniv
      Giảng viên

      Thank you for the detailed review! It seems you've studied the lecture very thoroughly. As you mentioned, it's a concept that can be applied to most modern languages! I hope you have a pleasant programming journey! Thank you :)

  • jhlee4997님의 프로필 이미지
    jhlee4997

    Đánh giá 5

    Đánh giá trung bình 4.8

    Đã chỉnh sửa

    5

    100% đã tham gia

    It was a master's lecture that combined various elements and melted them into their own unique language. I had understood this content in a more mathematical language, like Iterable Functor -> Fx Monad, but I appreciated it being explained in a more practical form. Furthermore, the author's explanation of list processing has a mathematical framework for understanding it using adjoint functors, and it was excellent that they emphasized the potential confusion between code (meaning) < - > data (no meaning). However, personally, I found it difficult to consider it multi-paradigm, as almost all explanations seemed to be based on the functional paradigm. I am challenged by the instructor's ability to skillfully combine practice and theory. Thank you. Completed the course! Liked it!

    • mduniv
      Giảng viên

      Thank you very much for taking the course and for the wonderful review. :) After covering iterators, one of multi-paradigm intersections, in Part 1, the multi-paradigm content advances in Chapters 4, 5, 6, and 7 of the book, which include new material absent from Part 1. We kindly ask for your continued interest :)

1.163.002 ₫

Khóa học khác của mduniv

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!