Interface - Ano ang mga simpleng salita

Interface - Ano ang kailangan nito, mga uri ng mga interface

Enero 4, 2021.

Hello, Dear blog readers Ktonanovenkogo.ru. Sa panahon ng mass computer, mahalaga na panatilihin ang mga pinakabagong trend at patuloy na palitan ang agwat sa kaalaman.

Mahalaga na ang interface ay tumutugma sa mga layunin at konteksto. Kung ito ang pakikipag-ugnayan ng isang espesyalista sa isang computer, ang pangunahing bagay ay ang kakayahang magbigay ng impormasyon at tuparin ang mga gawain. Para sa isang ordinaryong gumagamit, ito ay hindi lamang teknikal, ngunit din aesthetic halaga: gumagana sa mga ito ay dapat na komportable at maliwanag.

Hindi mo nais na makahanap ng pag-crash? Ngayon isaalang-alang namin ang isa pang term na nauugnay sa PC.

Susubukan kong ipaliwanag ang isang bagay bilang isang interface: Ano ang at bakit kailangan. Kaya, magsimula tayo.

Ang interface ay ...

Tulad ng lahat ng mga bagong-fashion na parirala, ang salitang "interface" ay dumating sa amin mula sa wikang Ingles. Ipinakikita ng isinalin na interface " Lugar ng pakikipag-ugnay "

Ang interface ay isang hanay ng mga tool na nagbibigay-daan sa gumagamit na makipag-ugnay sa operating system ng computer, isang mobile device o iba pang mga uri ng kagamitan.

Ang interface ay ...

Bilang mga tool na ito Maaaring kumilos ang mga pakikipag-ugnayan:

  1. mga patlang ng teksto;
  2. mga pindutan at ticks;
  3. mga listahan ng drop-down;
  4. Mga tip sa pop-up;
  5. Switch;
  6. Mga elemento ng menu ng programa o site;
  7. At marami pang iba.

Upang maging mas malinaw kung anong uri ng prutas ang interface na ito, isaalang-alang ang isang visual na halimbawa. Ipagpalagay na magpasya kang pumunta sa mga pista opisyal sa malayong mga gilid at mag-book ng isang hotel nang maaga sa pamamagitan ng Internet.

Halika sa site, at doon ka umasa ng ilang mga interface: paghahanap, mga resulta ng pagpapakita, pagpasok ng personal na data, pagbabayad. Sa bawat yugto ng pakikipag-ugnayan sa site ng reservation hotel, ang user ay nagpapatakbo ng data at nagsasagawa ng ilang mga pagkilos.

Bakit kailangan ko ng isang interface? Ang lahat ay simple, higit pa kaysa sa dati: mas maginhawang gamitin ang programa, site at iba pang produkto, mas maligaya na mga gumagamit.

Pinapayagan ka rin ng friendly na interface na itaas ang mga benta sa mga komersyal na site, dahil hindi isinara ng mga bisita ang tab sa mga unang segundo ng paggamit ng site.

Ang mga site na may mahusay na disenyo ay mas popular sa mga gumagamit, mas binisita, at, samakatuwid, dalhin ang pinakamahusay na kita sa kanilang mga may-ari.

Mga uri ng mga interface

Ang interface ay kaugalian sa subdivide sa mga sumusunod na uri:

  1. Command line. . Ito ang pinakalumang at pinaka-oras na paraan upang makipag-ugnay sa pagitan ng gumagamit at personal na computer. Kasabay nito, ang command line ay nananatiling ang pinaka-maaasahang uri ng interface.
    Para sa mga gumagamit, ang interface ay ang batayan ng pagtatrabaho sa isang PC o telepono. Mula sa kung gaano simple o kumplikado ang sistemang ito, ang kaginhawahan ng pagkontrol sa aparato ay nakasalalay sa. Maaaring baguhin ng mga developer ang mga istruktura ng system para sa mga kumplikadong gawain. Mga walang karanasan sa mga gumagamit, mas mahusay na bumili ng mga device na may malinaw na interface upang mapadali ang kanilang trabaho.

    Ang komunikasyon sa makina ay nangyayari sa wikang ito. Ang command line ay ginagamit sa mga operating system na inilaan para sa mga propesyonal na gumagamit: halimbawa, sa BIOS.

  2. Graphic interface . Ito ay eksakto kung ano ang ibig sabihin ngayon sa ilalim ng salitang "interface". Inilapat ito sa lahat ng mga operating system, programa, mga web page.
    Smartphone

    Sa isang graphical na interface, ganap na ang lahat ng mga gumagamit ng PC ay nahaharap. Para sa mas maginhawang pakikipag-ugnayan, inirerekomenda na gumamit ng mouse ng computer.

  3. Mag-sign Interface . Ang mabilis na pag-unlad ng mga teknolohiya ay naging isa sa mga dahilan para sa hitsura ng isang interface ng kilos. Kabilang dito ang pandama screen, joysticks, stylus at iba pang mga elemento.
  4. Voice interface . Sa pagsasalita ng pariralang "OK, Google" at kasunod na binibigkas ang query sa paghahanap, nakikipag-ugnayan ka sa interface ng boses ng smartphone o tablet operating system.
    Command line interface

    Ang uri na ito ay lumitaw din kamakailan salamat sa mabilis na pag-unlad ng mga teknolohiya.

    Ngunit ngayon tinatangkilik ang popularidad, dahil pinapayagan ka nitong malutas ang isang bilang ng mga mahahalagang gawain at pamahalaan ang mga aparato (kung ano ito?) - Mga aparatong mobile, mga kotse, mga gamit sa bahay, mga computer - may mga utos ng boses.

Ano ang dapat na interface

Ang pangunahing gawain ng anumang interface - Madaling gamitin Tiyak na programa, site o katulad na produkto.

Halimbawa, kapag ang pagbuo ng isang web portal ay inirerekomenda na gawin Tumutok sa mga sumusunod na elemento :

  1. Ang pinakamainam na bilang ng mga ipinapakita na elemento;
  2. kaya sa pagbagay sa desktop at mga mobile device;
  3. ang pagkakaroon ng mga pindutan ng mga sikat na social network;
  4. pinakamainam na laki ng mga icon at mga pindutan;
  5. maginhawang anyo ng pagpaparehistro;
  6. Intuitive na lokasyon ng mga item sa menu;
  7. ang pagkakaroon ng kulay o impormasyon accent;
  8. paghahanap ng sistema sa site;
  9. Kung kinakailangan, ang pagkakaroon ng data ng contact.

Ang isang maliwanag na halimbawa ng isang mahusay na pag-iisip-out na interface ay Ktonanovenkogo.ru. Sa site, isang mahusay na solusyon sa kulay, isang intuitive na menu, ang pagkakaroon ng panloob na paghahanap, mga artikulo sa pagpapakita sa petsa ng publikasyon, na ginagawang mabilis at kasiya-siya ang mapagkukunan.

Iyon lang, mahal na mga kaibigan. Ngayon alam mo na ang interface ay, simpleng pagsasalita, ang panlabas na shell ng mga programa o mga site, na ginagawang mas madaling gamitin ang mga ito.

Umaasa ako na pagkatapos basahin ang artikulo, wala ka nang mga katanungan. Sa anumang kaso, payagan kang mag-imbita sa iyo sa mga komento upang mabawasan sa paksang ito sa iba pang mga mambabasa ng blog Ktonanovenkogo.ru.

At upang pagsamahin ang kaalaman, iminumungkahi ko na manood ng isang video tungkol sa bagong interface para sa Android mula sa Samsung:

Good luck sa iyo! Nakakakita ng mabilis na mga pulong sa mga pahina ng Ktonanovenkogo.ru.

Karamihan sa mga modernong interface ay dinisenyo para sa mga nakaranasang gumagamit. Ang mga cranes ay hindi rin agad naging pamilyar. Dati, ang mga gilid ng switch ay tiyak na may label na pula at asul - upang maging malinaw kung saan ito ay malamig, at kung saan mainit na tubig. Ngayon kami ay bihasa, at higit pa at higit pang mga cranes ay inilabas nang walang label. Marahil, sa wakas ay naalaala nila kung aling bahagi ang dumadaloy.

Sa mga interface ng web ito ay tungkol sa parehong. Sa simula ng zero, may isang skiorphism - ang mga graphics ay tinutuluyan ang tunay na mga bagay sa mundo. Kung ang site ay ang pindutan, mukhang isang real volumetric button. Ito ay maliwanag sa karamihan sa mga tao na bumili ng kanilang unang mga computer.

Ngunit ang sandali ay dumating kapag ang mga bagong gumagamit ay naging mas mababa. Sinuman na gustong simulan ang paggamit ng isang computer at ang Internet ay pinagkadalubhasaan sa teknolohiya. At ang pangangailangan para sa makatotohanang mga interface ay unti-unting nawala.

Ngayon, sa halip na ang detalyadong "menu" na icon, ang tinatawag na burger ay karaniwang ginagamit sa lagda - tatlong pahalang na piraso. At alam namin ang perpektong kung ano ang ibig sabihin nito. Alam din namin na ang mga site ay karaniwang binabasa mula sa itaas hanggang sa ibaba. At hindi kailangan ang anumang mga arrow upang ipaliwanag. Ang mga modernong interface ay dinisenyo para sa mga nakaranasang gumagamit at mas maikli.

Mga Programa

Ang interface ay maaaring isaalang-alang ng isang uri ng kontrata sa pagitan ng sistema at isang panlabas na kapaligiran. Bilang bahagi ng programa ng computer, ang sistema ay ang pag-andar o module, at ang "kapaligiran" ay ang natitirang bahagi ng proyekto. Ang interface ay pormal na naglalarawan kung anong data ang maaaring ipadala sa pagitan ng sistema at sa kapaligiran. At "pagpapatupad" ay maaaring inilarawan bilang "minus interface system." Sa mga wika tulad ng mga interface ng Haskell ay maaaring maging lubhang tiyak. At sa mga wika tulad ng Python, sila, sa kabaligtaran, ay napaka-ordinaryong. Ang napiling uri ng interface ay maaaring makaapekto sa laki ng nilikha na teknikal na utang at ang pagganap ng programmer. Paano upang makalkula ito ay nakasulat sa ibaba. Ang isang paraan ay iminungkahi din para sa pagsusuri at paghahambing ng iba't ibang mga interface. Batay sa mga paghahambing na ito, maaari mong panoorin ang kanilang sarili para sa paggamit ng wika o software tool.

Ang pinakamahalagang konsepto sa pag-unlad ng software - konsepto

Interface

. Ang artikulong ito ay hindi tungkol sa mga interface ng Java, ngunit tungkol sa mga interface sa disenyo ng software. At sa isang mas maliit na lawak - sa mga interface sa nakapalibot na mundo. Siyempre, maraming iba pang mahahalagang konsepto ang ginagamit sa pagpapaunlad ng software, ngunit naniniwala ako na ang karamihan sa kanila ay sa paanuman depende sa kahalagahan ng interface.

Ano ang interface?

Karamihan sa atin ay pamilyar sa dalawang maikling formulations:

Ang interface ay isang kontrata sa pagitan ng sistema at isang panlabas na kapaligiran. Ang interface ay isang sistema ng pagpapares na may panlabas na kapaligiran.

Interface = system ∩ paligid

Ang kahulugan na may pagpapares ay angkop, kung ang sistema ay isang pisikal na bagay. Ang parehong mga kahulugan ay napaka-abstract, kaya isaalang-alang ang mga ito sa halimbawa ng pag-print sa keyboard:

Narito ang sistema ay isang laptop, ang kapaligiran - mga kamay (pati na rin ang mga paws ng pusa, akyatin sa keyboard). Dahil dito, ang interface ay dapat na anumang bahagi ng pakikipag-ugnayan sa pagitan ng mga kamay at isang laptop, na hindi maaaring maiugnay lamang sa ilan sa mga partido, ngunit lamang sa pareho. Karaniwan sa tingin namin tungkol sa mga kamay at ang keyboard ay hiwalay, upang ang eksaktong mga hangganan ng interface sa kasong ito ay ang paksa ng pilosopiko pagtatalo. Nagpasya ka: kung ito ay ang keyboard bilang isang buo o indibidwal na atoms na nakikipag-ugnayan sa bawat isa kapag ang mga daliri at key ay nakikipag-ugnay.

Marahil, ikaw ay mabigla kung paano nakaugnay ang halimbawang ito sa kahulugan ng interface bilang isang kontrata. Sa kasong ito, ang kasunduan ay sinadya ng isang kasunduan na sa oras na ginugol namin ang sapat na pagsisikap kapag naalala nila ang lokasyon ng mga susi at ang memorya ng kalamnan ay reworked. Ang isang bilang ng mga nuances ay nauugnay sa kasunduan. Halimbawa, ang pagpindot at pagpindot sa key ay may iba't ibang halaga kumpara sa isang simpleng isang beses na pindutin.

Ang lahat ng ito ay kakaiba pilosopiko pangangatuwiran, ngunit paano sila nauugnay sa pagsulat ng software? Well, magsimula tayo sa katotohanan na ang mga interface sa programming ay nakapaligid sa iyo mula sa lahat ng panig, kahit na hindi mo binibigyang pansin ito. Halimbawa, kung ikaw ay programming sa Java, pagkatapos ay malinaw na pangalanan ang mga interface depende sa kanilang layunin. At sa iba pang mga wika, naroroon din sila. Isaalang-alang natin ang isang halimbawa ng isang pag-andar ng interface

:

add_numbers. 

unsigned int, unsigned int); void other_function (void) {add_numbers (3.4)} unsigned int add_numbers (unsigned int a, unsigned int pangunahing (void) {add_numbers (9.99) {add_numbers (9.99); Bumalik 0;}

Ilapat ang parehong pamamaraan ng pagkita ng kaibhan

Pantalon

Ang lahat ng ito ay kakaiba pilosopiko pangangatuwiran, ngunit paano sila nauugnay sa pagsulat ng software? Well, magsimula tayo sa katotohanan na ang mga interface sa programming ay nakapaligid sa iyo mula sa lahat ng panig, kahit na hindi mo binibigyang pansin ito. Halimbawa, kung ikaw ay programming sa Java, pagkatapos ay malinaw na pangalanan ang mga interface depende sa kanilang layunin. At sa iba pang mga wika, naroroon din sila. Isaalang-alang natin ang isang halimbawa ng isang pag-andar ng interface

Upang ilarawan ang kapaligiran, mga sistema

at interface:

Ang lahat ng ito ay kakaiba pilosopiko pangangatuwiran, ngunit paano sila nauugnay sa pagsulat ng software? Well, magsimula tayo sa katotohanan na ang mga interface sa programming ay nakapaligid sa iyo mula sa lahat ng panig, kahit na hindi mo binibigyang pansin ito. Halimbawa, kung ikaw ay programming sa Java, pagkatapos ay malinaw na pangalanan ang mga interface depende sa kanilang layunin. At sa iba pang mga wika, naroroon din sila. Isaalang-alang natin ang isang halimbawa ng isang pag-andar ng interface

Ang sistema sa pagsasaalang-alang dito ay binubuo ng isang function

. Kung sasabihin mo na maaari mong isaalang-alang bilang isang hiwalay na pangunahing paraan ng sistema -

Iba pang_function.

Ang lahat ng ito ay kakaiba pilosopiko pangangatuwiran, ngunit paano sila nauugnay sa pagsulat ng software? Well, magsimula tayo sa katotohanan na ang mga interface sa programming ay nakapaligid sa iyo mula sa lahat ng panig, kahit na hindi mo binibigyang pansin ito. Halimbawa, kung ikaw ay programming sa Java, pagkatapos ay malinaw na pangalanan ang mga interface depende sa kanilang layunin. At sa iba pang mga wika, naroroon din sila. Isaalang-alang natin ang isang halimbawa ng isang pag-andar ng interface

- Pagkatapos ay tama ka. Ngunit para sa pagiging simple, isinasaalang-alang namin ang isang function

Ang lahat ng ito ay kakaiba pilosopiko pangangatuwiran, ngunit paano sila nauugnay sa pagsulat ng software? Well, magsimula tayo sa katotohanan na ang mga interface sa programming ay nakapaligid sa iyo mula sa lahat ng panig, kahit na hindi mo binibigyang pansin ito. Halimbawa, kung ikaw ay programming sa Java, pagkatapos ay malinaw na pangalanan ang mga interface depende sa kanilang layunin. At sa iba pang mga wika, naroroon din sila. Isaalang-alang natin ang isang halimbawa ng isang pag-andar ng interface

.

ISOLATED SYSTEM. Iminumungkahi din na isaalang-alang ang bahagi ng interface ng conversion sa

Tulad ng makikita mo, ang ikaapat na konsepto ay idinagdag dito: "Pagpapatupad". Medyo mahirap na talakayin ang paksa ng mga interface nang hindi isinasaalang-alang ang mga partikular na pagpapatupad. Tukuyin natin ang terminong ito: Ang pagpapatupad ay isang minus interface system. Pagpapatupad = System ∖ interface

Pagpapatupad = sistema ∖ (sistema ∩ kapaligiran)

Dapat kong aminin na hindi ako nagkaroon ng ganitong kahulugan ng pagpapatupad bago. Ngunit ito ay isang hindi maiiwasang extension ng isang hanay ng mga kahulugan ng interface na may isang bilang ng mga pakinabang. Kung ikaw ay isang mahinang mag-aaral at maghanda para sa pagsusulit, malamang na ang iyong guro ay hindi kailanman narinig ng kahulugan na ito. Hindi ako mabigla kung ito ay sumasalungat sa anumang taxonomy ng object-oriented programming. Ngunit kahit na sa kasong ito, hindi ko ito babaguhin. Hayaan ang mga tagahanga ng oop muling isulat ang kanilang mga abstracts alinsunod sa aking kahulugan.

Ito naman, ay humahantong sa atin sa susunod na lohikal na konklusyon: Kapag pinag-uusapan natin ang mga interface ng pisikal na sistema, karaniwan nating iniisip ang "pagpapatupad" ng sistemang ito sa anyo ng isang pisikal na bagay. Pagkatapos ng lahat, ito ay kakaiba upang isaalang-alang ang "tunay" pagpapatupad nang hindi isinasaalang-alang ang mga pindutan, nagpapakita o iba pang mga bahagi. At tinutulak ito sa amin upang isaalang-alang ang interface nang higit pa bilang isang "kasunduan", at hindi isang kumbinasyon ng mga pisikal na bagay. Iyon ay, sa anyo ng isang hanay ng mga pangako, garantiya o isang bagay tulad ng ...

.

kontrata sa pagitan ng sistema at sa kapaligiran

Interface bilang kontrata

Ang lahat ng ito ay kakaiba pilosopiko pangangatuwiran, ngunit paano sila nauugnay sa pagsulat ng software? Well, magsimula tayo sa katotohanan na ang mga interface sa programming ay nakapaligid sa iyo mula sa lahat ng panig, kahit na hindi mo binibigyang pansin ito. Halimbawa, kung ikaw ay programming sa Java, pagkatapos ay malinaw na pangalanan ang mga interface depende sa kanilang layunin. At sa iba pang mga wika, naroroon din sila. Isaalang-alang natin ang isang halimbawa ng isang pag-andar ng interface

Kung isaalang-alang mo ang interface ng pag-andar

  • Sa anyo ng isang kontrata, ang mga garantiya ay magiging tulad: Ang lahat ng ito ay kakaiba pilosopiko pangangatuwiran, ngunit paano sila nauugnay sa pagsulat ng software? Well, magsimula tayo sa katotohanan na ang mga interface sa programming ay nakapaligid sa iyo mula sa lahat ng panig, kahit na hindi mo binibigyang pansin ito. Halimbawa, kung ikaw ay programming sa Java, pagkatapos ay malinaw na pangalanan ang mga interface depende sa kanilang layunin. At sa iba pang mga wika, naroroon din sila. Isaalang-alang natin ang isang halimbawa ng isang pag-andar ng interface Function.
  • Ang lahat ng ito ay kakaiba pilosopiko pangangatuwiran, ngunit paano sila nauugnay sa pagsulat ng software? Well, magsimula tayo sa katotohanan na ang mga interface sa programming ay nakapaligid sa iyo mula sa lahat ng panig, kahit na hindi mo binibigyang pansin ito. Halimbawa, kung ikaw ay programming sa Java, pagkatapos ay malinaw na pangalanan ang mga interface depende sa kanilang layunin. At sa iba pang mga wika, naroroon din sila. Isaalang-alang natin ang isang halimbawa ng isang pag-andar ng interface umiiral. Mayroon lamang dalawang parameter, ang bawat isa ay hindi linagdaan .
  • Ang lahat ng ito ay kakaiba pilosopiko pangangatuwiran, ngunit paano sila nauugnay sa pagsulat ng software? Well, magsimula tayo sa katotohanan na ang mga interface sa programming ay nakapaligid sa iyo mula sa lahat ng panig, kahit na hindi mo binibigyang pansin ito. Halimbawa, kung ikaw ay programming sa Java, pagkatapos ay malinaw na pangalanan ang mga interface depende sa kanilang layunin. At sa iba pang mga wika, naroroon din sila. Isaalang-alang natin ang isang halimbawa ng isang pag-andar ng interface int. Mayroon lamang dalawang parameter, ang bawat isa ay hindi linagdaan .

Nagbabalik lamang ng isang unsigned

  • Ang interface ng function na ito ay hindi nagsasabi sa amin ng anumang bagay: Ang lahat ng ito ay kakaiba pilosopiko pangangatuwiran, ngunit paano sila nauugnay sa pagsulat ng software? Well, magsimula tayo sa katotohanan na ang mga interface sa programming ay nakapaligid sa iyo mula sa lahat ng panig, kahit na hindi mo binibigyang pansin ito. Halimbawa, kung ikaw ay programming sa Java, pagkatapos ay malinaw na pangalanan ang mga interface depende sa kanilang layunin. At sa iba pang mga wika, naroroon din sila. Isaalang-alang natin ang isang halimbawa ng isang pag-andar ng interface ;
  • Sa pagkagambala ng pagpapatupad Ang lahat ng ito ay kakaiba pilosopiko pangangatuwiran, ngunit paano sila nauugnay sa pagsulat ng software? Well, magsimula tayo sa katotohanan na ang mga interface sa programming ay nakapaligid sa iyo mula sa lahat ng panig, kahit na hindi mo binibigyang pansin ito. Halimbawa, kung ikaw ay programming sa Java, pagkatapos ay malinaw na pangalanan ang mga interface depende sa kanilang layunin. At sa iba pang mga wika, naroroon din sila. Isaalang-alang natin ang isang halimbawa ng isang pag-andar ng interface ;
  • tungkol sa asymptotic complexity ng ranktime Ang lahat ng ito ay kakaiba pilosopiko pangangatuwiran, ngunit paano sila nauugnay sa pagsulat ng software? Well, magsimula tayo sa katotohanan na ang mga interface sa programming ay nakapaligid sa iyo mula sa lahat ng panig, kahit na hindi mo binibigyang pansin ito. Halimbawa, kung ikaw ay programming sa Java, pagkatapos ay malinaw na pangalanan ang mga interface depende sa kanilang layunin. At sa iba pang mga wika, naroroon din sila. Isaalang-alang natin ang isang halimbawa ng isang pag-andar ng interface ;
  • Sa bilang ng libreng memorya na kinakailangan upang magsimula Mayroon lamang dalawang parameter, ang bawat isa ay hindi linagdaan ;
  • Tungkol sa partikular na pagpapatupad ng unsigned.

Sa mga epekto (paglalaan ng memorya, pagbabago ng mga pandaigdigang variable).

Ang lahat ng ito ay kakaiba pilosopiko pangangatuwiran, ngunit paano sila nauugnay sa pagsulat ng software? Well, magsimula tayo sa katotohanan na ang mga interface sa programming ay nakapaligid sa iyo mula sa lahat ng panig, kahit na hindi mo binibigyang pansin ito. Halimbawa, kung ikaw ay programming sa Java, pagkatapos ay malinaw na pangalanan ang mga interface depende sa kanilang layunin. At sa iba pang mga wika, naroroon din sila. Isaalang-alang natin ang isang halimbawa ng isang pag-andar ng interface

Ang interface na inilarawan sa itaas

na kilala sa ilalim ng uri ng pag-andar

Prototipo.

. Sa mga nakaraang bersyon ng K & R C, isang weaker form ng paglalarawan ng mga interface ay ginamit:

unsigned int add_numbers ();

Kahulugan ng interface bilang isang kontrata ay napaka-maginhawa para sa programming. Pagkatapos ng lahat, ang karamihan sa mga gawain ng programmer ay binubuo sa pagtukoy at paghiling ng mga hanay ng mga axiom. Ang mga pangunahing at huling kondisyon ay nagbibigay ng ilang mga katangian o pag-uugali. Bago ang dalawang partido ay itali ang isang relasyon sa negosyo sa bawat isa, inihanda nila ang kontrata. Binuo nito ang huling resulta, ang halaga at timeline ng pagbabayad. Ipinaliwanag din nito ang mga kondisyon para sa maagang pagwawakas, pagbabayad at gastos. Kung lumabag ang kontrata, ang sitwasyon ay nag-convert ng korte o arbitrasyon. Ngunit kung nakalimutan mo ang isang bagay upang tukuyin sa kontrata, ang mga sorpresa ay maaaring lumabas.

Sa mga programang computer ang lahat ng pareho. Sinasabi ng mga module at function na kailangan nila at (kung minsan) kung ano ang ibibigay sa kanila. Ang paglabag sa kontrata na ito ay hahantong sa isang error sa compilation, sa isang error ng pagpapatupad, sa kabiguan ng application, system, ang mga tool sa kontrol ng kalidad at ang pamumuno ng manwal. Gusto ko kahit na sabihin na ang kahulugan ng interface bilang isang kontrata ay hindi metaphorical. Narito ang parehong mga prinsipyo tulad ng sa komersyal na kontrata, bagaman hindi ito detalyado.

Patent, copyright at interface

Hindi kita magbibigay sa iyo ng payo sa larangan ng batas. Marahil ang isang bagay mula sa akin ay nagsabi kahit na salungat ang mga batas. Ang lahat ng mga sumusunod ay pribadong opinyon ng may-akda.

Kaya, ako ay may hilig

literal.

Isaalang-alang ang interface bilang isang "komersyal na kontrata" sa pagitan ng dalawang entidad. Bigyang-diin ko - hindi ko ito itinuturing na isang metapora. Natutugunan ko lalo na ang interpretasyon na ito ng mga espesyalista sa teorya ng computing machine at protesters ng copyright.

Dapat ba ang patent ng interface? Dahil sa kanyang kahulugan bilang isang kontrata sa pagitan ng sistema at sa kapaligiran, naniniwala ako na ang paggamit ng mga patente ay isang pagkakamali. At, tila, ang umiiral na batas ng kaso ay sumusuporta sa aking posisyon. Ngunit tandaan na ang salitang "interface" ay malawakang ginagamit, at kadalasan sa kahulugan, tulad ng inilarawan ko sa itaas.

Dapat ko bang protektahan ang interface sa pamamagitan ng copyright? Muli, binigyan ang "kontraktwal" na kalikasan, naniniwala ako na ang "source code" ng interface ay dapat na ang layunin ng copyright. Kasabay nito, ang copyright ay hindi dapat ilapat sa mga aspeto ng mga interface na gumawa ng mga ito espesyal. Ito ay sapat na upang protektahan ang source code o isang sulat-kamay na imahe, ngunit hindi warranty o limitasyon. Kung ang mga paghihigpit sa warrandy o interface ay hindi mapaghihiwalay mula sa alinman sa mga bahagi ng code nito, ang mga bahagi na ito ay dapat na bawiin ng karapatan ng proteksyon.

Ipinapanukala ko ang isang simpleng pagsubok na nagbibigay-daan sa iyo upang pahalagahan kung kinakailangan upang maprotektahan ang copyright.

Kung nais mong protektahan ang ilang uri ng set ng katangian, kabilang ang anumang mga bahagi mula sa isang third party, sa anumang paraan na ginagamit ng interface, maaari kang laging lumikha ng angkop na kapalit. Ang kapalit ay nagpapatupad ng parehong interface at matagumpay na ginagamit sa software mula sa isang third party, nang walang anumang pagbabago ng software na ito mismo, pati na rin nang walang paglabag sa anumang copyright. Kung ang anumang kapalit ay hahantong sa paglabag sa copyright, o magpahiwatig ng pagbabago ng software mula sa isang third party, o lumala ang pag-andar, pagkatapos ay ang attribute set ay masyadong agresibo at dapat mabawasan.

Naniniwala ako na sa tulong ng pagsusulit na ito, maipapayo na suriin kahit sa patentability. PAKITANDAAN: Ang layunin ng pagsubok ay upang matukoy ang labis

Inapplition.

Proteksyon ng copyright o patent. Hindi siya makakatulong sa pagtugon

sundin

I-proteksyon. Bilang karagdagan, ang pagsusuring ito ay ang aking opinyon, at hindi isang regulatory act o batas.

Gusto ko ring tandaan na ang anumang criterion na itinuturing bilang bahagi ng interface sa parehong wika ay maaaring hindi na sa ibang wika. Halimbawa, sa Java, ang pamamaraan para sa pagdeklara ng mga function ay hindi nakakaapekto sa pagpapatupad ng programa. At kung hindi mo sinasadya sabihin na ang pagkakasunud-sunod ng mga function sa file ay hindi mahalaga, ito ay isang error na may kaugnayan sa programa sa Python: 

Def Foo (): I-print ("ASDF") Def Foo (ABC): Print (ABC) Foo ("lol")

Ang lahat ng mga pag-uusap tungkol sa mga batas ay nagpapaalala sa akin

Oracle laban sa Google.

. Ayon sa ibinigay na link, maaari kang makahanap ng mga kagiliw-giliw na detalye para sa mga developer, kaya ako ay umaasa sa mga ito sa aking pagtatasa. Dahil sa lahat ng aspeto, hindi ko nakikita ang mga dahilan upang hindi sumasang-ayon sa desisyon ng kaso na pabor sa Oracle. Hindi ko masasabi na hindi nila sinusuportahan ang mga ito, dahil hindi tayo magagamit hindi maraming bahagi ng mga paglilitis.

Sa tingin ko maraming nag-aalala na ang isang precedent ay malilikha, na nagpapahintulot sa mga elemento ng interface upang protektahan ang patent o copyright. Ang kaso kung saan ang aking pagsubok ay hindi maipasa. Ang Distrito ng Korte ay gumawa ng desisyon: "Ang istraktura, pagkakasunud-sunod at arkitektura ng API ay maaaring protektado ng copyright." Hindi ko iniisip na ito ay isang problema, dahil ang "istraktura, pagkakasunud-sunod at arkitektura" sa kahulugan nito ay ganap na dumaan sa aking pagsubok. Magbibigay ako ng ilang mga sipi mula sa artikulo sa link sa itaas:

"Napagpasyahan ng Hukuman ng Distrito na" mayroon lamang isang paraan ng pagsulat "Mga ad para sa pakikipag-ugnay sa Java. Kung gayon, ang paggamit ng parehong mga ad ay hindi napapailalim sa copyright. Hindi pinagtatalunan ng Google ang katotohanang maaari nilang isulat ang kanilang sariling mga API upang ma-access ang Java, maliban sa tatlo. " Sa wakas, "sa Google ang nakilala na literal na kinopya nila ang mga ad."

Sa palagay ko tinanggap ng korte ang tamang desisyon, na tinatapos na ang mga natatanging katangian ng interface ay hindi dapat protektado. Bilang karagdagan, kinikilala ng Google ang "literal" na pagkopya. Kung nangangahulugan ito ng copypasting, kabilang ang lahat ng mga gaps at spelling error sa mga komento, pagkatapos ay isaalang-alang ko ito ng isang paglabag sa mga karapatan. Kahit na ang interface ay hindi maaaring protektado, hindi ito dapat makagambala sa proteksyon ng indibidwal na creative expression.

Alam ko ang tungkol sa paglilitis na ito lamang mula sa mga bukas na pinagkukunan ng network, ngunit, tila, ang orihinal na Java code ay ganap na kinopya sa Google, kabilang ang mga interface. Tila na sila mismo ay naniniwala na ito ay kinakailangan upang lisensiyahan ang kanilang paggamit ng Java, dahil ito ay ang paksa ng negosasyon sa mga kasunduan sa paglilisensya sa Sun bago 2010. Ngunit nabigo ang mga kasunduang ito pagkatapos ng araw ay binili ng Oracle. Gayunpaman, patuloy na ginagamit ng Google ang mga "literal" na mga kopya ng code, na malinaw na hindi pumunta sa kanyang benepisyo sa pagsubok. Pinaghihinalaan ko na alam ng kanilang mga abogado ang tungkol sa kahinaan ng kanilang posisyon, kaya pinili nila ang isang diskarte sa proteksyon batay sa lehitimong pangangailangan para sa di-paglaganap ng copyright sa mga interface. Inaasahan nilang manalo sa kaso sa kapinsalaan ng representasyon ng interface sa anyo ng source code at ang pagsasamahan nito sa isang mas pilosopiko na konsepto.

Ano ang "module", o "abstraction"?

Gamit ang salitang "module" sa aking ulo mayroong isang capital picture ng post. Ang ilustrasyong ito ay nagpapakita ng kahalagahan ng mga hangganan ng modyul at pakikipag-ugnayan nito sa kapaligiran. Ang interface ng kubo ay matigas na naglilimita sa pakikipag-ugnayan ng panlabas na kapaligiran sa mga nilalaman ng kubo. Hindi mo magagawang i-bypass ang interface, kaya kailangan mong panatilihin ang "mga panuntunan ng laro" na ipinataw dito. Sa wakas, wala sa loob ng kubo, ngunit hindi mahalaga: ito ay mahalaga hindi ang mga nilalaman nito, kundi isang interface.

Isa pang halimbawa: ang istraktura ng lamad ng cell. Iba't ibang mga bahagi ang nagbibigay lamang ng mga kinakailangang sangkap sa pamamagitan ng lamad at tanging kapag kinakailangan.

Sa konteksto ng artikulong ito, gagamitin ko ang mga salitang "modules" at "abstraction" bilang mga kasingkahulugan. Siyempre, ang paliwanag ng diksyunaryo ay hindi sumasang-ayon sa akin, at kahit na sa iba't ibang mga programming language, ang mga tuntuning ito ay may iba't ibang kahulugan. Ngunit sa kasong ito, interesado lang ako sa katotohanan na ang parehong mga entidad ay maaaring matingnan bilang isang sistema na nauunawaan sa artikulong ito. Iyon ay, ang mga abstraksiyon at mga module ay maaaring binubuo ng isang interface at pagpapatupad.

Maaari mong basahin ang isang hiwalay na function ng module sa C, "module" - sa Python, Class o Package - sa Java. Isang bagay, kung mayroon lamang itong panlabas na interface at "nakatagong" pagpapatupad. Bukod dito, maaaring may kinahinatnan ng mga alituntunin ng wika o kahit na desisyon ng programmer.

Drying abstraction.

Bilang alam ko, ang ideya

Dumpy abstractions ilagay forward joel spolski

. Sa kanyang sanaysay ay may ilang mabubuting halimbawa, ngunit nais kong dalhin ang sarili ko. Sa programming, ang konsepto ng "Maps" ay madalas na nakatagpo: na kumakatawan sa istraktura ng data na binubuo ng mga pares ng mga susi at mga halaga. Mahalagang limitasyon: Tinitiyak ng card na ang lahat ng mga susi ay dapat na natatangi. Ang isang pagtatangka na mag-record ng isang bagong halaga para sa isang umiiral na key ay magreresulta sa isang error o i-overwrite ang nakaraang halaga. Ang ilalim na linya ay ang mga susi ay hindi dapat na duplicate. Kadalasan, ang mga programmer ay nangangailangan ng pagnanais na pag-uri-uriin ang lahat ng mga susi na ito. At dahil ang mga mapa ay hindi magagarantiyahan ng isang tiyak na pagkakasunud-sunod ng mga pag-uuri ng mga susi, kung minsan ay kinakailangan upang magtaka sa kung anong pagkakasunud-sunod sila ay pagkatapos ng busting? Ito ang kinahinatnan ng katotohanan na ang interface ng card ay hindi pinapayagan ang mga garantiya ng pag-uuri. At kahit na ito ay pinaniniwalaan na hindi mahalaga, ngunit sa pagsasanay, gusto ko pa rin upang uriin. Kaya ito ay kinakailangan para sa isang mas mahusay na data organisasyon, halimbawa, upang mapadali ang pagpapatunay ng mga umiiral na mga susi.

Ang pinagsunod-sunod na data ng malupit na puwersa ay maaaring magbigay ng isang ganap na iba't ibang resulta kumpara sa random na data na napakalaki. Ipagpalagay na kailangan mong mahanap ang minimum na halaga sa listahan: 

min = null; listahan = mapa.getMapkeys (); para sa (item sa listahan) {kung (min == null) {min = item} else kung (item <min) {min = min; / * Ang linyang ito ay may bug * /}}

Branch.

Iba pa kung.

Hindi ito isasagawa kung ang data ay pinagsunod-sunod na pataas. Kahit na simulan mo ang pag-check mula sa isang random na lokasyon ng listahan, ang programa ay hindi kailanman sumalungat sa string na ito. At ito ay isang malaking problema, dahil kung binago mo ang pagpapatupad ng card at hindi ito babalik na pinagsunod-sunod na mga key, pagkatapos ay biglang gumanap ang iyong code sa isang bug bug. At sa oras na malilimutan mo ang tungkol sa code na ito at nakatago ang bomba sa loob nito.

Gusto kong mag-alok ng sarili kong kahulugan ng pagtagas ng abstraction.

Ang abstraction leak (abstract leak) ay tinatawag na sitwasyon kapag ang pagpapatupad ay maaaring makaapekto sa kapaligiran dahil hindi ito ibinigay sa pamamagitan ng interface.

Ayon sa kahulugan na ito,

Halos lahat

Abstraction - paghinga. Pagkatapos ng lahat, ang paglalarawan sa interface ng lahat ng uri ng epekto sa kapaligiran ay may katuturan lamang sa pinakamahigpit na sistema ng matematika. At para sa mga pisikal na sistema, maaari kang matandaan

.

Teorama gödel tungkol sa hindi kumpleto

Ang ideya ng mga butas ng karamihan sa mga abstraction ay hindi makatuwiran. Nangangahulugan ito kay Joel Spolski sa kanyang "batas ng leaky abstracts":

"Ang lahat ng di-maliit na abstraksiyon ay isang holey sa isang tiyak na lawak."

Kapag ang lahat ng abstraksiyon ay nakahilig, ano ang dapat pag-usapan? Ang mga problema ay lumitaw lamang kapag ang isang bahagi ng kapaligiran ay nagsisimula sa umaasa sa isa sa mga hindi inaasahang paraan ng pagkakalantad sa sistema. Ito ay tungkol sa naturang mga paglabas na sinasabi ng lahat.

Ito ay humahantong sa malalawak na kahihinatnan, hindi lamang mula sa pananaw ng mga ordinaryong bug, kundi pati na rin sa larangan ng seguridad. Na may mga pisikal na sistema kung saan may mga paglabas sa labas ng kapaligiran, ang pag-kompromiso sa seguridad, ang terminong "

Side Channel Attack.

" Sa kumbinasyon ng isang pahayag na ang lahat ng mga abstraksiyon ng mga butas, ito ay humahantong sa amin sa konklusyon:

Ang bawat pisikal na pagpapatupad ng cryptosystem ay mahina sa pag-atake ng third-party.

Dahil sa lahat ng nasa itaas, ang ideyang ito ay maaaring pahabain hindi lamang sa pisikal, kundi pati na rin sa mga emulated na pagpapatupad.

Pagsusuri at paghahambing ng mga interface

Tulad ng nakita na namin sa itaas, sa mga interface sa C ay nagtatakda tulad ng uri ng halaga ng pagbalik at ang bilang ng mga parameter na maaaring maipadala. Ano ang tungkol sa python? Ginagamit ko ang terminong "interface" alinsunod sa konteksto ng artikulo, iyon ay, sa isang mas malawak na kahulugan kumpara sa kung ano ang isulat nila sa mga aklat tungkol sa "mga interface" sa Python. 

Def add_numbers (a, b): bumalik a + bprint (add_numbers (3,1)) I-print (add_numbers ("abc", "def"))

Sa wikang ito, kailangan nating gawing pormal ang mga uri ng interface ng pag-andar. Pinapasimple nito ang kahulugan at pag-andar ng tawag, dahil kinakailangan upang maproseso ang mas kaunting impormasyon. Sa kabilang banda, ang mga paghihigpit na maaari mong isagawa ang tseke para sa paghahanap para sa mga error mas mababa.

Ang lahat ng ito ay kakaiba pilosopiko pangangatuwiran, ngunit paano sila nauugnay sa pagsulat ng software? Well, magsimula tayo sa katotohanan na ang mga interface sa programming ay nakapaligid sa iyo mula sa lahat ng panig, kahit na hindi mo binibigyang pansin ito. Halimbawa, kung ikaw ay programming sa Java, pagkatapos ay malinaw na pangalanan ang mga interface depende sa kanilang layunin. At sa iba pang mga wika, naroroon din sila. Isaalang-alang natin ang isang halimbawa ng isang pag-andar ng interface

Sa tingin ko kailangan mo ng isang bagay na sasabihin tungkol sa pagtatasa at paghahambing ng iba't ibang mga katangian ng interface mula sa punto ng view ng mga paraan ng paghahatid ng impormasyon. Maaari mong suriin ang parehong isang partikular na interface at isang hanay ng lahat ng mga interface na maaaring ipatupad sa wikang ito. Alalahanin natin ang ating halimbawa

At tinatantiya namin kung magkano ang impormasyon na maaari naming ipasa sa pamamagitan ng interface at pag-bypass ito, sa tulong ng mga paglabas ng abstraction. Sa pamamagitan ng interface
Sa pamamagitan ng pagpunta sa paligid ng interface Paglalarawan ng Mga Katangian Sa pamamagitan ng pagpunta sa paligid ng interface Paglalarawan ng Mga Katangian
Bilang ng mga posibleng estado Uri ng parameter 1. 1 (unsigned int) Estado ng pandaigdigang variable
(Bilang ng mga global variable) * (bilang ng mga estado ng global variable) Uri ng parameter 1. Uri ng parameter 2. File system.
Bilang ng katayuan ng estado ng estado Uri ng parameter 1. Uri ng ibinalik na halaga Oras ng paggamit ng processor.
Hindi limitado Halaga ng parameter 1. 2 ^ (count in unsigned int) Estado ng Kuchi.
Bilang ng mga estado Halaga ng parameter 1. Halaga ng parameter 2. Marami pang iba ...
... Halaga ng parameter 1.

Return value.

Ang lahat ng ito ay kakaiba pilosopiko pangangatuwiran, ngunit paano sila nauugnay sa pagsulat ng software? Well, magsimula tayo sa katotohanan na ang mga interface sa programming ay nakapaligid sa iyo mula sa lahat ng panig, kahit na hindi mo binibigyang pansin ito. Halimbawa, kung ikaw ay programming sa Java, pagkatapos ay malinaw na pangalanan ang mga interface depende sa kanilang layunin. At sa iba pang mga wika, naroroon din sila. Isaalang-alang natin ang isang halimbawa ng isang pag-andar ng interface

At mayroong maraming mga bagay na maaaring makipag-usap

sa pamamagitan ng interface ng Python. Impormasyon sa paghahatid sa pamamagitan ng interface ng Python
Sa pamamagitan ng pagpunta sa paligid ng interface Paglalarawan ng Mga Katangian Sa pamamagitan ng pagpunta sa paligid ng interface Paglalarawan ng Mga Katangian
Bilang ng mga posibleng estado Paglipat ng impormasyon sa pamamagitan ng interface ng Python 1 (unsigned int) File system.
(Bilang ng mga global variable) * (bilang ng mga estado ng global variable) Paglipat ng impormasyon sa pamamagitan ng interface ng Python Uri ng parameter 2. Oras ng paggamit ng processor.
Bilang ng katayuan ng estado ng estado Paglipat ng impormasyon sa pamamagitan ng interface ng Python Uri ng ibinalik na halaga Estado ng Kuchi.
Hindi limitado Paglipat ng impormasyon sa pamamagitan ng interface ng Python 2 ^ (count in unsigned int) Marami pang iba ...
Bilang ng mga estado Paglipat ng impormasyon sa pamamagitan ng interface ng Python Halaga ng parameter 2. Estado ng pandaigdigang variable
... Paglipat ng impormasyon sa pamamagitan ng interface ng Python

Halos walang katapusan

At ngayon tingnan ang bilang ng mga uri ng interface na maaari naming ilarawan sa Haskell: 

Add_numbers :: int> int -> intadd_numbers 3 4 = 7main = print (add_numbers 3 4)

Ang lahat ng ito ay kakaiba pilosopiko pangangatuwiran, ngunit paano sila nauugnay sa pagsulat ng software? Well, magsimula tayo sa katotohanan na ang mga interface sa programming ay nakapaligid sa iyo mula sa lahat ng panig, kahit na hindi mo binibigyang pansin ito. Halimbawa, kung ikaw ay programming sa Java, pagkatapos ay malinaw na pangalanan ang mga interface depende sa kanilang layunin. At sa iba pang mga wika, naroroon din sila. Isaalang-alang natin ang isang halimbawa ng isang pag-andar ng interface

Dahil sa code na ito, ang interface

Makakakuha ng sumusunod na impormasyon: Paglilipat ng impormasyon sa pamamagitan ng interface ng Haskell.
Sa pamamagitan ng pagpunta sa paligid ng interface Paglalarawan ng Mga Katangian Sa pamamagitan ng pagpunta sa paligid ng interface Paglalarawan ng Mga Katangian
Bilang ng mga posibleng estado Paghahatid ng impormasyon sa pamamagitan ng interface ng Haskell. Uri ng ibinalik na halaga Oras ng paggamit ng processor.
(Bilang ng mga global variable) * (bilang ng mga estado ng global variable) Paghahatid ng impormasyon sa pamamagitan ng interface ng Haskell. 1 (int) Oras ng paggamit ng processor.
Bilang ng katayuan ng estado ng estado Paghahatid ng impormasyon sa pamamagitan ng interface ng Haskell. Epekto sa cache ng processor / memory. Marami pang iba ...
Hindi limitado Iba pa ...
Bilang ng mga estado 1 (Halaga 3)
... 1 (Halaga 4)

Hindi bababa sa 2 ^ 30 [1]

  • Para sa isang partikular na interface sa iyong napiling wika, maaari mo ring suriin ang bilang ng mga natatanging paraan upang maglipat ng impormasyon:
  • sa pamamagitan ng interface;

Sa pamamagitan ng pagpunta sa paligid ng interface sa pamamagitan ng paglabas ng abstraction.

  • Maaari mo ring bigyang-pansin ang mga sumusunod:
  • Gaano karaming mga paghihigpit ang maaari mong gamitin sa loob ng wikang ito mula sa punto ng view ng minimum at maximum na bilang ng impormasyon na ipinadala sa pamamagitan ng interface;

Anong mga instrumento ang nagbibigay ng wikang ito upang maiwasan ang pakikipag-ugnayan sa interface bypass.

Mga Programa
Suriin natin sa ganitong paraan ang graphical user interface kung saan posible na baguhin ang mga folder: Pagpapadala ng impormasyon sa pamamagitan ng GUI.
Sa pamamagitan ng pagpunta sa paligid ng interface Paglalarawan ng Mga Katangian Sa pamamagitan ng pagpunta sa paligid ng interface Paglalarawan ng Mga Katangian
Paglipat ng impormasyon sa pamamagitan ng GUI. Mag-click sa folder 1. Bilang ng mga pixel sa screen na hawak ng folder 1 * Bilang ng mga pag-click Oras ng paggamit ng processor.
Nakatagong mga posibilidad na UI. Mag-click sa folder 2. Bilang ng mga pixel sa screen na hawak ng folder 2 * Bilang ng mga pag-click Di-karaniwang mabilis na mga kumbinasyon ng tawag
Bilang ng mga pixel sa screen na inookupahan ng pindutan 2 Guidance cursor sa folder 1. Bilang ng mga pixel sa screen na hawak ng folder 1 Marami pang iba ...
Iba pang hindi inaasahang kakayahan sa UI. Guidance cursor sa folder 2.
Bilang ng mga pixel sa screen na hawak ng folder 2 Oras sa pagitan ng patnubay at click.
Walang hanggan Mga karaniwang kaganapan sa keyboard
Bilang ng karaniwang mga pangunahing kumbinasyon Lugar ng screen na inookupahan ng GUI.

Bilang ng mga pixel na ginamit upang ipakita ang GUI.

At ngayon isaalang-alang ang parehong gawain ng pagbabago ng folder gamit ang command line at

:

Suriin natin sa ganitong paraan ang graphical user interface kung saan posible na baguhin ang mga folder: Pagpapadala ng impormasyon sa pamamagitan ng GUI.
Sa pamamagitan ng pagpunta sa paligid ng interface Paglalarawan ng Mga Katangian Sa pamamagitan ng pagpunta sa paligid ng interface Paglalarawan ng Mga Katangian
CD. Oras ng paggamit ng processor. Bilang ng mga pangalan ng folder na maaari mong i-dial Oras ng paggamit ng processor.

Variable na kapaligiran

Sa nakaraang dalawang talahanayan, hindi ko isinama ang data tulad ng bilang ng ingay sa signal. Kung ihambing mo ang pagiging kumplikado ng pag-uulit ng parehong pagkakasunud-sunod kapag pinindot mo ang mga key (isa-isa) at ang kilusan ng mouse (pixel sa likod ng pixel), ito ay malinaw na sa pangalawang kaso, ang mga pagkakamali ay higit pa. Sa mga graphical na interface, ito ay nabayaran para sa paggawa ng mas mahigpit na semantika. Isipin kung sa mga pindutan na "OK" at "Kanselahin" na magagamit sa mga pag-click sa zone ay 1 pixel width.

Posible upang mas kumplikado ang pag-aaral kung susuriin mo ang pagbabago sa bahagi ng mga error sa mga gumagamit na may pisikal na kapansanan.

  • Kaya, itinuturing namin ang isa sa mga posibleng paraan upang masuri at ihambing ang mga interface. Batay sa mga halimbawa sa itaas at ang kanilang sariling karanasan, hayaan mo akong gumawa ng ilang mga extrapolating:
  • Mas gusto ng mga tao ang mga interface na hindi masyadong mahigpit kapag tumatanggap ng impormasyon, lalo na kung ang interface ay hindi pamilyar.
  • Hindi masyadong mahigpit na mga interface ay mas madalas na ginagamit nang hindi tama.
  • Ang mga komprehensibong interface na nagho-host ng malalaking halaga ng impormasyon ay napakalakas, ngunit kadalasang ginagamit nang hindi tama.
  • Kung ang pakikipag-ugnayan ay nagiging nakakapagod, ang mga tao ay nagsisikap na maglipat ng impormasyon sa bypass ng interface.

Kapag nakikipag-ugnayan, sa pamamagitan ng paglabas ng interface, sa pamamagitan ng paglabas ng abstraction, ang paglitaw ng mga hindi kasiya-siyang sorpresa ay malamang.

Drying at limitadong mga interface

Ilalarawan ko ang ilang mga obserbasyon batay sa pagtatasa mula sa nakaraang seksyon. Ngunit una ay magbibigay ako ng ilang mga kahulugan:

Ang leaky interface (leaky interface) ay isang interface na hindi pinansin sa anumang mga pakikipag-ugnayan sa pagitan ng sistema at sa kapaligiran.

Ang isang limitadong interface (partikular na interface) ay isang interface na may medyo maliit na bilang ng mga posibleng input at output.

Isang magandang halimbawa ng isang limitadong interface -

Piecewise tinukoy na mga function

tinukoy lamang para sa isang maliit na bilang ng data ng pag-input.

Kung maaari mong makatwirang suriin ang mga "butas" o "limitasyon" na mga interface, makatuwiran ang balangkas sa hanay, sa isang dulo ng kung saan ay limitado at hindi aktibo na mga interface, at sa iba pang - walang limitasyong at leaky.

Marahil ay nag-aalok ka ng isang tao upang ilipat sa kaliwa o kanan sa sukat, ngunit ang pinaka-mahalaga, grabbed mo ang ideya. Maaari mo ring basagin ang dalawang magkahiwalay na kaliskis: ayon sa antas ng mga butas at kahirapan. Kahit na sa pangkalahatan ang dalawang konsepto ay maayos na nauugnay.

Ang susunod na ugnayan na gusto kong mag-alok ay nagmula sa aking karanasan. Sa kaliwang gilid ng "error" scale ay mas karaniwan, at karaniwang lumalabas sila dahil sa pagkabigo

Pagpapatunay

.

. Sa kanang gilid ng error scale ay nangyayari nang mas madalas, at kadalasan ang kanilang dahilan ay nakasalalay sa mga pagkabigo kapag

pag-verify

Asymptotic kumplikado ng teknikal na utang.

Magsisimula ako sa pahayag:

Ang pangunahing bahagi ng teknikal na utang ay nagmumula sa proyekto o dahil sa hindi katanggap-tanggap na tulong sa pagtagas ng mga abstraction, o dahil sa sobrang hindi kapani-paniwalang mga interface, na lubhang kumplikado sa pagtataya ng mga kahihinatnan.

Sa pinakadulo simula, ang proyekto ay naglalaman ng isa o dalawang module, at pag-aralan ang isang mahusay na kasunduan sa interface, kakailanganin mong isagawa ang halaga ng trabaho sa (1). Kung ang iyong interface ay masama, ang dami ng teknikal na utang ay magiging katumbas din sa (1), kaya hindi ka na kailangang gumastos ng masyadong maraming oras sa pagdadala ng kontrata ng interface. Ngunit may isang linear na pagtaas sa halaga ng mga module, ang dami ng intermodulic bonds ay maaaring makamit o (n ^ 2). Samakatuwid, na may isang masamang interface, kung ang bawat module ay nakikipag-ugnayan sa lahat ng iba pang mga module, ang bilang ng mga apela sa interface sa pinakamasamang kaso ay magiging proporsyonal sa n ^ 2.

Tulad ng makikita mula sa mga graph, ito ay unang na-save sa paglikha ng isang mahusay na pag-iisip interface. Ngunit ang panalo na ito ay mabilis na nawala dahil sa pagtaas ng mga problema na nauugnay sa inter-module na pakikipag-ugnayan. Ang halaga ng trabaho dahil sa pagtaas na ito sa antas ng dami ng mga module, habang may isang mahusay na interface ito lumalaki linearly. Ang pinakamasama sitwasyon - kapag ang bawat module ay nakikipag-usap sa bawat module, mayroong higit pang mga problema sa proseso ng Hendeshka, mula dito at stems.

Kadalasan, ang antas ng intermodulic na pakikipag-ugnayan ay lumalaki nang mas mabagal kaysa sa O (n ^ 2), ngunit ito ay tiyak na mas mabilis kaysa sa (n). Mayroon ding isang kadahilanan na nagbabago sa simula ng mabilis na paglago sa hinaharap: ito ay memorya ng tao. Kahit na may 20 modules sa iyong proyekto, malamang na matandaan mo na ginagawa nito ang bawat isa sa kanila. Kaya, ng lahat ng mga kontrata na kailangan mo lamang ang mga malabo na pangalan ng mga function at mga esoterikong kasunduan. Ngunit sa lalong madaling panahon ang proyekto ay nagiging malaki, maraming mga detalye ay nakalimutan, o kapag ang mga bagong tao ay dumating sa proyekto - at ang malakas na paglago ng mga gastos sa paggawa ay nagsisimula.

  • Bakit pa rin ginagamit ang command line?
  • Makakatanggap ka ng iba't ibang mga sagot mula sa mga tao sa tanong na ito, wala sa kung saan tila sa akin ang pinakamahalagang bagay:
  • Ang command line ay may kakayahang umangkop at nagbibigay ng maraming pagkakataon.

Ito ay gumagamit ng mas kaunting mga mapagkukunan.

Pinapayagan ka nitong mas mahusay na maunawaan kung paano gumagana ang lahat.

Ang pinakamahalagang bagay ay kung bakit ginagamit pa rin namin ang command line, ito ay

Automation!

Hindi posible na labis na labis ang mga benepisyo ng paggamit ng mga awtomatikong proseso. Kung kailangan kong magpatakbo ng kumpol sa 100 mga server, hindi ako makakonekta sa bawat isa sa kanila nang isa-isa at manu-manong i-install ang software, pag-click sa isang tumpok ng mga pindutan sa hindi mabilang na GUI. Kahit na kailangan mong i-automate ang proseso ng Clican sa GUI, kakailanganin mo ng isa pang file kung saan mai-save ang impormasyon kung saan at kung paano mag-click. Isang bagay tulad ng isang nababaluktot na file ... mga koponan.

Kahit na maaari naming ipatupad ang automation sa pamamagitan ng pag-click at on-screen grabbers, hindi namin dapat kalimutan na ang ganitong uri ng pakikipag-ugnayan sa makina ay imbento para sa mga tao. Ipinahihiwatig nito ang paggamit ng di-mahigpit na interface na hindi nangangailangan ng mataas na katumpakan. Samakatuwid, ang iyong automated clicker ay tiyak na magamit kung ang window ay biglang gumagalaw mula sa posisyon nito o ang sistema ng font ay magbabago. Sa GUI, masyadong maraming mga variable ang nakakonekta. At ang command line ay nagbibigay-daan sa iyo upang kumilos nang mas tumpak, nakikipag-ugnayan ka sa isang mahigpit na interface. Samakatuwid, maraming tao ang hindi gusto sa kanya, hindi katulad ng mga programa sa computer.

Siyempre, may mga sitwasyon kung saan ang mababang katumpakan ng pakikipag-ugnayan ng GUI ay mabuti. Halimbawa, kapag lumilikha ng mga digital na kuwadro, hindi mo kailangang mag-alala tungkol sa pagkakalagay at kulay ng bawat pixel. Ang pangunahing bagay ay maging

isang bagay

Espesyal para sa bawat pixel. Samakatuwid, ang ingay na ipinadala sa pamamagitan ng kamay na gumagalaw ang cursor ay nagiging mahalagang impormasyon sa huling produkto.

Pagpili ng tamang wika

Matapos ang seksyon tungkol sa asymptotic complexity ng teknikal na utang, maaari mong isipin na ang anumang proyekto ay kailangang nakasulat sa isang wika na may napakalakas na kondisyon ng mga kontrata ng interface, tulad ng Haskell o Java. Ngunit hindi ito eksakto kung ano ang nais kong ihatid. Ang sagot sa susunod na tanong ay maaaring makatulong sa iyo na gawin ang tamang pagpipilian.

Paano malamang na baguhin ang mga kinakailangan para sa iyong proyekto?

Sa simula ng bagong kaso, ang sagot ay tiyak na "malamang", lalo na kung ang isang maliit na produkto ay nilikha, at kahit na sa kalabuan ng mga prospect nito sa merkado. Kung ang mga kinakailangan ay malinaw na binuo bilang, halimbawa, sa kaso ng paglikha ng isang tagatala o pag-unlad ng isang proyekto batay sa mga internasyonal na pamantayan, ang sagot ay tiyak na "hindi masyadong malamang."

Kung sumagot ka ng "Malamang", pagkatapos ay gamitin ang isang wika na magpapahintulot sa iyo na mawalan ng mas kaunting oras kapag tumutukoy sa mga kontrata ng interface: tiyak na gagana sila laban sa iyo sa kaso ng mga pagbabago sa mga kinakailangan. Ngunit ang pangunahing gawain dito ay hindi upang makuha ang perpektong pagpapatupad ng mga kinakailangan, ngunit ang perpektong mga kinakailangan na nagbibigay-daan sa iyo

Magsimula

Lumikha ng huling pagpapatupad. Ang isang eksepsiyon ay maaaring isang sitwasyon kung saan ang iyong MVP ay isang malaking sistema na may daan-daang mga module. Kung ang isang pulutong ng mga tao ay kasangkot sa proyekto, pagkatapos ay isang mahusay na interface ay kinakailangan lamang upang sila ay dumating sa bawat isa.

Kung sumagot ka ng "hindi masyadong malamang", pagkatapos ay gamitin ang isang wika na may mahigpit na kontrata ng interface. Una kailangan mong magtrabaho nang higit pa, ngunit ang pagpapakilala ng mga bagong pagkakataon ay nangangailangan ng mas kaunting pagsisikap. Ang tanging pagbubukod ay maaaring isang sitwasyon kung sumulat ka ng ilang maliit na produkto (ilang daang mga string).

Minsan ay nasira ang ilang mga kopya tungkol sa kung ano ang Twitter ay nagsimulang lumikha sa Ruby sa daang-bakal, at pagkatapos ito ay ang dahilan para sa scaling ng proyekto. Nang maglaon ay isinalin ang Twitter sa Scala. Maaaring ipalagay ng isang tao na nagkamali ang mga developer at dapat agad nilang piliin ang Scala. Sa tingin ko hindi. Sa gitna ng Twitter ay isang napaka-simpleng ideya, at sa mga kondisyon ng isang malaking bilang ng mga kakumpitensya na kailangan nila upang manalo ang nangingibabaw na posisyon sa merkado. Kailangan nilang lumago nang mabilis hangga't maaari, sa kabila ng mga gastos. Ang mga ikot ng pag-unlad ng mga bagong tampok ay dapat na lumipas nang mabilis hangga't maaari, dahil pinapayagan nito ito sa pinakamaikling panahon upang maunawaan kung ano ang eksaktong nangangailangan ng mga gumagamit, anong produkto ang gusto nila bilang isang resulta upang makuha. Ang mga paghihirap ng scaling ay isang tanda ng hindi kabiguan, ngunit tagumpay. Ang paningin ng Twitter ay binuo bilang isang tapos na produkto, at ito ay nanatiling lamang upang mapagtanto ito. Mula sa pananaw ng mga developer, ito ay isang nirvana lamang, lahat ng mga pangarap tungkol sa ganoong bagay, ngunit ilang mga tao ang namamahala sa trabaho sa ganoong mga kondisyon: "italaga ang tae na ito mula sa simula sa iyong paboritong wika, dahil ito ay maginhawa para sa iyo, kung lamang Sa hinaharap ay mas madaling magtrabaho sa kanya. " Mas madaling muling isulat ang isang bagay mula sa simula, pagkakaroon ng weaker na pagpapatupad bago ang aming mga mata kaysa sa subukan upang magdagdag ng hitsura ng produkto, na magpapahintulot sa kumpanya na mag-alis. Sa kasamaang palad, ang karamihan sa mga kalahok sa merkado ay nagpapatuloy lamang sa pamamagitan ng pag-iwas sa "hindi kinakailangang" mga gastos upang lumikha mula sa simula at gumastos ng maraming lakas at oras sa pag-scale na orihinal na imposibleng i-scaling.

Bakit kaya popular na Python?

Sa seksyon sa mga butas at mahigpit na interface, pinag-usapan ko ang paraan ng pag-uuri ng mga interface, depende sa kanilang pagkahilig sa paglabas ng mga abstraction, pati na rin kung gaano ang mahigpit na mga kahulugan ng interface. At itinuturo ko ang katotohanan na ang mas "friendly" at "produktibong" mga interface ay mas madaling kapitan sa paglabas kaysa sa iba pang bahagi ng spectrum ng interface.

Naniniwala ako na ang katanyagan ng Python ay nagmumula sa katotohanan na ito ay isang mahusay na pambungad na wika na nagbibigay ng sobrang simpleng mga kontrata ng interface. Para sa parehong dahilan, na may isang pagtaas sa proyekto sa Python, ito ay nagiging mas at mas mahirap.

Python ay napaka-tanyag sa pang-agham na komunidad at sa mga lovers eksperimento sa numerical analysis. Ang pinakadiwa ng eksperimento ay nangangailangan ng patuloy na pagpapabuti sa nilikha na produkto, at mahigpit na mga interface na mabagal.

Bakit ang corporate software ay karaniwang sumulat sa Java / C ++?

Sa seksyon tungkol sa mga butas at mahigpit na mga interface, pinag-usapan ko ang mga kompromiso na nauugnay sa iba't ibang uri ng mga interface. Ang Java at C ++ ay higit pa sa mahigpit na bahagi ng spectrum, hindi katulad sa Python o Ruby. Oo, ang mga paglabas ay maaaring tumalon, at mayroong mas mahigpit na wika (ang parehong Haskell), ngunit ang Java at C ++ ay mas balanse mula sa pananaw ng scalability, kabaitan at lyrics. Bilang karagdagan, ang dalawang wika ay nagbibigay-daan sa iyo upang maging kakayahang umangkop upang kontrolin ang mga ledbles ng mga interface depende sa mga kasunduan sa proyekto. Halimbawa, ang paggawa ng mga variable o function na may pribado, pampubliko o protektado.

Paano i-cut ang mga sulok

Kung nais mong magdala ng isang bagay mula sa artikulong ito, mangyaring: Kapag kailangan mong i-cut ang mga sulok sa proyekto, gawin ito sa loob

Benta

at i-arko ang B.

  • napakabuti
  • interface. Kahit na ang pagpapatupad ay hindi masyadong magandang at ang mga problema nito daloy sa iba pang mga bahagi ng sistema, pagkatapos ito ay isang masamang problema sa interface! Kaya't walang hindi pagkakaunawaan, hayaan ang listahan ng kung ano ang ibig sabihin ko sa ilalim ng mga interface:
  • Prototypes ng mga function.
  • "Interface" Java.
  • Mga pamamaraan ng pampublikong klase.
  • Mga variable ng mga pampublikong bahagi.
  • Mga file ng header (.h) sa C / C ++.
  • Restful API End Points.
  • Pag-routing ng URL.
  • Mga pampublikong aspeto ng "mga modelo" o "mga pakete".

Lohika database istraktura (DDL).

At marami pang iba.

Konklusyon

Tulad ng makikita mo, ang konsepto ng interface ay napakahalaga at may napakalaking epekto sa pagpapaunlad ng proyekto sa larangan ng legal na proteksyon, pagiging produktibo at bilang ng mga pilosopiko na relasyon sa iba pang mga aspeto ng istraktura ng sistema. Tanungin ang iba pang mga programmer na iniisip nila tungkol sa mga interface, at nakikinig sa lahat ng uri ng mga bagay.

Ang user interface ay ang paraan ng pakikipag-ugnayan sa pagitan ng mga tao at isang computer. Nagsasalita na may simpleng mga salita, ang interface ay ang panlabas na bahagi ng programa o ang aparato kung saan gumagana ang gumagamit. Ang salitang interface - kartutso na may Ingles na interface, iyon ay, ang "link sa hangganan".

Kadalasan, sa ilalim ng salitang interface ay nagpapahiwatig ng user interface. Halimbawa, sinasabi nila: "Ang online na tindahan ay may hindi komportable, nakalilito na interface." Nangangahulugan ito na ang tindahan ay hindi maginhawa upang makipag-ugnay. Halimbawa, mahirap hanapin ang mga kinakailangang kalakal, hindi malinaw kung paano maglagay ng isang order, ang site ay hindi i-save ang dati na ipinasok na data, atbp.

Mga halimbawa ng paggamit:

Maraming mga gumagamit ang nais na ibalik ang lumang interface na "Vkontakte", hindi nila gusto ang bago.

Ang programa ay may intuitive na interface - agad na malinaw kung saan pindutin at kung ano ito ay hahantong sa.

Ang interface ng Windows ay sobrang kumplikado: Ang mga walang karanasan na mga gumagamit ay nalilito sa isang tumpok ng mga setting.

Ang web interface ay isang pahina sa internet na nagpapahintulot sa gumagamit na makipag-ugnay sa ilang serbisyo o aparato nang direkta sa pamamagitan ng browser. Halimbawa, gamit ang web interface, maaari mong gamitin ang online na bangko: Pumunta sa pahina ng bangko, ipasok ang pag-login at password, at pagkatapos ay i-translate ang pera sa pagitan ng mga account, magbayad para sa mga serbisyo, atbp.

Hardware at software interface. Ano ang interface ng USB at API. Bilang karagdagan sa interface ng gumagamit, mayroong isang interface ng software (pakikipag-ugnayan ng mga programa sa bawat isa) at interface ng hardware (mga pamamaraan para sa pakikipag-ugnayan ng mga pisikal na aparato, "bakal"). Kapag sinasabi nila ang tungkol sa interface ng hardware, kadalasan ay nangangahulugan sila ng mga konektor kung saan ang mga aparato ay maaaring konektado sa bawat isa. Halimbawa, ang "koneksyon sa pamamagitan ng USB interface" ay nangangahulugan ng pagkonekta ng mga aparato sa pamamagitan ng

Universal sequential tire.

nilayon para sa pagkonekta ng kagamitan sa paligid. Sa pamamagitan ng isang USB, halimbawa, maaari kang kumonekta sa isang keyboard, mouse, camera o smartphone sa isang computer.

Hardware interface - USB cable.

Ang interface ng programa ay isang paraan upang makipag-ugnay sa mga programa sa kanilang mga sarili. Halimbawa, ang API (application programming interface, ang application programming interface) ay isang hanay ng mga utos na nagbibigay-daan sa mga programa upang awtomatikong palitan ang data nang walang pakikilahok ng mga tao. Ang isang programa ng API ay nagpapadala ng isang kahilingan, isa pang tumugon sa kanya.

Halimbawa, sa site ng balita ay nagpapakita ng mga rate ng pera na nagbabago sa real time. Hindi ito nangangahulugan na ang editor ng site tuwing manu-manong nagbabago ang mga numero sa pahina. Ang site ng balita mismo ay nagpapadala ng isang kahilingan ng API sa isang server na may palitan ng pera at tumatanggap ng mga kinakailangang numero mula doon.

Mga uri ng mga interface ng gumagamit. Graphic, teksto at iba pa

Ang interface ng teksto ay isang paraan upang makipag-usap sa isang tao na may computer gamit ang command printing. Halimbawa, sa operating system ng MS-DOS, ang interface ay tekstuwal - ang user ay i-dial ang mga kinakailangang command sa keyboard, at ang makina ay gumanap sa kanila.

MS-DOS Text Interface - Command Line.

Ang problema ng interface ng teksto ay dapat malaman ng user ang mga kinakailangang command at bawat oras na manu-manong i-type ang mga ito nang walang mga error. Bahagyang mula sa kahirapan na ito ay inalis ang shell para sa MS-DOS - halimbawa, Norton Commander.

Norton Commander - File Manager para sa MS-DOS. Hindi ka maaaring mag-type lamang ng mga utos sa keyboard, ngunit gumana sa mga file gamit ang mga shortcut sa keyboard.

Sa lalong madaling panahon doon lumitaw graphical interface kung saan ang gumagamit ay nakikipag-ugnayan sa mga visual na bagay: mga pindutan, mga icon, mga larawan sa screen. Gumagamit ang Windows operating system ng isang graphical na interface: Ang gumagamit ay nag-click sa mga icon sa mga icon - Pictograms na naglalarawan ng mga file at programa.

Windows 3.11 graphical interface

Ang materyal na interface ay isang paraan upang makipag-ugnay sa isang computer gamit ang nasasalat na mga istraktura. Halimbawa, ang isang computer mouse o joystick ay isang materyal na interface. Paglipat ng mouse sa talahanayan, sabay naming ilipat ang arrow ng cursor sa screen.

Material interface - computer mouse. Larawan: DepositPhotos.

Ang interface ng boses ay kontrol gamit ang mga utos ng pagsasalita. Ang boses ng tao ngayon ay nakakaalam ng mga mobile phone. Halimbawa, siri mula sa Apple, tinig ng tinig ng Google, "Alice" mula sa Yandex

Voice interface - Apple Siri. Ang Siri ay isang pagbawas mula sa interface ng pagsasalita at pagkilala ng interface (interface ng pagkilala at interpretasyon ng pagsasalita). Larawan: DepositPhotos.

Ang isang Instrument Interface ay nagbibigay-daan sa iyo upang magbigay ng mga utos, paggawa ng mga galaw gamit ang iyong daliri, kamay, mouse ng computer, espesyal na controller, atbp.

Installation Interface - Nintendo Wii Game Console, na ang mga controllers ay tumugon sa paggalaw ng gumagamit.

Ang interface ng pandamdam ay nagbibigay-daan sa gumagamit na makaranas ng pandamdam sensations (push, panginginig ng boses, atbp) at makipag-ugnay sa computer sa kanilang tulong.

Virtual reality gloves - isang halimbawa ng isang interface ng pandamdam. Larawan: NASA.

Ang neural interface ay nagbibigay-daan sa iyo upang magpadala ng mga utos sa mga electrodes na may linted sa utak. Ang mga bidirectional neural interface ay hindi lamang makakakuha ng impormasyon mula sa utak, kundi pati na rin upang ipadala ito sa utak - halimbawa, sa pamamagitan ng retina ng mata.

Jens Naumann - bulag, kaya ng "makita" sa isang neural visual prosthesis. Kinukuha ng kamera ang imahe at ipinapadala ang naprosesong bersyon sa visual na bark ng utak sa pamamagitan ng mga electrodes.

Kian Rivz sa pelikula na "Matrix" (1999). Ang mga bayani ay nagtatamasa ng neurointerface upang makapasok sa virtual na katotohanan - ang matrix.

Cybebebeis - interface sa anyo ng virtual na katotohanan. Frame mula sa kamangha-manghang pelikula "Johnny Mnemonic" (1995)

Maligayang pagdating sa iyo, mga kaibigan! Ang salitang "interface" sa bulung-bulungan ng mga may-ari ng mga PC at telepono, ngunit hindi lahat ay nauunawaan ito. Sasabihin namin ang mga teapot, kung ano ang interface sa computer at smartphone, kung bakit ito kinakailangan, kung ano ang mangyayari kung paano gamitin ito nang tama. Nakikita ang salitang ito sa site, sa paglalarawan o sa mga tagubilin, maunawaan ng bagong dating kung ano ang pinag-uusapan natin at kung ano ang susunod na gagawin.

Alon

Ano ang interface kung saan kailangan nito

Isinalin mula sa Ingles na interface - Pakikipag-ugnayan. Paano sumulat sa Ruso: interface (kung minsan ang mga infabes ay nakasulat - ito ay hindi tama). Ang normal na kahulugan ay isang pangkaraniwang hangganan sa pagitan ng dalawang functional na bagay. Halimbawa, ang isang tao ay nakakakuha sa likod ng gulong ng kanyang kotse, lumipat sa gearbox pever - ito ay pakikipag-ugnayan sa sistema ng interface ng makina. Gearbox bilang konduktor sa pagitan ng driver at kotse.

  • Sa agham ng computer, ang kahulugan ng salitang mas malalim ay ang mga tool ng pakikipag-ugnayan ng gumagamit sa laro, ang programa, o ang operating system, ang mga paraan ng pagkontrol sa pagpapatakbo ng computing machine. Salamat sa interface, makikita ng isang tao ang anumang programa o editor ng teksto. Kung nagtataglay kami ng trabaho sa editor ng pintura graphics, madali itong makabisado ng iba pang katulad na mga programa, dahil mayroon silang katulad na istraktura.
  • Mga pangunahing gawain sa interface:
  • impormasyon ng input at output;
  • pamamahala ng software;

pagpapalitan ng data sa pamamagitan ng mga panlabas na carrier;

Mga utos.

Ang hulihan panel ng yunit ng PC system ay isa ring interface na nagbibigay-daan sa iyo upang ikonekta ang iba pang mga device.

Kasama sa gumagamit ang isang computer at nakikita ang mga icon sa harap niya: "Aking Computer", "Mga Label", "Larawan", atbp. - Ang lahat ng mga elemento ng interface na ito.

Mga uri ng mga interface

Ang interface ay maaaring maikli na inilarawan bilang clearance: kung ano ang nakikita ng isang tao sa harap niya, gamit ang isang PC o telepono. Kahit na sa katunayan, ito ay isang istraktura ng sistema, dahil sa pagpindot sa mga pindutan sa pamamagitan ng pag-click sa item ng menu, ang user ay napupunta sa kung saan kailangan nito: Camera, Gallery, Mga Contact, Mga Mensahe. Ang layunin nito ay isang epektibong paggamit ng isang elektronikong aparato o site.

Video.

  • Mayroong iba't ibang uri ng mga interface, bawat isa ay sasabihin namin pa.
  • Ang pinaka-karaniwan:
  • command line;
  • Graphic at interface ng teksto;
  • sa pamamagitan ng uri ng pamamahala (gesturing, boses, pandamdam at neural);
  • programa;
  • hardware;
  • hardware-software;
  • gumagamit;
  • Web;
  • laro;

materyal;

Command line.

sa mga telepono.

Ano ang mga simpleng salita ng interface

Kung kailangan mong pangalanan at ilista ang mga uri ng mga modernong interface, ang impormasyong ito ay makakatulong upang itakda nang tama ang lahat ng bagay at gumawa ng isang mahusay na pagtatanghal.

Ito ay isang hiwalay na software na bahagi ng aminger at tinitiyak ang relasyon sa pagitan ng gumagamit at OS. Salamat sa command prompt, maaari kang magsagawa ng mga command ng computer. Ito ay isang komunikasyon sa makina sa wikang ito.

Sa mga pagkukulang - kailangan mong malaman ang mga utos, tuwing i-dial mo ang mga ito nang walang isang error. Ang kalamangan ay ang kakayahang pumasok sa mga utos nang walang pakikilahok ng graphic na istraktura, na nagbibigay ng karagdagang mga pagkakataon.

Ang command line (console interface) ay nagsisimula sa shell nito, halimbawa, sa BIOS. Ang pangunahing ruta ng lokasyon nito: C: \ Windows \ System32 \ cmd.exe. Ang karaniwang Yowser ay hindi kailangang maging sinadya kung saan matatagpuan ang command line at kung paano ito gumagana, at para sa mga propesyonal ito ang pangunahing tool, dahil nakakatulong ito sa computer na may mga virus, pagpapanumbalik ng bintana at sa iba pang mga kaso.

Isang simpleng paraan upang mahanap ang command line: Kasabay nito pindutin ang Win + R key, sa window ng CMD na lilitaw.

Command Interface

Graphic at teksto

  • Graphic (ENG graphical user interface, GUI) ay ginagamit sa lahat ng mga operasyon, sa karamihan ng mga application. Kadalasan ito ay tinatawag na wimp - ito ay isang pagdadaglat mula sa mga unang titik ng wordwow, icon, menu, pagturo aparato (pagmamanipulating aparato).
  • Mga pangunahing elemento:
  • menu;

mga listahan;

Pictograms (drawings, schemes).

Sa Windows Windows, nag-click ang gumagamit sa mga icon, pictograms na naglalarawan sa mga programa at mga file ay isang graphical na interface, na nagbibigay ng sapat na pagkakataon sa bawat gumagamit. Hindi na kailangang magpasok ng anumang mga utos. Para sa maginhawang pakikipag-ugnayan, ginagamit ang isang computer mouse.

Kailangan mong makilala ang graphic mula sa visual na interface, na kumakatawan sa sistema bilang isang hanay ng mga visual na imahe - maaari itong maging isang icon o inskripsyon na matatagpuan sa isang partikular na lokasyon ng screen. Ang visual na istraktura ay hindi kinakailangang gumamit ng mga graphic mappings. Ang visual na istraktura ay maaaring maging graphic at teksto.

Ginagamit ng teksto kapag nagpapasok at nagbibigay ng impormasyon, isang hanay ng mga titik / numero, mga character ng pseudographic. Ginagamit nito ang lahat ng mga pangunahing elemento ng graphic na disenyo: mga checkbox, mga pindutan ng pag-drop ng mga pindutan, atbp. Iba't ibang may maliit na hinihingi teknikal na mapagkukunan, mataas na bilis ng data. Ang interface ng teksto ay isang uri ng gumagamit, habang ang command line ay bahagi ng teksto.

Sa pinakasimpleng kaso, ang interface ng teksto ay gumagamit ng isang command line, ngunit maraming mga programa na may mga interactive na elemento ay gumawa ng isang mas friendly, maliwanag na disenyo, na papalapit na kaginhawahan sa graphic.

Sinusuportahan ng ilang mga programa ang binuo na sistema ng window, tulad ng Turbo Vision, D-flat, CScape, marami ang nababago sa mga paksa ng disenyo (DOS Navigator), pati na rin ang kakayahang gumamit ng iba't ibang mga interactive na item sa pakikipag-ugnayan (joystick, mouse).

Gesturing, boses, pandamdam at neural.

  • Ang gumagamit ay namamahala sa computer at nagbibigay ng mga utos na may iba't ibang mga pamamaraan: mga galaw, boses, atbp.
  • Samakatuwid, ang uri ng kontrol ay nakikilala:
  • Taunang interface. Ang mga elemento ng contact ay mga graphic tablet, touch screen at iba pang mga teknolohiya na tumutugon sa mga paggalaw ng mga daliri;
  • Ang interface ng boses ay nagpapahiwatig ng pamamahala ng pagsasalita. Ang mga halimbawa ay: siri mula sa Apple, Alice mula sa Yandex;

pandamdam kapag ang pakikipag-ugnayan ay batay sa pandamdamang pandamdam, pagkuha ng sensitibong feedback (panginginig ng boses, push);

Neuronal - paghahatid ng mga utos sa pamamagitan ng mga electrodes na may linted sa utak. Ang impormasyon ay maaaring makuha mula sa utak at ipinapadala dito, halimbawa, sa pamamagitan ng retina ng mata. Sa pagsasagawa, ang neurointerface ay maaaring mabawasan ang buhay ng mga paralisadong pasyente na ang utak ay gumagana nang maayos. Pinapayagan ka ng Neurointerface na magsagawa ng mga kongkretong pagkilos, binabasa ang kanilang mga intensyon sa tulong ng mga electrodes na nakakonekta sa utak.

Graphical system interface

Software, hardware, hardware at software

  • Ang sistema ng interface ay nagbibigay ng contact kahit na sa pagitan ng mga progs at device.
  • May 3 grupo:
  • Programming interface (Ingles. Interface ng programming) ay ang pakikipag-ugnayan ng mga programa sa kanilang mga sarili. Sa partikular, ang API o application programming interface - mga pamamaraan ng pakikipagpalitan ng data sa pagitan ng mga programa sa computer (nagpapadala ang isang kahilingan sa API, isa pang tumugon). Ang portal ng balita ay nagpapakita ng mga pera. Hindi ang editor ay may pananagutan para sa mga ito (kailangan niyang baguhin nang manu-mano ang mga numero), at ang API kung saan ang site ay nagpapadala ng isang kahilingan sa palitan ng pera, ay tumatanggap ng sagot;

Ang hardware ay dinisenyo upang makipag-ugnay sa mga pisikal na aparato sa bawat isa sa pamamagitan ng mga puwang, konektor, gateway. Ang USB (Universal Sequential Tire) ay ang pinaka pamilyar na halimbawa. Sa pamamagitan nito kumonekta sa pc phone, camera, mouse;

Ang hardware-software ay ang pakikipag-ugnayan ng mga node, mga elemento sa ilalim ng kontrol ng programa.

User interface

Ano ang mga contact ng gumagamit kung ano ang nakikita niya sa harap ng kanyang sarili, kung saan ito ay nag-click - ito ay ang user interface. Ito ang panlabas na bahagi ng aparato o ang programa kung saan gumagana ang gumagamit.

Kadalasan, sa ilalim ng salitang interface ay nagpapahiwatig ng gumagamit (user interface). Nangyayari ito na sinasabi ng bisita ng site: "May nakalilito, hindi kasiya-siya na pagpaparehistro o menu." Kaya, ang site ay hindi komportable na makipag-ugnay: mahirap hanapin ang tamang item, i-checkout ang order, i-download ang dokumento. Ang maliwanag na istraktura ay kapag ang isang tao ay agad na nakikita kung saan mag-click, alam kung ano ang magiging sanhi nito. Ngunit sa Windows, maraming mga newbies ang may problema, dahil ang disenyo ng survey ng OS na ito, ang mga walang karanasan na mga gumagamit ay nalilito sa mga setting. Sa platform ng 1C, dalawang magkaibang mekanismo ng user interface na ginagamit sa iba't ibang mga kliyente ng 1C.

Command line, graphic, text, voice, gesturing, pandamdam, neural, procedural - lahat ng ito ay kasama sa interface ng gumagamit. Sa ilalim ng kontrol nito, pumasok ang user sa data sa PC, ang impormasyon sa monitor ay ipinapakita, ang printer. Mayroong kahit isang interface ng spreadsheet - ito ay isang elemento na nakikita ng isang tao, tumatakbo, halimbawa, ang application ng OpenOffice.org Calc.

Ngunit mayroong ilang mga uri ng user interface.

Hardware interface

Web, Game

Ang web interface ay isang web page (isa o isang set) na kumakatawan sa isang istraktura para makipag-ugnay sa isang server o device sa pamamagitan ng HTTP protocol at isang web browser. Halimbawa, ang kliyente ay maaaring pumunta sa pahina ng bangko, magbayad ng mga serbisyo ng utility. Ang pangunahing bentahe - hindi na kailangang mag-install ng karagdagang software, dahil ang operating system ay napupunta sa browser. Hindi na kailangang malito sa interface ng network. Sa ilalim ng term na ito ay naiintindihan bilang isang virtual o pisikal na aparato, na kung saan ay inilaan upang magpadala ng data sa pagitan ng mga programa sa pamamagitan ng isang network ng computer (halimbawa, VLAN).

Ang popular na paraan upang lumikha ng isang web-interface ay ang paggamit ng HTML sa CSS at JavaScript'a. Ginamit din ang Adobe Flash, Java Applets o Silverlight.

Ang isa pang uri ay ang interface ng laro - ay direktang nauugnay sa gamedizayn, bagaman napupunta ito nang higit sa kakayahan nito. Ang manlalaro at ang laro ay tinatahanan sa iba't ibang mga uniberso, at ang istraktura ng paglalaro ay ang punto ng kanilang pakikipag-ugnay sa isa't isa. Sa pamamagitan nito, ang gamer ay nakakakuha ng kinakailangang impormasyon mula sa laro, at kinakailangan ang mga pagkilos ng manlalaro.

Materyal

Ang materyal o pandamdam interface ay isa pang uri ng gumagamit. Ito ay isang kontak ng isang tao na may electronics na may nasasalat na mga istraktura. Halimbawa, ang paglipat ng mouse kung saan, isang tao ang sabay na gumagalaw sa arrow ng cursor sa screen.

Varieties ng mga interface

Interface sa mga telepono.

Ang pangkalahatang estilo ng interface ng mobile device ay nailalarawan bilang Simp (screen-icon-menu-pointer). Sa mga platform ng Mobile Windows ay ang mga elemento ng istraktura na sumasakop sa buong screen. Ang paglipat sa pagitan ng mga bintana ay ginagampanan ng mga graphic na elemento o paghila sa isang daliri.

  • Ang mga tampok ng disenyo ng Simp ay ipinaliwanag ng mga specifics ng OS.
  • Ang pinaka-karaniwang OS para sa mga gadget:
  • Android;
  • Apple iOS;
  • WindowsMobile;
  • Palm os;

Symbian OS;

Blackberry OS.

Ang Russia ay popular - Android, Apple iOS, WindowsMobile. Ngunit ginagamit ng mga tagagawa ang kanilang mga uri ng mga sistema ng interface at mga bloke, ang pangunahing dahilan ay branding. Ang kakayahan ng Android sa pag-customize ay nangangahulugan na ang mga tagagawa ng mga kagamitan sa korporasyon ay maaaring gumawa ng mga pagbabago sa software, halimbawa, sa larangan ng pag-andar at disenyo.

Iba't ibang mga istraktura ng system sa mga aparatong mobile ay hindi lubos na nakakaapekto sa karanasan ng mga may-ari, dahil nilikha ang mga ito upang malutas ang mga unibersal na gawain. Pagkakaiba sa hanay ng mga application.

Kasama rin sa interface ng mobile device ang headphone jacks, singilin, mga katulong sa boses - marami sa kung ano ang batay sa gawain ng PC, tanging ito ay nababagay para sa mga gadget. Ngunit sa mga smartphone mayroong maraming mga bagong istraktura, halimbawa, NFC (NFS) - ang istraktura ng wireless na komunikasyon.

Ano ang ibig sabihin ng wika ng interface.

Hindi ito nagkakahalaga ng nakalilito sa mga wika na naka-install kapag nag-type ng mga materyales sa teksto.

  • Ang wika ng interface ay ang isa na ginagamit kapag naglo-load ng mga operasyon, sa menu, sa mga dialog box, mga window ng error at mga sanggunian. Maaari itong mabago kung hindi bababa sa 1 karagdagang isa ang naka-install sa pangunahing wika.
  • Isang simpleng paraan upang malaman kung aling wika ang Windows ay nakatayo sa isang PC:
  • Buksan ang "control panel";

Tab na "wika";

Inilalaan ang pangunahing wika na ginagamit ngayon. Maaari itong mabago o magdagdag ng bago.

napag-alaman

Para sa isang tao, ang interface ay isang batayan para sa pagtatrabaho sa isang PC o isang telepono. At ito ay isang paraan upang makipag-ugnay sa pagitan ng mga programa at kagamitan. Ang pagiging simple ng istraktura ng sistema ay nakasalalay, kung ito ay madaling pamahalaan ang aparato. Ang mga nag-develop ay may iba't ibang disenyo at istruktura, ginagawa itong higit pa o mas kaaya-aya, magaling para sa mga tao. Ang mga eksperto na ito ay maaaring gumawa ng mga pagbabago sa ilang mga istraktura o gamitin ang mga ito upang malutas ang malubhang mga gawain, at ang mga walang karanasan na mga gumagamit ay maaaring bumili para sa kanilang sarili ang aparato na may isang intuitive na sistema ng interface upang mapadali ang trabaho at makatipid ng oras.

Ang interface ay madalas na sinabi kapag ang ibig sabihin nila ang pakikipag-ugnayan ng isang tao at computer o mga application. Sa artikulo susuriin namin ang kahulugan ng interface, na para sa mga pakikipag-ugnayan, ang kanilang mga uri at tampok.

  • Ano ang interface

  • Ang interface ay isang "konduktor" sa pagitan ng tao at isang programa, isang operating system, isang teknikal na aparato, o isang paraan ng pakikipag-ugnayan sa pagitan ng mga application sa kanilang mga sarili. Ang isang tao ay nagbibigay ng mga utos gamit ang interface, pinag-aaralan ng aparato ang mga ito at tumugon. Ang mga pangunahing gawain kung saan ito ay inilaan para sa:

  • Ipasok at magpakita ng impormasyon (tunog, larawan);

  • Pamamahala ng mga indibidwal na application;

palitan ng data sa iba pang mga device;

Mga uri ng mga interface

Pakikipag-ugnayan sa operating system.

Command line.

Ang interface ay nagsasangkot ng pakikipag-ugnayan ng hindi lamang mga tao at teknolohiya, kundi pati na rin ang isang programa sa computer, programa ng programa, aparatong computer. Halimbawa, kapag nakakonekta ang mga aparato sa yunit ng computer system, dahil ginagamit ng paraan ng pakikipag-ugnayan ang connector.

Ang ilang mga uri ng pakikipag-ugnayan ay nagbibigay-daan sa iyo upang makakuha ng higit pang kontrol sa isang computer o smartphone, ngunit nangangailangan ng karagdagang mga kasanayan. Ang iba ay mas komportable, ngunit nagbibigay ng mas kaunting mga pagkakataon. Ang bawat uri ay may sariling katangian.

Ang command line (console interface) ay nagsisimula sa shell nito, halimbawa, sa BIOS. Ang pangunahing ruta ng lokasyon nito: C: \ Windows \ System32 \ cmd.exe. Ang karaniwang Yowser ay hindi kailangang maging sinadya kung saan matatagpuan ang command line at kung paano ito gumagana, at para sa mga propesyonal ito ang pangunahing tool, dahil nakakatulong ito sa computer na may mga virus, pagpapanumbalik ng bintana at sa iba pang mga kaso.

Sa pamamagitan ng command line, maaari mong isagawa ang maximum na bilang ng mga operasyon ay isang direktang paraan upang makipag-usap sa operating system. Upang i-type ang command, kailangan mong ipasok ang teksto sa computer at pindutin ang Enter, magsisimula ang computer.

Ang minus na paraan ay angkop lamang para sa mga sinanay na gumagamit. Sa command line, walang mga pandiwang pantulong na mga elemento ng graphic, kailangan itong makabisado sa wika para sa pakikipag-ugnayan, at ang mga utos ng trabaho ay hindi maaaring mali.

Pinapadali ng mga graphics ang pakikipag-ugnayan sa computer, mas madaling magtrabaho dito at mas kumportable kaysa sa teksto. Sa papel na ginagampanan ng graphic interface, ang mga elemento ay:

Sa pinakasimpleng kaso, ang interface ng teksto ay gumagamit ng isang command line, ngunit maraming mga programa na may mga interactive na elemento ay gumawa ng isang mas friendly, maliwanag na disenyo, na papalapit na kaginhawahan sa graphic.

Halimbawa, kapag nakikipag-ugnay sa Windows ay gumagamit ng mga icon at bintana, ang mouse ay konektado upang pumasok. Sa smartphone, ang input device ay isang touchscreen display.

Ang interface ng teksto ay hindi gumagamit ng mga imahe: Ang mga utos ay binibigyan ng paggamit ng teksto at impormasyon ay ibinibigay sa form ng teksto.

Ang pakikipag-ugnayan ng kilos ay nagbibigay-daan sa iyo upang magbigay ng mga utos sa mga paggalaw ng mga daliri. Ito ay inilalapat kapag nagtatrabaho sa isang touch screen ng isang smartphone. Halimbawa, ang "up" na kilos ay lumilitaw ang window ng pop-up.

Ang interface ng boses ay isang pamamahala ng boses. Kinikilala ng gadget at nagsasagawa ng mga sound command.

pandamdam kapag ang pakikipag-ugnayan ay batay sa pandamdamang pandamdam, pagkuha ng sensitibong feedback (panginginig ng boses, push);

Ang pandamdam ay nagpapahiwatig ng pakikipag-ugnayan sa tulong ng pagpindot: panginginig ng boses o sensitivity sa pagpindot.

Ang neural interface ay nagpapadala ng command nang direkta mula sa utak sa computer, para dito, ang mga electrodes ay itinatanim sa utak. Ginagamit ito sa gamot: kaya ang isang paralisadong tao ay maaaring makipag-usap sa labas ng mundo.

Ang hardware ay dinisenyo upang makipag-ugnay sa mga pisikal na aparato sa bawat isa sa pamamagitan ng mga puwang, konektor, gateway. Ang USB (Universal Sequential Tire) ay ang pinaka pamilyar na halimbawa. Sa pamamagitan nito kumonekta sa pc phone, camera, mouse;

Ang pakikipag-ugnayan ng programa sa bawat isa ay nagbibigay ng isang interface ng software. Ang mga programa ay nagpapadala ng mga kahilingan sa bawat isa at makatanggap ng mga sagot. Halimbawa, upang patuloy na ipakita ang may-katuturang panahon sa isang widget o sa isang computer, ang isang programa ay patuloy na nagpapadala ng isang kahilingan sa isa pa, at nagbibigay ito ng sariwang data.

Ang hardware ay inilaan para sa organisasyon ng komunikasyon sa pagitan ng mga pisikal na aparato sa pamamagitan ng mga konektor at mga puwang. At kapag binabasa ng computer ang impormasyon mula sa isang hard disk - ito ay isang pinagsamang gawain ng programa at pisikal na aparato, iyon ay, ang hardware at software interface.

Lahat, kung saan ang karaniwang gumagamit ay nakikipag-ugnayan kapag kabilang ang isang computer, pumapasok sa website o sa application, lahat ng bagay na nakikita ng isang tao sa screen ay isang user interface.

Web, site ng laro

Ang popular na paraan upang lumikha ng isang web-interface ay ang paggamit ng HTML sa CSS at JavaScript'a. Ginamit din ang Adobe Flash, Java Applets o Silverlight.

Pinapayagan ka ng web interface na magtrabaho sa pamamagitan ng browser. Ito ang pakikipag-ugnayan ng mga programa sa Internet. Halimbawa, maaari kang pumunta sa website ng tindahan at bayaran ang mga pagbili. Ang browser sa kasong ito ay isang web interface, salamat sa kung aling mga pahina ang nakikipag-ugnayan.

Materyal

Ang laro ay kung paano ang user ay maaaring makipag-ugnay sa laro kung saan ang mga utos ay maaaring magbigay, sa anong paraan ang impormasyon ng laro ay ipinakita at kung paano ang laro ay tutugon sa mga pagkilos.

Ano ang dapat na interface

Ito ay isang pandamdam na pakikipag-ugnay sa mga gadget. Kabilang dito ang pagpindot sa touchscreen, mga aksyon na may mouse o joystick.

Lohika database istraktura (DDL).

Gumagamit ang mga smartphone ng touch screen na nagpapahiwatig ng mga gesturing at tactile interface. Ang gumagamit ay hinawakan ang mga elemento, ang operating system o ang application ay tumatanggap ng mga utos mula dito at isagawa ang mga ito.

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