Trong bối cảnh này, từ "sơ khai" được sử dụng thay cho "giả", nhưng vì mục đích rõ ràng và chính xác, tác giả nên sử dụng "giả", vì "giả" là một loại sơ khai, nhưng để thử nghiệm. Để tránh nhầm lẫn hơn nữa, chúng ta cần xác định sơ khai là gì.
Trong ngữ cảnh chung, sơ khai là một phần của chương trình (thường là hàm hoặc đối tượng) gói gọn sự phức tạp của việc gọi chương trình khác (thường nằm trên một máy khác, VM hoặc quá trình - nhưng không phải lúc nào cũng có thể là cục bộ vật). Bởi vì chương trình thực tế để gọi thường không nằm trên cùng một không gian bộ nhớ, nên việc gọi nó đòi hỏi nhiều thao tác như xử lý địa chỉ, thực hiện lệnh gọi từ xa thực tế, sắp xếp / xê-ri hóa dữ liệu / đối số được truyền (và giống với kết quả tiềm năng), thậm chí có thể xử lý xác thực / bảo mật, v.v. Lưu ý rằng trong một số bối cảnh, các sơ khai cũng được gọi là proxy (chẳng hạn như proxy động trong Java).
Mock là một loại sơ khai rất cụ thể và hạn chế, bởi vì một giả là một thay thế của một chức năng hoặc đối tượng khác để thử nghiệm. Trong thực tế, chúng ta thường sử dụng giả làm chương trình cục bộ (hàm hoặc đối tượng) để thay thế chương trình từ xa trong môi trường thử nghiệm. Trong mọi trường hợp, giả có thể mô phỏng hành vi thực tế của chương trình được thay thế trong ngữ cảnh bị hạn chế.
Hầu hết các loại sơ khai nổi tiếng rõ ràng là dành cho lập trình phân tán, khi cần gọi các thủ tục từ xa ( RPC ) hoặc các đối tượng từ xa ( RMI , CORBA ). Hầu hết các khung / thư viện lập trình phân tán sẽ tự động hóa việc tạo ra các sơ khai để bạn không phải viết chúng theo cách thủ công. Sơ khai có thể được tạo từ một định nghĩa giao diện, được viết bằng IDL chẳng hạn (nhưng bạn cũng có thể sử dụng bất kỳ ngôn ngữ nào để xác định giao diện).
Thông thường, trong RPC, RMI, CORBA, v.v., người ta phân biệt các cuống phía máy khách , chủ yếu xử lý việc sắp xếp / xâu chuỗi các đối số và thực hiện lệnh gọi từ xa, và các cuống phía máy chủ , chủ yếu xử lý việc sắp xếp / khử lưu trữ các đối số và thực sự thực hiện chức năng / phương thức từ xa. Rõ ràng, các cuống máy khách được đặt ở phía máy khách, trong khi các cuống sever (thường được gọi là khung xương) nằm ở phía máy chủ.
Viết các sơ khai hiệu quả và chung chung trở nên khá khó khăn khi xử lý các tham chiếu đối tượng. Hầu hết các khung đối tượng phân tán như RMI và CORBA xử lý các tham chiếu đối tượng phân tán, nhưng đó là điều mà hầu hết các lập trình viên tránh trong môi trường REST chẳng hạn. Thông thường, trong môi trường REST, các lập trình viên JavaScript tạo các hàm sơ khai đơn giản để đóng gói các lệnh AJAX (tuần tự hóa đối tượng được hỗ trợ bởi JSON.parse
và JSON.stringify
). Các Swagger codegen dự án cung cấp một hỗ trợ rộng rãi cho tự động tạo ra cuống REST trong ngôn ngữ khác nhau.