Bir yazılım parçasını Motor yapan nedir? [kapalı]


39

'Motor' tanımlayıcısı çok fazla etrafa dağılıyor: grafik motoru, RegEx motoru, AI motoru, vb. Tasarım, Giriş / Çıkış, Amaç, Boyut?


62
Pazarlama departmanı
Oded

2
@Oded: 'engine' terimi, programcılar tarafından genellikle kullanılır. Alternatifleri bulmaya çalışın ve nedenini göreceksiniz.
MaR

2
motor, tekerlekleri geri döndürmek istemediğim şeydir
Flexo

@Flexo, yani - bir kütüphane?
Vorac

Yanıtlar:


33

Bir motor tabiri caizse "kaputun altında" bir şey olurdu. Son kullanıcı tarafından görülmez veya en azından çok nadiren görülür. Örneğin bir grafik motoru, tüm oluşturma hesaplamalarını yürütür, ancak bu değişiklikleri modellenecek gerçek ortama aktarır. Giriş: matematik. Çıktı: güzel renkler. Bir motor ayrıca daha yüksek bir arayüzden çok farklı çalışma değişkenlerine sahip olabilir. Örneğin, önceki örnekte, bir şeyin gölge mi, doku mu olduğu hakkında endişelenmeden grafikler üzerinde ham sayısal veriler kullanıyor, bunların hepsi o motor tarafından gerçekleştirilecek denklemler ve matris işlemleriyle soyutlanıyor. Motoru, belirli bir sistemin “Çekirdeği” olarak düşünün, gerisi “Shell” gibi.

Gerçek bir dünyayı, CS101 analojisini kullanmak için bir motor tıpkı bir araba motoruna benzer. İki girişi alır, hava ve gaz. Daha sonra, onları dünyanın en küçük ark kaynağı kullanımını üretmek için elektrik kullanılan bir odaya geçirir. Malzeme sonra patlar. Bu iki çıkış üretir, egzoz ve bir pistonu tahrik eden bir basınç dalgası. Gerisi, çeşitli tahrik milleri ve benzerleri tarafından tekerlek hareketine aktarılır. Bu yüzden Motor motordur ve arabanın kendisi kabuktur. Bir otomobil motorunu farklı bir amaç için kullanabilirsiniz, örneğin elektrik için bir jeneratör kullanmak veya tahıl öğütmek için bir değirmen kullanmak. Motor kaplamalara sahipse ve etanol veya biyodizel gibi şeylerle başa çıkmak için farklı girdiler kullanabilirsiniz.

Özetlemek gerekirse, Motor genellikle izolasyonda bulunmayan bir yazılım parçasıdır. Bu yazılım parçası için itici güç olarak hareket eder, ancak genellikle dış dünyayla hiç değilse çok az etkileşime girer. Ücretsiz motorlar üretmek için birkaç motor birlikte çalışabilir veya gerektiğinde birlikte döşenebilir. Bir motor, kullanıcı deneyimi ile ilgili şeyleri doğrudan estetik anlamda yapmaz, ancak veri akışını motive ederek ve iyi uygulama performansına izin verecek kadar duyarlı davranarak bu deneyimleri daha az zorlar.


9
Öyleyse bir sürücü motoru kontrol eden ve kabuğu kıran araç mı?
MikeJ-UK

Cevabınızdan gerçekten çok hoşlandım ve memnun oldum ama sanırım şu anda bu kodun / yazılımın bir kütüphane veya API veya motor olarak adlandırılması gerektiğine dair daha fazla soru var. bunun için bir açıklama ekleyebilirseniz mükemmel bir cevap olacaktır
Ali

Kütüphaneler ve API'ler, bir Motordan farklı bir seviyede çalışır. Eldeki döneme odaklanmak, potansiyel olarak sınırsız bir çeşitlilikteki değişkenler ve isimler dengesine ayrılmaktan daha iyidir.
Dünya Mühendisi

6

Motorun tanımı olduğunu

İsim / ˈenjən / 
motorlar, çoğul

  1. Gücü harekete dönüştüren hareketli parçalara sahip bir makine

  2. Belirli bir sürecin aracı ya da aracı olan bir şey

# 1, engineyazılım anlamında bir şeyin olmasına neden olduğu anlamsal eşdeğeridir . 3D Grafik Motoru, girişleri alır ve ekrandaki harekete dönüştürür. Bir regex motoru girişleri alır ve farklı bir çıkışa dönüştürür.

# 2 cümleyi bir değişim motoru kullanmak gibidir . Bu semantik, yazılıma da uygulanabilir.

Yazılım engines, pasif şeyler yapan çerçevelerden ve kütüphanelerden daha fazlasıdır. Yazılım motorları girdilere dayanarak kendi başlarına hareket ederler, pasif değildirler ve genellikle kendi istekleriyle run loopişlem yapacak kendilerine sahiptirler.


3

Şimdiye kadarki en yakın cevap, bence pazarlama olduğunu söyleyen cevaptı.

Bu bağlamda kelimenin kullanımının nereden geldiğini düşünmeye çalışalım.

Kesinlikle otomobil veya jet motorları bu şekilde adlandırılmamıştır çünkü girdi alır ve bir miktar çıktı üretirler. Öyle olsaydı, o zaman sadece işlevler değil, yaşamdaki birçok şey motor olurdu.

Benim görüşüme göre, bir ineğin kesinlikle bir motor olmadığı, teknik olarak konuşmadığı ve herhangi bir aklı başında konuşma şekli olmadığı söylenemez.

Motorlar çeşitli enerji türlerini kullanır ve onu harekete geçirir (yani özel bir enerji türü).

Neden onu yazılımda kullanıyoruz? En gerçekçi tahminin sadece kulağa hoş geldiği için olduğunu söyleyebilirim. Neden bazı programcılara 'Mimarlar' diyoruz? Aynı sebepten, bana sorarsan.

Başka bir neden, programcıların genellikle yazılımlarının bölümlerini tanımlamak için metaforları kullanmaktan hoşlanmaları olabilir, bu yüzden kavraması daha kolay olabilirdi (çünkü doğal olarak çoğu zaman değil).

Benim önsezim, uygulama alanınızın onlarla dolu bir şekilde metaforları kötüye kullanması kötü bir uygulama. Müşterilerle veya programlamayı bilmeyen veya umursamayan insanlarla konuşurken yararlı olabileceğini düşünüyorum. Bunun dışında, basit akış çizelgeleri ve diyagramlar benim için iş yapıyor.


1

Motor, bazı girdiler alan, bu girişi işleyen ve çıktı olarak veren bir şeydir . Bu tanım gereği, bir CMS motoru, girişte anında anında HTTP yanıtı üreten kısımdır. Bir veritabanı motoru sorguyu alan, bir yürütme planı çizen, yürüten ve sonucu döndüren şeydir.

Teknik olarak konuşursak, bir inek bile bir tür motordur. Çimleri alır, işler ve süt verir.

Motor teriminin Makine mühendisliğinde daha fazla kullanıldığını ve tamamen aynı olduğunu unutmayın.

Motorun diğer bir yönü, sistemin çekirdeğidir. Örneğin, veritabanı motoru herhangi bir RDMS'nin çekirdeğidir. Bununla birlikte, bu motora bağlanmak için IDE'ler, girdi alırken ve sonuç verirken, motor olarak kabul edilmez.


5
"Motor" için +1, yoğurt yiyordum ve okuduğumda neredeyse boğuluyordum. ;)
SinirliFormsDesigner ile

5
Tanımınız her işlevi bir motor yapar.
back2dos

Her işlev girişlerinin bir işlevi değildir.
Michael Burge,

Katılıyorum. Açıklamanız biraz bulanık ve keyfi geliyor.
Yam Marcovic,

1
Bir programcı da bir motordur. Girişte kahve alır ve çıktıda kod üretir.
SF.

1

IMHO, bir motor alt sistem, modül veya kütüphane için başka bir kelimedir. IE - belirli bir amaç için uyumlu bir şekilde tasarlanmış bir veya daha fazla bileşen.


2
seçmenler: lütfen detaylandırın. Bir motorun (örneğin, Quake Engine) bir alt sistem, bir modül veya bir kütüphane olduğu açık değildir.
keppla

3
Motor tipik olarak bir alt sistem olarak uygulanırken, bu terim genellikle yalnızca "kaputun altındaki" alt sistemler için kullanılır. Eş anlamlı olarak kullanılmazlar.
00

Bu sorunun temeli, bir motorun sadece bir alt sistem değil , belirli bir alt sistem türüdür.
Will Sheppard

0

Bir motor temelde bir şey yaratmak için genişletilebilen bir yazılımdır.

Örneğin, oyun oynarken, 'bir şey' oyun motoru hakkında çok şey duyacaksınız. Bu, tamamen benzersiz bir oyun oluşturmak için belirli bir yazılımın değiştirildiği ve genişletildiği anlamına gelir.


0

İşimde, tabiri " XEngine.cshepsi, statik yöntemlerden başka hiçbir şey içermeyen, bu kod dosyası içinde birden fazla sınıf içeren tek bir kod dosyası" anlamına geliyor . Her baktığımda içine biraz kusardım; Bir VB6 modülü de olabilir.

Ben şahsen bu terimi kullanmazdım, belirsiz ve anlamsız (sanırım, bir otomobil veya belki de bir yarış oyununu simüle eden bir yazılım yazmıyorsanız); eski "Yönetici" sınıflarına benziyor - isim size "Bu çok şey yapar" dan başka bir şey söylemez ve genellikle bunun kaba bir ihlal olduğu anlamına gelir SOLID.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.