강의

멘토링

커뮤니티

BEST
Programming

/

Mobile Application Development

Alan iOS Concurrency - Tìm hiểu hàng đợi công văn và hàng đợi hoạt động

Lập trình đồng thời - Bao gồm tất cả các khái niệm về đồng bộ hóa và không đồng bộ cần thiết trong lập trình iOS, cũng như GCD và Hoạt động, mở rộng chúng.

(5.0) 60 đánh giá

826 học viên

  • allen
iOS
Swift
concurrent

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

Dịch cái này sang tiếng Việt

  • Lập trình đồng thời iOS

  • Hiểu tối ưu hóa trong iOS (hiệu suất/khả năng phản hồi)

  • Hiểu các khái niệm cơ bản về xử lý không đồng bộ/đồng bộ hóa

  • Hiểu hàng đợi công văn của iOS (GCD)

  • Hiểu nhóm công văn/nhóm công văn không đồng bộ

  • Tìm hiểu về OperationQueue của iOS

  • Ví dụ về một dự án thực tế áp dụng GCD/Operation

  • A đến Z về GCD/Vận hành

  • Hiểu về an toàn luồng

  • Hiểu thiết kế đối tượng an toàn theo luồng

  • Dễ dàng hiểu tất cả những điều này một cách trực quan (có hình ảnh)

🙋🏻‍♂️ Biểu đồ tự chẩn đoán

Sau lớp học, bạn sẽ hiểu rõ các khái niệm dưới đây.

  • Tôi hiểu rõ khái niệm về hàng đợi phân phối . (Có/Không)
  • Tôi hiểu các loại hàng đợi điều phối và chất lượng dịch vụ (QoS). (Có/Không)
  • Trong hầu hết các trường hợp, tôi biết lý do tại sao tôi không nên sử dụng phương pháp Đồng bộ hóa và tôi hiểu sự khác biệt giữa thời điểm tôi hoàn toàn phải sử dụng phương pháp Đồng bộ hóa . (Có/Không)
  • Tôi biết về khái niệm nhóm điều phối . (Có/Không)
  • Tôi biết những điều cần lưu ý khi xử lý các hàm không đồng bộ trong nhóm điều phối . (Có/Không)
  • Tôi hiểu khái niệm về các hạng mục công việc được phân công và lý do tại sao chúng được sử dụng. ( Có/Không)
  • Tôi biết khái niệm về tín hiệu điều phối và cách sử dụng chúng. (Có/Không)
  • Khi thiết kế các đối tượng, bạn phải hiểu rõ những cân nhắc về khả năng nhiều luồng truy cập chúng và thiết kế các đối tượng phù hợp . (Có/Không)
  • Khi tạo một dự án thuộc loại chế độ xem bảng/chế độ xem bộ sưu tập tải xuống hình ảnh, tôi hiểu rõ những điểm cần lưu ý khi xử lý khái niệm bất đồng bộ . (Có/Không)
  • Tôi hiểu rõ các vấn đề tiềm ẩn có thể phát sinh khi sử dụng hàng đợi phân phối (khi nhiều luồng truy cập dữ liệu), đặc biệt là tình trạng chạy đua và tôi biết cách sử dụng TSan (Công cụ khử trùng luồng) . (Có/Không)
  • Tôi hiểu rõ cách viết mã an toàn cho luồng . (Có/Không)
  • Tôi biết khái niệm về các hoạt động mở rộng trong hàng đợi phân phối và sự khác biệt giữa chúng. (Có/Không)
  • Bạn có thể sử dụng nó để phân biệt khi nào nên sử dụng hàng đợi thao tác thay vì hàng đợi phân phối. (Có/Không)
  • Tôi hiểu mã cho các hoạt động không đồng bộ (AsyncOperation) , có thể xử lý các hàm không đồng bộ. (Có/Không)
  • Bạn có thể thoải mái sử dụng các chức năng chính của thao tác (đặt thứ tự các tác vụ, hủy chúng) . (Có/Không)

📝 Mục lục bài giảng

(Phần lớn được chia thành phần GCD và phần Phép toán . Ngay cả khi bạn hiểu rõ về GCD, bạn vẫn có thể không quen với Phép toán (lớp nhiệm vụ) , một khái niệm được phát triển từ GCD. Bài giảng được cấu trúc sao cho bạn có thể hiểu mọi thứ trong một bài giảng, rõ ràng và dễ hiểu hơn bất kỳ blog hay bài giảng nào.)

🖼️ Ví dụ về kiểu chú thích ảnh

(Ví dụ về nhiều phương pháp giải thích bằng hình ảnh và sơ đồ được sử dụng trong lớp học.)

🌈 Tài liệu được cung cấp trong bài giảng 

Dưới đây cung cấp nhiều tài liệu khác nhau.

  1. Tóm tắt liên quan đến GCD PDF - Chương 287
  2. Tóm tắt liên quan đến hoạt động PDF - Chương 89
  3. Mã giải thích liên quan đến GCD (tệp sân chơi) - 19 trang (không bao gồm tệp nguồn)
  4. Mã cho các giải thích liên quan đến Hoạt động (tệp sân chơi) - 8 trang (không bao gồm tệp nguồn)
  5. Tệp dự án iOS - 8
  6. Giải thích các bài viết tham khảo (2)

(Tất cả tài liệu trong thư mục trên đều được cung cấp.)

🙌 Tài liệu tham khảo được sử dụng trong quá trình biên soạn bài giảng

Mặc dù tôi đã tham khảo các tài liệu bên dưới, nhưng tôi đã tự mình thiết kế tất cả các mô tả minh họa.

  1. Bài giảng video ( iOS Concurrency với GCD và Operations ) - Raywenderlich https://www.raywenderlich.com/3648-ios-concurrency-with-gcd-and-operations
  2. Sách ( Concurrency by Tutorials ) - Raywenderlich https://store.raywenderlich.com/products/concurrency-by-tutorials
  3. Bài viết ( Hướng dẫn về Operation và OperationQueue trong Swift ) - Raywenderlich https://www.raywenderlich.com/5293-operation-and-operationqueue-tutorial-in-swift
  4. Bài viết ( An toàn luồng của biến lười trong Swift ) https://medium.com/what-i-talk-about-when-i-talk-about-ios-developmen/the-thread-safety-of-lazy-variables-in-swift-b20184ef5a38

🙋🏻‍♂️ Nội dung bài giảng có khác nhiều so với <Tài liệu tham khảo sản xuất bài giảng> không?

Thực sự có rất nhiều sự khác biệt.

Nếu tôi chỉ cố gắng tạo ra một bài giảng ở mức độ dịch thuật dựa hoàn toàn vào các tài liệu tham khảo ở trên, tôi đã không lên kế hoạch cho bài giảng này. Tôi đã chọn phương pháp giải thích tốt nhất có thể, tự mình tạo ra các bài thuyết trình PPT với những lời giải thích hiệu quả, minh họa trực quan và sơ đồ về các chủ đề này để giúp bạn hiểu trực quan cách thức hoạt động thực sự của các luồng . Như đã đề cập ở trên , tôi đã xem lại các tài liệu tham khảo hơn mười lần, và mặc dù bao quát toàn bộ nội dung, bài giảng này nhằm mục đích giúp việc giải thích dễ dàng hơn nhiều và các hình ảnh minh họa đa dạng giúp bạn dễ hiểu hơn.

Và vì nội dung của những hình ảnh này là do cá nhân tôi tự sắp xếp trong hơn hai tháng làm việc toàn thời gian, tôi không nghĩ bạn sẽ tìm thấy một lời giải thích nào như thế này hoặc chi tiết như thế này ở bất kỳ nơi nào khác (kể cả tài liệu nước ngoài). Ví dụ, nếu có một dòng duy nhất trong tài liệu tham khảo (bài giảng video của raywenderlich) nói rằng, "Vấn đề này cũng có thể xảy ra với lazy var", tôi đã có thể tự mình xác định tất cả các vấn đề liên quan đến lazy var, sắp xếp chúng và đưa ra giải pháp đồng thời giúp hiểu trực quan hơn về các hình ảnh.

Việc hiểu được bức tranh tổng thể giúp việc viết code dễ dàng hơn rất nhiều. Tôi đã cố gắng duy trì sự cân bằng giữa việc hiểu thông qua hình ảnh và việc áp dụng code càng nhiều càng tốt, điều này làm cho cuốn sách này nổi bật so với các tài liệu tham khảo khác. So với các tài liệu tham khảo khác, cuốn sách này cung cấp nhiều chi tiết hơn, trực quan hơn và nội dung phong phú hơn, cùng với những giải thích nhất quán và dễ hiểu.

🐠 Về mã được cung cấp

Để giúp bạn hiểu rõ hơn về chủ đề này, các tệp mã được cung cấpcũng được đề cập trong lớp học . Phần lớn mã được cung cấp được lấy từ các bài giảng video GCD của raywenderlich trong phạm vi được giấy phép cho phép ( các phần được áp dụng đã được chỉ định ). Đối với các phần mà giấy phép không cho phép (mã được cung cấp trong sách raywenderlich), tôi đã tự viết mã và trong khuôn khổ chính , tôi đã cố gắng đảm bảo độ tin cậy của mã được cung cấp bằng cách viết tương tự.

Ngoài ra, để giúp bạn hiểu mã chúng tôi cung cấp, chúng tôi đã sắp xếp lại thứ tự mã và thêm mã để giải thích chi tiết hơn, cung cấp nhiều ví dụ để giúp bạn hiểu nội dung của khóa học này.

🤔 Về giá lớp học

Bạn có thể ngạc nhiên vì mức giá cao cho một chủ đề duy nhất, nhưng tôi đảm bảo với bạn rằng nội dung phong phú này hoàn toàn xứng đáng . Để giải thích nội dung này, tôi đã tự tay tạo một tài liệu PDF, bao gồm 287 trang liên quan đến GCD89 trang liên quan đến Toán tử, tổng cộng là 376 trang . (Tài liệu thực tế tôi sử dụng trong các bài giảng video của mình bao gồm khoảng 830 trang PPT, chưa kể mã.)

Khóa học này bao gồm hầu như mọi thứ bạn có thể tìm thấy trong các nguồn tài liệu quốc tế liên quan đến GCD/Operations , và hầu hết các hình ảnh và sơ đồ trong khóa học này là của riêng tôi . Tôi đã dành rất nhiều thời gian và công sức cho khóa học này, và tôi tin rằng đây là một chủ đề quan trọng cho sự phát triển của các nhà phát triển trong tương lai. Do đó, theo quan điểm cá nhân, tôi đã lên kế hoạch và tạo ra khóa học này dựa trên nguyên tắc "Ước gì có nhiều tài liệu và bài giảng như thế này hơn ".

Cá nhân tôi tin rằng việc trả tiền cho một khóa học là một sự đánh đổi giữa thời gian và tiền bạc . Tôi tin rằng nó sẽ xứng đáng với số tiền bỏ ra, giúp bạn tiết kiệm thời gian học tập . Tôi hy vọng bạn sẽ tiết kiệm được thời gian và có được sự hài lòng hơn. Tôi sẽ cố gắng cung cấp cho bạn nội dung chất lượng vượt xa mức giá bạn bỏ ra, và tôi chân thành mong bạn hãy ghi nhớ điều này. ^^

💌 Giấy phép nội dung bài giảng liên quan

Trong trường hợp tôi có tham khảo hình ảnh hoặc tài liệu khác trong bài giảng này, địa chỉ URL liên quan sẽ được cung cấp trong tệp PDF . Ngoại trừ những trường hợp đó, tất cả tài liệu đều là của tôi. Do đó, nếu bạn đang sắp xếp phần giải thích bài giảng trên blog hoặc trang web khác, tôi đề nghị bạn vui lòng đính kèm liên kết đến bài giảng này .

Tuy nhiên, việc đăng toàn bộ nội dung bài giảng này lên blog hoặc chia sẻ các tệp PDF được sử dụng làm tài liệu bài giảng đều bị nghiêm cấm trong mọi trường hợp .

👀 Xem trước nội dung bài giảng được cung cấp

Trước khi bạn quyết định tham gia một lớp học, chúng tôi đã tạo điều kiện cho bạn kiểm tra trước phong cách bài giảng.

  • ( Bản xem trước khoảng một giờ liên quan đến Mục 0.1.GCD/Hoạt động)
  • ( Bản xem trước 5 phút liên quan đến Mục 10. 1. Hoạt động)

Bạn có thể xem trước các bài giảng được cung cấp và quyết định có nên tham gia hay không :)

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

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

  • Bất cứ ai đã học một chút ngôn ngữ Swift

  • Bất kỳ ai muốn tìm hiểu các khái niệm cơ bản về xử lý không đồng bộ đồng bộ trong iOS

  • Bất cứ ai muốn biết về khái niệm hàng đợi công văn GCD (Grand Central Dispatch)

  • Bất cứ ai muốn biết về Dispatch Group

  • Bất cứ ai muốn biết về Operation/OperationQueue

  • Bất cứ ai muốn biết về khái niệm An toàn luồng

  • Nhà phát triển iOS từ sơ cấp đến trung cấp

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

  • Hiểu ngôn ngữ Swift

  • Tìm hiểu lập trình iOS

Xin chào
Đây là

7,408

Học viên

717

Đánh giá

302

Trả lời

5.0

Xếp hạng

7

Các khóa học

iOS개발자 앨런입니다.
https://www.youtube.com/@allen_ios

제가 공부하면서 겪었던 시행착오를 쉽게 풀어내어
지식을 공유할 수있는 개발자가 되고싶습니다.

쉬운 주제로 빠른 시간 안에 겉핥기 식으로 쉽게만 가르치는 강의를 만드는 것에는 관심이 없습니다.
그런 강의는 얼마든지 빠르게 찍어내듯 만들 수 있겠지만, 결국 "좋은 개발자로 성장"하는 것은 그만큼 이론적인 기반의 밑거름이 탄탄해야 한다고 믿고 있기 때문입니다.

쉬운 강의보다는, 좋은 개발자(끝임없이 성장할 수 있는 개발자)가 되기 위해
반드시 알아야 하는 어려운 내용까지를 최대한 쉽게, 그리고 직관적으로 알려드리는 것.
그래서 제가 아닌 여러분 스스로 고민/생각할 수 있는 밑거름을 만들어 드리는 것을 저의 강의 목표로 삼고 있습니다.

저 스스로도 내일은 더 좋은 개발자가 되자는 모토를 가지고 있는 만큼
제가 고민 했던 내용들을 깊이있게 전달 드리고 싶습니다.


👇🏻문의는 아래의 이메일로 주시면 됩니다. 

we.love.code.allen@gmail.com


언어: Swift(스위프트), Python, Java, C#

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

Tất cả

32 bài giảng ∙ (8giờ 9phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

60 đánh giá

5.0

60 đánh giá

  • sujikang7936님의 프로필 이미지
    sujikang7936

    Đánh giá 3

    Đánh giá trung bình 5.0

    5

    97% đã tham gia

    Những người sẽ được hưởng lợi từ bài giảng này là: - Khi bạn nghe thấy từ "xử lý không đồng bộ", bạn nghĩ, "Heh.. Tôi đang gặp rắc rối lớn.. tôi nên làm gì đây..?" Những người nghĩ rằng - Bạn có thể giải quyết vấn đề bằng cách Google, nhưng bạn không biết tại sao mã lại được viết như vậy hoặc liệu logic có đáp ứng được yêu cầu hay không. Đây là tôi của ngày xưa.. ◠‿◠.. Tôi đã tìm và đọc rất nhiều tài liệu liên quan đến GCD để hiểu về đồng thời, không đồng bộ, v.v., nhưng hiểu biết của tôi bằng 0 và tôi tiếp tục phát triển mà không hiểu tại sao và cách sử dụng nó trong những tình huống nhất định. Sau đó, tôi thấy rằng khóa học này được đưa vào khóa học phát triển iOS bắt buộc do công ty chỉ định và nói: "Chính là nó!" Tôi nghe xong, ngay khi nghe bài giảng đầu tiên, tôi đã biết.. Bài giảng này là bài giảng duy nhất tôi đến để hoàn thành GCD, một lĩnh vực bấy lâu nay vẫn là một lĩnh vực chưa được biết đến.. Mỗi bài giảng đều được giải thích bằng hình ảnh và ví dụ.. Wow.. những bức tranh thực sự là một ơn trời.. chỉ.. chỉ.. tốt nhất.. Bây giờ, khi tôi xem qua nội dung, tôi có thể hình dung ra bức tranh đó trong đầu. Bất kể lĩnh vực nào, tôi có thể tự tin nói rằng trong số tất cả các khóa học phát triển trực tuyến và ngoại tuyến mà tôi đã tham gia cho đến nay, nếu tôi phải chọn chỉ một khóa học thì đó sẽ là khóa học này. Nếu có thắc mắc gì hãy để lại câu hỏi chúng tôi sẽ giải đáp cặn kẽ, chi tiết và tận tình để bạn có thể tự mình biên soạn bài giảng 100%. Cuối cùng, bài giảng này rất hữu ích trong việc tìm hiểu sự không đồng bộ/đồng thời bất kể ngôn ngữ. Cách đây không lâu, tôi có cơ hội đọc một bài viết về async và chờ đợi trong JavaScript, và khi đọc nó, tôi đã nghĩ, ồ, đây thực sự là một bài giảng tuyệt vời. Ờ... tóm lại trong một từ... "Tôi đề xuất khóa học tốt nhất!" Alan, tôi hy vọng bạn làm việc ít hơn và kiếm được nhiều tiền hơn.. Cầu mong bạn đạt được sự giàu có khi hít vào và sức khỏe khi thở ra............!!!!!!!!!!!!!!!!!! !!!!!

    • brianj님의 프로필 이미지
      brianj

      Đánh giá 5

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      Trước hết, người hướng dẫn là người không chuyên nên hiểu rõ suy nghĩ của người không chuyên và giải thích rất rõ ràng! Tôi rất vui vì bạn đã giải thích chi tiết. (Tôi cũng không phải chuyên ngành.) Ai cũng có thể hiểu được. Ngoài ra, không nơi nào khác dạy nội dung đồng bộ/không đồng bộ. Tôi được bảo rằng giao tiếp không đồng bộ nên được sử dụng vô điều kiện khi giao tiếp, vì vậy tôi chỉ sử dụng nó. Tôi không biết chính xác tại sao, nhưng tôi đã học được nó sau khi tham gia lớp học. Nhưng việc học sẽ không hoàn hảo nếu bạn chỉ nghe một lần phải không? Tuy nhiên, điều đó là tốt vì một khi bạn mua khóa học này, bạn có thể học đi học lại vô thời hạn. Cảm ơn (Cuối cùng, tôi thực sự thích việc có các tài liệu và mã PDF! Rất khuyến khích!! Cá nhân tôi nghe nó ở tốc độ 1,25x. Có hiện tượng chất lượng hình ảnh giảm liên tục nhưng bạn có thể chọn chất lượng hình ảnh trong cửa sổ cài đặt phía dưới bên phải. Nếu bạn chọn cái cao nhất, nó sẽ quay trở lại.)

      • sangbum225213님의 프로필 이미지
        sangbum225213

        Đánh giá 3

        Đánh giá trung bình 5.0

        5

        47% đã tham gia

        Tôi chọn bài giảng này vì tôi còn thiếu hiểu biết nhiều về đồng bộ/không đồng bộ, nhưng chất lượng bài giảng rất tốt mặc dù hiện tại tôi đang học. Khi nào bài giảng tiếp theo sẽ được quay? Đây là một khóa học để suy nghĩ. Nó hoàn toàn tuyệt vời. Tôi đánh giá cao nó!

        • leedh20083569님의 프로필 이미지
          leedh20083569

          Đánh giá 3

          Đánh giá trung bình 5.0

          5

          100% đã tham gia

          Cho đến nay tôi đã nghe nhiều bài giảng nhưng hầu hết đều nhắm đến người mới bắt đầu và chỉ giải thích những điều cơ bản. Tuy nhiên, bài giảng này dường như bao gồm rất tốt mọi chủ đề từ cơ bản đến nâng cao và tôi cảm thấy như đã dành rất nhiều thời gian cho bài giảng từ khâu thiết kế đến chuẩn bị tài liệu bài giảng. Tôi nghĩ lần sau tôi sẽ thích nghe loại bài giảng này! Cá nhân tôi, nếu người hướng dẫn giảng một bài liên quan đến lập trình chức năng và Rx, tôi nghĩ tôi sẽ trả tiền lại và tận hưởng nó. Cảm ơn bạn vì bài giảng tuyệt vời!

          • youngilchung0015님의 프로필 이미지
            youngilchung0015

            Đánh giá 6

            Đánh giá trung bình 5.0

            5

            100% đã tham gia

            Lâu lắm rồi tôi mới có một bài giảng chất lượng cao. Đây là một chủ đề khó, nhưng tôi rất ấn tượng với cách bạn giải thích nó một cách dễ dàng bằng hình ảnh. Tôi hơi thất vọng vì khóa học này không được giảm giá khi các khóa học khác được giảm giá, nhưng sau khi học xong tôi nghĩ đó là điều đương nhiên. Cảm ơn bạn đã chia sẻ kiến ​​thức tốt và chúc may mắn.

            1.402.099 ₫

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

            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!