Điều gì khiến Swift trở nên hấp dẫn?

Cập nhật ngày: 27/09/2022 - Đã có 952 lượt xem bài viết này!
Điều gì khiến Swift trở nên hấp dẫn?
Trong bài viết này, tối sẽ cố gắng chắt lọc những điều mà khiến tôi thấy Swift mạnh mẽ và cuốn hút như vậy. Tất nhiên mọi thứ chỉ là trên quan điểm cá nhân, và tôi cũng không phải một chuyên gia hay cái gì đó cao siêu cả. Do vậy, nếu bạn có đóng góp gì, cứ tự nhiên comment và góp ý cho tôi.

Điều gì khiến Swift trở nên hấp dẫn?

Trong bài viết này, tối sẽ cố gắng chắt lọc những điều mà khiến tôi thấy Swift mạnh mẽ và cuốn hút như vậy. Tất nhiên mọi thứ chỉ là trên quan điểm cá nhân, và tôi cũng không phải một chuyên gia hay cái gì đó cao siêu cả. Do vậy, nếu bạn có đóng góp gì, cứ tự nhiên comment và góp ý cho tôi. 

Tránh những lỗi Stringly-Typed coding với Enums

Đã không biết bao nhiêu lần tôi phải đập đầu vào tường chỉ vì đi mày mò những bugs chính tả từ một vài chuỗi String trong project của tôi. Bên cạnh việc tiết kiệt thời gian khi sử dụng Enums thì công cụ hoàn thiện code trong Xcode cũng sẽ gợi ý các enum values cho bạn

Đây là một ví dụ về Enum mà tôi hay khai báo mỗi khi dùng NSURLSession:

enum HTTPMethod: String {
    case GET = "GET"
    case POST = "POST"
    case PUT = "PUT"
    case DELETE = "DELETE"
}

Hoặc chúng ta cũng có thể viết ngắn gọn hơn như sau:

enum HTTPMethod: String { case GET, POST, PUT, DELETE }

Tăng cường tính bảo mật với Access Control keywords

Đặt tình huống nếu bạn đang viết một API mà có thể phơi bày ra hết cho những lập trình viên khác, những người thậm chí còn không biết những input và output bạn đang cho họ xem là gì, thì bạn sẽ hiểu được sự quan trọng của việc định nghĩa một API xúc tích và rõ ràng.

Thêm những từ khóa Access Control vào trong những API methods sẽ giúp người dùng giản lược hóa những gì họ nhận được, đồng thời họ sẽ chỉ thấy được những gì họ cần. Bạn có thể viết hàng trang document để giải thích những methods nào nên dùng hay không, vậy tại sao không thêm một vài từ khóa đơn giản để đảm bảo cho những thứ đó?

Về cơ bản thì khái niệm Access Control không còn là điều gì quá mới mẻ. chúng ta đã từ thấy “public” interface trong file .h và “private” trong file .m của Objective-C rồi.  Do đó, sử dụng các từ khóa Access Control sẽ giúp bạn nâng cao tính đóng gói,  tối ưu hóa code cũng như một phần nào đó, performance của bạn tốt hơn.

Kiểu Generics

Generics là một trong những tính năng mạnh mẽ nhất của Swift.Array và Dictionary  là cả hai tập hợp của generic. Bạn có thể tạo một mảng chứa các giá trị Int, hoặc một mảng chứa các giá trị String, hoặc thực sự là một mảng cho bất kỳ kiểu nào khác có thể được tạo ra trong Swift.

Kể từ khi Swift ra đời thì tôi thường dựng các Views và View Controller trên code. Tôi thường khởi tạo các views mà không có các argument (init:frame là một designated initializer). Trong Swift, nếu bạn định nghĩa một hàm khởi tạo mà không có argument cho bất kỳ một class UIKit nào thì bạn bắt buộc phải khai báo thêm một hàm khởi tạo init:code, điều này khá là rườm rà. Do đó, để giảm những đoạn code rườm ra hay tính lặp lại của code, thì các View của tôi sẽ kế thừa từ một “Generic View Class”  thay vì UIView

public class GenericView: UIView {
    public required init() {
        super.init(frame: CGRect.zero)
        configureView()
    }

    public required init?(coder: NSCoder) {
        super.init(coder: coder)
        configureView()
    }

    internal func configureView() {}
}

  Ở class trên thì tôi đã đặt hết những phương thức như thêm subViews, căn chỉnh Constraints hay căn màu, font chữ ..vv. vào trong một function  là “configureView” và mỗi lần muốn khởi tạo một View mới, tôi chỉ việc gọi function “configureView” ra.

class AwesomeView: GenericView {
    override func configureView() {
        ....
    }
}

let awesomeView = AwesomeView()

Kiểu thiết kế trên sẽ trở nên mạnh mẽ hơn khi chúng ta kết hợp với kiểu Generic

public class GenericViewController: UIViewController {
    internal var contentView: View {
        return view as! View
    }
    public init() {
        super.init(nibName: nil, bundle: nil)
    }

    public required init?(coder: NSCoder)
        super.init(coder: coder)
    }
    public override func loadView() {
        view = View()
    }
}

Và bây giờ thì việc tạo một View Controller mới sẽ càng trở nên đơn giản hơn:

class AwesomeViewController: GenericViewController {
    override func viewDidLoad()
        super.viewDidLoad()
        ....
    }
}

Qua ví dụ trên thì chúng ta càng thấy được sự mạnh mẽ cũng như gọn gàng của Swift,  kiểu Generic giúp chúng ta tránh được việc phải khai báo một cách lặp đi lặp lại những khối lệnh giống nhau , code trở nên sáng sủa và dễ quản lý hơn. 

Đến đây thì tôi cũng xin phép được kết thúc phần 1, hãy thử áp dụng những điều trên vào project của mình và cho tôi biết ý kiến của bạn.

Hẹn gặp lại các bạn vào phần 2 !

 

Bạn đang muốn tìm kiếm 1 công việc với mức thu nhập cao.
✅ Hoặc là bạn đang muốn chuyển đổi công việc mà chưa biết theo học ngành nghề gì cho tốt.
✅ Giới thiệu với bạn Chương trình đào tạo nhân sự dài hạn trong 12 tháng với những điều đặc biệt mà chỉ có tại IMIC và đây cũng chính là sự lựa chọn phù hợp nhất dành cho bạn:
👉 Thứ nhất: Học viên được đào tạo bài bản kỹ năng, kiến thức chuyên môn lý thuyết, thực hành, thực chiến nhiều dự án và chia sẻ những kinh nghiệm thực tế từ Chuyên gia có nhiều năm kinh nghiệm dự án cũng như tâm huyết truyền nghề.
👉 Thứ hai: Được ký hợp đồng cam kết chất lượng đào tạo cũng như mức lương sau tốt nghiệp và đi làm tại các đối tác tuyển dụng của IMIC. Trả lại học phí nếu không đúng những gì đã ký kết.
👉 Thứ ba: Cam kết hỗ trợ giới thiệu công việc sang đối tác tuyển dụng trong vòng 10 năm liên tục.
👉 Thứ tư: Được hỗ trợ tài chính với mức lãi suất 0 đồng qua ngân hàng VIB Bank.
👉  Có 4 Chương trình đào tạo nhân sự dài hạn dành cho bạn lựa chọn theo học. Gồm có:
1)  Data Scientist full-stack
2)  Embedded System & IoT development full-stack
3)  Game development full-stack
4)  Web development full-stack 
✅ Cảm ơn bạn đã dành thời gian lắng nghe những chia sẻ của mình. Và tuyệt vời hơn nữa nếu IMIC được góp phần vào sự thành công của bạn. 
✅ Hãy liên hệ ngay với Phòng tư vấn tuyển sinh để được hỗ trợ về thủ tục nhập học.
✅ Chúc bạn luôn có nhiều sức khỏe và thành công!

 

Xem khóa đào tạo nhân sự theo danh mục!

Xem các khóa đào tạo nhân sự