Khái niệm cơ sở

Khái niệm về platform

  1. Platform là gì?

    Platform là một môi trường tổng hợp bao gồm phần cứng, phần mềm, hệ điều hành, thư viện, công cụ và dịch vụ được sử dụng để phát triển, thực thi và quản lý các ứng dụng phần mềm.

    Nói cách khác, platform cung cấp nền móng kỹ thuật và hệ sinh thái hỗ trợ để lập trình viên lập trình, kiểm thử, triển khai và vận hành phần mềm một cách hiệu quả.

    Như vậy, một platform có thể bao gồm một hoặc nhiều các thành phần dưới đây:

    • Hệ điều hành: Windows, macOS, Linux, Android, iOS.
    • Môi trường thực thi (Runtime environment): Java Virtual Machine (JVM), .NET CLR.
    • Framework & thư viện: Spring Boot, Laravel, Django, React.
    • Công cụ phát triển: IDE (IntelliJ, VS Code), CLI tool, Build tool.
    • Dịch vụ đám mây: AWS, Azure, Firebase, Google Cloud.
    • Cơ sở hạ tầng phần cứng: Máy tính cá nhân, máy chủ vật lý, máy ảo, thiết bị IoT.
  2. Mối quan hệ giữa ứng dụng và platform

    Một ứng dụng phải được phát triển và triển khai dựa trên một hoặc nhiều platform cụ thể.

    Ứng dụng sẽ phụ thuộc vào platform để hoạt động chính xác. Khi thay đổi platform, ứng dụng có thể cần phải tùy chỉnh, cấu hình lại hoặc viết lại một phần mã nguồn.

    Một số ví dụ về sự phụ thuộc của ứng dụng vào platform như sau:

    • Một ứng dụng cho máy tính cá nhân chỉ hỗ trợ hệ điều hành Windows thì không thể cài đặt trên macOS hoặc iPhone.
    • Ứng dụng viết bằng ngôn ngữ Java phải được triển khai trên JVM, còn nếu viết bằng C# thì phải chạy trên .NET CLR, v.v.
    • Các ứng dụng cross-platform có thể được triển khai trên nhiều nền tảng mà chúng hỗ trợ, chẳng hạn như Flutter, React Native hay Electron.
  3. Một số platform phổ biến

    1. Hệ điều hành

      • Windows: Hệ điều hành phổ biến nhất dành cho máy tính cá nhân, máy chủ, hỗ trợ đa số ứng dụng desktop.
      • Linux: Hệ điều hành miễn phí, mã nguồn mở, được sử dụng rộng rãi làm máy chủ, trong các hệ thống nhúng và cloud.
      • Android: Nền tảng dành cho thiết bị di động phổ biến nhất thế giới dựa trên nhân Linux.
      • iOS: Nền tảng dành cho thiết bị di động của Apple, chạy trên iPhone, iPad, v.v. với hệ sinh thái chặt chẽ và hiệu suất cao.
    2. Môi trường thực thi

      • Java Virtual Machine (JVM): Môi trường thực thi ứng dụng Java, chạy trên nhiều hệ điều hành khác nhau.
      • .NET CLR (Common Language Runtime): Môi trường thực thi của Microsoft dành cho C#, Visual Basic.NET và các ngôn ngữ .NET.
      • Node.js: Môi trường thực thi ứng dụng JavaScript phía máy chủ, giúp xây dựng ứng dụng mạng tốc độ cao, xử lý bất đồng bộ tốt.
      • Python Interpreter: Môi trường thực thi ứng dụng viết bằng Python, được sử dụng trong AI, khoa học dữ liệu, web, ngôn ngữ kịch bản.
    3. Framework & thư viện

      • Spring Boot: Framework mạnh mẽ để phát triển ứng dụng web và dịch vụ RESTful bằng ngôn ngữ Java.
      • Laravel: Framework hiện đại, dễ dùng, rất phổ biến trong phát triển ứng dụng web, backend API bằng ngôn ngữ PHP.
      • Django: Framework web đầy đủ tính năng, bảo mật cao, được dùng nhiều trong startup và nghiên cứu.
      • React: Thư viện giao diện người dùng phổ biến của Facebook, hỗ trợ phát triển ứng dụng SPA rất hiệu quả.
      • Angular, Vue.js: Framework frontend mạnh mẽ, dùng để phát triển giao diện web có tính tương tác cao.
    4. Cloud

      • Amazon Web Services: Nền tảng dịch vụ cloud hàng đầu thế giới, cung cấp hàng trăm dịch vụ khác nhau.
      • Microsoft Azure: Platform cloud mạnh mẽ, tích hợp chặt với hệ sinh thái Windows và .NET.
      • Google Cloud Platform: Nổi bật với các dịch vụ AI/ML, Big Data và hỗ trợ tốt Kubernetes.
      • Firebase: Backend-as-a-Service (BaaS), hỗ trợ realtime database, authentication, hosting, cloud functions, v.v.
    5. Cross-platform

      • Flutter: Do Google phát triển, cho phép phát triển ứng dụng mobile, web, desktop.
      • React Native: Do Meta phát triển, dùng JavaScript để tạo ứng dụng native cho iOS và Android.
      • Electron: Phát triển ứng dụng desktop bằng JavaScript, HTML và CSS.