Arayüz - Bu kadar basit kelimeler nedir

Arayüz - ihtiyaç duyduğu şey nedir, arayüzler türleri

4 Ocak 2021.

Merhaba, Sevgili Blog Okuyucular Ktonanovenkogo.ru. Kitle bilgisayarın döneminde, en son trendlere ayak uydurmak ve bilgiyi sürekli olarak yenilemek önemlidir.

Arabirimin hedeflere ve bağlamlara tekabül etmesi önemlidir. Bu, bir uzmanın bir bilgisayarla etkileşimi ise, ana şey, bilgi sağlama ve görevleri yerine getirme yeteneğidir. Sıradan bir kullanıcı için, sadece teknik değil, aynı zamanda estetik değere sahip değildir: Bununla çalışma rahat ve anlaşılır olmalıdır.

Çarpma ihtiyacını karşılamak istemiyor musun? Bugün PC ile ilişkili başka bir terimi görüyoruz.

Böyle bir şeyi bir arayüz olarak açıklamaya çalışacağım: Nedir ve neden gereklidir. Yani, başlayalım.

Arayüz ...

Tüm yeni moda ifadeler gibi, "arayüz" kelimesi bize İngilizce dilinden geldi. Tercüme Edilen Arayüz " Temas yeri "

Arayüz, kullanıcının bilgisayarın işletim sistemi, bir mobil cihaz veya diğer ekipman türleriyle etkileşime girmesini sağlayan bir takım grubudur.

Arayüz ...

Bu tür araçlar olarak Etkileşimler hareket edebilir:

  1. Metin alanları;
  2. Düğmeler ve Keneler;
  3. açılır listeler;
  4. Pop-up ipuçları;
  5. Anahtarlar;
  6. Programın veya sitenin menüsünün unsurları;
  7. ve daha fazlası.

Ne tür bir meyve bu arayüz olduğunu açıkça görmek için görsel bir örnek düşünün. Uzak kenarlardaki tatillere gitmeye ve İnternet üzerinden önceden bir otel ayırtmaya karar verdiğini varsayalım.

Siteye gelin ve orada birkaç arayüz bekliyorsunuz: arama, sonuçları görüntülemek, kişisel verilere girerek, ödeme. Otel rezervasyon sitesiyle birlikte etkileşimin her aşamasında, kullanıcı veri ile çalışır ve belirli eylemler gerçekleştirir.

Neden bir arayüze ihtiyacım var? Her şey basit, her zamankinden daha çok: Programı, siteyi ve diğer ürünleri kullanmak için daha uygun olan kullanıcılar.

Dostça arayüz aynı zamanda, ticari sitelerde satışları yükseltmenizi sağlar, çünkü ziyaretçiler Siteyi kullanmanın ilk saniyesinde sekmeyi kapatmazlar.

İyi tasarımı olan siteler, kullanıcılar arasında daha iyi popülerdir, daha fazla ziyaret ederek ve bu nedenle, sahiplerine en iyi geliri getirin.

Arayüz türleri

Arabirim, aşağıdaki türlerde alt bölümüne alışılmıştır:

  1. Komut satırı . Bu, kullanıcı ile kişisel bilgisayar arasında etkileşime girmenin en eski ve en çok zaman alıcı yoludur. Aynı zamanda, komut satırı en güvenilir arayüz tipidir.
    Kullanıcılar için, arayüz bir PC veya telefonla çalışmanın temelidir. Bu sistemin ne kadar basit veya karmaşık olması, cihazın kontrol edilmesinin kolaylığı bağlı olacaktır. Geliştiriciler, karmaşık görevler için sistem yapılarını değiştirebilirler. Deneyimsiz kullanıcılar, işlerini kolaylaştırmak için cihazları net bir arayüzle satın almak daha iyidir.

    Makine ile iletişim kendi dilinde gerçekleşir. Komut satırı, profesyonel kullanıcılar için amaçlanan işletim sistemlerinde kullanılır: örneğin BIOS'ta.

  2. Grafik arayüzü . Bu tam olarak bugün "arayüz" kelimesi altında olan şeydir. Tüm işletim sistemlerinde, programlarda, web sayfalarında uygulanır.
    Akıllı telefon

    Grafiksel bir arayüzle, kesinlikle tüm PC kullanıcıları ile karşı karşıya kalır. Daha uygun etkileşim için, bilgisayar fare kullanmanız önerilir.

  3. İşaret arayüzü . Teknolojilerin hızlı gelişimi, bir jest arayüzünün ortaya çıkmasının nedenlerinden biri haline gelmiştir. Bu, duyusal ekranlar, joysticks, kalemi ve diğer elemanları içerir.
  4. Ses arayüzü . "Tamam, Google" ifadesini konuşurken ve ardından arama sorgusunu telaffuz edin, akıllı telefon veya tablet işletim sisteminin ses arayüzüyle etkileşime girersiniz.
    Komut satırı arayüzü

    Bu tür aynı zamanda teknolojilerin hızlı gelişimi sayesinde yakın zamanda ortaya çıktı.

    Ancak bugün önemli bir popülaritenin tadını çıkarır, çünkü bir dizi önemli görevi çözmenize ve cihazları yönetmenize izin verir (bu nedir?) - Mobil cihazlar, arabalar, ev aletleri, bilgisayarlar - sesli komutlarla.

Arayüz ne olmalı

Herhangi bir arayüzün ana görevi - Kolayca kullan Belirli program, site veya benzer ürün.

Örneğin, bir web portalı geliştirmek için yapılması önerilir Aşağıdaki unsurlara odaklanın :

  1. Görüntülenen optimum sayıda;
  2. masaüstü ve mobil cihazlara uyarlanabilirliği;
  3. popüler sosyal ağların düğmelerinin varlığı;
  4. Optimum boyut simgeleri ve düğmeleri;
  5. uygun kayıt şekli;
  6. Menü öğelerinin sezgisel konumu;
  7. renk veya bilgi aksanların varlığı;
  8. Sitede arama sistemi;
  9. Gerekirse, iletişim verilerinin kullanılabilirliği.

İyi düşünülmüş bir arayüzün parlak bir örneği, ktonanovenkogo.ru'dır. Sitede, iyi bir renk çözümü, sezgisel bir menü, dahili arama varlığı, yayın tarihine göre makaleleri görüntüler, bu da kaynağın kullanımını hızlı ve eğlenceli hale getirir.

Hepsi bu kadar sevgili dostlar. Artık arayüzün, basitçe konuştuğunu, programların veya sitelerin dış kabuğunu, bunları kullanmayı kolaylaştırır.

Umarım makaleyi okuduktan sonra, artık herhangi bir sorunuz olmayacaksınız. Her durumda, sizi diğer blog okuyucular KGonanovenkogo.ru ile bu konuyu alt başa indirmeye davet etmenize izin verin.

Ve bilgiyi birleştirmek için, Samsung'dan Android için yeni arabirim hakkında bir video izlemenizi öneririz:

Sana iyi şanslar! Ktonanovenkogo.ru sayfalarında hızlı toplantılarını görmek

Çoğu modern arayüzler deneyimli kullanıcılar için tasarlanmıştır. Vinçler de hemen tüm tanıdık olmadı. Önceden, anahtarın yanları kesinlikle kırmızı ve mavi etiketlendi - soğuk olduğu yerde ve nerede sıcak suyun olduğu açıktır. Şimdi alışkınız ve daha fazla vinç etiketleme olmadan serbest bırakılır. Muhtemelen, nihayet hangi tarafın aktığını hatırladılar.

Web arayüzleriyle aynı oldu. Sıfırın başında bir skiorfizm vardı - grafikler gerçek dünya nesnelerini taklit etti. Site düğmesiyse, gerçek bir volumetrik düğmeye benziyordu. İlk bilgisayarlarını satın alan çoğu insan için anlaşılabilirdi.

Ama yeni kullanıcılar daha az hale geldiğinde an geldi. Bir bilgisayarı kullanmaya başlamak isteyen ve internette teknolojide zaten ustalaştı. Ve gerçekçi arayüzlere duyulan ihtiyaç yavaş yavaş kayboldu.

Şimdi, ayrıntılı "menü" simgesi yerine, sözde burger genellikle imzayla kullanılır - üç yatay şerit. Ve ne demek istediğini mükemmel bir şekilde biliyoruz. Ayrıca sitelerin genellikle yukarıdan aşağıya doğru okuduğunu da biliyoruz. Ve açıklayacak herhangi bir oka ihtiyacınız yoktur. Modern arayüzler deneyimli kullanıcılar için tasarlanmıştır ve daha özlü.

Programlar

Arayüz, sistem ile dış ortam arasında bir tür bir sözleşme olarak kabul edilebilir. Bilgisayar programının bir parçası olarak, sistem fonksiyon veya modüldür ve "ortam" projenin geri kalanıdır. Arayüz resmi olarak, sistem ve çevre arasında hangi verilerin iletilebileceğini açıklar. Ve "Uygulama", "eksi arabirim sistemi" olarak tanımlanabilir. Haskell arayüzleri gibi dillerde son derece spesifik olabilir. Python gibi dillerde, aksine, çok sıradan. Seçilen arayüz tipi, oluşturulan teknik borcun boyutunu ve programcının performansını etkileyebilir. Nasıl hesaplanır aşağıda yazılır. Farklı arayüzlerin değerlendirilmesi ve karşılaştırılması için bir yöntem de önerilecektir. Bu karşılaştırmalara dayanarak, dil veya yazılım aracını kullanmak için kendilerini izleyebilirsiniz.

Yazılımın geliştirilmesindeki en önemli kavram - kavram

Arayüz

. Bu makale Java arayüzleri hakkında değil, yazılım tasarımındaki arayüzler hakkında. Ve daha az ölçüde - çevresindeki dünyadaki arayüzlerde. Tabii ki, yazılımın geliştirilmesinde birçok önemli kavramlar kullanılmaktadır, ancak çoğunun arayüzün önemine bağlı olarak bir şekilde olduğuna inanıyorum.

Arayüz nedir?

Birçoğumuz iki kısa formülasyona aşinadır:

Arayüz, sistem ile dış ortam arasındaki bir sözleşmedir. Arayüz, harici bir ortama sahip bir eşleştirme sistemidir.

Arayüz = sistem ∩ çevresi

Sistem fiziksel bir nesneyse, eşleştirme ile tanımı uygundur. Her iki tanım da çok özettir, bu yüzden onları klavyedeki baskı örneğinde görelim:

Burada sistem bir dizüstü bilgisayar, çevre - eller (kedinin pençeleri de, klavyeye tırmanır). Sonuç olarak, arayüz, yalnızca bazı taraflara yalnızca bazı taraflara atfedilemeyen bir dizüstü bilgisayar arasındaki etkileşimin herhangi bir parçası olmalıdır. Genellikle elleri ve klavye ayrı olduğunu düşünüyoruz, böylece bu durumda arayüzün kesin sınırları felsefi anlaşmazlığın konusudur. Karar veriyorsunuz: Parmaklar ve tuşlar teması olduğunda birbirleriyle etkileşime giren bir bütün veya bireysel atomlar olarak klavye olup olmadığı.

Muhtemelen, bu örneğin bir sözleşme olarak arayüzün tanımı ile nasıl ilişkili olduğuna şaşıracaksınız. Bu durumda, anlaşma, anahtarların yerini hatırladıklarında ve kas hafızasının elden geçirildiklerinde yeterince çaba sarf ettiğimizde bir anlaşma anlamına gelir. Antlaşma ile bir dizi nüans ilişkilidir. Örneğin, tuşa basılması ve tutun, basit bir tuşa göre farklı bir değere sahiptir.

Bütün bunlar meraklı felsefi akıl yürütmedir, ancak yazılım yazılımı ile nasıl ilişkilidirler? Peki, programlamadaki arayüzlerin, dikkat etmeseniz bile, sizi her taraftan çevreleyeceği gerçeğiyle başlayalım. Örneğin, Java'yı programlıyorsanız, arayüzleri amaçlarına bağlı olarak açıkça adlandırırlar. Ve diğer dillerde de mevcuttur. Bir arabirim fonksiyonunun örneğini göz önünde bulunduralım

:

add_numbers. 

imzasız int, imzasız int); void diğer_function (geçersiz) {add_numbers (3.4);} işaretsiz int add_numbers (imzasız int a, imzasız int b) {return a + b;} int ana (boş) {add_numbers (9.99); Geri dönüş 0;}

Aynı renk farklılaşma tekniğini uygulayın

Pantolon

Bütün bunlar meraklı felsefi akıl yürütmedir, ancak yazılım yazılımı ile nasıl ilişkilidirler? Peki, programlamadaki arayüzlerin, dikkat etmeseniz bile, sizi her taraftan çevreleyeceği gerçeğiyle başlayalım. Örneğin, Java'yı programlıyorsanız, arayüzleri amaçlarına bağlı olarak açıkça adlandırırlar. Ve diğer dillerde de mevcuttur. Bir arabirim fonksiyonunun örneğini göz önünde bulunduralım

Çevreyi tanımlamak, sistem

ve arayüz:

Bütün bunlar meraklı felsefi akıl yürütmedir, ancak yazılım yazılımı ile nasıl ilişkilidirler? Peki, programlamadaki arayüzlerin, dikkat etmeseniz bile, sizi her taraftan çevreleyeceği gerçeğiyle başlayalım. Örneğin, Java'yı programlıyorsanız, arayüzleri amaçlarına bağlı olarak açıkça adlandırırlar. Ve diğer dillerde de mevcuttur. Bir arabirim fonksiyonunun örneğini göz önünde bulunduralım

Burada dikkate alınan sistem bir fonksiyondan oluşur

. Ayrı bir sistem ana yöntemi olarak düşünebileceğinizi söylerseniz -

Diğer_function.

Bütün bunlar meraklı felsefi akıl yürütmedir, ancak yazılım yazılımı ile nasıl ilişkilidirler? Peki, programlamadaki arayüzlerin, dikkat etmeseniz bile, sizi her taraftan çevreleyeceği gerçeğiyle başlayalım. Örneğin, Java'yı programlıyorsanız, arayüzleri amaçlarına bağlı olarak açıkça adlandırırlar. Ve diğer dillerde de mevcuttur. Bir arabirim fonksiyonunun örneğini göz önünde bulunduralım

- O zaman haklı olacaksın. Ama sadelik için bir fonksiyonu düşünüyoruz

Bütün bunlar meraklı felsefi akıl yürütmedir, ancak yazılım yazılımı ile nasıl ilişkilidirler? Peki, programlamadaki arayüzlerin, dikkat etmeseniz bile, sizi her taraftan çevreleyeceği gerçeğiyle başlayalım. Örneğin, Java'yı programlıyorsanız, arayüzleri amaçlarına bağlı olarak açıkça adlandırırlar. Ve diğer dillerde de mevcuttur. Bir arabirim fonksiyonunun örneğini göz önünde bulunduralım

.

Yalıtılmış sistem. Ayrıca dönüşüm arayüzünün bir kısmını göz önünde bulundurmanız da tavsiye edilir.

Gördüğünüz gibi, dördüncü konsept buraya eklenir: "Uygulama". Özel uygulamaları dikkate almadan, arayüzlerin konusunu tartışmak oldukça zordur. Bu terimi tanımlayalım: Uygulama eksi bir arayüz sistemidir. Uygulama = Sistem ∖ Arayüzü

Uygulama = Sistem ∖ (Sistem ∩ Çevre)

Daha önce hiç böyle bir uygulama tanımlamadığımı itiraf etmeliyim. Ancak bu, çok sayıda avantajlı bir dizi arayüz tanımının kaçınılmaz bir uzantısıdır. Eğer fakir bir öğrenciyseniz ve sınava hazırlanınsa, muhtemelen öğretmeniniz bu tanımdan hiç duymamıştır. Nesneye yönelik programlamanın herhangi bir taksonomisine aykırı olsaydı şaşırmayacağım. Ama bu durumda bile, değiştirmeyeceğim. OOP hayranlarının soyutlarını tanımımı doğrultusunda yeniden yazalım.

Buna rağmen, bizi bir sonraki mantıksal sonuca yönlendirir: Fiziksel sistemin arayüzleri hakkında konuştuğumuzda, genellikle bu sistemin "uygulamasını" tek bir fiziksel nesne biçiminde hayal ediyoruz. Sonuçta, düğmeleri, ekranları veya diğer bileşenleri dikkate almadan "gerçek" uygulamayı göz önünde bulundurmak garip olur. Ve bizi arayüzü daha fazla "anlaşma" olarak düşünmek için iterek, fiziksel nesnelerin bir kombinasyonu değil. Yani, bir dizi vaat, garanti veya benzeri bir şey biçiminde ...

.

sistem ve çevre arasındaki sözleşme

Sözleşme olarak arayüz

Bütün bunlar meraklı felsefi akıl yürütmedir, ancak yazılım yazılımı ile nasıl ilişkilidirler? Peki, programlamadaki arayüzlerin, dikkat etmeseniz bile, sizi her taraftan çevreleyeceği gerçeğiyle başlayalım. Örneğin, Java'yı programlıyorsanız, arayüzleri amaçlarına bağlı olarak açıkça adlandırırlar. Ve diğer dillerde de mevcuttur. Bir arabirim fonksiyonunun örneğini göz önünde bulunduralım

İşlev arayüzünü düşünürseniz

  • Bir sözleşme biçiminde, garantiler böyle olacaktır: Bütün bunlar meraklı felsefi akıl yürütmedir, ancak yazılım yazılımı ile nasıl ilişkilidirler? Peki, programlamadaki arayüzlerin, dikkat etmeseniz bile, sizi her taraftan çevreleyeceği gerçeğiyle başlayalım. Örneğin, Java'yı programlıyorsanız, arayüzleri amaçlarına bağlı olarak açıkça adlandırırlar. Ve diğer dillerde de mevcuttur. Bir arabirim fonksiyonunun örneğini göz önünde bulunduralım İşlev
  • Bütün bunlar meraklı felsefi akıl yürütmedir, ancak yazılım yazılımı ile nasıl ilişkilidirler? Peki, programlamadaki arayüzlerin, dikkat etmeseniz bile, sizi her taraftan çevreleyeceği gerçeğiyle başlayalım. Örneğin, Java'yı programlıyorsanız, arayüzleri amaçlarına bağlı olarak açıkça adlandırırlar. Ve diğer dillerde de mevcuttur. Bir arabirim fonksiyonunun örneğini göz önünde bulunduralım var. Her biri imzasız olan sadece iki parametreye sahiptir. .
  • Bütün bunlar meraklı felsefi akıl yürütmedir, ancak yazılım yazılımı ile nasıl ilişkilidirler? Peki, programlamadaki arayüzlerin, dikkat etmeseniz bile, sizi her taraftan çevreleyeceği gerçeğiyle başlayalım. Örneğin, Java'yı programlıyorsanız, arayüzleri amaçlarına bağlı olarak açıkça adlandırırlar. Ve diğer dillerde de mevcuttur. Bir arabirim fonksiyonunun örneğini göz önünde bulunduralım int. Her biri imzasız olan sadece iki parametreye sahiptir. .

Sadece bir imzasız döndürür

  • Bu işlevin arayüzü bize bir şey söylemez: Bütün bunlar meraklı felsefi akıl yürütmedir, ancak yazılım yazılımı ile nasıl ilişkilidirler? Peki, programlamadaki arayüzlerin, dikkat etmeseniz bile, sizi her taraftan çevreleyeceği gerçeğiyle başlayalım. Örneğin, Java'yı programlıyorsanız, arayüzleri amaçlarına bağlı olarak açıkça adlandırırlar. Ve diğer dillerde de mevcuttur. Bir arabirim fonksiyonunun örneğini göz önünde bulunduralım ;
  • İcra kesintisi üzerine Bütün bunlar meraklı felsefi akıl yürütmedir, ancak yazılım yazılımı ile nasıl ilişkilidirler? Peki, programlamadaki arayüzlerin, dikkat etmeseniz bile, sizi her taraftan çevreleyeceği gerçeğiyle başlayalım. Örneğin, Java'yı programlıyorsanız, arayüzleri amaçlarına bağlı olarak açıkça adlandırırlar. Ve diğer dillerde de mevcuttur. Bir arabirim fonksiyonunun örneğini göz önünde bulunduralım ;
  • Sıralamanın asimptotik karmaşıklığı hakkında Bütün bunlar meraklı felsefi akıl yürütmedir, ancak yazılım yazılımı ile nasıl ilişkilidirler? Peki, programlamadaki arayüzlerin, dikkat etmeseniz bile, sizi her taraftan çevreleyeceği gerçeğiyle başlayalım. Örneğin, Java'yı programlıyorsanız, arayüzleri amaçlarına bağlı olarak açıkça adlandırırlar. Ve diğer dillerde de mevcuttur. Bir arabirim fonksiyonunun örneğini göz önünde bulunduralım ;
  • Başlamak için gereken serbest bellek sayısında Her biri imzasız olan sadece iki parametreye sahiptir. ;
  • İmzasız özel uygulama hakkında

Yan etkilerde (hafıza tahsisi, küresel değişkenleri değiştirme).

Bütün bunlar meraklı felsefi akıl yürütmedir, ancak yazılım yazılımı ile nasıl ilişkilidirler? Peki, programlamadaki arayüzlerin, dikkat etmeseniz bile, sizi her taraftan çevreleyeceği gerçeğiyle başlayalım. Örneğin, Java'yı programlıyorsanız, arayüzleri amaçlarına bağlı olarak açıkça adlandırırlar. Ve diğer dillerde de mevcuttur. Bir arabirim fonksiyonunun örneğini göz önünde bulunduralım

Yukarıda açıklanan arayüz

İşlev türü altında bilinir

Prototip.

. K & R C'nin önceki sürümlerinde, arayüzlerin daha zayıf bir açıklaması kullanıldı:

imzasız int add_numbers ();

Bir sözleşme olarak arayüzün tanımı programlama için çok uygundur. Sonuçta, çoğu programcı görevi, aksiyomların belirlenmesi ve talep edilmesinde oluşur. Birincil ve nihai koşullar bazı özellikler veya davranışlar sağlar. İki taraf birbirleriyle bir iş ilişkisini bağlamadan önce, sözleşmeyi hazırlarlar. Nihai sonucu, ödemenin miktarını ve zaman çizelgesini formüle etti. Ayrıca erken fesih, geri ödeme ve maliyetler için şartları şart koşar. Sözleşme ihlal edilirse, durum mahkemeyi veya tahkimini dönüştürür. Ancak sözleşmeyle belirtilecek bir şeyi unuttuysanız, sürprizler ortaya çıkabilir.

Bilgisayar programları ile aynı. Modüller ve işlevler, ihtiyaç duyduklarını ve (bazen) karşılığında ne verileceklerini söylüyor. Bu sözleşmenin ihlali, bir derleme hatasına, uygulama hatasına, uygulamanın, sistemin, kalite kontrol araçlarının ve kılavuzun önderliğine yol açacaktır. Arayüzün bir sözleşme olarak tanımının mecazi olmadığını bile söylerdim. İşte bu kadar ayrıntılı olmasa da, ticari sözleşmeyle aynı ilkeler.

Patentler, Telif Hakkı ve Arayüzler

Size hukuk alanında tavsiye vermeyeceğim. Belki de benden bir şey bile yasalara aykırı olacağını söyledi. Aşağıdakileri yazarın özel görüşüdür.

Öyleyse eğimli ben

kelimenin tam anlamıyla

Arayüzü iki varlık arasında "ticari bir sözleşme" olarak düşünün. Vurguladığım - bir metafor düşünmüyorum. Özellikle bu yorumu bilgi işlem makineleri teorisindeki uzmanlar ve telif hakkı protestocuları ile ele alıyorum.

Arayüz patentinde mi? Tanımı, sistem ve çevre arasındaki bir sözleşme olarak göz önüne alındığında, patent kullanımının bir hata olacağına inanıyorum. Ve görünüşe göre, mevcut dava yasası pozisyonumu destekliyor. Ancak, "arayüz" kelimesinin çok yaygın olarak kullanıldığını ve çoğunlukla, yukarıda açıklandığım için sıklıkla kullanıldığını unutmayın.

Arayüzü telif hakkı ile koruyalım mı? Yine, "sözleşmeye dayalı" doğası göz önüne alındığında, arayüzün "kaynak kodunun" telif hakkı nesnesi olması gerektiğine inanıyorum. Aynı zamanda, telif hakkı onları özel yapan arayüzlerin yönlerine uygulanmamalıdır. Kaynak kodunu veya el yazısı görüntüsünü korumak, ancak garanti veya sınırlamalar için yeterlidir. Garanti veya arayüz kısıtlamaları, kodunun herhangi bir bölümünden herhangi birinden ayrılmaz hale gelirse, bu parçalar koruma hakkından mahrum edilmelidir.

Telif hakkı ile korunmanın gerekli olup olmadığını takdir etmenizi sağlayan basit bir test öneriyorum.

Üçüncü bir taraftan herhangi bir bileşen içeren herhangi bir bileşen de dahil olmak üzere, arayüz tarafından kullanılan herhangi bir şekilde, her zaman uygun bir değiştirme oluşturabilirsiniz. Değiştirme, aynı arayüzü uygular ve bu yazılımın kendisinden herhangi bir değişiklik yapmadan, herhangi bir telif hakkını ihlal etmeden, üçüncü bir taraftan yazılımda başarıyla kullanılır. Herhangi bir değiştirme telif hakkı ihlaline yol açarsa veya üçüncü bir taraftan yazılımın değiştirilmesine veya daha kötü bir işlevsellik anlamına gelirse, öznitelik seti çok agresif ve azaltılması gerekir.

Bu testin yardımı ile, patentlikte bile kontrol edilmesi tavsiye edilir. Lütfen dikkat: Testin amacı son derece belirlemektir.

Yetersizlik

Koruma Telif Hakkı veya Patent. Bunu ele almada yardımcı olmayacak

takip et

Korumayı açmak. Buna ek olarak, bu test sadece benim görüşümdür ve düzenleyici bir eylem veya hukuk değildir.

Ayrıca, aynı dildeki arayüzün bir parçası olarak kabul edilen herhangi bir kriterin başka bir dilde olmayabileceğini not etmek istiyorum. Örneğin, JAVA'da, ilan fonksiyonları için prosedür programın yürütülmesini etkilemez. Ve yanlışlıkla, dosyadaki işlevlerin sırasının önemli olmadığını söylerseniz, Python'daki programla ilgili bir hata olacaktır: 

Def foo (): baskı ("asdf") def foo (ABC): baskı (ABC) foo ("lol")

Yasalarla ilgili tüm bu konuşmalar bana hatırlattı

Google'a karşı oracle

. Verilen bağlantıya göre, geliştiriciler için ilginç detayları bulabilirsiniz, bu yüzden analizimde onlara güvenirim. Tüm yönleri göz önüne alındığında, davanın kararına katılmamanın nedenlerini Oracle'ın lehine göremiyorum. Koşulsuz olarak desteklendiklerini söyleyemem, çünkü işlemlerin çok fazla parçası olmadığından emin değiliz.

Bence, bir emsal yaratılacağından, arayüzün unsurlarının patentini veya telif hakkını korumak için endişeleneceğini düşünüyorum. Sadece testimin geçilemeyeceği durum. Bölge Mahkemesi bir karar verdi: "API'nin yapısı, dizisi ve mimarisi telif hakkı ile korunabilir." Bunun bir sorun olduğunu sanmıyorum, çünkü tanımındaki "yapı, dizilim ve mimari" tam olarak testimden geçecek. Yukarıdaki bağlantıdaki makaleden birkaç alıntı yapacağım:

"Bölge Mahkemesi, Java ile etkileşimde bulunmak için" sadece bir yazma yolu var "ilanlarını buldu. Eğer öyleyse, aynı reklamların kullanımı telif hakkına tabi değildir. Google, üçü hariç, Java'ya erişmek için kendi API'lerini yazabilecekleri gerçeğini tartışmıyor. " Son olarak, "Google'da kelimenin tam anlamıyla reklamları kopyaladıklarını kabul etti."

Mahkeme, arayüzün benzersiz özelliklerinin korunmaması gerektiği sonucuna varmak için Mahkeme doğru kararı kabul ettiğini düşünüyorum. Ek olarak, Google "edebi" kopyalamayı tanıdı. Bu, yorumlardaki tüm boşluklar ve yazım hataları da dahil olmak üzere, kopyalama anlamına gelirse, bunu hakların ihlal edildiğini düşünüyorum. Arayüz korunamaması bile, bireysel yaratıcı ifadenin korunmasına müdahale etmemelidir.

Bu davanın yalnızca açık ağ kaynaklarından biliyorum, ancak görünüşe göre, orijinal Java kodu, arayüzler dahil, Google'a tamamen kopyalandı. Onların kendileri, Java kullanımlarını lisanslamak için gerekli olduğuna, çünkü 2010'dan önce güneşe sahiplik sözleşmelerinin müzakerelerinin konusu olduğu için. Ancak bu sözleşmeler Güneş, Oracle tarafından satın alındıktan sonra başarısız oldu. Bununla birlikte, Google, Kodun "değişmez" kopyalarını, duruşmada açıkça yararlanamayan "edebi" kopyalarını kullanmaya devam etti. Avukatlarının pozisyonlarının zayıflığını bildiğinden şüpheleniyorum, bu yüzden telif hakkımına yönelik yasal olmayan talebi arayüzlere yönelik meşru talebe dayanarak bir koruma stratejisi seçtiler. Davayı, arayüzün kaynak kodu ve daha fazla felsefi bir kavramla ilişkisi biçiminde temsili pahasına kazanmayı umuyorlardı.

"Modül" veya "soyutlama" nedir?

"Modül" kelimesiyle kafamda, gönderinin sermaye resmi var. Bu resimde, modülün sınırlarının ve çevre ile etkileşiminin önemini göstermektedir. Küp arayüzü, dış ortamın etkileşimini küpün içeriği ile sert bir şekilde sınırlandırır. Arayüzü atlamayacaksınız, bu yüzden "oyunun kurallarını" getirmeniz gerekir. Son olarak, küpün içindeki hiçbir şey yoktur, ancak önemli değil: içeriği değil, bir arayüz değil.

Başka bir örnek: Hücre zarının yapısı. Çeşitli bileşenler, sadece membran içindeki gerekli maddeleri ve yalnızca gerektiğinde sağlar.

Bu makalenin bağlamında, "modüller" ve "soyutlama" terimlerini eş anlamlı olarak kullanacağım. Tabii ki, açıklayıcı sözlük benimle aynı fikirde olmayacak ve hatta farklı programlama dillerinde bile, bu terimlerin farklı bir anlamı var. Ancak bu durumda, sadece bu varlıkların her ikisinin de bu makalede anlaşıldığı gibi bir sistem olarak görülebileceği gerçeğiyle ilgileniyorum. Yani, soyutlamalar ve modüller bir arayüz ve uygulamadan oluşabilir.

Java'da C, "modül" - C, "modül" - CACE'de "modül" bölümündeki ayrı bir işlevi okuyabilirsiniz. Bir şey, eğer sadece harici bir arayüzü ve "gizli" bir uygulamaya sahip olsaydı. Ayrıca, dilin kurallarının veya hatta bir programcının kararının bir sonucu olabilir.

Kurutma soyutlama

Bildiğim kadarıyla, fikir

Dumpy Soyutlamalar Joel Spolski'ye Vurdu

. Denemesinde bazı iyi örnekler var, ama kendimi getirmek istiyorum. Programlamada, "Haritalar" kavramı çok sık karşılaşılır: anahtar ve değer çiftlerinden oluşan veri yapısını temsil eder. Önemli Sınır: Kart, tüm anahtarların benzersiz olmasını sağlar. Mevcut bir anahtar için yeni bir değer kaydetme girişimi, bir hatayla sonuçlanır veya önceki değerin üzerine yazılır. Alt çizgi, anahtarların çoğaltılmaması gerektiğidir. En sık, programcılar tüm bu tuşları çözme arzusu gerektirir. Ve haritalar belirli bir sıralama anahtarını garanti edemediğinden, Bazen Boğazı'ndan sonra hangi sırayla olacağını merak etmek gereklidir? Bu, kart arayüzünün sıralama garantisi izin vermemesi gerçeğinin bir sonucudur. Ve bunun önemli olmadığına inanılmasına rağmen, ama pratikte, hala sıralamak istiyorum. Bu nedenle, örneğin mevcut anahtarların doğrulanmasını kolaylaştırmak için daha verimli bir veri kuruluşu için gereklidir.

Sıralanmış veri kaba kuvveti, rastgele verilerle karşılaştırıldığında tamamen farklı bir sonuç verebilir. Listedeki minimum değeri bulmanız gerektiğini varsayalım: 

min = null; list = map.getmapkeys (); için (listedeki öğe) {if (min == null) {min = item} diğer ise (öğe <min) {min = min; / * Bu çizginin bir hata var * /}}

Şube

Eğerse.

Verilerin artan sıralanırsa asla yürütülmeyecektir. Listenin rastgele bir konumundan kontrol etmeye başlasanız bile, program bu dizeyle asla çarpışmaz. Ve bu büyük bir problemdir, çünkü kartın uygulanmasını değiştirirseniz ve sıralanmış anahtarları döndürmezse, kodunuz aniden bir hata hatası üzerinde gerçekleştirilecektir. Ve bu kodu tamamen unutacaksınız ve içinde saklanan bomba.

Kendi soyutlama sızıntısı tanımımı sunmak istiyorum.

Soyutlama sızıntısı (soyut sızıntı), uygulamanın ortamı arayüz tarafından sağlanmadığı için etkilediği durum denir.

Bu tanıma göre,

Neredeyse her

Soyutlama - solunum. Ne de olsa, her türlü çevresel etkinin arayüzündeki açıklama sadece en katı matematiksel sistemlerde mantıklıdır. Ve fiziksel sistemlerin gelince, o zaman hatırlanabilir

.

Theorem Gödel eksiklik hakkında

Çoğu soyutlamanın delikleri fikri makul değildir. Bu, Joel Spolski'nin "sızdıran özetlerin yasası" nda demek istedi:

"Tüm önemsiz olmayan soyutlamalar bir dereceye kadar bir deliktir."

Tüm soyutlamalar eğildikten sonra, ne hakkında konuşulur? Sorunlar sadece çevrenin bir kısmı, sisteme maruz kalmanın öngörülemeyen yollarından birine güvenmeye başladığında ortaya çıkar. Herkesin söylediği bu sızıntılar hakkında.

Bu, yalnızca sıradan böcekler açısından değil, aynı zamanda güvenlik alanında da geniş çapta sonuçlara yol açar. Dış çevreye sızıntı olan fiziksel sistemler, güvenliği tehlikeye atar, "terimi"

Yan kanal saldırısı

" Deliklerin tüm soyutlamalarının bir ifadesiyle birlikte, bizi sonuca götürür:

Kriptosistemin her fiziksel uygulaması, üçüncü taraftaki saldırılara karşı savunmasızdır.

Yukarıdakilerin tümü göz önüne alındığında, bu fikir sadece fiziksel değil, aynı zamanda öykünmüş uygulamalara da genişletilebilir.

Arayüzlerin değerlendirilmesi ve karşılaştırılması

Yukarıda zaten gördüğümüz gibi, C üzerindeki arayüzlerde, dönüş değeri türü ve iletilebilecek parametre sayısının sayısı gibi setlerdir. Peki ya Python? "Arayüz" terimini, makalenin bağlamına uygun olarak, yani, "arayüzler" hakkında ne yazdıklarına kıyasla daha geniş bir anlamda. 

Def add_numbers (a, b): A + BPRINT (Add_Numbers (3,1)) Yazdır (Add_Numbers ("ABC", "DEF")))

Bu dilde, işlev arayüzü türlerini resmileştirmeliyiz. Daha az bilgiyi işleme koymak gerektiğinden, tanım ve arama işlevini basitleştirir. Öte yandan, Hata arayışı için kontrolü yapabileceğiniz kısıtlamalar daha az.

Bütün bunlar meraklı felsefi akıl yürütmedir, ancak yazılım yazılımı ile nasıl ilişkilidirler? Peki, programlamadaki arayüzlerin, dikkat etmeseniz bile, sizi her taraftan çevreleyeceği gerçeğiyle başlayalım. Örneğin, Java'yı programlıyorsanız, arayüzleri amaçlarına bağlı olarak açıkça adlandırırlar. Ve diğer dillerde de mevcuttur. Bir arabirim fonksiyonunun örneğini göz önünde bulunduralım

Arayüzün farklı özelliklerinin, bilgi iletim yöntemleri açısından farklı özelliklerinin değerlendirilmesi ve karşılaştırılması hakkında söyleyecek bir şeye ihtiyacınız olduğunu düşünüyorum. Hem belirli bir arayüzü hem de bu dilde uygulanabilecek tüm arayüzlerin bir dizi değerlendirebilirsiniz. Örneğimizi hatırlayalım

Ve arabirimden ne kadar bilginin geçebileceğini ve soyutlama sızıntılarının yardımı ile ne kadar bilgi geçeceğini tahmin ediyoruz. Arayüz yoluyla
Arayüze giderek Özelliklerin Açıklaması Arayüze giderek Özelliklerin Açıklaması
Olası Devletlerin Sayısı Parametre 1. 1 (imzasız int) Küresel değişken durumu
(Küresel değişken sayısı) * (Küresel değişkenlerin sayısı) Parametre 1. 2 parametre türü. Dosya sistemi
Devlet Sistemi Durumu Sayısı Parametre 1. İade edilen değer türü İşlemci Kullanımı Zamanı
Limitsiz Parametre değeri 1. 2 ^ (imzasız int cinsinden sayılır) Kuchi'nin durumu.
Devlet Sayısı Parametre değeri 1. Parametre değeri 2. Bir çok diğerleri ...
... Parametre değeri 1.

Geri dönüş değeri

Bütün bunlar meraklı felsefi akıl yürütmedir, ancak yazılım yazılımı ile nasıl ilişkilidirler? Peki, programlamadaki arayüzlerin, dikkat etmeseniz bile, sizi her taraftan çevreleyeceği gerçeğiyle başlayalım. Örneğin, Java'yı programlıyorsanız, arayüzleri amaçlarına bağlı olarak açıkça adlandırırlar. Ve diğer dillerde de mevcuttur. Bir arabirim fonksiyonunun örneğini göz önünde bulunduralım

Ve iletişim kurabilecek bir çok şey var.

Python arayüzü ile. Python arayüzü ile bilgi iletimi
Arayüze giderek Özelliklerin Açıklaması Arayüze giderek Özelliklerin Açıklaması
Olası Devletlerin Sayısı Python arayüzünü atlayan bilgilerin transferi 1 (imzasız int) Dosya sistemi
(Küresel değişken sayısı) * (Küresel değişkenlerin sayısı) Python arayüzünü atlayan bilgilerin transferi 2 parametre türü. İşlemci Kullanımı Zamanı
Devlet Sistemi Durumu Sayısı Python arayüzünü atlayan bilgilerin transferi İade edilen değer türü Kuchi'nin durumu.
Limitsiz Python arayüzünü atlayan bilgilerin transferi 2 ^ (imzasız int cinsinden sayılır) Bir çok diğerleri ...
Devlet Sayısı Python arayüzünü atlayan bilgilerin transferi Parametre değeri 2. Küresel değişken durumu
... Python arayüzünü atlayan bilgilerin transferi

Pratik olarak sonsuz

Ve şimdi Haskell'de tarif edebileceğimiz arayüz tiplerinin sayısına bakın: 

Add_numbers :: int> int -> intadd_numbers 3 4 = 7Main = Print (add_numbers 3 4)

Bütün bunlar meraklı felsefi akıl yürütmedir, ancak yazılım yazılımı ile nasıl ilişkilidirler? Peki, programlamadaki arayüzlerin, dikkat etmeseniz bile, sizi her taraftan çevreleyeceği gerçeğiyle başlayalım. Örneğin, Java'yı programlıyorsanız, arayüzleri amaçlarına bağlı olarak açıkça adlandırırlar. Ve diğer dillerde de mevcuttur. Bir arabirim fonksiyonunun örneğini göz önünde bulunduralım

Bu kod göz önüne alındığında, arayüz

Aşağıdaki bilgileri alabilir: Haskell arayüzü aracılığıyla bilgi aktarma
Arayüze giderek Özelliklerin Açıklaması Arayüze giderek Özelliklerin Açıklaması
Olası Devletlerin Sayısı Haskell arayüzü yoluyla bilgi iletimi İade edilen değer türü İşlemci Kullanımı Zamanı
(Küresel değişken sayısı) * (Küresel değişkenlerin sayısı) Haskell arayüzü yoluyla bilgi iletimi 1 (int) İşlemci Kullanımı Zamanı
Devlet Sistemi Durumu Sayısı Haskell arayüzü yoluyla bilgi iletimi İşlemci / Bellek Önbelleği Üzerine Etkisi Bir çok diğerleri ...
Limitsiz Diğer ...
Devlet Sayısı 1 (Değer 3)
... 1 (değer 4)

En az 2 ^ 30 [1]

  • Seçtiğiniz dilde belirli bir arayüz için, bilgi aktarmanın benzersiz yollarının sayısını da değerlendirebilirsiniz:
  • arayüz boyunca;

Arayüzün etrafında soyutlama sızıntısı yoluyla giderek.

  • Ayrıca aşağıdakilere dikkat edebilirsiniz:
  • Bu dilde bu dilde, arayüz yoluyla iletilen minimum ve maksimum bilgi sayısı açısından kaç kısıtlama kullanabilirsiniz;

Hangi enstrümanlar bu dili, arayüz bypass'a etkileşimi önlemek için sağlar.

Programlar
Klasörleri değiştirmenin mümkün olduğu grafiksel kullanıcı arayüzünü bu şekilde analiz edelim: GUI üzerinden bilgi iletimi
Arayüze giderek Özelliklerin Açıklaması Arayüze giderek Özelliklerin Açıklaması
GUI Bypassing Bilginin Aktarımı Klasör 1'e tıklayın Klasör tarafından tutulan ekrandaki piksel sayısı 1 * tıklama sayısı İşlemci Kullanımı Zamanı
Gizli Olasılıklar UI Klasör 2'ye tıklayın 2 Klasör tarafından tutulan ekrandaki piksel sayısı * tıklama sayısı Standart olmayan hızlı arama kombinasyonları
Ekrandaki piksel sayısı 2 düğmesi tarafından işgal edildi Rehber İmleç Klasör 1 Klasör tarafından tutulan ekrandaki piksel sayısı 1 Bir çok diğerleri ...
Diğer Beklenmedik UI Yetenekleri Klasör 2'ye rehberlik imleci
Klasör 2 tarafından tutulan ekrandaki piksel sayısı Rehberlik ve Tıklama Arasındaki Zaman
Sonsuz Standart Klavye Etkinlikleri
Standart anahtar kombinasyon sayısı GUI tarafından işgal edilen ekran alanı

GUI'yi görüntülemek için kullanılan piksel sayısı

Ve şimdi, komut satırını kullanarak klasörü değiştirme görevini düşünün ve

:

Klasörleri değiştirmenin mümkün olduğu grafiksel kullanıcı arayüzünü bu şekilde analiz edelim: GUI üzerinden bilgi iletimi
Arayüze giderek Özelliklerin Açıklaması Arayüze giderek Özelliklerin Açıklaması
CD İşlemci Kullanımı Zamanı Arama yapabileceğiniz klasör adlarının sayısı İşlemci Kullanımı Zamanı

Değişken ortam

Önceki iki tabloda, sinyaldeki gürültü sayısı gibi verileri içermedim. Aynı dizinin tekrarlanmasının karmaşıklığını karşılaştırırsanız, tuşlara (birbiri ardına) ve fare hareketi (pikselin arkasındaki piksel) bastığınızda, ikinci durumda, hataların çok daha fazla olduğu açıktır. Grafiksel arayüzlerde, bu daha az katı anlamsal hale getirerek telafi edilir. Bölge için mevcut olan "OK" ve "İptal" düğmelerinin, yalnızca 1 piksel genişliğiydi.

Kullanıcılardaki hataların payındaki değişimi fiziksel engelli olarak değerlendirirseniz, analizi daha da karmaşıklaştırmak mümkündür.

  • Bu yüzden, arayüzleri değerlendirmenin ve karşılaştırmanın olası yollarından birini düşündük. Yukarıdaki örneklere ve kendi deneyimlerine dayanarak, birkaç ekstrapolasyon yapmama izin verin:
  • İnsanlar, özellikle arayüz bilmediğiniz ise, bilgi alırken çok katı olmayan arayüzleri tercih eder.
  • Çok katı olmayan arabirimler daha sık yanlış kullanılır.
  • Çok miktarda bilgi barındıran kapsamlı arayüzler güçlü, ancak genellikle yanlış kullanılır.
  • Etkileşim sıkıcı hale gelirse, insanlar arayüz bypass'a bilgi aktarmaya çalışırlar.

Arayüzü atarken, soyutlama sızıntısı yoluyla, hoş olmayan sürprizlerin ortaya çıkması son derece muhtemeldir.

Kurutma ve Sınırlı Arayüzler

Önceki bölümdeki analize dayanarak birkaç gözlemi tarif edeceğim. Ama önce birkaç tanım vereceğim:

Sızdıran arayüz (sızdıran arayüz), sistem ile çevre arasındaki etkileşimler sırasında göz ardı edilen bir arayüzdür.

Sınırlı bir arayüz (belirli bir arayüz), nispeten az sayıda olası giriş ve çıkışa sahip bir arayüzdür.

Sınırlı bir arayüzün iyi bir örneği -

Parçacı belirtilen işlevler

sadece az sayıda giriş verisi için tanımlanır.

"Delikler" veya "sınırlılık" arayüzlerini makul bir şekilde değerlendirebiliyorsanız, bir ucunda çok sınırlı ve aktif olmayan bir arayüz olacak ve diğer - sınırsız ve sızdıran olan aralığı anlayabilmek mantıklıdır.

Muhtemelen, ölçekte sola ya da sağa hareket ettirecek birini sunarsınız, ancak en önemlisi, fikri yakaladınız. Hatta iki ayrı ölçekte parçalanabilirsin: deliklerin ve titizliğe göre. Genel olarak bu iki kavram iyi korele olmasına rağmen.

Sunmak istediğim bir sonraki korelasyon deneyimimden türetildi. "Hata" ölçeğinin sol kenarında daha az yaygındır ve genellikle başarısızlıklar nedeniyle ortaya çıkarlar.

Onaylama

.

. Hata ölçeğinin sağ kenarında daha sık görülür ve çoğu zaman nedenleri başarısızlıklarda

doğrulama

Teknik borcun asimptotik karmaşıklığı

İfadeyle başlayacağım:

Teknik borcun ana kısmı projede veya soyutlamaların sızması konusunda kabul edilemez yardım nedeniyle veya sonuçların tahminini büyük ölçüde karmaşıklaştıran son derece inanılmaz arayüzlerden dolayı.

En başında, proje bir veya iki modül içerir ve iyi bir arayüz sözleşmesi incelemek için, (1) üzerindeki çalışma miktarını gerçekleştirmeniz gerekir. Arayüzünüz kötüyse, teknik borcun hacmi de (1) 'e eşit olacaktır, bu nedenle arayüz sözleşmesini getirme konusunda çok fazla zaman harcamak zorunda kalmayacaksınız. Ancak modül miktarında doğrusal bir artışla, intermodüstrik bağların hacmi O (n ^ 2) başarabilir. Bu nedenle, kötü bir arayüzle, her modül diğer tüm modüllerle etkileşime girerse, en kötü durumdaki arayüze olan temyiz sayısı n ^ 2 ile orantılı olacaktır.

Grafiklerden görülebileceği gibi, başlangıçta iyi düşünülmüş bir arayüz oluşturmaya kaydedilir. Ancak bu galibiyet, modüller arası etkileşimle ilgili artan problemler nedeniyle hızla kaybolur. Bundan dolayı çalışma miktarı, modüllerin miktarının derecesine kadar, iyi bir arayüzle doğrusal olarak büyür. En kötü senaryo - Her modül her bir modülle iletişim kurduğunda, Hendeshka sürecinde, buradan ve kaynaklanıyor.

Tipik olarak, intermodulic etkileşim seviyesi O (n ^ 2) den daha yavaş büyüyor, ancak kesinlikle yaklaşık (n) 'dan daha hızlı. Ayrıca gelecekte hızlı büyümenin başlangıcını değiştiren bir faktör de vardır: Bu insan hafızasıdır. Projenizde 20 modül olsa bile, muhtemelen her birini yaptığını hatırlıyorsunuz. Böylece, tüm sözleşmelerin sisli fonksiyonların ve ezoterik anlaşmaların sisli isimlerine ihtiyacınız var. Ancak, proje oldukça büyük hale geldiği anda, birçok bilgi unutulur ya da yeni insanlar projeye geldiğinde - ve işgücü maliyetlerinin güçlü büyümesi başlar.

  • Neden hala komut satırını kullanıyorsunuz?
  • İnsanlardan bu soruya farklı cevaplar alacaksınız, bunların hiçbiri bana en önemli şey gibi görünüyor:
  • Komut satırı esnektir ve birçok fırsat verir.

Daha az kaynak tüketir.

Bu, her şeyin nasıl çalıştığını daha iyi anlamanızı sağlar.

En önemli şey, neden komut satırını kullanıyoruz,

OTOMASYON!

Otomatik işlemleri kullanmanın faydalarını abartmak pek mümkün değildir. Bir küme 100 sunucuya çalıştırmam gerekiyorsa, her birine ayrı ayrı bağlanmayacağım ve sayısız GUI'deki bir yığın düğmesini tıklatarak yazılımı bireysel olarak ve manuel olarak yüklemeyeceğim. GUI'deki klişe işlemini otomatikleştirmeniz gerekse bile, hangi bilgilerin kaydedileceği başka bir dosyaya ihtiyacınız olacak. Esnek bir dosya gibi bir şey ... Takımlar.

Tıklama ve ekran tutucu aracılığıyla otomasyon yapabilmemize rağmen, makine ile bu tür etkileşimin insanlar için icat edildiğini unutmamalıyız. Yüksek doğruluk gerektirmeyen katı olmayan bir arayüzün kullanılması anlamına gelir. Bu nedenle, pencereniz aniden konumundan veya sistem fontunu değiştirirse, otomatik tıklamanız kesinlikle kullanılacaktır. GUI ile çok fazla değişken bağlı. Komut satırı, çok daha doğru davranmanıza izin verir, çok katı bir arayüzle etkileşime girebilirsiniz. Bu nedenle, birçok insan ondan hoşlanmaz, bilgisayar programlarından farklı olarak.

Tabii ki, GUI etkileşiminin düşük doğruluğunun iyi olduğu durumlar var. Örneğin, dijital resimler oluştururken, her pikselin yerleştirilmesi ve rengi konusunda endişelenmenize gerek yoktur. Asıl şey olmak

bir şey

Her piksel için özel. Bu nedenle, el ile iletilen gürültü imleci, son üründe önemli bilgiler haline gelir.

Doğru dili seçmek

Teknik borcun asimptotik karmaşıklığı ile ilgili bölümden sonra, Haskell veya Java gibi çok katı arayüz sözleşmelerinin bir dilde bir dilde yazılması gerektiğini düşünebilirsiniz. Ama bu tam olarak iletmek istediğim şey değil. Bir sonraki sorunun cevabı doğru seçimi yapmanıza yardımcı olabilir.

Projeniz için gereksinimleri değiştirme olasılığı ne kadar muhtemeldir?

Yeni davanın başında, cevap kesinlikle "çok muhtemel", özellikle küçük bir ürün yaratılırsa ve hatta pazardaki beklentilerinin belirsizliği ile birlikte olacaktır. Gereksinimler, örneğin, uluslararası standartlara dayalı bir projenin derleyicisi veya geliştirilmesi durumunda açıkça formüle edilirse, cevap kesinlikle "çok büyük olasılıkla" olacaktır.

"Çok muhtemel" cevabı verdiyseniz, arayüz sözleşmelerini belirlerken daha az zaman kaybetmenize izin verecek bir dil kullanın: gereksinimlerde değişiklik durumunda kesinlikle size karşı çalışırlar. Ancak buradaki ana görev, gereksinimlerin ideal bir şekilde uygulanmasını sağlamak değildir, ancak size izin veren ideal şartlar

başlamak

Nihai uygulama oluşturun. Bir istisna, MVP'nizin yüzlerce modülle büyük bir sistem olduğu bir durum olabilir. Projede bir sürü insan karışırsa, birbirlerine gelmeleri için iyi bir arayüz sadece gereklidir.

"Çok büyük olasılıkla" cevabı verdiyseniz, çok katı arayüz sözleşmelerine sahip bir dil kullanın. İlk önce daha fazla çalışmak zorunda kalacaksınız, ancak daha sonra yeni fırsatların tanıtılması daha az çaba gerektirecektir. Tek istisna, biraz küçük bir ürün yazarsanız (birkaç yüz dizesi) bir durum olabilir.

Bazen, Twitter'ın raylarda Ruby'de yaratmaya başladığını ve ardından projenin ölçeklenmesinin nedeni buydu. Daha sonra Twitter scala'ya çevrildi. Birisi geliştiricilerin bir hata yaptığını ve derhal Scala'yı seçmeleri gerektiğini varsayabilir. Ben öyle düşünmüyorum. Twitter'ın kalbinde çok basit bir fikir yatıyor ve çok sayıda rakip koşullarında, piyasadaki baskın pozisyonu kazanmaları gerekiyordu. Giderlere rağmen, mümkün olduğunca çabuk büyümeleri gerekiyordu. Yeni özelliklerin gelişme döngüleri mümkün olduğunca çabuk geçmeleri gerekirdi, çünkü tam olarak kullanıcıları neye ihtiyaç duyduğunu, neyin ihtiyaç duydukları ürünün, neyin istediklerini anlamak için mümkün olan en kısa sürede izin vermesi gerekir. Ölçeklemenin zorlukları, başarısızlık değil, başarıdır. Twitter'ın vizyonu bitmiş bir ürün olarak formüle edildi ve sadece bunu gerçekleştirmek için kaldı. Geliştiriciler açısından, sadece bir Nirvana, herkes böyle bir şey hakkında hayaller, ancak birkaç kişi bu şartlarda çalışmayı başarır: "Sizin için uygun olduğu için, bu boku en sevdiğiniz dilde sıfırdan devralın. Gelecekte onunla çalışmak daha kolaydı. " Bir şeyin sıfırdan yeniden yazılması, gözlerimizden önce daha zayıf bir uygulamaya sahip olmak, bir ürün görünümünü eklemeye çalışmaktan daha zayıf bir uygulamaya sahip olmak çok daha kolaydır. Ne yazık ki, piyasa katılımcılarının çoğunluğu sadece sıfırdan yaratmak için "gereksiz" maliyetlerden kaçınarak ve orjinal olarak ölçeklenmenin imkansız olduğunu ölçeklendirmek için çok fazla güç ve zaman geçirerek giderler.

Neden bu kadar popüler Python?

Delikler ve katı arayüzlerdeki bölümde, soyutlamaların sızıntılarına olan eğilimlerine bağlı olarak, arayüzleri sınıflandırma yöntemi ile ilgili olarak, arayüz tanımları ne kadar katı olabileceğini de düşündüm. Ve daha "dostça" ve "üretken" arayüzlerin, arayüz spektrumunun diğer bölümünden daha fazla daha fazla eğilimli olduğunu belirttim.

Python'un popülerliğinin, son derece basit bir arayüz sözleşmeleri sağlayan mükemmel bir tanıtım dilinin olduğu gerçeğinden kaynaklandığına inanıyorum. Aynı sebepten dolayı, Python'daki projede bir artışla, gittikçe daha zorlaşır.

Python, bilimsel toplulukta ve sevenler arasında sayısal analizlerle çok popülerdir. Deneyin özü, yaratılan üründe sürekli iyileştirme gerektirir ve katı arayüzler yavaşlar.

Kurumsal yazılımlar neden Java / C ++ hakkında yazıyor?

Delikler ve katı arayüzler ile ilgili bölümde, farklı türde arayüzlerle ilişkili uzlaşmalar hakkında konuştum. Java ve C ++, Python veya Ruby'nin aksine, spektrumun sıkı bir parçasıdır. Evet, sızıntılar sızıntıları olabilir ve daha katı diller (aynı Haskell) var, ancak Java ve C ++, ölçeklenebilirlik, samimiyeti ve şarkı sözleri açısından daha dengelidir. Ek olarak, bu iki dil, proje anlaşmalarına bağlı olarak, arayüzlerin ledbazlarını kontrol etmek için esnek olmasını sağlar. Örneğin, değişkenler veya özel, halka açık veya korunma ile çalışır.

Köşeleri nasıl kesilir

Bu makaleden bir şeyler getirmek istiyorsanız, lütfen: Projede köşeleri kesmeniz gerektiğinde, içeride yapın

Satış

ve B'yi çevirin.

  • çok iyi
  • arayüz. Uygulama çok iyi olmasa bile ve sorunları sistemin diğer bölümlerine akması durumunda, bu kötü bir arayüz sorunudur! Böylece yanlış anlaşılma olmaması, arayüzler altında ne demek istediğim listesine izin verin:
  • Fonksiyonların prototipleri.
  • "Arayüzler" java.
  • Genel sınıflar yöntemleri.
  • Genel bileşenlerin değişkenleri.
  • C / C ++ 'da başlık dosyaları (.h).
  • Dinlendirici API uç noktaları.
  • URL Yönlendirme.
  • "Modellerin" veya "paketlerin" halk yönleri.

Mantık veritabanı yapısı (DDL).

Ve daha fazlası.

Sonuç

Gördüğünüz gibi, arayüz kavramı son derece önemlidir ve projenin geliştirilmesi üzerinde yasal koruma, verimlilik ve sistem yapısının diğer yönleriyle felsefi ilişkilerin sayısı üzerinde çok büyük bir etkiye sahiptir. Diğer programcılara arabirimler hakkında düşündüklerini ve her türlü şeyi dinlediklerini isteyin.

Kullanıcı arayüzü, insanlar ve bir bilgisayar arasındaki etkileşim araçlarıdır. Basit kelimelerle konuşma, arayüz, programın dış kısmıdır veya kullanıcının çalıştığı cihazdır. Kelime arayüzü - İngilizce arayüzü olan kartuş, yani "sınır bağlantısı".

En sık, kelime arayüzü altında kullanıcı arayüzünü ifade eder. Örneğin, "Bu çevrimiçi mağazanın rahatsız edici, kafa karıştırıcı bir arayüze sahip" diyorlar. Bu, mağazanın etkileşimde bulunulması uygun olmadığı anlamına gelir. Örneğin, gerekli malları bulmak zordur, siparişin nasıl yerleştirileceği belli değil, site önceden girilen verileri kaydeder, vb.

Kullanım Örnekleri:

Birçok kullanıcı, "VKontakte" eski arabirimini iade etmek istiyor, yeniyi sevmiyorlar.

Programın sezgisel bir arayüze sahip - hemen nereye basacağınızı ve neye yol açacağını hemen temizleyin.

Windows arayüzü çok karmaşıktır: Deneyimsiz kullanıcılar bir yığın halinde karıştırılır.

Web arayüzü, kullanıcının tarayıcıdan doğrudan bir hizmet veya cihazla etkileşime girmesini sağlayan internette bir sayfadır. Örneğin, Web arayüzünü kullanarak, çevrimiçi bankayı kullanabilirsiniz: Banka sayfasına gidin, giriş ve şifreyi girin ve ardından hesaplar arasında para çevirin, Hizmetler için ödeme vb.

Donanım ve yazılım arayüzü. USB ve API arayüzü nedir Kullanıcı arayüzüne ek olarak, bir yazılım arayüzü (birbirleriyle programların etkileşimi) ve donanım arayüzü vardır (fiziksel cihazların etkileşimi, "demir"). Donanım arayüzü hakkında söylediklerinde, genellikle cihazların birbirine bağlanabileceği konektörler anlamına gelir. Örneğin, "USB arayüzü yoluyla bağlantı", cihazların bağlanması anlamına gelir.

Evrensel Sıralı Lastik

çevresel ekipmanı bağlamak için tasarlanmıştır. Bir USB üzerinden, örneğin bir klavye, fare, kamera veya akıllı telefonu bir bilgisayara bağlayabilirsiniz.

Donanım arayüzü - USB kablosu

Program arayüzü, programları kendi aralarında etkileşime girmenin bir yoludur. Örneğin, API (Uygulama Programlama Arabirimi, Uygulama Programlama Arabirimi), programların insanların katılımı olmadan verileri otomatik olarak değiştirmesini sağlayan bir komut kümesidir. Bir API programı bir istek gönderir, bir diğeri ona cevap verir.

Örneğin, haber sitesinde gerçek zamanlı olarak değişen döviz kurlarını gösterir. Bu, Site Düzenleyicisinin her zaman, sayfadaki sayıları manuel olarak değiştirdiği anlamına gelmez. Haber sitesinin kendisi, bir sunucuya döviz bozdurma olan bir API isteği gönderir ve gerekli numaraları oradan alır.

Kullanıcı arayüzleri türleri. Grafik, Metin ve Diğerleri

Metin arayüzü, bir kişiyi komut yazdırmayı kullanarak bir bilgisayarla iletişim kurmanın bir yoludur. Örneğin, MS-DOS işletim sisteminde, arayüz metinseldi - kullanıcı klavyedeki gerekli komutları çevirir ve makine onları gerçekleştirdi.

MS-DOS Metin Arayüzü - Komut Hattı

Metin arayüzünün sorunu, kullanıcının gerekli komutları bilmesi gerektiği ve her seferinde her seferinde hatasız yazmasıdır. Kısmen bu zorluktan, MS-DOS için kabuğu ortadan kaldırdı - örneğin, Norton Commander.

Norton Commander - MS-DOS için Dosya Yöneticisi. Sadece klavyedeki komutları yazabilir, ancak klavye kısayollarını kullanarak dosyalarla çalışabilirsiniz.

Yakında, kullanıcının görsel nesnelerle etkileşime girdiği grafiksel arayüzler ortaya çıktı: düğmeler, simgeler, ekrandaki resimler. Windows işletim sistemi grafiksel bir arayüz kullanır: Kullanıcı simgelerdeki simgeler üzerinde tıklar - dosya ve programları gösteren piktogramlar.

Windows 3.11 Grafik Arayüzü

Malzeme arayüzü, somut yapılar kullanarak bir bilgisayarla etkileşime girmenin bir yoludur. Örneğin, bir bilgisayar fare veya joystick malzeme arayüzüdür. Fareyi masanın üzerinde hareket ettirin, aynı anda imleç okunu ekranda hareket ettiririz.

Malzeme arayüzü - Bilgisayar fare. Fotoğraf: Depositphotos.

Sesli arayüz, konuşma komutlarını kullanarak kontrol edilir. İnsan sesi bugün cep telefonlarını bile bilir. Örneğin, Apple'dan Siri, Google'ın ses asistanı, yandex'ten "Alice"

Ses arayüzü - Apple Siri. Siri, konuşma yorumu ve tanıma arayüzünden (konuşma tanıma ve yorumlama arayüzü) bir azalmadır. Fotoğraf: Depositphotos.

Bir enstrüman arayüzü, komut vermenizi sağlar, parmağınız, el, bilgisayar fare, özel denetleyici vb.

Kurulum arayüzü - denetleyicileri kullanıcının hareketine cevap veren Nintendo Wii oyun konsolu.

Dokunsal arayüz, kullanıcının dokunsal hisleri (itme, titreşim vb.) Deneme ve bilgisayarla yardımlarıyla etkileşime girmesini sağlar.

Sanal gerçeklik eldivenleri - dokunsal bir arayüzün bir örneği. Fotoğraf: NASA.

Sinir arayüzü, komutları beynin içine yerleştirilmiş elektrotlarla iletmenize izin verir. Çift yönlü nöral arayüzler sadece beyinden bilgiyi alamaz, aynı zamanda beynine göndermek için - örneğin, gözün retinası boyunca.

Jens Naumann - kör, sinirsel bir görsel protezi ile "görebilen". Kamera görüntüyü yakalar ve işlenen sürümü beynin görsel kabuğuna elektrotlar aracılığıyla gönderir.

"Matrix" filminde Kian Rivz (1999). Kahramanlar, sanal gerçekliğe girmek için neurointerface'den hoşlanıyor - matris.

Cybebeis - sanal gerçeklik biçiminde arayüz. "Johnny Mnemonic" fantastik filminden çerçeve (1995)

Size hoş geldiniz, arkadaşlarım! PC'lerin ve telefonların sahiplerinin söylentilerine "arayüz" kelimesi, ama herkes onu anlamıyor. Çaydanlıklar için söyleyeceğiz, bilgisayardaki arayüz nedir ve akıllı telefonun, neden gerektiğine, doğru kullanılacağına dair ne olur. Bu kelimeyi sitede görmek, açıklamada veya talimatlarda, yeni gelenler ne hakkında konuştuğumuzu ve ne yapacağınızı anlayacaktır.

Dalga

İhtiyaç duyduğu arayüz nedir

İngilizce arayüzünden çevrildi - Etkileşim. Rusça'da Nasıl Yazılır: Arayüz (Bazen kabuklar yazılır - yanlış). Normal tanım, iki fonksiyonel nesne arasındaki ortak bir sınırdır. Örneğin, bir adam arabasının tekerleğinin arkasına geçer, şanzıman kolunu değiştirir - bu makine arayüz sistemi ile etkileşimdir. Şanzıman, sürücü ve araba arasında iletken olarak.

  • Bilgisayar biliminde, daha derin kelimenin anlamı, oyun, program veya işletim sistemine sahip kullanıcı etkileşimi araçları, bilgisayar makinesinin çalışmasını kontrol etme yöntemleridir. Arayüz sayesinde, bir kişi herhangi bir program veya metin editörü bulur. Boya grafik editörü ile çalışmaya sahip olursak, benzer bir yapıya sahip oldukları için diğer benzer programlara ustalaşmak kolaydır.
  • Temel arayüz görevleri:
  • Giriş ve çıkış bilgisi;
  • Yönetim yazılımı;

dış taşıyıcılarla veri değişimi;

Komutlar.

PC sistem biriminin arka paneli de diğer aygıtları bağlamanızı sağlayan bir arayüzdür.

Kullanıcı bir bilgisayar içerir ve sıradaki simgeleri görür: "Bilgisayarım", "Etiketler", "Fotoğraf", vb. - Bütün bu arayüz elemanları.

Arayüz türleri

Arayüz kısaca açıkça tanımlanabilir: Bir kişinin önünde bir PC veya telefon kullanarak onun önünde görür. Aslında, bu bir sistem yapısıysa da, bir sistem yapısıdır, çünkü düğmelere menü öğesine tıklayarak, kullanıcı ihtiyaç duyduğu yere gider: kamera, Galeri, Rehber, Mesajlar. Amacı, elektronik bir cihazın veya sitenin etkili, hoş kullanımıdır.

Video.

  • Her biri daha fazla söyleyeceğimiz farklı arayüzler vardır.
  • En genel:
  • Komut satırı;
  • Grafik ve Metin Arayüzü;
  • Yönetim türüne göre (el hareketi, ses, dokunsal ve sinirsel);
  • program;
  • donanım;
  • donanım yazılım;
  • kullanıcı;
  • Ağ;
  • oyun;

malzeme;

Komut satırı

telefonlarda.

Arayüz basit kelimeler nedir

Modern arayüzlerin türlerini adlandırmanız ve listelemeniz gerekirse, bu bilgi her şeyi doğru şekilde ayarlamanıza ve iyi bir sunum yapmanıza yardımcı olacaktır.

Bu, bizimerin bir parçası olan ve kullanıcı ile işletim sistemi arasındaki ilişkiyi sağlayan ayrı bir yazılımdır. Komut istemine sayesinde, bilgisayar komutlarını gerçekleştirebilirsiniz. Bu, makineyle kendi dilinde bir iletişimdir.

Eksikliklerin - komutları bilmeniz gerekir, her bir hata olmadan onları aradığınızda. Avantaj, ek fırsatlar veren grafik yapısının katılımı olmadan komutları girme yeteneğidir.

Komut satırı (konsol arayüzü), örneğin BIOS'ta kabuğunda başlar. Konumunun ana yolu: C: \ Windows \ System32 \ cmd.exe. Her zamanki YOWSer, komut satırının bulunduğu ve nasıl çalıştığını ve profesyoneller için ana araç olduğu için kasıtlı olması gerekmez, çünkü bilgisayara virüslü, Windows restorasyonu ve diğer durumlarda yardımcı olur.

Komut satırını bulmak için basit bir yöntem: Aynı zamanda, görünen CMD penceresinde Win + R tuşlarına basın.

Komut arayüzü

Grafik ve Metin

  • Grafik (Grafiksel Kullanıcı Arabirimi, GUI), çoğu uygulamada tüm işlemlerde kullanılır. Genellikle wimp olarak adlandırılır - bu, WordWOW, simge, menü, işaretleme aygıtının (manipülasyon cihazı) ilk harflerinden bir kısaltmadır.
  • Ana Elemanlar:
  • Menü;

listeler;

Piktogramlar (çizimler, şemalar).

Windows Windows'ta, kullanıcı simgeleri, programları ve dosyaları gösteren piktogramlar, her kullanıcıya bol miktarda fırsatlar sağlayan grafiksel bir arayüzdür. Herhangi bir komut girmeniz gerekmez. Uygun etkileşim için, bir bilgisayar faresi kullanılır.

Grafiği, sistemi bir dizi görsel görüntü olarak temsil eden görsel arayüzden ayırt etmeniz gerekir - belirli bir ekran konumunda bulunan bir simge veya yazıt olabilir. Görsel yapı mutlaka grafik eşlemeleri kullanmaz. Görsel yapı grafik ve metin olabilir.

Metin, bilgi, bir dizi harf / sayı, psödografik karakterleri sağlarken kullanır. Tüm temel grafik tasarım öğelerini kullanır: onay kutuları, düğmeler bırakma listeleri vb. Küçük talepkar teknik kaynaklar, yüksek hızlı veri ile farklı. Metin arayüzü bir kullanıcı türüdür, komut satırı metnin bir parçasıdır.

En basit durumda, metin arayüzü bir komut satırı kullanır, ancak etkileşimli elemanlara sahip birçok program, grafiğe kolaylığa yaklaşan daha kolay, anlaşılabilir bir tasarım yapar.

Bazı programlar, turbo vizyon, D-Flat, CSCape, çoğu değişken tasarım konuları (DOS Navigator) gibi geliştirilen pencere sistemini destekler ve ayrıca farklı etkileşimli etkileşim öğeleri (joystick, fare) kullanabilme yeteneğine sahiptir.

El hareketi, ses, dokunsal ve sinirsel

  • Kullanıcı bilgisayarı yönetir ve farklı yöntemlerle komut verir: jestler, ses, vb.
  • Bu nedenle, kontrol türü ayırt edilir:
  • Yıllık arayüz. İletişim elemanları grafik tabletler, dokunmatik ekranlar ve parmakların hareketlerine tepki veren diğer teknolojilerdir;
  • Ses arayüzü konuşma yönetimini belirtir. Örnekler: Siri'den Apple, Alice'den Yandex;

Etkileşim dokunsal duyumlara dayandığında, hassas geri bildirim elde ederken (titreşim, itme);

Nöronal - beynin içine doğru olan elektrotlar aracılığıyla komutların iletimi. Bilgi beyinden alınabilir ve örneğin göz retinası yoluyla iletilebilir. Uygulamada, NeuroInterface beyni iyi çalışıyor olan felçli hastaların ömrünü kolaylaştırabilir. NeuroInterface, beton eylemleri yapmalarını sağlar, beynine bağlı elektrotların yardımıyla niyetlerini okuyabilir.

Grafik Sistem Arabirimi

Yazılım, Donanım, Donanım ve Yazılım

  • Arabirim sistemi, prog'lar ve cihazlar arasında bile temas sağlar.
  • 3 grup var:
  • Programlama arayüzü (İngilizce. Programlama arayüzü), programların kendi aralarında etkileşimidir. Özellikle, API veya uygulama programlama arayüzü - bilgisayar programları arasında veri alışverişi yöntemleri (biri API'ye bir istek gönderir, başka bir cevap verir). Haber Portal para birimlerini gösterir. Editör bundan sorumlu değildir (sayıları manuel olarak değiştirmek zorunda kalacak) ve sitenin döviz bozdurma talebinde bulunduğu API, bir cevap alır;

Donanım, fiziksel cihazları birbirleriyle yuvalar, konnektörler, ağ geçitleri ile etkileşime sokmak için tasarlanmıştır. USB (Evrensel Sıralı Lastik) en tanıdık örnektir. Aracılığıyla PC telefonuna, kamera, fare bağlayın;

Donanım-yazılım, düğümlerin etkileşimi, program kontrolü altındaki elemanlarıdır.

Kullanıcı arayüzü

Kullanıcının kendisinin önünde gördüğü şeyin temas ettiği, nerede tıkladığında - bu kullanıcı arayüzüdür. Bu, cihazın dış kısmı veya kullanıcının çalıştığı programdır.

Genellikle, arayüzü altında kullanıcı (kullanıcı arayüzü) anlamına gelir. Site ziyaretçisinin şöyle olduğunu söylüyor: "Kafa karıştırıcı, nahoş bir kayıt veya menü var." Böylece, site temastan rahatsız edicidir: Doğru öğeyi bulmak zor, siparişi ödeme, belgeyi indirin. Anlaşılabilir yapı, bir kişinin hemen tıklayacağını gördüğü zaman, ne yapacağını bilir. Ancak, pencerelerle birlikte, birçok yenilenme problemleri var, çünkü bu işletim sistemi anketinin tasarımı, deneyimsiz kullanıcılar ayarlarda karıştırılır. 1C platformda, farklı 1C istemcilerinde kullanılan iki farklı kullanıcı arayüz mekanizması.

Komut satırı, grafik, metin, ses, el hareketi, dokunsal, sinirsel, usul - tüm bunlar kullanıcı arayüzüne dahildir. Kontrolü altında, kullanıcı PC'deki verilere girer, monitördeki bilgiler görüntülenir, yazıcı. Elektronik tablonun bir arayüzü bile var - bu, bir kişinin gördüğü, örneğin OpenOffice.org Calc uygulamasını gördüğü bir unsurdur.

Ancak, bazı daha fazla kullanıcı arayüzü vardır.

Donanım arayüzü

Web, oyun

Web arayüzü, bir HTTP protokolü ve bir web tarayıcısı üzerinden bir sunucu veya cihazla temas için bir yapıyı temsil eden bir Web sayfasıdır (bir veya ayar). Örneğin, müşteri banka sayfasına gidebilir, yardımcı hizmetler ödeyebilir. Ana avantaj - Ek yazılım yüklemeye gerek yok, çünkü işletim sistemi tarayıcıyla gider. Ağ arayüzü ile karıştırılmanıza gerek yok. Bu terim altında, bir bilgisayar ağı aracılığıyla programlar arasındaki verileri iletmeyi amaçlayan sanal veya fiziksel bir cihaz olarak anlaşılmaktadır (örneğin, VLAN).

Bir web arayüzü oluşturmanın popüler yolu, HTML'nin CSS ve JavaScript'A ile kullanılmasıdır. Ayrıca Adobe Flash, Java Applets veya Silverlight'ı da kullandı.

Başka bir tür oyun arayüzüdür - doğrudan Gamedizayn ile ilişkilidir, ancak yetkinliğinin ötesine geçmesine rağmen. Oyuncu ve oyun farklı evrenlerde yaşıyor ve oyun yapısı karşılıklı temaslarının amacıdır. Bununla birlikte, oyuncu oyundan gerekli bilgileri alır ve oyuncunun eylemlerini alır.

Malzeme

Malzeme veya dokunsal arayüz başka bir kullanıcı türüdür. Bu, elektronik olan bir kişinin somut yapılarla bir temastır. Örneğin, bir fare hareket eden bir fare, bir kişinin aynı anda imleç okunu ekrandaki okunu hareket ettirir.

Arayüz çeşitleri

Telefonlarda arayüz

Mobil cihaz arayüzünün genel stili, SIMP (Ekran-simge-menü işaretçisi) olarak nitelendirilir. Mobil Windows platformlarında, tüm ekranı işgal eden yapının unsurlarıdır. Pencereler arasındaki geçiş, grafik öğelerle gerçekleştirilir veya bir parmakla çekilir.

  • SIMP tasarımının özellikleri, işletim sisteminin özellikleri ile açıklanmaktadır.
  • Gadget'lar için en yaygın işletim sistemi:
  • Android;
  • Apple iOS;
  • WindowsMobile;
  • Palm OS;

Symbian OS;

Blackberry OS.

Rusya popüler - Android, Apple iOS, WindowsMobile. Ancak üreticiler türlerini arayüz sistemleri ve bloklarını kullanır, ana neden markadır. Android'in özelleştirme yeteneği, kurumsal ekipman üreticilerinin, örneğin işlevsellik ve tasarım alanında yazılımda değişiklik yapabileceği anlamına gelir.

Mobil cihazlardaki farklı sistemik yapılar sahiplerinin deneyimini büyük ölçüde etkilemez, çünkü evrensel görevleri çözmek için yaratılırlar. Uygulamalar kümesindeki fark.

Mobil cihazın arayüzü ayrıca kulaklık jakları, şarj, ses yardımcıları içerir - PC'nin çalışmalarına dayananların çoğu, yalnızca bu araçlar için ayarlanır. Ancak akıllı telefonlarda, örneğin NFC (NFS) - kablosuz iletişimin yapısı olan birçok yeni yapı vardır.

Arayüz dili ne anlama geliyor

Metin materyalleri yazarken kurulan dillerle karıştırmaya değmez.

  • Arabirim dili, işlemleri, menüde, iletişim kutularında, hata pencerelerinde ve referanslarda yüklerken kullanılan olandır. Ana dile en az 1 ek bir tane takılıysa değiştirilebilir.
  • Bir PC'de hangi dil pencerelerinin durduğunu öğrenmenin basit bir yolu:
  • "Kontrol panelini" açın;

Sekme "Dil";

Şimdi kullanılan ana dili tahsis edildi. Değiştirilebilir veya yenisini ekleyebilir.

bulgular

Bir kişi için, arayüz bir PC veya telefonla çalışmak için bir temeldir. Ve bu programlar ve ekipmanlar arasında etkileşime girmenin bir yoludur. Sistem yapısının basitliği, cihazı yönetmeniz kolay olup olmadığına bağlıdır. Geliştiriciler farklı tasarım ve yapılarla ortaya çıkıyor, onları daha az ya da çok hoş, insanlar için sezgisel hale getiriyor. BT uzmanları bazı yapılarda değişiklik yapabilir veya ciddi görevleri çözmek için kullanabilir ve deneyimsiz kullanıcılar, işi kolaylaştırmak ve zaman kazanmak için sezgisel bir arayüz sistemi olan cihazlar için kendileri için satın alabilirler.

Arayüz, genellikle bir kişinin ve bilgisayarın veya uygulamaların etkileşimi anlamına geldiklerinde dedi. Makalede, etkileşimler, türleri ve özellikleri için olan arayüzün tanımını analiz edeceğiz.

  • Arayüz nedir

  • Arabirim, erkek ve bir program, bir işletim sistemi, teknik bir cihaz veya kendi aralarındaki uygulamalar arasında bir etkileşim yöntemi arasındaki "iletken "dir. Bir kişi, arayüzü kullanarak komut verir, cihaz onları analiz eder ve cevap verir. Amaçlandığı ana görevler:

  • Bilgi girin ve görüntüleme (ses, görüntü);

  • Bireysel Uygulamaların Yönetimi;

diğer cihazlarla veri alışverişi;

Arayüz türleri

İşletim sistemi ile etkileşim.

Komut satırı

Arayüz sadece insan ve teknolojinin değil, aynı zamanda bir bilgisayar programı, program programı, bilgisayar aygıtının etkileşimini içerir. Örneğin, Cihazlar Bilgisayar Sistemi Ünitesine bağlandığında, etkileşim yöntemi konektörü kullandığından.

Bazı etkileşim türleri, bir bilgisayar veya akıllı telefon üzerinde daha fazla kontrol elde etmesine izin verir, ancak ek beceriler gerektirir. Diğerleri daha rahat, ancak daha az fırsat sağlıyor. Her türün kendi özellikleri vardır.

Komut satırı (konsol arayüzü), örneğin BIOS'ta kabuğunda başlar. Konumunun ana yolu: C: \ Windows \ System32 \ cmd.exe. Her zamanki YOWSer, komut satırının bulunduğu ve nasıl çalıştığını ve profesyoneller için ana araç olduğu için kasıtlı olması gerekmez, çünkü bilgisayara virüslü, Windows restorasyonu ve diğer durumlarda yardımcı olur.

Komut satırı sayesinde, maksimum işlem sayısını gerçekleştirebilirsiniz. İşletim sistemi ile iletişim kurmanın doğrudan bir yoludur. Komutu yazmak için, metni bilgisayara girmeniz ve Enter tuşuna basın, bilgisayar gerçekleştirmeye başlayacaktır.

Eksi yöntemi, yalnızca eğitimli kullanıcılar için uygun olmasıdır. Komut satırında, yardımcı grafik elemanları yoktur, etkileşim için dilin ustası olması gerekecektir ve komutlar çalışması yanılmıyor.

Grafikler bilgisayarla etkileşimi basitleştirir, onunla çalışmak çok daha kolaydır ve metinden daha rahat. Grafik arayüzü rolünde, bu tür unsurlar şunlardır:

En basit durumda, metin arayüzü bir komut satırı kullanır, ancak etkileşimli elemanlara sahip birçok program, grafiğe kolaylığa yaklaşan daha kolay, anlaşılabilir bir tasarım yapar.

Örneğin, Windows ile etkileşime girerken simgeler ve pencereleri kullanırken, fare girmek için bağlanır. Akıllı telefonda, giriş cihazı bir dokunmatik ekrandır.

Metin arayüzü görüntüleri kullanmaz: Komutlar metin formunda metin ve bilgi kullanılarak verilir.

Jest etkileşimi, parmakların hareketlerine komut vermenizi sağlar. Bir akıllı telefonun dokunmatik ekranıyla çalışırken uygulanır. Örneğin, "UP" jest, açılır pencerenin görünmesini sağlar.

Ses arayüzü bir ses yönetimidir. Gadget, ses komutlarını tanır ve gerçekleştirir.

Etkileşim dokunsal duyumlara dayandığında, hassas geri bildirim elde ederken (titreşim, itme);

Dokunsal, dokunma yardımı ile etkileşimi ifade eder: basılmaya titreşim veya hassasiyet.

Sinir arayüzü komutu doğrudan beyinden bilgisayara iletir, bunun için elektrotlar beynin içine implante edilir. Tıpta kullanılır: bu yüzden felçli bir kişi dış dünyayla iletişim kurabilir.

Donanım, fiziksel cihazları birbirleriyle yuvalar, konnektörler, ağ geçitleri ile etkileşime sokmak için tasarlanmıştır. USB (Evrensel Sıralı Lastik) en tanıdık örnektir. Aracılığıyla PC telefonuna, kamera, fare bağlayın;

Program etkileşimi birbirleriyle bir yazılım arayüzü sağlar. Programlar birbirlerine istek gönderir ve cevaplar alır. Örneğin, bir widget veya bir bilgisayarda ilgili hava koşullarını sürekli göstermek için, bir program sürekli bir diğerine bir istek gönderir ve taze veri sağlar.

Donanım, bağlayıcılar ve yuvalar aracılığıyla fiziksel cihazlar arasındaki iletişim organizasyonu için tasarlanmıştır. Bilgisayar bir sabit diskten bilgi okuduğunda - bu, programın ve fiziksel cihazın ortak çalışması, yani donanım ve yazılım arayüzüdür.

Hepsi, normal kullanıcının bir bilgisayar içerdiğinde etkileşime girdiği, web sitesine veya uygulamaya girer, bir kişinin ekranda gördüğü her şeyi bir kullanıcı arayüzüdür.

Web, Oyun Sitesi

Bir web arayüzü oluşturmanın popüler yolu, HTML'nin CSS ve JavaScript'A ile kullanılmasıdır. Ayrıca Adobe Flash, Java Applets veya Silverlight'ı da kullandı.

Web arayüzü tarayıcıda çalışmanıza olanak sağlar. Bu, internetteki programların etkileşimidir. Örneğin, mağaza web sitesine gidebilir ve alımları ödeyebilirsiniz. Bu durumda tarayıcı, hangi sayfaların etkileşimi sayesinde bir web arayüzü olacaktır.

Malzeme

Oyun, kullanıcının hangi komutların verebileceği oyun ile nasıl etkileşime girebileceği, oyun bilgisi hangi formda sunulduğu ve oyunun eylemlere nasıl cevap vereceğidir.

Arayüz ne olmalı

Bu, gadget'larla dokunsal bir temastır. Dokunmatik ekrana, fare veya joystick içeren eylemleri içerir.

Mantık veritabanı yapısı (DDL).

Akıllı telefonlar, el hareketi ve dokunsal arayüzleri ima eden bir dokunmatik ekran kullanır. Kullanıcı elemanlara, işletim sistemine veya uygulamanın bundan komut alır ve gerçekleştirir.

Добавить комментарий