QUESTIONS? CALL: (+84) 24 666 026 12

HiveTech Vietnam (Technology Solutions - Original Ideas - Shared Expertise)

HiveTech Vietnam (Technology Solutions - Original Ideas - Shared Expertise)

HiveTech is a technology company focus on AI and big data technologies for educational purposes.

T (+84) 24 666 026 12
Email: contact@hivetech.vn

HiveTech JSC
No. 3 Thanh Cong, Ba Dinh, Ha Noi

Open in Google Maps
  • HOME
  • SERVICES
  • OUR COMPANY
  • PARTNERS
  • CONTACT
  • RECRUITMENT
  • BLOGS
FREEQUOTE
  • Home
  • Posts tagged "HiveTech_sharing"
2021-04-16

ĐIỂM KHÁC NHAU GIỮA REST VÀ RESTful

Wednesday, 05 August 2020 by Thao Nguyen












REST (REpresentational State Transfer) về cơ bản là một kiểu thiết kế trong phát triển phần mềm mà có 1 số quy tắc sau:

– Nó nên là stateless

– Nó thường chỉ lấy các resources của server thông qua URI

– Nó thường ko có session

– Chỉ sử dụng phương thức – HTTP

– Dùng các method HTTP: GET, POST, PUT, DELETE để thực hiện các quá trình CRUD (tạo, thêm. sửa, xóa)

– Kết quả trả về thường ở dạng JSON hoặc XML, atom, OData etc. (lightweight data)

REST based services sẽ có một vài những nguyên tắc trên

RESTful services sẽ tuân theo tất cả những nguyên tắc trên

I. Bảng so sánh REST vs RESTful

II. Sự khác biệt chính giữa REST vs RESTful trong các điểm sau:

1. Architecture 

Kiến trúc của ứng dụng REST có một máy khách-máy chủ, không trạng thái, bộ nhớ cache, hệ thống lớp và giao diện thống nhất.  Nhưng trong các ứng dụng web RESTful, nó đã kết hợp kiến ​​trúc giống như REST nhưng nó được tích hợp sẵn các tính năng độc đáo.  Các ứng dụng REST có một hệ thống riêng xử lý thông tin ứng dụng.  Máy chủ REST này tương tác với máy khách-máy chủ quản lý sự tương tác của người dùng. 

2. Stability

Các máy chủ REST không duy trì bất kỳ trạng thái máy khách nào trong đó máy khách quản lý tất cả các giai đoạn ứng dụng. Yêu cầu đến máy chủ bao gồm tất cả các dữ liệu bắt buộc cần thiết để xử lý chúng. Trong các API RESTful, nếu có bất kỳ biến động nào trong trạng thái, máy khách sẽ trả lời hệ thống để lưu trữ.  Lấy dữ liệu tương phản cụ thể từ REST với cơ sở hạ tầng sử dụng các đối tượng phân tán để cản trở thông tin từ các thành phần khác. Nhưng trong các hệ thống REST, máy khách và máy chủ trao đổi kiến ​​thức về trạng thái và dữ liệu.  Trong các dịch vụ RESTful, việc che giấu dữ liệu không diễn ra và nó chỉ che giấu việc thực hiện.

3. Cache Ability

Hệ thống REST phải thể hiện phản hồi là có thể lưu trong bộ nhớ cache hoặc không lưu trong bộ nhớ cache. Vì vậy, các khách hàng và cơ sở hạ tầng có thể lưu trữ chúng khi có thể để tăng hiệu suất. Nó có thể thay thế dữ liệu không lưu trong bộ nhớ cache khi không có máy khách nào sử dụng dữ liệu được lưu trữ.  Trong các ứng dụng RESTful, trạng thái không thể xóa và thông tin có thể lưu trong bộ nhớ cache có thể truy cập được đến máy khách mọi lúc, mọi nơi.

4. Undeviating Interface

Đó là quy tắc nổi tiếng nhất dựa trên yêu cầu của người dùng.  Tính năng trung tâm tách biệt kiến ​​trúc của REST khỏi một sự hỗn loạn phụ thuộc vào mạng khác khi nó được nhúng trên một giao diện không thể tách rời giữa các thiết bị.  Các dịch vụ REST cung cấp dữ liệu dưới dạng tài nguyên với một không gian tên riêng và duy nhất.

5. Multi-Layered Architecture

Trong REST, các thiết bị trong hệ thống không thể xem ngoài lớp.  vì vậy nó chỉ đơn giản là có thể tăng cường cân bằng tải và tạo một số proxy để tăng cường hiệu suất và bảo mật.  Nhưng trong API RESTful, kiến ​​trúc phân lớp được xây dựng trên máy chủ-máy khách nơi các giới hạn không trạng thái được hợp nhất để phát triển một ứng dụng có ranh giới mạnh và tách biệt giữa các ranh giới rõ ràng và khác biệt.  Các dataflow ở giữa các lớp dựa trên các yêu cầu của máy khách.  Máy khách thao tác dữ liệu hoặc hiển thị nó.

6. Remote Procedure Call on Web Services

Nếu người dùng đề cập rằng nếu một dịch vụ không có trong REST, thì nó đang tìm kiếm tại URI hoạt động hoặc việc sử dụng các dịch vụ trên các động từ HTTP.  Nó được gọi là tập hợp tài nguyên thống nhất và nó là biểu diễn cấu trúc của dữ liệu REST. Vì vậy, sự phân tách giữa mỗi khung hoặc lớp này được gọi là REST trong các cuộc gọi thủ tục từ xa.  Các dịch vụ web để thêm, lập lịch, xóa bất kỳ đối tượng nào khỏi kho lưu trữ hoặc cơ sở dữ liệu thương mại điện tử có thể được RPC thực hiện trên REST. Liên kết URL duy nhất với truy vấn trên HTTP POST và HTTP GET được sử dụng để tương tác với các dịch vụ bằng cách đăng một tệp và định cấu hình nội dung để hoàn thành yêu cầu.  Các lệnh phổ biến được sử dụng để thực hiện các hành động HTTP được sử dụng bởi các dịch vụ REST và RESTful là PUT, DELETE, GET, POST và PATCH với tất cả các giới hạn cụ thể. Các API có cấu trúc có thể trả về các mã duy nhất theo yêu cầu của khách hàng.

7. Maturity Model by Richardson

Các tài nguyên URI sử dụng HTTP làm cho người dùng dự đoán API. Nhưng nếu không thể đoán trước, người dùng có thể tiếp cận các dịch vụ REST cùng với siêu văn bản. Vì vậy, mọi đối tượng có thể được trả về trong ứng dụng kiểm kê bao gồm nhiều liên kết để xóa, chỉnh sửa, nhập hoặc định cấu hình cơ sở dữ liệu kiểm kê của tài nguyên. Các tệp giải thích rằng trước khi bất kỳ dịch vụ nào là RESTful, nó sẽ cung cấp nội dung siêu văn bản như một phần của API.  Nhưng nhiều dịch vụ web không đáp ứng nhu cầu này và được gọi là REST.  Trong nhiều trang web, các quy tắc được chia thành các phần nhỏ và mô hình Richardson đã tạo ra một REST với nhiều cấp độ tuân thủ với bảo mật nâng cao.  Mô hình này cung cấp các hướng dẫn phù hợp, hiệu quả để thiết kế và tạo bất kỳ ứng dụng mới nào.

Tạ Trung Kiên

(Nguồn: Educa)

HiveTech_sharingRESTRESTfulSự khác nhau giữa REST và RESTful
Read more
  • Published in Posts, Technology
No Comments

Pseudocode & Diagram – SUPER EASY MADE ??!!

Monday, 27 July 2020 by Thao Nguyen













Câu hỏi “WHAT THE HECK??” LOL

– Đa phần các bạn tôi phỏng vấn vào công ty hoặc các bạn thực tập sẽ có suy nghĩ như vậy.

– Theo tôi 2 thứ đó là phần tất yếu & là kĩ năng quan trong của lập trình viên. Nếu như không biết, thì thôi khỏi nói > BẠN ĐÃ TỤT HẬU RỒI.

– Khi tôi vào đại học được học C++, Algorithm and data structure, về sau được học UML. Thầy/cô đều dạy Pseudocode, flow chart, diagram. NHƯNG có một điều tôi thấy nó quá nhàm chán và làm theo qua môn, đối phó.

Nhưng khi vào thực tập, anh trainer hỏi nhóm tôi về 3 thứ đó, cả ba trả lời không biết & anh ấy nói rằng: “Hãy vẽ thứ đó khi giải quyết một vấn đề!”

Kinh khủng thay do những thói quen từ xưa xưa, chúng tôi cắm đầu viết code luôn. SỰ THẬT ĐÁNG BUỒN: chúng tôi luôn bị tắc (dù task đó khá đơn giản), suy nghĩ không thông. Cứ như vậy trong một tháng không làm theo bước đó, các bạn biết không? Chúng tôi thu được con số 0 tròn trĩnh, chả biết thứ gì. Chúng tôi chợt nhận ra đã thiếu sót thứ gì, đúng là CÁ KHÔNG ĂN MUỐI CÁ ƯƠN.

– Tôi, Kiên, An bắt đầu viết những đoạn pseudocode, diagram đầu tiên. Có thể nói rằng chúng tôi đã giải quyết được bài toán đó ở một cách chập nhận được.

Lặp đi lặp lại, ngày qua ngày, chúng tôi đều bắt đầu quen tay hơn.

Khó khăn à, nhiều ấy chứ, do chúng tôi quen tay code luôn nên mất thời gian thích nghi với cách tiếp cận “MỚI” này.

– BÂY GIỜ & Ở ĐÂY, chúng tôi luôn thực hiện nó & là style của chúng tôi nói riêng và công ty nói chung.

– Task tích hợp hệ thống tôi & Kiên nhận, chúng tôi dùng khá nhiều thời gian để vẽ diagram & pseudocode, review nhiều lần mới được kết quả như mong muốn.

– Cách làm như nào ư, rất đơn giản, 1 quyển vở 5k, 1 cây bút và thực hiện những nét viết đầu tiên.

Ví dụ ” Hello Java ” ROFL, just kidding.

– Bắt đầu các em ơi.

Một task khá là “đơn giản”:

Đồng bộ hóa danh sách user từ hệ thống B vào hệ thống A:
nếu A -> B trùng: giữ nguyên nếu A có, B không: thêm vào B nếu B có, A không: Xóa B nếu user trên B là GUEST thì không làm gì

– Tôi sẽ giải quyết như sau, vẽ 2 quả trứng. BÙM tôi đã có sơ đồ:

Pseudocode
– lấy danh sách User A
– lấy danh sách User B
– Cho 2 thứ đó giao với nhau, ta được hình tròn & eclip
– Tự nội suy phần mầu hồng là gì
– Chấm đỏ là GUEST
– Thêm right pink vào B (dùng một list để lưu right pink)
– Ktra chấm đỏ thì bỏ qua
– Xóa left pink (dùng một list để lưu left pink)
OMG vấn đề được giải quyết

– Các ngôn ngữ như C#, JS, Java Python đều có Collections, thao tác giao list, lấy phần dôi, đã hỗ trợ sẵn chỉ cần google.

– Nhưng để làm như trên cần thời gian dùi mài kinh sử viết Pseudocode & chart hết 3 quyển hồng hà đó LOL

– Tôi giao task đó cho bạn fresher làm, mất 3 ngày vẫn tắc, các bạn biết lỗi ở đâu rồi đó. Không làm 2 bước trên mặc dù tôi & Kiên đã chỉ. Nhìn code đó 3 sau 3 ngày cậu ấy làm mà tôi ngao ngán, có làm 1 tuần thì cũng vẫn vậy, 3 lớp lồng nhau, vài cái biến đếm tính số user, flag các kiểu.

– Nhiều trường hợp funny nữa: một task chỉ cần làm trong 30p, 1h, 2h là có kết quả, nhưng làm mất 3 ngày, 5 ngày.

– Tôi và Kiên đã quán triệt rằng: “thực hiện hay không tùy chú, muốn nói chuyện với anh thì hãy vẽ đi!!”.

CLICK TO OPEN TREASURE /klik/ /to͞o/ /ōpən/ /ˈtreZHər/

Trần Mạnh Chung

DiagramHiveTech_sharingKinh_Nghiệm_Làm_ViệcPseudocode
Read more
  • Published in Uncategorized
No Comments

Recent Posts

  • [Fresher/Junior] Business Analyst

    1. Mô Tả Công Việc Là cầu nối giao tiếp với nội...
  • Chuyên viên tuyển dụng IT

    1. Mô Tả Công Việc Chịu trách nhiệm tuyển dụng ...
  • Nginx Server

    1. Nginx là gì? Nginx là một webserver được ope...
  • Fresher/Junior Tester

    1. Mô Tả Công Việc Phân tích yêu cầu dự án phần...
  • Java Servlet Filter

    I. Các tình huống  1. Người dùng yêu cầu m...

Recent Comments

  • hivequeen on Fresher ReactJS Developer Full-time 2020
  • Khuất Anh Tuấn on Fresher ReactJS Developer Full-time 2020
  • hivequeen on [Tuyển Dụng] Junior/Fresher Frontend Developers (jQuery, Angular, VueJS, ReactJS)
  • nguyễn viết đạt on [Tuyển Dụng] Junior/Fresher Frontend Developers (jQuery, Angular, VueJS, ReactJS)

Archives

  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • September 2019
  • July 2019
  • June 2019

Categories

  • Networking
  • Posts
  • Recruitment
  • Sale
  • Technology
  • Uncategorized

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Featured Posts

  • [Fresher/Junior] Business Analyst

    0 comments
  • Chuyên viên tuyển dụng IT

    0 comments
  • Nginx Server

    0 comments
  • Fresher/Junior Tester

    0 comments
  • Java Servlet Filter

    0 comments
  • DISCLAIMER
  • SUPPORT POLICY
  • LEGAL
HiveTech Vietnam (Technology Solutions - Original Ideas - Shared Expertise)

© HiveTech 2019 All rights reserved

TOP