Điều gì làm cho một phần mềm trở thành một Engine? [đóng cửa]


39

Bộ mô tả 'Engine' bị ném rất nhiều: công cụ đồ họa, công cụ RegEx, công cụ AI, v.v. nhưng điều gì thực sự tạo nên một phần mềm của một Công cụ? Thiết kế, đầu vào / đầu ra, mục đích, kích thước?


62
Bộ phận tiếp thị.
Oded

2
@Oded: thuật ngữ 'engine' thường được sử dụng bởi chính các lập trình viên. Hãy thử tìm giải pháp thay thế và bạn sẽ thấy lý do tại sao.
MaR

2
một động cơ là thứ làm cho các bánh xe tôi không muốn phát minh lại lần lượt
Flexo

@Flexo, vậy - một thư viện?
Vorac

Câu trả lời:


33

Một động cơ sẽ là một cái gì đó "dưới mui xe", có thể nói như vậy. Nó không, hoặc ít nhất là rất hiếm khi, hiển thị cho người dùng cuối. Ví dụ, một công cụ đồ họa điều khiển tất cả các tính toán kết xuất nhưng chuyển những thay đổi đó sang môi trường thực tế để được mô hình hóa. Đầu vào: toán. Đầu ra: màu sắc đẹp. Một công cụ cũng có thể có các biến làm việc rất khác so với giao diện cấp cao hơn. Ví dụ, trong ví dụ trước, nó đang sử dụng dữ liệu số thô để thao tác đồ họa mà không cần lo lắng về việc một cái gì đó là bóng hay kết cấu, tất cả những điều đó được trừu tượng hóa thành các phương trình và hoạt động ma trận được thực hiện bởi công cụ đó. Hãy nghĩ về Engine như là "Hạt nhân" của một hệ thống nhất định trong khi phần còn lại sẽ giống như "Shell" hơn.

Để sử dụng một thế giới thực, tương tự CS101, một động cơ giống như một động cơ xe hơi. Phải mất hai đầu vào, không khí và khí đốt. Sau đó, chúng chuyển chúng vào một buồng, trong đó điện được sử dụng để tạo ra việc sử dụng hàn hồ quang nhỏ nhất thế giới. Thứ sau đó phát nổ. Điều này tạo ra hai đầu ra, khí thải và sóng áp suất dẫn động pít-tông. Phần còn lại được chuyển thành chuyển động bánh xe bởi các trục truyền động khác nhau và như vậy. Vì vậy, Động cơ là động cơ và chính chiếc xe là vỏ. Bạn có thể sử dụng động cơ xe cho một mục đích khác, giả sử lái máy phát điện hoặc máy nghiền để xay ngũ cốc. Bạn có thể sử dụng các đầu vào khác nhau nếu Động cơ có lớp phủ và như vậy để xử lý những thứ như ethanol hoặc diesel sinh học.

Tóm lại, Engine là một phần mềm thường không được tìm thấy trong sự cô lập. Nó hoạt động như một động lực cho phần mềm đó nhưng thường tương tác rất ít nếu có với thế giới bên ngoài. Một số động cơ có thể làm việc cùng nhau để tạo ra đầu ra miễn phí hoặc có thể được nối với nhau khi cần thiết. Một công cụ không trực tiếp thực hiện những điều liên quan đến trải nghiệm người dùng nhưng lại thúc đẩy những trải nghiệm đó bằng cách thúc đẩy dataflow và đáp ứng đủ để cho phép hiệu năng ứng dụng tốt.


9
Vì vậy, một trình điều khiển là công cụ điều khiển động cơ và phá vỡ vỏ?
MikeJ-UK

Tôi thực sự thích và được hưởng lợi từ câu trả lời của bạn nhưng tôi nghĩ rằng câu hỏi liên quan nhiều hơn đến việc làm thế nào để đoạn mã / phần mềm này được gọi là thư viện hoặc API hoặc công cụ? nếu bạn có thể thêm giải thích cho điều này thì đó sẽ là câu trả lời hoàn hảo
Ali

Các thư viện và API hoạt động ở một cấp độ khác với Engine. Tốt hơn là giữ cho nó tập trung vào thuật ngữ trong tầm tay hơn là chuyển hướng vào một biển biến thể và tên vô tận tiềm năng.
Kỹ sư thế giới

6

Các định nghĩa của động cơ

danh từ / ˈenjən / 
động cơ, số nhiều

  1. Một cỗ máy có các bộ phận chuyển động chuyển đổi năng lượng thành chuyển động

  2. Một thứ là tác nhân hoặc công cụ của một quá trình cụ thể

# 1 là tương đương ngữ nghĩa theo nghĩa enginephần mềm rằng nó gây ra điều gì đó xảy ra. Công cụ đồ họa 3D, nhận đầu vào và chuyển đổi thành chuyển động trên màn hình. Một công cụ regex lấy đầu vào và chuyển đổi chúng thành đầu ra khác.

# 2 giống như sử dụng câu một động cơ thay đổi . Ngữ nghĩa này có thể được áp dụng cho phần mềm là tốt.

Phần mềm engineskhông chỉ là các khung và thư viện làm thụ động mọi thứ. Các công cụ phần mềm tự hoạt động dựa trên các yếu tố đầu vào, chúng không thụ động và thường có run loopcông cụ xử lý theo ý riêng của chúng.


3

Câu trả lời gần nhất cho đến nay, theo tôi, là câu trả lời rằng đó là một điều tiếp thị.

Hãy thử nghĩ xem việc sử dụng từ này trong ngữ cảnh này đến từ đâu.

Chắc chắn xe hơi hoặc động cơ phản lực không được gọi theo cách đó bởi vì chúng lấy đầu vào và tạo ra một số đầu ra. Nếu đó là nó, thì không chỉ các chức năng, mà nhiều thứ trong cuộc sống sẽ là động cơ.

Theo tôi, không phải ngẫu nhiên mà một con bò chắc chắn không phải là động cơ, không nói về mặt kỹ thuật và không phải là cách nói lành mạnh.

Động cơ sử dụng nhiều loại năng lượng khác nhau và biến nó thành chuyển động (tức là một loại năng lượng chuyên dụng).

Tại sao chúng ta sử dụng nó trong phần mềm? Tôi muốn nói dự đoán thực tế nhất là vì nó đơn giản nghe có vẻ hay. Tại sao chúng ta gọi một số lập trình viên là 'Kiến trúc sư'? Lý do tương tự, nếu bạn hỏi tôi.

Một lý do khác có thể là các lập trình viên thường thích sử dụng phép ẩn dụ để mô tả các phần của phần mềm của họ, vì vậy họ có thể dễ dàng nắm bắt hơn (vì tự nhiên thường không như vậy).

Linh cảm của tôi là thực tế xấu khi lạm dụng các ẩn dụ theo cách mà miền ứng dụng của bạn chứa đầy chúng. Tôi nghĩ rằng nó có thể hữu ích khi nói chuyện với khách hàng hoặc những người không biết hoặc không quan tâm đến lập trình. Ngoài ra, biểu đồ và sơ đồ đơn giản làm công việc cho tôi.


1

Công cụ là bất cứ thứ gì có một số đầu vào, xử lý đầu vào đó và cung cấp một cái gì đó làm đầu ra . Theo định nghĩa này, một công cụ CMS là phần tạo ra phản hồi HTTP một cách nhanh chóng dựa trên đầu vào. Một công cụ cơ sở dữ liệu là những gì lấy truy vấn, vẽ một kế hoạch thực hiện và thực hiện nó và trả về kết quả.

Về mặt kỹ thuật, ngay cả một con bò là một loại động cơ. Nó lấy cỏ, xử lý và cung cấp sữa.

Đừng quên rằng thuật ngữ động cơ được sử dụng nhiều hơn trong Kỹ thuật cơ khí và nó hoàn toàn giống nhau.

Một khía cạnh khác của động cơ, là cốt lõi của một hệ thống. Ví dụ, công cụ cơ sở dữ liệu là cốt lõi của bất kỳ RDMS nào. Tuy nhiên, các IDE để kết nối với công cụ đó, trong khi lấy kết quả đầu vào và trả về, không được coi là một công cụ.


5
+1 cho "động cơ sữa", tôi đã ăn sữa chua và suýt bị sặc khi đọc nó. ;)
Thất vọngWithFormsDesigner

5
Định nghĩa của bạn sẽ làm cho mọi chức năng một động cơ.
back2dos

Không phải mọi chức năng là một chức năng của đầu vào của nó.
Michael Burge

Tôi phải đồng ý. Lời giải thích của bạn nghe hơi mờ nhạt và tùy tiện.
Yam Marcovic

1
Một lập trình viên là một động cơ quá. Nó lấy cà phê trên đầu vào và tạo mã trên đầu ra.
SF.

1

IMHO, một công cụ chỉ là một từ khác cho hệ thống con, mô-đun hoặc thư viện. IE - một hoặc nhiều thành phần được thiết kế cố định cho một mục đích cụ thể.


2
downvoters: xin hãy giải thích. Rằng một công cụ (ví dụ, Quake Engine) là một hệ thống con, mô-đun hoặc thư viện rõ ràng không sai.
keppla

3
Mặc dù công cụ được triển khai điển hình như một hệ thống con, thuật ngữ này thường chỉ được sử dụng cho các hệ thống con "dưới mui xe". Chúng không được sử dụng như từ đồng nghĩa.
MaR

Tiền đề của câu hỏi này là một động cơ không chỉ là một hệ thống con, nó là một loại hệ thống con cụ thể.
Will Sheppard

0

Một công cụ cơ bản là phần mềm có thể được mở rộng để tạo ra một cái gì đó.

Ví dụ: trong chơi game, bạn sẽ nghe nhiều về 'công cụ trò chơi'. Điều này có nghĩa là một phần mềm cụ thể đã được sửa đổi và mở rộng để tạo ra một trò chơi hoàn toàn độc đáo.


0

Trong công việc của tôi, thuật ngữ này có nghĩa là "Một tệp mã duy nhất có định dạng XEngine.csvới nhiều lớp bên trong tệp mã đó, tất cả đều không chứa gì ngoài các phương thức tĩnh". Tôi ném lên một chút bên trong mỗi khi tôi nhìn vào nó; cũng có thể là một mô-đun VB6.

Cá nhân tôi sẽ không sử dụng thuật ngữ này, nó mơ hồ và vô nghĩa (trừ khi, tôi cho rằng, bạn đang viết phần mềm mô phỏng ô tô hoặc có lẽ là một trò chơi đua xe) trong hầu hết các trường hợp; nó giống như các lớp "Người quản lý" cũ - cái tên không cho bạn biết gì ngoài "Điều này có rất nhiều thứ" và thường có nghĩa là nó vi phạm thô bạo SOLID.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.