- vừa được xem lúc

Từ điển IT - P1: UI, GUI, CLI và API

0 0 25

Người đăng: Techomies

Theo Viblo Asia

𝑁𝑒̂́𝑢 𝑏𝑎̣𝑛 𝑙𝑎̀ 𝑚𝑜̣̂𝑡 𝑠𝑖𝑛ℎ 𝑣𝑖𝑒̂𝑛 𝑛𝑔𝑎̀𝑛ℎ 𝐼𝑇 𝑐ℎ𝑢̛𝑎 𝑐𝑜́ 𝑛ℎ𝑖𝑒̂̀𝑢 𝑘𝑖𝑛ℎ 𝑛𝑔ℎ𝑖𝑒̣̂𝑚, ℎ𝑎𝑦 𝑙𝑎̀ 𝑚𝑜̣̂𝑡 𝑙𝑎̣̂𝑝 𝑡𝑟𝑖̀𝑛ℎ 𝑣𝑖𝑒̂𝑛 𝑚𝑜̛́𝑖 𝑏𝑢̛𝑜̛́𝑐 𝑐ℎ𝑎̂𝑛 𝑣𝑎̀𝑜 𝑛𝑔𝑎̀𝑛ℎ, 𝑏𝑎̣𝑛 “𝑥𝑖̉𝑢 𝑛𝑔𝑎𝑛𝑔” 𝑘ℎ𝑖 𝑛𝑔ℎ𝑒 𝑐𝑎́𝑐 𝑎𝑛ℎ 𝑡𝑟𝑜𝑛𝑔 𝑛𝑔𝑎̀𝑛ℎ 𝑡𝑟𝑎𝑜 đ𝑜̂̉𝑖, 𝑘ℎ𝑖 đ𝑜̣𝑐 𝑡𝑎̀𝑖 𝑙𝑖𝑒̣̂𝑢 𝑘𝑦̃ 𝑡ℎ𝑢𝑎̣̂𝑡? 𝐻𝑜𝑎̣̆𝑐 đ𝑜̛𝑛 𝑔𝑖𝑎̉𝑛 𝑏𝑎̣𝑛 𝑚𝑢𝑜̂́𝑛 ℎ𝑖𝑒̂̉𝑢 ℎ𝑜̛𝑛 𝑣𝑒̂̀ 𝑐𝑎́𝑐 𝑘ℎ𝑎́𝑖 𝑛𝑖𝑒̣̂𝑚 𝑡𝑟𝑜𝑛𝑔 𝐼𝑇?... 𝑆𝑒𝑟𝑖 𝑛𝑎̀𝑦 𝑑𝑎̀𝑛ℎ 𝑐ℎ𝑜 𝑏𝑎̣𝑛! Đ𝑎̂𝑦 𝑙𝑎̀ 𝑙𝑜𝑎̣𝑡 𝑏𝑎̀𝑖 𝑣𝑖𝑒̂́𝑡 𝑛𝑔𝑎̆́𝑛 𝑚𝑖̀𝑛ℎ 𝑠𝑒̃ 𝑔𝑖𝑎̉𝑖 𝑡ℎ𝑖́𝑐ℎ 𝑐𝑎́𝑐 𝑡ℎ𝑢𝑎̣̂𝑡 𝑛𝑔𝑢̛̃ 𝑚𝑜̣̂𝑡 𝑐𝑎́𝑐ℎ 𝑔𝑎̂̀𝑛 𝑔𝑢̃𝑖, 𝑑𝑒̂̃ ℎ𝑖𝑒̂̉𝑢, 𝑡ℎ𝑜̂𝑛𝑔 𝑞𝑢𝑎 𝑐𝑎́𝑐 𝑣𝑖́ 𝑑𝑢̣ 𝑡ℎ𝑢̛̣𝑐 𝑡𝑖𝑒̂̃𝑛 𝑣𝑎̀ 𝑡𝑟𝑢̛𝑜̛̀𝑛𝑔 ℎ𝑜̛̣𝑝 𝑠𝑢̛̉ 𝑑𝑢̣𝑛𝑔 𝑐𝑢̣ 𝑡ℎ𝑒̂̉.

Trong bài viết lần này mình sẽ nói về UI, GUI, CLI và API. Có thể bạn nhìn thấy từ UI là một từ hết sức phổ biến rồi, cần gì phải rặn ra content để viết shjt post nữa 😀. Nhưng ngược lại, mình dám khẳng định rất nhiều người vẫn không thực sự hiểu đúng ý nghĩa của các từ trên. Nếu giờ bạn cũng cảm thấy nghi ngờ bản thân thì cùng đọc tiếp nhé, Let’s go!

𝗨𝗜

UI – User Interface, tiếng Việt thường gọi là "𝑔𝑖𝑎𝑜 𝑑𝑖𝑒̣̂𝑛 𝑛𝑔𝑢̛𝑜̛̀𝑖 𝑑𝑢̀𝑛𝑔", chắc chắn đây là một từ xuất hiện hằng ngày đối với dân IT, nhất là các bạn làm front-end. Theo nhiều người vẫn nghĩ, “giao diện người dùng” là các trang web, ứng dụng mobile, ứng dụng PC… nhưng rất tiếc, điều này chưa hoàn toàn chính xác. Thực tế, UI dùng để nói đến tất cả mọi thứ mà một hệ thống cung cấp ra bên ngoài giúp cho người dùng có thể tương tác và giao tiếp với hệ thống đó (ở đây chúng ta hiểu luôn là máy tính). Do vậy, UI có thể được tích hợp vào bất kì đâu, có thể là một cái nút trên case máy tính, hay con chuột để bạn click, bàn phím, điều khiển, giao diện trên màn hình… tất cả đều được coi là “giao diện người dùng”.

𝗚𝗨𝗜

GUI – Graphical User Interface, hay dịch ra là “𝑔𝑖𝑎𝑜 𝑑𝑖𝑒̣̂𝑛 đ𝑜̂̀ ℎ𝑜̣𝑎 𝑛𝑔𝑢̛𝑜̛̀𝑖 𝑑𝑢̀𝑛𝑔”. Nghe cái tên này thì có vẻ dễ hiểu hơn rồi ha. Đây là một dạng UI, nhưng GUI dùng để chỉ các loại giao diện người dùng được xây dựng bằng cách kết hợp các thành phần ĐỒ HỌA MÁY TÍNH như khối màu sắc, icon, text, hình ảnh, v.v… Các trang web, ứng dụng bạn sử dụng hằng ngày đều thuộc nhóm này. Ưu điểm của giao diện đồ họa là sự thân thiện với người dùng, dễ thao tác, có thể nhanh chóng tiếp cận. Chính vì sức mạnh này khiến nó trở thành một cuộc cách mạng của máy tính và xuất hiện trên mọi thiết bị công nghệ bây giờ. Ngày xưa chỉ có máy tính có giao diện đồ họa, rồi điện thoại ra đời, bây giờ ngay cả nồi cơm nhà mình cũng có một cái giao diện đồ họa đơn giản 🤣.

Trong thực tế, từ GUI lại được ít sử dụng hơn hoặc được mọi người hiểu thành từ UI luôn. Mình không hề lên án việc này nha, miễn là nó thuận tiện và mọi người hiểu ngôn ngữ của nhau, vì “nước trong thì không có cá - technical quá thì không ai chơi” mà 🤡. Tuy nhiên khái niệm là khái niệm, chúng ta vẫn phải phân biệt bởi vì chúng ta là người học kỹ thuật, hiểu sai ngôn ngữ kỹ thuật sẽ khiến bạn gặp khó khăn trong quá trình làm việc, nghiên cứu và hiểu các khái niệm khác. Bản thân mình cũng đã từng gặp trường hợp này, đó là khi còn học đại học, nghe thầy giảng về kiến trúc máy tính, mình đã thực sự lú khi thầy hỏi: “em hãy kể tên các giao diện người dùng của máy tính thời nay”, tất nhiên mình chỉ trả lời là cái màn hình đang hiển thị giao diện Windows 7. Trước đó mình thực sự đã nghĩ “giao diện” chỉ là những thứ hiển thị trên màn hình mà thôi 😀.

Nhưng bạn có thắc mắc khi chưa có giao diện đồ họa GUI thì trước kia con người thao tác với máy tính như nào không? Vào những thập niên 80 thế kỷ trước, Microsoft đã ra đời một hệ điều hành mang tên “𝗠𝗦-𝗗𝗢𝗦”, một cái tên chắc cũng nhiều người nghe đến 😼 Nhưng liệu bạn có biết, hệ điều hành này không hề có giao diện đồ họa! Cùng đọc tiếp để tìm hiểu nhé 🤟

𝗖𝗟𝗜 CLI – Command Line Interface, hay “𝑔𝑖𝑎𝑜 𝑑𝑖𝑒̣̂𝑛 𝑑𝑜̀𝑛𝑔 𝑙𝑒̣̂𝑛ℎ. Có thể nói, đây là một trong các loại giao diện thuần túy nhất, nguyên thủy nhất còn phổ biến mà máy tính cung cấp cho người dùng (phổ biến ở đây nó cũng chỉ là một vài % thôi nhé 😄). Đã bao giờ bạn xem phim và nhìn thấy mấy ông hacker gõ gõ trên một cái màn hình đen xì chưa? Chính nó, CLI đó.

Giao diện dòng lệnh cho phép người dùng thao tác với máy tính qua các câu lệnh ngắn gọn, các từ khóa, logic được quy định sẵn, buộc người dùng phải “học” cách sử dụng của từng lệnh. Khác với giao diện đồ họa, CLI không có các hình minh họa đẹp mắt và chỉ dẫn dễ hiểu, nó chỉ có một con trỏ nhấp nháy ở đầu dòng và việc của bạn là nhập các câu lệnh rồi nhấn Enter, máy tính sẽ phân tích và chuyển đổi câu lệnh bạn nhập rồi thực thi hành động tương ứng.

Ví dụ trên giao diện đồ họa, bạn muốn xem danh sách các tập tin, thì bạn chỉ cần click double vào icon folder đó, một danh sách files sẽ hiển thị ra kèm với các icon định dạng dễ hiểu. Còn ở giao diện dòng lệnh, bạn chỉ cần gõ “ls -la”, máy tính cũng sẽ hiển thị ra cho bạn một danh sách tệp tin, nhưng chỉ đơn giản là 1 list các dòng chữ trắng trên nền đen thôi =)))

Dễ hiểu lý do tại sao GUI lại được sử dụng rộng rãi nhỉ 😀

Vậy tại sao CLI vẫn tồn tại? Mình sẽ nói sơ qua một vài lý do chính sau đây:

  • Không phải hệ điều hành nào cũng hỗ trợ GUI: Không như Windows hay MacOS, một số hệ điều hành không hỗ trợ GUI. Chính MS-DOS mình nói bên trên sử dụng CLI như một giao diện chính để người dùng sử dụng, hoặc một số hệ điều hành thuộc Linux sẽ lược bỏ đi phần GUI để làm máy chủ

  • Không phải phần mềm nào cũng có GUI: một số phần mềm hay chương trình sẽ không có GUI vì đơn giản các Lập trình viên không muốn hoặc không có thời gian để làm giao diện. Đối với việc phát triển phần mềm, các chương trình sử dụng giao diện dòng lệnh rất phổ biến nên lập trình viên cũng quen thuộc với chúng hơn là phát triển thêm một bộ giao diện đồ họa.

  • CLI sẽ nhanh hơn rất nhiều nếu bạn đã quen với các câu lệnh, tránh việc phải mất nhiều thao tác như trên GUI

  • ̶C̶̶L̶̶I̶ ̶k̶̶h̶̶i̶̶ế̶̶n̶ ̶b̶̶ạ̶̶n̶ ̶n̶̶g̶̶ầ̶̶u̶ ̶l̶̶ò̶̶i̶ ̶h̶̶ơ̶̶n̶ ̶t̶̶r̶̶o̶̶n̶̶g̶ ̶q̶̶u̶̶á̶̶n̶ ̶C̶̶a̶̶f̶̶e̶

𝗔𝗣𝗜

API - Application Programming Interface hay “giao diện lập trình ứng dụng”. Lúc mới học lập trình, hầu như ai cũng lơ tơ mơ khi đọc khái niệm “API” trên google vì nó là một khái niệm trừu tượng. Nhưng nếu anh em nào đọc qua phần UI, GUI, CLI đến đây rồi thì cũng sẽ hiểu sương sương API rồi đúng không 😎

API là một loại giao diện để giao tiếp, thao tác giữa các chương trình, ứng dụng phần mềm. Nếu như UI là giữa máy tính với người dùng, GUI cụ thể hơn là phần mềm đồ họa với người dùng, thì API lại là giao diện giao tiếp giữa các chương trình phần mềm, mình nhấn mạnh là giữa các chương trình phần mềm với nhau nhé. Hiểu đơn giản, chương trình A muốn sử dụng một chức năng của chương B, khi đó chương trình B phải mở ra một bộ giao diện để cho chương trình A tương tác, bộ giao diện này được gọi là API. Để dễ hình dung hơn chúng ta cùng đến với ví dụ nhé:

Chrome hay app desktop nói chung là một phần mềm, một chương trình chạy trên máy tính, không hơn không kém. Vì là một phần mềm bên thứ 3 nên nó chỉ có dữ liệu và logic, vậy tại sao chúng ta nghe nhạc được trên Chrome? Đó là vì hệ điều hành máy tính đã cung cấp một bộ giao diện (API) để cho Chrome sử dụng, các API này có thể nói đến như điều khiển loa, điều khiển Webcam, bộ định vị GPS và nhiều tính năng khác nữa. Khi muốn phát một bài hát, chương trình của Chrome sẽ sử dụng API của hệ điều hành và “đưa” cho API đó dữ liệu của bài hát, khi đó hệ điều hành sẽ có nhiệm vụ phát âm thanh theo đúng dữ liệu Chrome cung cấp, ngược lại phía Chrome sẽ không cần quan tâm hệ điều hành sẽ làm những gì, nó chỉ cần làm theo đúng những gì API quy ước.

Thêm một ví dụ khác về API để hiểu hơn nhé, lần này sẽ là 2 chương trình trên 2 máy chủ khác nhau:

Hệ thống GHTK và Shopee đều là những hệ thống phần mềm, để hai bên có thể hợp tác làm ăn với nhau, bên GHTK mở ra một một bộ giao diện bao gồm các chức năng: Tạo vận đơn, báo giá vận đơn,... cho Shopee sử dụng. Từ đó, mỗi khi bạn click mua hàng ở Shopee, nó sẽ sử dụng bộ giao diện mà GHTK cung cấp để tính toán phí vận chuyển và tạo một vận đơn từ sản phẩm bạn vừa mua lên hệ thống của GHTK. Để Shopee sử dụng được các bộ , GHTK yêu cầu Shopee phải gửi đi đầy đủ các thông số mà GHTK cần, phải đúng định dạng, đúng kiểu dữ liệu mà GHTK quy định

=> Ta nói: “Shopee đang sử dụng API của GHTK” hay “GHTK đang cung cấp API cho Shopee sử dụng”

Thực tế, giữa 2 hệ thống phần mềm nằm ở 2 máy chủ khác nhau như ví dụ trên sẽ giao tiếp thông bằng các gói tin gửi qua mạng internet, theo một giao thức (protocol) nào đó, có thể là HTTP, WebSocket, gRPC… giao thức là thứ sẽ giúp 2 hệ thống cùng tuân theo tiêu một chuẩn giao tiếp và hiểu được thông điệp của nhau. Mình sẽ có bài viết riêng về cách hoạt động của các giao thức trên.

Tada! Và đó chính là API, là cách các chương trình máy tính giao tiếp với nhau đó.

Qua các ví dụ trên chắc các bạn cũng đã hiểu về API rồi ha.

Sau bài viết này, chúng ta nắm được 4 từ: 𝗨𝗜, 𝗚𝗨𝗜, 𝗖𝗟𝗜 𝘃𝗮̀ 𝗔𝗣𝗜, đã hiểu được một số các loại Interface phổ biến để tương tác giữa con người với chương trình máy tính và giữa các chương trình máy tính với nhau. Ở loạt bài sau mình sẽ tiếp tục trình bày về các khái niệm thú vị khác trong CNTT, tiếp tục theo dõi Techomies nhé!

Bài viết gốc

Bình luận

Bài viết tương tự

- vừa được xem lúc

[CSS]: max(), min(), clamp(): when the size is no longer fixed

Chào mọi người, hôm nay mình xin phép được chia sẻ về 3 hàm tính toán đặc biệt trong CSS mà mình vừa mới được học, và có lẽ là 1 trong những hàm mà mình thích nhất . Là một Front-End dev, đặc biệt trong bối cảnh mobile first hiện tại, responsive không còn là 1 điều quá xa lạ, và hiển nhiên những sản

0 0 36

- vừa được xem lúc

VUEJS: Import and Preview Image

Chào mọi người. Hôm nay, mình lại tiếp tục chia sẻ cho các bạn một số ít hiểu biết của mình về VueJS thông qua phương pháp Preview Image.

0 0 31

- vừa được xem lúc

Doanh nghiệp không trả lương tương xứng cho giá trị của nhân viên

Việc deal lương khi phỏng vấn luôn là một vấn đề cực kì nhạy cảm của tất cả ngành nghề. Bản thân mình lúc nào cũng suy nghĩ tại sao các công ty không public lương lậu ở trên JD luôn (có một số nơi làm

0 0 29

- vừa được xem lúc

Tìm Hiểu Mô Hình MVC Dành Cho Người Mới Bắt Đầu: Cấu Trúc và Ví Dụ

Mô Hình MVC Là Gì. Mô Hình MVC Bao Gồm Ba Thành Phần Chính:. 1. Model: Là thành phần chịu trách nhiệm xử lý dữ liệu và logic nghiệp vụ.

0 0 6

- vừa được xem lúc

Cơ sở dữ liệu và Hệ quản trị cơ sở dữ liệu MySQL? (Phần 1)

Hôm này mình xin giới thiệu với các bạn mới học lập trình những kiến thức về cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu MySQL mà chúng ta phải nắm chắc để áp dụng khi thực hiện xây dựng website. Cơ sở

0 0 247

- vừa được xem lúc

Khái niệm cơ bản về Domain Driven Design (DDD)

Lời nói đầu. Xin chào tất cả mọi người, hôm nay mình sẽ chuyển chủ đề một chút, thử sức mình với một số khái niệm cao cấp hơn và chủ đề hôm nay mình chọn là DDD - Domain Driven Design.

0 0 49