Tổng hợp các thuật ngữ chuyên ngành mà bất cứ fullstack developer nào cũng nên biết.

over 2 years ago

~12 min read

Jamstack? Docker? DOM? Serverless?

Chúng là cái gì thế???

Nếu bạn là người mới bước chân vào con đường lập trình fullstack thì ắt hản bạn sẽ đôi lần bối rối khi nghe người khác nhắc đến các thuật ngữ này. Vì vậy, bài viết này mình sẽ tổng hợp một số từ và cụm từ thông dụng có liên quan tới lập trình fullstack. Và tất nhiên ở đây chỉ tóm tắt và giải thích nghĩa của những từ đó thôi. Để hiểu sâu hơn bạn phải tự mình tìm kiếm.

  1. Frontend

    Giao diện của một ứng dụng hoặc trang web mà người dùng tương tác trực tiếp trên đó.

  2. Backend

    Một phần của một ứng dụng hoặc trang web mà người dùng không thể nhìn thấy hoặc tương tác trực tiếp với nó.

  3. Full-stack

    Toàn bộ ứng dụng hoặc trang web, bao gồm frontend và backend.

  4. DOM

    DOM (Document Object Model). Là một chuẩn được định nghĩa bởi W3C (World Wide Web Consortium). DOM được dùng để truy xuất và thao tác trên các tài liệu có cấu trúc dạng HTML hay XML bằng các ngôn ngữ lập trình thông dụng như Javascript, PHP…

  5. API

    API (Application Programming Interface). Mục đích của API là cung cấp một giao thức để các chương trình máy tính dễ dàng truy cập và trao đổi dữ liệu.

  6. Encryption

    Quá trình chuyển đổi thông tin hoặc dữ liệu thành code. Đặc biệt là để ngăn chặn truy cập trái phép.

  7. Decryption

    Trong khi Encryption là truyển đổi thông tin hoặc dữ liệu thành code, Decryption là chuyển đổi code thành thông tin hoặc dữ liệu.

  8. HTTP

    Hypertext Transport (or Transfer) Protocol, giao thức truyền dữ liệu được sử dụng trên World Wide Web.

  9. HTTPS

    Về cơ bản giống như HTTP, nhưng sử dụng các phương pháp mã hóa để bảo mật dữ liệu được truyền đến và đi từ các trang web.

  10. CI/CD

    CI/CD viết tắt của: Continuous Integration, Continuous Delivery (hay Continuous Deployment), mục đích của hệ thống CI/CD là tiết kiệm thời gian khi đóng gói và vận chuyển những thay đổi trong source code đến một ứng dụng hoặc website một cách thường xuyên và đáng tin cậy hơn.

  11. UI

    UI (User Interface hay Giao diện người sử dụng), là khái niệm nhắc tới giao diện người dùng, phần hình ảnh thể hiện của sản phẩm số mà người dùng có thể tương tác được.

  12. UX

    UX (User Experience hay Trải nghiệm người dùng), là trải nghiệm tổng thể của người dùng với một sản phẩm, trang web, ứng dụng trên thiết bị di động hoặc dịch vụ cụ thể. UX không chỉ bao gồm việc sử dụng các tính năng mà còn bao gồm cả những khía cạnh khác như kinh nghiệm, cảm xúc, giá trị nhận được khi tương tác với sản phẩm, trang web, ứng dụng, dịch vụ đó.

  13. Serverless

    Được định nghĩa ở clouflare blog: Serverless computing là một phương pháp cung cấp các dịch vụ backend trên một nền tảng có sẵn. Các nhà cung cấp dịch vụ serverless cho phép người dùng viết và triển khai code mà không phải lo lắng về cơ sở hạ tầng bên dưới...

  14. Request/Response

    Cách frontend và backend giao tiếp với nhau bằng các Request và Response. Một đoạn code ở frontend có thể Request dữ liệu từ backend và backend sau đó có thể gửi dữ liệu đó dưới dạng Response.

  15. Cache

    Cache là nơi lưu trữ dữ liệu tạm thời, nơi lưu trữ có thể là trên trình duyệt hoặc máy tính để tiết kiệm thời gian tải đi tải lại cùng một dữ liệu mỗi khi được yêu cầu.

  16. Command-line

    Command-line là một giao diện để gõ lệnh trực tiếp vào hệ điều hành của máy tính. Đây là cách trực tiếp nhất và nhanh nhất để thực hiện các tác vụ trên một hệ điều hành của máy tính, như: tạo thư mục, khởi chạy server PHP, chạy các script...

  17. Virtual machine

    Virtual Machine (Máy ảo) là một chương trình giả lập một hệ thống máy tính, được chạy trên hệ điều hành chủ và hoạt động như một máy tính thật.

  18. AWS

    AWS, viết tắt của Amazon Web Services. Hiện tại là nhà cung cấp lớn nhất các nền tảng điện toán đám mây theo yêu cầu cho các cá nhân, công ty và chính phủ, trên cơ sở trả tiền theo nhu cầu sử dụng.

  19. Database

    Database (cơ sở dữ liệu) là một tập hợp dữ liệu có cấu trúc, database cần thiết để lưu trữ khối lượng lớn dữ liệu người dùng.

  20. XML

    XML (eXtensible Markup Language) đóng một vai trò quan trọng trong nhiều hệ thống CNTT khác nhau và thường được sử dụng để phân phối dữ liệu qua Internet.

  21. JSX

    JSX (JavaScript XML) cho phép viết HTML trong ReactJS.

  22. JSON

    JSON (JavaScript Object Notation) là một định dạng tiêu chuẩn mở, nhẹ và dựa trên văn bản, được thiết kế rõ ràng để trao đổi dữ liệu mà con người có thể đọc được. Nó là một định dạng dữ liệu độc lập với ngôn ngữ. Nó hỗ trợ hầu hết mọi loại ngôn ngữ lập trình, framework hay library.

  23. Firewall

    Một hệ thống an ninh mạng có chức năng giám sát và kiểm soát lưu lượng mạng đến và đi dựa trên các quy tắc bảo mật được xác định trước.

  24. IP Address

    IP Address là một chuỗi ký tự duy nhất xác định từng máy tính sử dụng Giao thức Internet để giao tiếp qua mạng. IP Address có 2 loại: IPv4 và IPv6.

  25. IPv4

    IPv4 address (IP version 4) là các số nguyên 32-bit được biểu thị trong hệ thập phân. Ví dụ: 192.0.2.126 có thể là một IPv4 address. IPv4 address được sử dụng phổ biến nhất.

  26. IPv6

    IPv6 address (IP version 6) là phiên bản cải tiến của IPv4. IPv6 cho phép tăng lên đến 21282^{128} address , một sự gia tăng khổng lồ so với 2322^{32} (khoảng 4.3 tỷ) address của IPv4.

  27. Proxy Server

    Proxy Server hoạt động như một cổng nối giữa người dùng và Internet. Đây là một server trung gian giữa người dùng cuối và trang web họ truy cập. Các máy chủ proxy cung cấp các chức năng, bảo mật và riêng tư khác nhau phụ thuộc vào nhu cầu của bạn hoặc chính sách công ty.

  28. VPN

    VPN (virtual private network) cho phép người dùng thiết lập mạng riêng ảo với một mạng khác trên Internet. VPN có thể được sử dụng để truy cập các trang web bị hạn chế truy cập về mặt vị trí địa lý, bảo vệ hoạt động duyệt web của người dùng khỏi “sự tò mò” trên mạng Wifi công cộng bằng cách thiết lập mạng riêng ảo...

  29. Nginx

    Nginx là một phần mềm mã nguồn mở để phục vụ web, reverse proxying, caching, load blancing, media streaming... Ngoài các khả năng của máy chủ HTTP, Nginx cũng có thể hoạt động như một máy chủ proxy cho email (IMAP, POP3, SMTP), load balancer hoặc reverse proxy cho các máy chủ HTTP, TCP, UDP.

  30. Apache

    Apache là web server được sử dụng rộng rãi nhất tương tự như Nginx.

  31. Jamstack

    Jamstack là một kiến ​​trúc được thiết kế để làm cho web nhanh hơn, an toàn hơn và dễ mở rộng quy mô hơn. Nó được xây dựng dựa trên nhiều công cụ và quy trình làm việc mà các developer yêu thích chẳng hạn như ReactJS. Các nguyên tắc cốt lõi của pre-rendering và decoupling cho phép các trang web và ứng dụng được phân phối với độ tin cậy và khả năng phục hồi cao hơn bao giờ hết.

  32. Web Scraping

    Web Scraping là quá trình trích xuất dữ liệu từ các trang web. Một số thư viện Web Scraping phổ biến nhất bao gồm: Puppeteer, Selenium và BeautifulSoup.

  33. Git

    Git được sử dụng để theo dõi các thay đổi trong tệp và thư mục. Git thường được sử dụng để điều phối công việc giữa các developer tham gia hợp tác phát triển source code trong quá trình phát triển phần mềm.

  34. Cron jobs

    Cron Jobs là chức năng dùng để thực thi định kì lệnh nào đó trong một khoảng thời gian được xác định trước bởi quản trị viên.

  35. Responsive Web Design

    Responsive Web Design hay còn gọi là RWD, là một phương pháp thiết kế web hiện đại, cho phép các trang web hiển thị trên tất cả các thiết bị và kích thước màn hình bằng cách tự động điều chỉnh cho phù hợp với màn hình, cho dù đó là máy tính để bàn, máy tính xách tay, máy tính bảng hay điện thoại thông minh.

  36. MySQL

    MySQL là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) do Oracle phát triển dựa trên ngôn ngữ truy vấn có cấu trúc (SQL). Cơ sở dữ liệu là một tập hợp dữ liệu có cấu trúc. Nó có thể là bất cứ thứ gì từ danh sách mua sắm đơn giản đến thư viện ảnh hoặc nơi lưu trữ lượng lớn thông tin.

  37. NoSQL

    NoSQL là một Hệ thống quản lý dữ liệu không quan hệ (non-relational Data Management System) có lược đồ (schema) linh hoạt. Nó dễ mở rộng. Mục đích chính của việc sử dụng cơ sở dữ liệu NoSQL là dành cho các kho dữ liệu phân tán với nhu cầu lưu trữ dữ liệu lớn. NoSQL được sử dụng cho Big Data và ứng dụng web real time. Chẳng hạn các công ty như Twitter, Facebook và Google thu thập hàng terabyte dữ liệu người dùng mỗi ngày.

  38. Environment variables

    Biến môi trường là một biến có giá trị được đặt bên ngoài chương trình, thường là thông qua hệ điều hành. Các biến môi trường loại bỏ sự cần thiết phải xác định và xác định lại các biến thông qua các chương trình.

  39. ReactJS

    React hiện đang là framework frontend phổ biến nhất. Được phát triển bởi Facebook vào năm 2013, React được sử dụng để xây dựng các giao diện người dùng có tính tương tác cao.

  40. Angular

    Tương tự ReactJS, Angular được phát triển bởi Google, được xây dựng bằng TypeScript sau đó biên dịch ra Javascript.

  41. Docker

    Docker là một nền tảng để cung cấp cách để building, deploying và running ứng dụng dễ dàng hơn bằng cách sử dụng các containers (trên nền tảng ảo hóa). Ban đầu viết bằng Python, hiện tại đã chuyển sang Golang.

  42. Kubernetes

    Kubernetes là một nền tảng nguồn mở, khả chuyển, có thể mở rộng để quản lý các ứng dụng được đóng gói và các service, giúp thuận lợi trong việc cấu hình và tự động hoá việc triển khai ứng dụng. Kubernetes là một hệ sinh thái lớn và phát triển nhanh chóng. Các dịch vụ, sự hỗ trợ và công cụ có sẵn rộng rãi.

  43. Rust

    Rust là ngôn ngữ lập trình được tạo ra vào năm 2006 bởi Graydon Hoare như một dự án phụ khi đang là developer tại Mozilla. Rust pha trộn hiệu suất của các ngôn ngữ như C ++ với cú pháp thân thiện hơn, tập trung vào code an toàn và được thiết kế tốt giúp đơn giản hóa việc phát triển. Các phần của trình duyệt Firefox của Mozilla được viết bằng Rust và các nhà phát triển tại Microsoft được cho là sử dụng nó để mã hóa lại các phần của hệ điều hành Windows.

  44. TensorFlow

    TensorFlow là thư viện mã nguồn mở lớn và nổi tiếng nhất dành cho mảng Machine Learning (Học máy), được xây dựng bởi Google. TensorFlow giúp giải quyết các bài toán nhanh chóng và đơn giản hơn thông qua việc tạo các mô hình tính toán Machine Learning.

  45. Solidity

    Solidity là một ngôn ngữ lập trình hướng đối tượng để viết các hợp đồng thông minh. Nó được sử dụng để thực hiện các hợp đồng thông minh trên các nền tảng blockchain khác nhau, đáng chú ý nhất là Ethereum.

  46. Laravel

    Laravel là một PHP framework, có mã nguồn mở và miễn phí, được xây dựng nhằm hỗ trợ phát triển các phần mềm, ứng dụng, theo kiến trúc MVC.

  47. Go

    Go hay còn gọi là Golang là ngôn ngữ lập trình mã nguồn mở, được thiết kế tại Google bởi Robert Griesemer, Rob Pike, and Ken Thompson. Go là ngôn ngữ lập trình biên dịch (compiled programming language)

  48. jQuery

    jQuery là một thư viện JavaScript được thiết kế đơn giản hóa thao tác HTML DOM, cũng như xử lý sự kiện, hoạt ảnh CSS, và Ajax. Nó là phần mềm mã nguồn mở, miễn phí sử dụng giấy phép MIT License.

  49. AJAX

    AJAX (Asynchronous Javascript and XML) là phương thức trao đổi dữ liệu với máy chủ và cập nhật một hay nhiều phần của trang web, hoàn toàn không reload lại toàn bộ trang.

  50. NodeJS

    NodeJS là một hệ thống phần mềm mã nguồn mở chạy trên môi trường V8 JavaScript runtime (một trình thông dịch JavaScript chạy cực nhanh trên trình duyệt Chrome). NodeJS giúp các nhà phát triển xây dựng các ứng dụng web một cách đơn giản và dễ dàng mở rộng.

  51. NPM

    NPM (Node Package Manager) là một công cụ tạo và quản lý các thư viện javascript cho Nodejs. NPM cung cấp 2 chức năng chính bao gồm:

    • Là kho lưu trữ trực tuyến cho các package/module.
    • Quản lý các module javascript và phiên bản của chúng trong các dự án một cách đơn giản, dễ dàng và tiết kiệm thời gian hơn.

Đó là tất cả những từ hay được nhắc tới. Tất nhiên những từ quá phổ biến như HTML, CSS... thì mình sẽ không đề cập tới :D.