Home

iOS pattern: Phần 5: Nguyên lý S.O.L.I.D (chữ I )

Hôm trước trên group, có một bạn chia sẻ rằng đi phỏng vấn bị một anh hỏi xoáy về sự khác biệt giữa Delegate và DataSource trong iOS. Nếu là bạn thì bạn trả lời ra sao? Với mình, câu hỏi trên hoàn toàn vô nghĩa, câu trả lời đơn giản là về bản chất nó chẳng khác gì nhau. Khoan đợi đã, nếu không khác nhau thì tại sao họ lại phải chia ra? –> Đáp...

Read more

iOS pattern: Phần 4: Nguyên lý S.O.L.I.D (chữ L )

Tiếp nối chuỗi series về nguyên lý S.O.L.I.D, bài viết này sẽ giới thiệu nguyên lý thứ 3, tạm dịch là nguyên lý thay thế Liskov (Liskov substitution principle – LSP) – chữ L. Liskov ở đây là tên riêng của một nhà khoa học máy tính người Mỹ, bà Barbara Liskov – bà đã giới thiệu về đặc tính thay thế giữa các đối tượng trong một hội nghị khoa học. ...

Read more

iOS pattern: Phần 3: Nguyên lý S.O.L.I.D (chữ O )

Ở phần trước, chúng ta đã tìm hiểu về nguyên lý đầu tiên – SRP, một nguyên lý khá dễ hiểu nhưng không dễ để thực hiện. Trong bài viết này, mình sẽ tiếp tục giới thiệu về nguyên lý thứ 2, nguyên lý Open-Closed Principle (OCP – chữ O). Tuy nhiên trước khi đi vào chi tiết, mình cũng xin được nhắc lại cho các bạn, rằng S.O.L.I.D nằm ở mức nguyên lý ...

Read more

Làm quen với CoreML trong iOS 11

Tại hội nghị WWDC 2017 đang diễn ra, Apple đã ra mắt một bộ kit mới, hỗ trợ cho việc tích hợp học máy (Machine Learning – ML), đó chính là CoreML. Bản thân mình cũng đang chân ướt chân ráo vào ML được một thời gian ngắn, nên mình quyết định viết blog này nhằm mục đích chia sẻ và giới thiệu những gì mình biết, mình hiểu, và hi vọng sẽ cung cấp đư...

Read more

iOS pattern: Phần 2: Nguyên lý S.O.L.I.D (chữ S )

Nguyên lý S.O.L.I.D (hay Uncle Bob) là một nguyên lý cực kì phổ biến trong ngành công nghệ phần mềm, có thể nói là must-be-known bởi mọi lập trình viên. Nếu như bạn đã đọc phần tổng quan trước, đoạn mà mình đã đặt ra một số tiêu chí quan trọng khi thiết kế code, thì có thể nói SOLID sẽ giúp code của các bạn đáp ứng được hầu hết các tiêu chí mà m...

Read more

Series code iOS pattern: Phần 1: Sơ lược về thiết kế hệ thống iOS

Bài viết này là bài mở đầu cho series về iOS Pattern, series này sẽ bao quát một số vấn đề về kiến trúc (architecture), thiết kế source code (design pattern) nhằm cải thiện chất lượng code và tư duy hệ thống của các bạn. Nếu các bạn là junior developers mà tiến đến xa hơn Senior hoặc team lead, thì các bạn bắt buộc phải tìm hiểu những vấn đề mà...

Read more

Protocol-Oriented Programming trong Swift (phần 2)

(If you are looking for English version, here you go: POP English) Trong phần 2, mình sẽ trình bày cách sử dụng Protocol-Oriented Programming kết hợp với Struct để giải quyết một số vấn đề của Class đã trình bày trước đó. –> Mục tiêu của phần này sẽ là: HOW CAN WE USE POP OVER OOP IN SWIFT? a. Implicit Sharing Data: Bản chất c...

Read more

Closure/Block trong iOS

Closure là một functional tuyệt vời mà Swift cung cấp cho lập trình viên, thật ra Closure không phải điều đặc biệt chỉ có trên Swift, các ngôn ngữ khác đều có closure, tuy nhiên được gọi bằng cái tên khác do nhà phát triển ngôn ngữ nghĩ ra mà thôi, ví dụ: closure tương ứng với block trong Objective-C, hoặc là lambda trong Java, delegates trong C...

Read more

Sự khác biệt giữa Struct và Class trong Swift

Struct (cấu trúc) và Class(lớp) trong Swift có nhiều điểm tương đồng với nhau, Apple đã mô tả sự tương đồng giữa chúng như sau: “Classes and structures are general-purpose, flexible constructs that become the building blocks of your program’s code. You define properties and methods to add functionality to you...

Read more