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.
-
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 đó.
-
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ó.
-
Full-stack
Toàn bộ ứng dụng hoặc trang web, bao gồm frontend và backend.
-
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…
-
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.
-
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.
-
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.
-
HTTP
Hypertext Transport (or Transfer) Protocol, giao thức truyền dữ liệu được sử dụng trên World Wide Web.
-
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.
-
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.
-
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.
-
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ụ đó.
-
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...
-
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.
-
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.
-
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...
-
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.
-
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.
-
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.
-
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.
-
JSX
JSX (JavaScript XML) cho phép viết HTML trong ReactJS.
-
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.
-
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.
-
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.
-
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.
-
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 address , một sự gia tăng khổng lồ so với (khoảng 4.3 tỷ) address của IPv4.
-
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.
-
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...
-
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.
-
Apache
Apache là web server được sử dụng rộng rãi nhất tương tự như Nginx.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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)
-
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.
-
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.
-
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.
-
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.