Subscribe to get the latest posts sent to your email.
Subscribe to get the latest posts sent to your email.
- Thành thạo .NET C# - Có kinh nghiệm về các CSDL: MS SQL, My SQL, MongoDB Lợi thế: - Có kinh nghiệm về xây dựng các hệ thống đa người dùng, xử lý dữ liệu lớn thời gian thực. - Có kinh nghiệm về Docker, Azure, AWS.
- Thành thạo HTML5, Javascript - Có kinh nghiệm với ít nhất một trong các frameworks: Jquery, Bootstrap, React Native, Angular…
3. Lập trình thiết bị thông minh:
- Có kinh nghiệm lập trình trên nền tảng iOS, Android Lợi thế: - Có kinh nghiệm phát triển ứng dụng cho Tizen, WebOS - Có kinh nghiệm phát triển ứng dụng cho thiết bị IoT.
- Yêu thích Design và UI, am hiểu về nghệ thuật và tâm lý người sử dụng. - Thành thạo Photoshop Ưu tiên: - Có kinh nghiệm sử dụng Sketch, XD…
- Có kinh nghiệm viết test case cho Backend và Frontend Ưu tiên: - Thành thạo về Automation test, Tool test
Một công việc khá phổ biến đối với front-end developer là phải giả lập một backend REST service để nhận JSON data cung cấp cho ứng dụng front-end, và đảm bảo nó hoạt động như mong đợi trong khi đang chờ phía backend hoàn thiện service.
Bạn vẫn có thể cài đặt backend server đầy đủ, bằng cách sử dụng Node.js, Express và MongoDB, tuy nhiên việc này tốn khá nhiều thời gian và phức tạp. Trong khi đó JSON Server lại là một giải pháp khá hoàn thiện cho yêu cầu nhanh và đơn giản với đầy đủ các CRUD operation.
Vì vậy bài viết này sẽ hướng dẫn bạn cách cài đặt JSON server và publish một sample REST API.
JSON Server được đóng gói như một NPM package. Vì vậy việc cài đặt có thể được thực hiện thông qua việc sử dụng gói Node.js manager:
Tuỳ chọn -g sẽ giúp cho package được cài đặt ở level hệ thống.
Tiếp theo, hãy tạo file JSON với tên data.json. Trong file này sẽ chứa những dữ liệu được trả về bởi REST API. Dưới đây là một ví dụ về file json này:
Cấu trúc trên mô tả employee object với các trường id, first_name, last_name và address.
Hãy khởi động JSON server bằng việc chạy câu lệnh sau:
$ json-server --watch data.json
File data.json được truyền vào như một tham số trong câu lệnh trên, và option --watch được thêm vào nhằm đảm bảo server được start ở watch mode, trong mode này, server sẽ xem chừng cho những thay đổi của file và cập nhật kết quả vào API một cách phù hợp.
Bây giờ hãy mở địa chỉ http://localhost:3000/employees trên browser và ta sẽ nhận được kết quả của file json mà ta đã tạo.
Những HTTP endpoints sau đây được tạo tự động bởi JSON server, ta có thể tuỳ chọn để sử dụng sao cho phù hợp với mục đích của mình:
Ngoài ra ta còn có thể thêm vào URL các params khác, ví dụ như việc filter như sau:
http://localhost:3000/employees?first_name=Sebastian
Kết quả trả về là một object employee.
Việc deploy lên localhost như trên sẽ không thể sử dụng cho các trường hợp test từ bên ngoài ví dụ như mobile app, mà ta cần deploy nó với địa chỉ IP của máy.
Truy cập vào System Preferences/Network/Wifi, copy địa chỉ IP (ví dụ x.x.x.x) của máy và start json server với cú pháp sau:
$ json-server --host X.X.X.X data.json
Bây giờ, ta hoàn toàn có thể truy cập vào địa chỉ http://x.x.x.x:3000/employees từ bên ngoài để truy xuất thông tin.
Ngoài ra, để tìm hiểu sâu hơn về những hỗ trợ mà json server cung cấp, các bạn có thể tìm hiểu thêm ở đây https://github.com/typicode/json-server
Trong series Lược Sử Lập Trình Web, mình đã kể về chuyện lập trình web đang có xu hướng chuyển dần từ server-side rendering sang client-side rendering.
Trong bài này, chúng ta sẽ cùng tìm hiểu về sự khác nhau giữa hai cơ chế này, ưu nhược điểm của chúng để có thể dễ dàng lựa chọn khi sử dụng nhé! Chúng ta cũng sẽ tìm hiểu những công ty công nghệ lớn như Facebook, AirBnB sử dụng cơ chế nào luôn!
Cơ chế server-side rendering đã được dùng từ thuở xưa ơi là xưa. Gọi nó là server-side rendering là vì phần lớn logic sẽ được xử lý ở server:
Một số tính chất của cơ chế server side rendering:
Ra mắt sau nên Client Side Rendering giải quyết được một số vấn đề của server side rendering:
Tất nhiên là client side rendering cũng có một số nhược điểm riêng:
Ra đời đã lâu, server side rendering đã được sử dụng, cải tiến rất nhiều (Caching, CDN). Những ưu điểm của cơ chế này:
Thế nhưng, bên cạnh đó, server side rendering cũng có một số nhược điểm:
Cơ chế server side rendering vẫn còn được sử dụng ở rất rất nhiều site. Do vậy, chỉ cần hiểu rõ và nắm vững cơ chế này là bạn đã có thể làm một trang web đầy đủ tính năng rồi.
Các trang web sử dụng cơ chế này:
Thế rồi, ở những năm 2010, với sự phát triển của JavaScript và AJAX, cơ chế client-side rendering bắt đầu được sử dụng.
Developer bắt đầu build ứng dụng dưới dạng SPA – Single Page Application. Ứng dụng nằm trong 1 page duy nhất nên được gọi là Single Page Application.
Client Side Rendering tức là việc render HTML, CSS sẽ được thực hiện ở client (Tức JavaScript ở trình duyệt)
So với Server Side Rendering (SSR) đã nhắc trong phần 1, Client Side Rendering (CSR) có những đặc điểm sau:
Vì Client-side rendering rất phù hợp cho những ứng dụng cần tương tác nhiều, hầu hết web của các công ty công nghệ, công ty startup đều đùng cơ chế này:
Nói chung, client side rendering còn khá mới mẻ nên vẫn còn một số vấn đề nhỏ chưa được giải quyết tốt (tối ưu tốc độ initial load, giảm kích cỡ file JavaScript của app).
Các vấn đề này vẫn đang được giải quyết bởi các engineer trâu bò hàng đầu ở Facebook, Netflix, Instagram…
Trong bài viết này, mình đã giới thiệu sơ về 2 cơ chế client-side rendering và server-side rending. Mình cũng chia sẻ về những ưu nhược điểm của 2 cơ chế này.
Một điều mình không nhắc đến trong bài là đôi khi các website sẽ kết hợp cả server-side rending lẫn client side rendering. Ví dụ server sẽ tải trước một số dữ liệu dưới dạng JSON cho client, hoặc server sẽ render HTML khi gặp bot đễ hỗ trợ crawl tốt hơn.
Bản thân các thư viện client-side rendering như React, VueJS cũng đều hỗ trợ server rendering (React có react-dom/server, VueJS có Nuxt). Nếu có hứng thú, các bạn có thể tự tìm hiểu thêm nhé!
P/S: Để theo dõi bài viết trên Tôi Đi Code Dạo, nhớ Subscribe Chat Bot của tụi mình nha. Bot của Code Dạo sẽ gửi bạn những bài viết cực kì hay ho về kĩ năng mềm và cứng, kinh nghiệm trong ngành vào thứ 4 hàng tuần nhé!