Gränssnitt - vad är sådana enkla ord

Gränssnitt - Vad är vad det behöver, typer av gränssnitt

4 januari 2021.

Hej, kära bloggläsare ktonanovenkogo.ru. I den massa datorn är det viktigt att hålla fast vid de senaste trenderna och ständigt fylla på klyftan i kunskap.

Det är viktigt att gränssnittet motsvarar målen och sammanhanget. Om det här är interaktionen mellan en specialist med en dator, är det viktigaste möjligheten att tillhandahålla information och uppfylla uppgifterna. För en vanlig användare har den inte bara teknisk, men också estetiskt värde: Arbeta med det måste vara bekvämt och förståeligt.

Du vill inte komma över behovet av att krascha? Idag anser vi en annan term som är associerad med PC.

Jag kommer att försöka förklara en sådan sak som ett gränssnitt: vad är och varför är det nödvändigt. Så, låt oss börja.

Gränssnittet är ...

Liksom alla nyformade fraser kom ordet "gränssnitt" till oss från det engelska språket. Översatt gränssnitt indikerar " Kontaktplats "

Gränssnittet är en uppsättning verktyg som tillåter användaren att interagera med datorns operativsystem, en mobilenhet eller andra typer av utrustning.

Gränssnittet är ...

Som sådana verktyg Interaktioner kan agera:

  1. textfält;
  2. knappar och fästingar;
  3. rullgardinsmenyn;
  4. popup-tips;
  5. Växlar;
  6. Element i menyn på programmet eller webbplatsen;
  7. och mycket mer.

För att vara bättre klar vilken typ av frukt är detta gränssnitt, överväga ett visuellt exempel. Antag att du bestämmer dig för att gå på semester i avlägsna kanter och boka ett hotell i förväg via Internet.

Kom på webbplatsen, och där förväntar du dig flera gränssnitt: Sök, visningsresultat, inmatning av personuppgifter, betalning. Under varje steg av interaktion med hotellbokningsplatsen arbetar användaren med data och utför vissa åtgärder.

Varför behöver jag ett gränssnitt? Allt är enkelt, mer än någonsin: Ju mer bekvämt att använda programmet, webbplatsen och den andra produkten, de lyckligare användarna.

Det vänliga gränssnittet låter dig också öka försäljningen på kommersiella webbplatser, eftersom besökare inte stänger fliken under de första sekunderna för att använda webbplatsen.

Webbplatser med bra design är större populära bland användare, mer besökt, och därför ger bästa inkomst till sina ägare.

Typer av gränssnitt

Gränssnittet är vanligt att dela upp följande typer:

  1. Kommandorad . Detta är det äldsta och mest tidskrävande sättet att interagera mellan användaren och den personliga datorn. Samtidigt är kommandoraden fortfarande den mest tillförlitliga typen av gränssnitt.
    För användare är gränssnittet grunden för att arbeta med en dator eller en telefon. Från hur enkelt eller komplexa detta system kommer bekvämligheten att styra enheten att bero på. Utvecklare kan ändra systemstrukturer för komplexa uppgifter. Oneperierade användare, det är bättre att köpa enheter med ett tydligt gränssnitt för att underlätta sitt arbete.

    Kommunikation med maskinen sker på sitt språk. Kommandoraden används i operativsystem som är avsedda för professionella användare: till exempel i BIOS.

  2. Grafiskt gränssnitt . Det här är precis vad som är avsett idag under ordet "gränssnitt". Den tillämpas i alla operativsystem, program, webbsidor.
    Smartphone

    Med ett grafiskt gränssnitt står absolut alla PC-användare inför. För bekvämare interaktion rekommenderas det att använda en datormus.

  3. Teckengränssnitt . Den snabba utvecklingen av teknik har blivit en av anledningarna till utseendet på ett gestgränssnitt. Detta inkluderar sensoriska skärmar, joysticks, pennus och andra element.
  4. Röstgränssnitt . Talar frasen "OK, Google" och därefter uttala sökfrågan, du interagerar med röstgränssnittet för smarttelefonen eller surfplattan.
    Kommandoradsgränssnitt

    Denna typ uppträdde också nyligen tack vare den snabba utvecklingen av teknik.

    Men idag har det en stor popularitet, eftersom det gör att du kan lösa ett antal viktiga uppgifter och hantera enheter (vad är det?) - Mobila enheter, bilar, hushållsapparater, datorer - med röstkommandon.

Vad ska vara gränssnittet

Huvuduppgiften för något gränssnitt - Använd lätt Specifikt program, plats eller liknande produkt.

Till exempel, när man utvecklar en webbportal rekommenderas att göra Fokusera på följande element :

  1. Det optimala antalet visade element;
  2. Anpassningsbarhet till skrivbord och mobila enheter;
  3. Förekomsten av knappar av populära sociala nätverk;
  4. Optimal storlek ikoner och knappar;
  5. bekväm form av registrering;
  6. Intuitivt läge för menyalternativ;
  7. Förekomsten av färg eller information accenter;
  8. söksystem på webbplatsen;
  9. Om det behövs är tillgången på kontaktdata.

Ett ljust exempel på ett väl genomtänkt gränssnitt är ktonanovenkogo.ru. På platsen, en bra färglösning, en intuitiv meny, närvaro av intern sökning, bildartiklar vid publiceringsdagen, vilket utnyttjar resursen snabbt och roligt.

Det är alla, kära vänner. Nu vet du att gränssnittet är, helt enkelt, det yttre skalet av program eller webbplatser, vilket gör det lättare att använda dem.

Jag hoppas att du efter att ha läst artikeln kommer du inte längre att ha några frågor. Låt dig i alla fall bjuda in dig till kommentarer för att dämpa på detta ämne med andra bloggläsare ktonanovenkogo.ru.

Och för att konsolidera kunskap, föreslår jag att du tittar på en video om det nya gränssnittet för Android från Samsung:

Lycka till! Ser snabba möten på sidorna av ktonanovenkogo.ru

De flesta moderna gränssnitt är utformade för erfarna användare. Kranarna blev inte omedelbart för alla bekanta. Tidigare var switternas sidor säkert märkt röda och blåa - för att vara tydlig där den är kall och var varmt vatten. Nu är vi vana vid, och fler och fler kranar släpps utan märkning. Förmodligen kom de äntligen ihåg vilken sida som strömmar.

Med webbgränssnitt var det ungefär samma. I början av noll var det en Skiophism - grafiken imiterade de verkliga världsobjekten. Om platsen var knappen såg den ut som en riktig volymetrisk knapp. Det var förståeligt för de flesta som köpte sina första datorer.

Men ögonblicket kom när nya användare har blivit mindre. Den som ville börja använda en dator och Internet har redan behärskats i teknik. Och behovet av realistiska gränssnitt försvann gradvis.

Nu, istället för den detaljerade "menyn" -ikonen, används den så kallade burgeren vanligtvis med signaturen - tre horisontella remsor. Och vi vet helt bra vad de menar. Vi vet också att webbplatser brukar läsa från topp till botten. Och behöver inga pilar att förklara. Moderna gränssnitt är utformade för erfarna användare och mer koncis.

Program

Gränssnittet kan betraktas som ett slags kontrakt mellan systemet och en extern miljö. Som en del av datorprogrammet är systemet funktionen eller modulen, och "miljön" är resten av projektet. Gränssnittet beskriver formellt vilka data som kan överföras mellan systemet och miljön. Och "implementering" kan beskrivas som "minus gränssnittssystem". På språk som Haskell-gränssnitt kan vara extremt specifika. Och på språk som Python, är de tvärtom mycket vanliga. Den valda gränssnittstypen kan påverka storleken på den skapade tekniska skulden och programmeringens prestanda. Hur man beräknar det är skrivet nedan. En metod kommer också att föreslås för utvärdering och jämförelse av olika gränssnitt. Baserat på dessa jämförelser kan du titta på sig för att använda språk- eller programvaruverktyget.

Det viktigaste konceptet i utvecklingen av programvara - koncept

Gränssnitt

. Den här artikeln handlar inte om Java-gränssnitt, men om gränssnitt i programvarudesign. Och i mindre utsträckning - på gränssnitt i omvärlden. Naturligtvis används många andra viktiga begrepp i utvecklingen av programvara, men jag tror att de flesta av dem på något sätt är beroende av gränssnittets betydelse.

Vad är gränssnittet?

De flesta av oss är bekanta med två korta formuleringar:

Gränssnittet är ett kontrakt mellan systemet och en extern miljö. Gränssnittet är ett parningssystem med en extern miljö.

Gränssnitt = System ∩ Omgivning

Definition med parning är lämplig, om systemet är ett fysiskt föremål. Båda definitionerna är mycket abstrakta, så låt oss betrakta dem på utskriftsexemplet på tangentbordet:

Här är systemet en bärbar dator, miljön - händer (liksom kattens tassar, klättring på tangentbordet). Följaktligen måste gränssnittet vara en del av interaktionen mellan händer och en bärbar dator, som inte bara kan hänföras till några av parterna, men endast för båda. Vanligtvis tänker vi på händerna och tangentbordet är separat, så att de exakta gränserna för gränssnittet i det här fallet är föremål för den filosofiska tvisten. Du bestämmer: om det är tangentbordet som helhet eller enskilda atomer som interagerar med varandra när fingrarna och nycklarna kontaktar.

Förmodligen kommer du att bli förvånad över hur det här exemplet korrelerar med definitionen av gränssnittet som ett kontrakt. I det här fallet menas avtalet ett avtal som vid den tidpunkt vi tillbringade tillräckligt med ansträngning när de kom ihåg platsen för nycklarna och muskelminnet omarbetades. Ett antal nyanser är förknippade med fördraget. Om du till exempel trycker och håller knappen har ett annat värde jämfört med en enkel engångspress.

Alla dessa är nyfikna filosofiska resonemang, men hur relaterar de till att skriva programvara? Tja, låt oss börja med att gränssnitten i programmering omger dig från alla sidor, även om du inte uppmärksammar det. Till exempel, om du är programmering på Java, bara namnge gränssnittet beroende på deras syfte. Och på andra språk är de också närvarande. Låt oss överväga ett exempel på en gränssnittsfunktion

:

add_numbers. 

unsigned int, unsigned int); void other_function (void) {add_numbers (3.4);} unsigned int add_numbers (unsigned int a, unsigned int b) {returnera a + b;} int huvud (void) {add_numbers (9,99); Returnera 0;}

Applicera samma färgdifferentieringsteknik

Byxor

Alla dessa är nyfikna filosofiska resonemang, men hur relaterar de till att skriva programvara? Tja, låt oss börja med att gränssnitten i programmering omger dig från alla sidor, även om du inte uppmärksammar det. Till exempel, om du är programmering på Java, bara namnge gränssnittet beroende på deras syfte. Och på andra språk är de också närvarande. Låt oss överväga ett exempel på en gränssnittsfunktion

För att beskriva miljön, system

och gränssnitt:

Alla dessa är nyfikna filosofiska resonemang, men hur relaterar de till att skriva programvara? Tja, låt oss börja med att gränssnitten i programmering omger dig från alla sidor, även om du inte uppmärksammar det. Till exempel, om du är programmering på Java, bara namnge gränssnittet beroende på deras syfte. Och på andra språk är de också närvarande. Låt oss överväga ett exempel på en gränssnittsfunktion

Systemet som behandlas här består av en funktion

. Om du säger att du kan överväga som en separat system huvudmetod -

Other_funktion.

Alla dessa är nyfikna filosofiska resonemang, men hur relaterar de till att skriva programvara? Tja, låt oss börja med att gränssnitten i programmering omger dig från alla sidor, även om du inte uppmärksammar det. Till exempel, om du är programmering på Java, bara namnge gränssnittet beroende på deras syfte. Och på andra språk är de också närvarande. Låt oss överväga ett exempel på en gränssnittsfunktion

- Då kommer du att vara rätt. Men för enkelhet, anser vi en funktion

Alla dessa är nyfikna filosofiska resonemang, men hur relaterar de till att skriva programvara? Tja, låt oss börja med att gränssnitten i programmering omger dig från alla sidor, även om du inte uppmärksammar det. Till exempel, om du är programmering på Java, bara namnge gränssnittet beroende på deras syfte. Och på andra språk är de också närvarande. Låt oss överväga ett exempel på en gränssnittsfunktion

.

Isolerat system. Det är också tillrådligt att överväga en del av konverteringsgränssnittet till

Som du kan se läggs det fjärde konceptet här: "Implementering". Det är ganska svårt att diskutera ämnet för gränssnitt utan att ta hänsyn till specifika implementeringar. Låt oss definiera denna term: Implementering är ett minus gränssnittssystem. Implementering = system ∖ gränssnitt

Implementering = system ∖ (system ∩ miljö)

Jag måste erkänna att jag aldrig hade en sådan definition av genomförandet tidigare. Men det här är en oundviklig förlängning av en uppsättning gränssnittdefinitioner som har ett antal fördelar. Om du är en fattig student och förbered dig för provet, har du förmodligen din lärare aldrig hört talas om den här definitionen. Jag kommer inte att bli förvånad om det kommer att motsäga någon taxonomi för objektorienterad programmering. Men även i det här fallet kommer jag inte att ändra det. Låt fansen av OOP skriva om sina abstrakter i enlighet med min definition.

Det leder oss i sin tur till nästa logiska slutsats: när vi pratar om det fysiska systemets gränssnitt, föreställer vi vanligtvis "implementeringen" av detta system i form av ett enda fysiskt objekt. Det skulle trots allt vara konstigt att överväga det "riktiga" implementeringen utan att ta hänsyn till knappar, visar eller andra komponenter. Och det skjuter oss att överväga gränssnittet mer som ett "avtal", och inte en kombination av fysiska föremål. Det är i form av en uppsättning löften, garantier eller något som ...

.

Kontrakt mellan systemet och miljön

Gränssnitt som kontrakt

Alla dessa är nyfikna filosofiska resonemang, men hur relaterar de till att skriva programvara? Tja, låt oss börja med att gränssnitten i programmering omger dig från alla sidor, även om du inte uppmärksammar det. Till exempel, om du är programmering på Java, bara namnge gränssnittet beroende på deras syfte. Och på andra språk är de också närvarande. Låt oss överväga ett exempel på en gränssnittsfunktion

Om du anser funktionsgränssnittet

  • I form av ett kontrakt kommer garantierna att vara sådana: Alla dessa är nyfikna filosofiska resonemang, men hur relaterar de till att skriva programvara? Tja, låt oss börja med att gränssnitten i programmering omger dig från alla sidor, även om du inte uppmärksammar det. Till exempel, om du är programmering på Java, bara namnge gränssnittet beroende på deras syfte. Och på andra språk är de också närvarande. Låt oss överväga ett exempel på en gränssnittsfunktion Fungera
  • Alla dessa är nyfikna filosofiska resonemang, men hur relaterar de till att skriva programvara? Tja, låt oss börja med att gränssnitten i programmering omger dig från alla sidor, även om du inte uppmärksammar det. Till exempel, om du är programmering på Java, bara namnge gränssnittet beroende på deras syfte. Och på andra språk är de också närvarande. Låt oss överväga ett exempel på en gränssnittsfunktion existerar. Den har bara två parametrar, som var och en är osignerad .
  • Alla dessa är nyfikna filosofiska resonemang, men hur relaterar de till att skriva programvara? Tja, låt oss börja med att gränssnitten i programmering omger dig från alla sidor, även om du inte uppmärksammar det. Till exempel, om du är programmering på Java, bara namnge gränssnittet beroende på deras syfte. Och på andra språk är de också närvarande. Låt oss överväga ett exempel på en gränssnittsfunktion int. Den har bara två parametrar, som var och en är osignerad .

Returnerar bara en unsigned

  • Gränssnittet för den här funktionen berättar inte någonting: Alla dessa är nyfikna filosofiska resonemang, men hur relaterar de till att skriva programvara? Tja, låt oss börja med att gränssnitten i programmering omger dig från alla sidor, även om du inte uppmärksammar det. Till exempel, om du är programmering på Java, bara namnge gränssnittet beroende på deras syfte. Och på andra språk är de också närvarande. Låt oss överväga ett exempel på en gränssnittsfunktion ;
  • Vid avbrott i utförandet Alla dessa är nyfikna filosofiska resonemang, men hur relaterar de till att skriva programvara? Tja, låt oss börja med att gränssnitten i programmering omger dig från alla sidor, även om du inte uppmärksammar det. Till exempel, om du är programmering på Java, bara namnge gränssnittet beroende på deras syfte. Och på andra språk är de också närvarande. Låt oss överväga ett exempel på en gränssnittsfunktion ;
  • om räcktidens asymptotiska komplexitet Alla dessa är nyfikna filosofiska resonemang, men hur relaterar de till att skriva programvara? Tja, låt oss börja med att gränssnitten i programmering omger dig från alla sidor, även om du inte uppmärksammar det. Till exempel, om du är programmering på Java, bara namnge gränssnittet beroende på deras syfte. Och på andra språk är de också närvarande. Låt oss överväga ett exempel på en gränssnittsfunktion ;
  • På antalet ledigt minne som krävs för att starta Den har bara två parametrar, som var och en är osignerad ;
  • Om det specifika genomförandet av unsigned

På biverkningar (minnesallokering, modifiering av globala variabler).

Alla dessa är nyfikna filosofiska resonemang, men hur relaterar de till att skriva programvara? Tja, låt oss börja med att gränssnitten i programmering omger dig från alla sidor, även om du inte uppmärksammar det. Till exempel, om du är programmering på Java, bara namnge gränssnittet beroende på deras syfte. Och på andra språk är de också närvarande. Låt oss överväga ett exempel på en gränssnittsfunktion

Gränssnittet som beskrivits ovan

Känd under typ av funktion

Prototyp.

. I tidigare versioner av K & RC användes en svagare form av beskrivning av gränssnitten:

unsigned int add_numbers ();

Definition av gränssnittet som ett kontrakt är mycket bekvämt för programmering. När allt kommer omkring består de flesta programmeringsuppgifter för att bestämma och begära uppsättningar av axiom. Primär- och slutliga förhållanden ger några egenskaper eller beteende. Innan två parter knyter ett affärsförhållande med varandra, förbereder de kontraktet. Det formulerade slutresultatet, beloppet och tidslinjen för betalning. Det föreskriver också villkoren för tidig uppsägning, ersättning och kostnader. Om kontraktet bryts, omvandlar situationen domstolen eller skiljeförfarandet. Men om du glömde något att ange i kontraktet, kan överraskningar uppstå.

Med datorprogram alla samma. Moduler och funktioner säger att de behöver och (ibland) vad de kommer att ges i gengäld. Överträdandet av detta kontrakt kommer att leda till ett kompileringsfel, till ett fel på genomförandet, för att felanvändningen, systemet, systemet, kvalitetskontrollverktygen och ledningen i handboken. Jag skulle till och med säga att definitionen av gränssnittet som ett kontrakt inte är metaforiskt. Här är samma principer som i det kommersiella kontraktet, även om det inte är så detaljerat.

Patent, upphovsrätt och gränssnitt

Jag kommer inte ge dig råd på rättsområdet. Kanske sade något från mig även att motsäga lagarna. Allt följande är författarens privata åsikt.

Så jag är benägen

bokstavligen

Tänk på gränssnittet som ett "kommersiellt kontrakt" mellan två enheter. Jag betonar - jag anser inte att det är en metafor. Jag adresserar särskilt denna tolkning av specialister i teorin om datorer och upphovsrättsliga protester.

Ska gränssnittspatentet? Med tanke på hans definition som ett kontrakt mellan systemet och miljön tror jag att användningen av patent skulle vara ett misstag. Och tydligen stöder befintlig rättspraxis min position. Men kom ihåg att ordet "gränssnitt" används mycket, och ofta alls i den meningen, som jag beskrivit ovan.

Ska jag skydda gränssnittet av upphovsrätt? Återigen, med tanke på "kontraktsmässigt" naturen, tror jag att gränssnittets "källkod" måste vara föremål för upphovsrätt. Samtidigt bör upphovsrätten inte tillämpas på aspekterna av gränssnitt som gör dem speciella. Det är nog att skydda källkoden eller en handskriven bild, men inte garanti eller begränsningar. Om garantin eller gränssnittsbegränsningarna blir oskiljaktiga från någon av de delar av koden, bör dessa delar berövas rätten till skydd.

Jag föreslår ett enkelt test som gör att du kan uppskatta om det är nödvändigt att skydda med upphovsrätten.

Om du vill skydda någon form av attributuppsättning, inklusive alla komponenter från en tredje part, på något sätt som används av gränssnittet, kan du alltid skapa en lämplig ersättning. Byte implementerar samma gränssnitt och framgångsrikt används i programvara från en tredje part, utan några ändringar av denna programvara, liksom utan överträdelse av upphovsrätt. Om någon ersättare kommer att leda till upphovsrättsintrång, eller medföra modifieringsprogram från en tredje part eller förvärra funktionalitet, är attributuppsättningen är för aggressiv och måste minskas.

Jag tror att med hjälp av detta test är det lämpligt att kontrollera även på patenterbarhet. Observera: Syftet med testet är att bestämma extremt

Inappolition

Skydd upphovsrätt eller patent. Han kommer inte att hjälpa till med att ta itu med det

Följ

Vända skyddet. Dessutom är detta test bara min åsikt och inte en lagstiftningsakt eller lag.

Jag vill också notera att ett kriterium som anses vara en del av gränssnittet på samma språk kanske inte är det på ett annat språk. Till exempel, i Java, påverkar proceduren för att deklarera funktioner inte genomförandet av programmet. Och om du av misstag säger att funktionen av funktioner i filen inte spelar någon roll, kommer det att bli ett fel i förhållande till programmet på Python: 

Def foo (): Skriv ut ("asdf") def foo (abc): print (abc) foo ("lol")

Alla dessa konversationer om lagarna påminde mig om

Oracle mot Google

. Enligt den angivna länken kan du hitta intressanta detaljer för utvecklare, så jag kommer att förlita mig på dem i min analys. Med tanke på alla aspekter ser jag inte skälen till att vara oense med beslutet från saken till förmån för Oracle. Jag kan inte säga att de ovillkorsmässigt stöder dem, eftersom vi inte är tillgängliga, inte så många delar av förfarandet.

Jag tror att många oroar sig för att ett prejudikat kommer att skapas, vilket möjliggör elementen i gränssnittet för att skydda patentet eller upphovsrätten. Bara det fall där mitt test inte skulle godkännas. Tingsrätten fattade ett beslut: "API: s struktur, sekvens och arkitektur kan skyddas av upphovsrätten." Jag tror inte att det här är ett problem, eftersom "strukturen, sekvensen och arkitekturen" i sin definition kommer att gå helt igenom mitt test. Jag kommer att ge ett par utdrag ur artikeln på länken ovan:

"Domstolen drog slutsatsen att" det finns bara ett sätt att skriva "annonser för att interagera med Java. Om så är fallet är användningen av samma annonser inte föremål för upphovsrätt. Google har inte bestridit det faktum att de kunde skriva sina egna API för att komma åt Java, med undantag för tre. " Slutligen, "i Google erkände att de bokstavligen kopierade annonser."

Jag tror att domstolen godkände rätt beslut och slutsatsen att de unika egenskaperna hos gränssnittet inte skulle skyddas. Dessutom erkände Google "bokstavlig" kopiering. Om det betyder copyftning, inklusive alla luckor och stavfel i kommentarerna, anser jag att det är ett brott mot rättigheter. Även om gränssnittet inte kan skyddas, bör det inte störa skyddet av individuellt kreativt uttryck.

Jag vet om denna tvister endast från öppna nätverkskällor, men uppenbarligen har den ursprungliga Java-koden kopierats till Google, inklusive gränssnitt. Det verkar som om de själva trodde att det var nödvändigt att licensiera deras användning av Java, eftersom det var föremål för förhandlingar om licensavtal med Sun före 2010. Men dessa avtal misslyckades efter att Sun köptes av Oracle. Ändå fortsatte Google att använda de "bokstavliga" kopiorna av koden, vilket tydligt inte gick till hennes fördel vid rättegången. Jag misstänker att deras advokater visste om svagheten i sin position, så de valde en skyddsstrategi baserat på den legitima efterfrågan på icke-spridning av upphovsrätt till gränssnitt. De hoppades att vinna ärendet på bekostnad av gränssnittets representation i form av källkoden och dess förening med ett mer filosofiskt koncept.

Vad är "modul" eller "abstraktion"?

Med ordet "modul" i mitt huvud finns en kapitalbild av posten. Denna illustration visar väl vikten av modulens gränser och dess interaktion med miljön. Kubgränssnittet begränsar snabbt interaktionen mellan den yttre miljön med innehållet i kuben. Du kommer inte att kunna kringgå gränssnittet, så du måste hålla "reglerna i spelet" som åläggs det. Slutligen finns det inget inuti kuben, men det spelar ingen roll: det är viktigt inte innehållet, utan ett gränssnitt.

Ett annat exempel: Cellmembranets struktur. Olika komponenter ger endast de nödvändiga ämnena genom membranet och endast när det är nödvändigt.

I samband med denna artikel kommer jag att använda termerna "moduler" och "abstraktion" som synonymer. Naturligtvis kommer de förklaringar som inte är överens med mig, och även på olika programmeringsspråk har dessa termer en annan betydelse. Men i det här fallet är jag bara intresserad av det faktum att båda dessa enheter kan ses som ett system som det är förstått i den här artikeln. Det vill säga abstraktioner och moduler kan bestå av ett gränssnitt och implementering.

Du kan läsa en separat funktion hos modulen i C, "Module" - i Python, klass eller paket - i Java. Något, om det bara hade ett externt gränssnitt och "dolt" implementering. Dessutom kan det finnas en följd av språkreglerna eller till och med en programmerare.

Torka abstraktion

Såvitt jag vet, tanken

Dumpy abstraktioner lade fram Joel Spolski

. I sin uppsats finns det några bra exempel, men jag skulle vilja ta med mig. I programmeringen uppstår begreppet "kartor" ofta: representerar datastrukturen bestående av par av nycklar och värden. Viktig gräns: Kortet säkerställer att alla nycklar måste vara unika. Ett försök att spela in ett nytt värde för en befintlig nyckel kommer att resultera i ett fel eller skriv över föregående värde. Bottenlinjen är att nycklarna inte ska dupliceras. Oftast kräver programmerarna en önskan att sortera ut alla dessa nycklar. Och eftersom kartorna inte kan garantera en viss order av sorteringsnycklar, är det ibland nödvändigt att undra i vilken ordning de kommer att vara efter bustingen? Detta är konsekvensen av det faktum att kortgränssnittet inte tillåter sorteringsgarantier. Och även om det antas att det inte spelar någon roll, men i praktiken vill jag fortfarande sortera. Så det är nödvändigt för en effektivare dataorganisation, till exempel, för att underlätta verifieringen av befintliga nycklar.

Sorterad data brute kraft kan ge ett helt annat resultat jämfört med slumpmässiga data överväldigande. Antag att du måste hitta minimivärdet i listan: 

min = null; list = map.getmapeys (); för (artikel i listan) {om (min == null) {min = itue} annars om (objekt <min) {min = min; / * Den här raden har en bugg * /}}

Gren

Annars om.

Det kommer aldrig att utföras om data sorteras uppåt. Även om du börjar kolla från en slumpmässig plats för listan, kommer programmet aldrig att kollidera med den här strängen. Och det här är ett stort problem, eftersom om du ändrar genomförandet av kortet och det inte kommer tillbaka sorterade nycklar, kommer din kod plötsligt att utföras på en buggfel. Och när du helt kommer att glömma den här koden och bomben dold inuti den.

Jag vill erbjuda min egen definition av abstraktionsläckage.

Abstraktionsläckan (abstrakt läckage) kallas situationen när genomförandet kan påverka miljön eftersom det inte föreskrivs av gränssnittet.

Enligt denna definition,

Nästan varje

Abstraktion - andning. Beskrivningen i gränssnittet för alla typer av miljöpåverkan är trots allt endast meningsfullt i de strängaste matematiska systemen. Och som för fysiska system, kan du komma ihåg

.

Teorem gödel om ofullständighet

Tanken med hålen i de flesta abstraktionerna är inte orimligt. Detta innebar att Joel Spolski i sin "Läckage Abstracts":

"Alla icke-triviala abstraktioner är i viss utsträckning ett hål."

När alla abstraktioner lutar, vad man ska prata om? Problem uppstår endast när en del av miljön börjar förlita sig på ett av de oförutsedda sätten att exponera för systemet. Det handlar om sådana läckor som alla säger.

Detta leder till långtgående konsekvenser, inte bara ur synvinkel av vanliga buggar, men också inom säkerhetsområdet. Med fysiska system där det finns läckage i den yttre miljön, kompromissa med säkerheten, termen "

Sidokanal attack

" I kombination med ett uttalande att alla abstraktioner av hålen leder vi oss till slutsatsen:

Varje fysisk implementering av kryptosystemet är sårbart för attacker från tredje part.

Med tanke på allt ovan kan denna idé förlängas inte bara för fysiskt, men också på emulerade implementeringar.

Utvärdering och jämförelse av gränssnitt

Som vi redan har sett ovan är det i gränssnitt på C, t.ex. typ av returvärde och antalet parametrar som kan överföras. Vad sägs om python? Jag använder termen "gränssnitt" i enlighet med artikelns sammanhang, det vill säga i en bredare mening jämfört med vad de skriver i böckerna om "gränssnitt" i Python. 

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

På detta språk måste vi formalisera typerna av funktionsgränssnitt. Det förenklar definitionen och samtalsfunktionen, eftersom det är nödvändigt att bearbeta mindre information. Å andra sidan begränsningar som du kan utföra kontrollen efter sökandet efter fel.

Alla dessa är nyfikna filosofiska resonemang, men hur relaterar de till att skriva programvara? Tja, låt oss börja med att gränssnitten i programmering omger dig från alla sidor, även om du inte uppmärksammar det. Till exempel, om du är programmering på Java, bara namnge gränssnittet beroende på deras syfte. Och på andra språk är de också närvarande. Låt oss överväga ett exempel på en gränssnittsfunktion

Jag tror att du behöver något att säga om bedömningen och jämförelsen av olika egenskaper hos gränssnittet ur synvinkel av informationsöverföringsmetoder. Du kan utvärdera både ett specifikt gränssnitt och en uppsättning av alla gränssnitt som kan implementeras på detta språk. Låt oss komma ihåg vårt exempel med

Och vi uppskattar hur mycket information vi kan passera genom gränssnittet och kringgå det, med hjälp av abstraktionsläckor. Via gränssnittet
Genom att gå runt gränssnittet Beskrivning av egenskaper Genom att gå runt gränssnittet Beskrivning av egenskaper
Antal möjliga tillstånd Typ av parameter 1. 1 (unsigned int) Status av global variabel
(Antal globala variabler) * (antal av globala variabler) Typ av parameter 1. Typ av parameter 2. Filsystem
Antal status med status Typ av parameter 1. Typ av returvärde Processorns användningstid
Inte begränsad Parametervärde 1. 2 ^ (räkna med unsigned int) Tillstånd av kuchi.
Antal stater Parametervärde 1. Parametervärde 2. Mycket andra ...
... Parametervärde 1.

Returvärde

Alla dessa är nyfikna filosofiska resonemang, men hur relaterar de till att skriva programvara? Tja, låt oss börja med att gränssnitten i programmering omger dig från alla sidor, även om du inte uppmärksammar det. Till exempel, om du är programmering på Java, bara namnge gränssnittet beroende på deras syfte. Och på andra språk är de också närvarande. Låt oss överväga ett exempel på en gränssnittsfunktion

Och det finns ett antal saker som kan kommunicera med

Via Python-gränssnittet. Informationsöverföring via Python-gränssnittet
Genom att gå runt gränssnittet Beskrivning av egenskaper Genom att gå runt gränssnittet Beskrivning av egenskaper
Antal möjliga tillstånd Överföring av information som kringgår Python-gränssnittet 1 (unsigned int) Filsystem
(Antal globala variabler) * (antal av globala variabler) Överföring av information som kringgår Python-gränssnittet Typ av parameter 2. Processorns användningstid
Antal status med status Överföring av information som kringgår Python-gränssnittet Typ av returvärde Tillstånd av kuchi.
Inte begränsad Överföring av information som kringgår Python-gränssnittet 2 ^ (räkna med unsigned int) Mycket andra ...
Antal stater Överföring av information som kringgår Python-gränssnittet Parametervärde 2. Status av global variabel
... Överföring av information som kringgår Python-gränssnittet

Praktiskt taget oändlig

Och ta en titt på antalet gränssnittstyper som vi kan beskriva i Haskell: 

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

Alla dessa är nyfikna filosofiska resonemang, men hur relaterar de till att skriva programvara? Tja, låt oss börja med att gränssnitten i programmering omger dig från alla sidor, även om du inte uppmärksammar det. Till exempel, om du är programmering på Java, bara namnge gränssnittet beroende på deras syfte. Och på andra språk är de också närvarande. Låt oss överväga ett exempel på en gränssnittsfunktion

Med tanke på denna kod, gränssnittet

Kan få följande information: Överföring av information via HASKELL-gränssnittet
Genom att gå runt gränssnittet Beskrivning av egenskaper Genom att gå runt gränssnittet Beskrivning av egenskaper
Antal möjliga tillstånd Överföring av information med hjälp av Haskell-gränssnittet Typ av returvärde Processorns användningstid
(Antal globala variabler) * (antal av globala variabler) Överföring av information med hjälp av Haskell-gränssnittet 1 (int) Processorns användningstid
Antal status med status Överföring av information med hjälp av Haskell-gränssnittet Effekt på processorn / minnescachen Mycket andra ...
Inte begränsad Övrig ...
Antal stater 1 (värde 3)
... 1 (värde 4)

Minst 2 ^ 30 [1]

  • För ett visst gränssnitt i ditt valda språk kan du också utvärdera antalet unika sätt att överföra information:
  • genom gränssnittet;

Genom att gå runt gränssnittet genom abstraktionsläckor.

  • Du kan också uppmärksamma följande:
  • Hur många restriktioner du kan använda inom detta språk ur minsta och maximalt antal information som sänds genom gränssnittet.

Vilka instrument ger detta språk för att förhindra interaktion till gränssnittet bypass.

Program
Låt oss analysera på så sätt det grafiska användargränssnittet där det är möjligt att ändra mapparna: Överföring av information via GUI
Genom att gå runt gränssnittet Beskrivning av egenskaper Genom att gå runt gränssnittet Beskrivning av egenskaper
Överföring av information omger GUI Klicka på mapp 1 Antal pixlar på skärmen som hålls av mappen 1 * Antal klick Processorns användningstid
Dolda möjligheter ui Klicka på mapp 2 Antal pixlar på skärmen som hålls av mappen 2 * Antal klick Icke-standard snabbsamtalskombinationer
Antal pixlar på skärmen upptagen med knapp 2 GUIDANCE CURSOR till mapp 1 Antal pixlar på skärmen som hålls av mappen 1 Mycket andra ...
Andra oväntade UI-kapacitet GUIDANCE CURSOR TO FOLDER 2
Antal pixlar på skärmen som hålls av mappen 2 Tid mellan vägledning och klicka
Oändligt Standard tangentbordshändelser
Antal standardnyckelkombinationer Skärmområde upptaget av GUI

Antal pixlar som används för att visa GUI

Och nu överväga samma uppgift att ändra mappen med kommandoraden och

:

Låt oss analysera på så sätt det grafiska användargränssnittet där det är möjligt att ändra mapparna: Överföring av information via GUI
Genom att gå runt gränssnittet Beskrivning av egenskaper Genom att gå runt gränssnittet Beskrivning av egenskaper
CD Processorns användningstid Antal mappnamn som du kan ringa Processorns användningstid

Variabel miljö

I de föregående två tabellerna inkluderade jag inte data som antalet ljud i signalen. Om du jämför komplexiteten av upprepning av samma sekvens när du trycker på tangenterna (en efter en) och musrörelsen (pixel bakom pixeln) är det uppenbart att i det andra fallet är felen mycket mer. I grafiska gränssnitt kompenseras detta genom att göra mindre stränga semantik. Föreställ dig om knapparna "OK" och "Avbryt" tillgängliga för zonklicken var bara 1 pixelbredd.

Det är möjligt att ytterligare komplicera analysen om du utvärderar förändringen i andelen fel i användare med fysiska funktionshinder.

  • Så ansåg vi ett av de möjliga sätten att bedöma och jämföra gränssnitt. Baserat på ovanstående exempel och sin egen erfarenhet, låt mig göra flera extrapolering:
  • Människor föredrar gränssnitt som inte är för strikta när du tar emot information, speciellt om gränssnittet är okänt.
  • Inte för strikta gränssnitt används oftare felaktigt.
  • Omfattande gränssnitt som är värd stora mängder information ser kraftfull, men används ofta felaktigt.
  • Om interaktionen blir tråkig, försöker folk överföra information till gränssnittet bypass.

När du interagerar, kringgå gränssnittet, genom abstraktionsläckor, är uppkomsten av obehagliga överraskningar extremt sannolikt.

Torkning och begränsade gränssnitt

Jag kommer att beskriva flera observationer baserat på analysen från föregående avsnitt. Men först kommer jag att ge ett par definitioner:

Det läckande gränssnittet (läckande gränssnitt) är ett gränssnitt som ignoreras under några interaktioner mellan systemet och miljön.

Ett begränsat gränssnitt (specifikt gränssnitt) är ett gränssnitt med ett relativt litet antal möjliga ingångar och utgångar.

Ett bra exempel på ett begränsat gränssnitt -

bitvis angivna funktioner

definieras endast för ett litet antal inmatningsdata.

Om du rimligen kan utvärdera "Holes" eller "Limiticity" -gränssnitt, är det meningsfullt att skissera intervallet, i ena änden kommer att vara mycket begränsade och inaktiva gränssnitt och på det andra - obegränsat och läckande.

Du erbjuder förmodligen någon att flytta till vänster eller höger i skalan, men viktigast av allt, du grep idén. Du kan till och med krossa i två separata vågar: enligt hål och rigor. Även om dessa två begrepp i allmänhet korrelerar väl.

Nästa korrelation som jag vill erbjuda är härledd från min erfarenhet. På den vänstra kanten av "fel" skala är mindre vanliga, och vanligtvis uppstår de på grund av misslyckanden

Godkännande

.

. I högra kanten av felskalan uppträder oftare, och ofta ligger deras anledning i misslyckandena när

verifiering

Asymptotisk komplexitet av teknisk skuld

Jag börjar med uttalandet:

Huvuddelen av den tekniska skulden uppstår i projektet eller på grund av det oacceptabla biståndet om läckage av abstraktioner, eller på grund av de extremt otroliga gränssnitten, vilket väsentligt komplicerar prognoserna för konsekvenserna.

I början innehåller projektet en eller två moduler och att studera ett bra gränssnittsavtal måste du utföra mängden arbete på (1). Om ditt gränssnitt är dåligt kommer volymen av teknisk skuld också att vara lika med (1), så du behöver inte spendera för mycket tid på att ta med gränssnittskontraktet. Men med en linjär ökning av mängden moduler kan volymen av intermoduliska bindningar uppnå O (n ^ 2). Därför, med ett dåligt gränssnitt, om varje modul interagerar med alla andra moduler, kommer antalet överklaganden till gränssnittet i värsta fall att vara proportionellt mot n ^ 2.

Som det kan ses från graferna sparas det ursprungligen på att skapa ett väl genomtänkt gränssnitt. Men den här vinsten är snabbt förlorad på grund av de ökande problem som är förknippade med inter-module interaktion. Mängden arbete på grund av detta ökar till graden av mängder moduler, medan det med ett bra gränssnitt växer linjärt. Det värsta scenariot - När varje modul kommunicerar med varje modul, finns det fler problem i Hendeshka, härifrån och stammar.

Typiskt växer nivån av intermodulisk interaktion långsammare än O (n ^ 2), men det är definitivt snabbare än omkring (n). Det finns också en faktor som skiftar början av snabb tillväxt i framtiden: det här är mänskligt minne. Även när det finns 20 moduler i ditt projekt, kommer du förmodligen ihåg att det gör var och en av dem. Så, av alla kontrakt behöver du bara de dimmiga namnen på funktioner och esoteriska avtal. Men så snart projektet blir ganska stort, är många detaljer glömda, eller när nya människor kommer till projektet - och den kraftfulla tillväxten av arbetskraftskostnaderna börjar.

  • Varför använder fortfarande kommandoraden?
  • Du kommer att få olika svar från människor till den här frågan, varav ingen verkar det viktigaste:
  • Kommandoraden är flexibel och ger många möjligheter.

Det förbrukar mindre resurser.

Detta gör att du bättre kan förstå hur allt fungerar.

Det viktigaste är varför vi fortfarande använder kommandoraden, det är

AUTOMATISERING!

Det är knappast möjligt att överskatta fördelarna med att använda automatiserade processer. Om jag behöver köra ett kluster till 100 servrar, kommer jag inte att ansluta till var och en av dem individuellt och manuellt installera programvara, klicka på en hög med knappar i otaliga GUI. Även om du behöver automatisera Clichan-processen i GUI, behöver du en annan fil där information sparas på var och hur man klickar på. Något som en flexibel fil ... lag.

Även om vi kunde implementera automation genom klick och skärmgrabbar, får vi inte glömma att denna typ av interaktion med maskinen är uppfunnen för personer. Det innebär användningen av ett icke-strikt gränssnitt som inte kräver hög noggrannhet. Därför kommer din automatiserade klickare säkert att användas om fönstret plötsligt rör sig från sin position eller systemtunnan ändras. Med GUI är för många variabler anslutna. Och kommandoraden gör att du kan agera mycket mer exakt, du interagerar genom ett mycket strikt gränssnitt. Därför gillar många människor inte, till skillnad från datorprogram.

Naturligtvis finns det situationer där den låga noggrannheten av samverkan mellan GUI är bra. Till exempel, när du skapar digitala målningar behöver du inte oroa dig för placeringen och färgen på varje pixel. Det viktigaste är att vara

något

Speciell för varje pixel. Därför blir bullret som överförs för hand att flytta markören viktig information i slutprodukten.

Välja rätt språk

Efter avsnittet om den asymptotiska komplexiteten i teknisk skuld kanske du tror att något projekt måste skrivas på ett språk med mycket stränga villkor för gränssnittskontrakt, som Haskell eller Java. Men det här är inte precis vad jag ville förmedla. Svaret på nästa fråga kan hjälpa dig att göra rätt val.

Hur sannolikt att ändra kraven för ditt projekt?

I början av det nya fallet kommer svaret säkert att vara "mycket troligt", särskilt om en liten produkt skapas, och även med tvetydigheten i sina utsikter på marknaden. Om kraven är tydligt formulerade som till exempel, i fallet med att skapa en kompilator eller utveckling av ett projekt baserat på internationella standarder, kommer svaret säkert att vara "inte för troligt".

Om du svarade "mycket troligt", använd sedan ett språk som gör att du kan förlora mindre tid när du anger gränssnittskontrakten: de kommer säkert att arbeta mot dig i händelse av förändringar i kraven. Men den viktigaste uppgiften här är inte att få det perfekta genomförandet av kraven, men de idealiska krav som tillåter dig

att börja

Skapa slutgiltigt genomförande. Ett undantag kan vara en situation där din MVP är ett stort system med hundratals moduler. Om många människor är involverade i projektet, är ett bra gränssnitt helt enkelt nödvändigt för att de ska komma till varandra.

Om du svarade "inte för troligt", använd sedan ett språk med mycket strikta gränssnittskontrakt. Först måste du jobba mer, men då kommer införandet av nya möjligheter att kräva mindre ansträngning. Det enda undantaget kan vara en situation om du skriver lite liten produkt (flera hundra strängar).

Någon gång bröts ganska några kopior om vad Twitter började skapa på rubin på skenor, och då var det anledningen till projektets skalning. Senare var Twitter översatt till Scala. Någon kan anta att utvecklarna gjorde ett misstag och de skulle omedelbart välja Scala. Jag tror inte det. I hjärtat av Twitter ligger en mycket enkel idé, och i förhållandena för ett stort antal konkurrenter behövde de vinna den dominerande ställningen på marknaden. De behövde växa så snabbt som möjligt, trots utgifter. Utvecklingscyklerna för nya funktioner borde ha gått mest snabbt som möjligt, eftersom det tillåter det på kortast möjliga tid att förstå vad som helst behöver användare, vilken produkt de vill ha som ett resultat att få. Svårigheterna med skalning är ett tecken på inte misslyckande, men framgång. Twitters vision formulerades som en färdig produkt, och den förblev bara för att inse det. Ur utvecklarens synvinkel är det bara en nirvana, alla drömmar om en sådan sak, men få människor lyckas arbeta under sådana förhållanden: "Relatera den här skiten från början på ditt favoritspråk, eftersom det är bekvämt för dig, om bara I framtiden var det lättare att arbeta med honom. " Det är mycket lättare att skriva om något från början, med en svagare implementering före våra ögon än att försöka lägga till en produktutseende, vilket gör det möjligt för företaget att ta av. Tyvärr går majoriteten av marknadsaktörerna bara genom att undvika "onödiga" kostnader för att skapa från början och spendera mycket styrka och tid på skalning som det ursprungligen var omöjligt att skala.

Varför är så populär Python?

I avsnittet om hålen och strikta gränssnitt talade jag om metoden för att klassificera gränssnitt, beroende på deras tendens att läcka över abstraktioner, liksom hur strikt kan vara gränssnittdefinitioner. Och jag påpekade det faktum att mer "vänliga" och "produktiva" gränssnitt är mycket mer benägna att läcka än den andra delen av gränssnittsspektrumet.

Jag tror att Pythons popularitet härrör från det faktum att det är ett utmärkt inledande språk som ger extremt enkla gränssnittskontrakt. Av samma anledning, med en ökning av projektet på Python blir det allt svårare.

Python är mycket populär i det vetenskapliga samfundet och bland älskare experimentera med numerisk analys. Experimentets väsen kräver konstant förbättring av den skapade produkten, och strikta gränssnitt sakta ner.

Varför skriver företagsprogramvara vanligtvis på Java / C ++?

I avsnittet om hålen och strikta gränssnittet pratade jag om kompromisser i samband med olika typer av gränssnitt. Java och C ++ är mer till den strikta delen av spektret, till skillnad från Python eller Ruby. Ja, läckor kan ha läckor, och det finns strängare språk (samma haskell), men Java och C ++ är mer balanserade ur synvinkeln, vänlighet och texter. Dessutom tillåter dessa två språk att du är flexibel för att styra gränserna för gränssnitt beroende på projektavtal. Till exempel gör variabler eller funktioner med privat, offentlig eller skyddad.

Hur man skär hörnen

Om du vill ta med något från den här artikeln, vänligen: När du behöver klippa hörn i projektet, gör det inuti

Försäljning

och vänd dig om B.

  • mycket bra
  • gränssnitt. Även om genomförandet inte är för bra och dess problem strömmar in i andra delar av systemet är det här ett dåligt gränssnittsproblem! Så att det inte finns något missförstånd, låt listan över vad jag menar under gränssnitten:
  • Prototyper av funktioner.
  • "Gränssnitt" Java.
  • Offentliga klasser metoder.
  • Variabler av offentliga komponenter.
  • Header-filer (.h) i C / C ++.
  • Vilsam API-slutpunkter.
  • URL-routing.
  • Offentliga aspekter av "modeller" eller "paket".

Logik databasstruktur (DDL).

Och mycket mer.

Slutsats

Som du kan se är gränssnittskonceptet extremt viktigt och har en mycket stor inverkan på projektets utveckling inom området för rättsligt skydd, produktivitet och antalet filosofiska förbindelser med andra aspekter av systemstrukturen. Fråga andra programmerare att de tänker på gränssnitt och lyssnar på alla slags saker.

Användargränssnittet är medel för interaktion mellan människor och en dator. Talar med enkla ord är gränssnittet den externa delen av programmet eller den enhet som användaren fungerar. Ordgränssnittet - patron med engelska gränssnitt, det vill säga "gränslänken".

Oftast, under ordgränssnittet innebär användargränssnittet. Till exempel säger de: "Denna webbutik har ett obekväma, förvirrande gränssnitt." Det betyder att butiken är obekvämt att interagera. Det är till exempel svårt att hitta de nödvändiga varorna, det är inte klart hur man lägger en beställning, spara inte den tidigare inmatade data etc.

Exempel på användning:

Många användare skulle vilja återvända det gamla gränssnittet "vkontakte", de gillar inte det nya.

Programmet har ett intuitivt gränssnitt - omedelbart klart var du ska trycka och vad det kommer att leda till.

Windows-gränssnittet är mycket komplicerat: oerfarna användare är förvirrade i en hög med inställningar.

Web-gränssnitt är en sida på Internet som gör det möjligt för användaren att interagera med viss tjänst eller enhet direkt via webbläsaren. Till exempel, med hjälp av webbgränssnittet, kan du använda online-banken: Gå till sidan, skriv in inloggningen och lösenordet och översätt sedan pengar mellan konton, betala för tjänster etc.

Hårdvara och programvarugränssnitt. Vad är USB- och API-gränssnittet Förutom användargränssnittet finns ett programvarugränssnitt (interaktion mellan program med varandra) och hårdvaruinterface (metoder för interaktion av fysiska anordningar, "järn"). När de säger om hårdvaringsgränssnittet, betyder de vanligtvis kontakter genom vilka enheterna kan anslutas till varandra. Till exempel betyder "anslutning via USB-gränssnitt" anslutningsanordningar genom

Universellt sekventiellt däck

avsedd för anslutning av perifer utrustning. Genom en USB, till exempel kan du ansluta ett tangentbord, mus, kamera eller smartphone till en dator.

Hårdvara Interface - USB-kabel

Programgränssnittet är ett sätt att interagera program bland dem själva. Till exempel är API (applikationsprogrammeringsgränssnittet, applikationsprogrammeringsgränssnittet) en uppsättning kommandon som gör det möjligt för program att automatiskt utbyta data utan människors deltagande. Ett API-program skickar en förfrågan, en annan svarar på henne.

Till exempel, på nyhetssidan visar valutakurser som ändras i realtid. Det betyder inte att platsredigeraren varje gång manuellt ändrar siffrorna på sidan. Nyhetsplatsen själv skickar en API-begäran till en server med valutaväxling och får de nödvändiga siffrorna därifrån.

Typer av användargränssnitt. Grafisk, text och andra

Textgränssnittet är ett sätt att kommunicera en person med en dator med kommandotryck. Till exempel, i MS-DOS-operativsystemet, var gränssnittet textuellt - användaren ringer de nödvändiga kommandona på tangentbordet, och maskinen utförde dem.

MS-DOS Text Interface - Command Line

Problemet med textgränssnittet är att användaren måste känna till de nödvändiga kommandona och varje gång manuellt skriv dem utan fel. Delvis från denna svårighet eliminerade skalet för MS-DOS - till exempel Norton Commander.

Norton Commander - File Manager för MS-DOS. Du kan inte bara skriva kommandon på tangentbordet, men arbeta med filer med hjälp av tangentbordsgenvägar.

Snart såg det grafiska gränssnitt där användaren interagerar med visuella föremål: knappar, ikoner, bilder på skärmen. Windows operativsystem använder ett grafiskt gränssnitt: användaren klickar på ikonerna på ikoner - piktogram som visar filer och program.

Windows 3.11 Grafiskt gränssnitt

Materialgränssnittet är ett sätt att interagera med en dator med konkreta strukturer. Till exempel är en datormus eller joystick ett materialgränssnitt. Flytta musen på bordet, vi flyttar samtidigt markörpilen på skärmen.

Materialgränssnitt - datormus. Foto: Depositphotos.

Voice Interface är kontroll med hjälp av talkommandon. Mänsklig röst känner idag till och med mobiltelefoner. Till exempel, Siri från Apple, Googles röstassistent, "Alice" från Yandex

Voice Interface - Apple Siri. Siri är en minskning av talproblem och erkännande gränssnitt (taligenkänning och tolkningsgränssnitt). Foto: Depositphotos.

Ett instrumentgränssnitt gör att du kan ge kommandon, göra gester med ditt finger, hand, datormus, specialkontroller etc.

Installationsgränssnitt - Nintendo Wii-spelkonsol, vars styrenheter svarar på användarens rörelse.

Det taktila gränssnittet tillåter användaren att uppleva taktila känslor (tryck, vibrationer, etc.) och interagera med datorn med hjälp.

Virtuella verklighetshandskar - ett exempel på ett taktilt gränssnitt. Foto: NASA.

Det neurala gränssnittet gör att du kan sända kommandon med elektroderna som linns i hjärnan. Bokirektoriga neurala gränssnitt kan inte bara ta information från hjärnan, men också att skicka den till hjärnan - till exempel genom ögatens näthinna.

Jens Naumann - blind, kapabel att "se" med en neural visuell protes. Kameran fångar bilden och skickar den bearbetade versionen i hjärnans visuella bark genom elektroderna.

Kian Rivz i filmen "Matrix" (1999). Heroes njuter av neurointerface för att komma in i den virtuella verkligheten - matrisen.

Cybebeis - gränssnitt i form av virtuell verklighet. Ram från den fantastiska filmen "Johnny Mnemonic" (1995)

Välkommen till dig, vänner! Ordet "gränssnitt" på rykten om ägare av datorer och telefoner, men inte alla förstår det. Vi kommer att berätta för tekanna, vad är gränssnittet i datorn och smarttelefonen, varför det behövs, vad som händer med hur man använder det korrekt. Att se detta ord på webbplatsen, i beskrivningen eller i instruktionerna, kommer nykomlingen att förstå vad vi pratar om och vad man ska göra nästa.

Vinka

Vad är gränssnittet för vilket det behöver

Översatt från engelska gränssnitt - interaktion. Hur man skriver på ryska: gränssnitt (ibland infaborna skrivs - det är felaktigt). Normal definition är en gemensam gräns mellan två funktionella objekt. Till exempel kommer en man bakom hjulet i sin bil, byter växellådspaken - det här är interaktion med maskingränssnittssystemet. Växellåda som ledare mellan förare och bil.

  • I datavetenskapen är meningen med ordet djupare användarinteraktionsverktygen med spelet, programmet eller operativsystemet, metoderna för att styra datorns funktion. Tack vare gränssnittet kommer en person att ta reda på något program eller textredigerare. Om vi ​​har arbete med färggrafikredigeraren är det lätt att behärska andra liknande program, eftersom de har en liknande struktur.
  • Grundgränssnittsuppgifter:
  • Inmatnings- och utmatningsinformation;
  • Ledningsprogramvara;

datautbyte genom externa bärare

Kommandon.

Den bakre panelen på PC-systemenheten är också ett gränssnitt som låter dig ansluta andra enheter.

Användaren innehåller en dator och ser ikonerna framför honom: "Min dator", "Etiketter", "Foto", etc. - Alla dessa gränssnittselement.

Typer av gränssnitt

Gränssnittet kan kortfattas beskrivas som clearance: vad en person ser framför honom, med en dator eller en telefon. Även om detta i själva verket är en systemstruktur, för genom att trycka på knapparna genom att klicka på menyalternativet, går användaren till där det behövs: kamera, galleri, kontakter, meddelanden. Dess syfte är en effektiv, trevlig användning av en elektronisk enhet eller plats.

Video.

  • Det finns olika typer av gränssnitt, som vi kommer att berätta längre.
  • Den vanligaste:
  • kommandorad;
  • Grafisk och textgränssnitt;
  • efter typ av förvaltning (gesturing, röst, taktil och neural);
  • program;
  • hårdvara;
  • hårdvara mjukvara;
  • användare;
  • Webb;
  • spel;

material;

Kommandorad

i telefoner.

Vad är gränssnittet enkla ord

Om du behöver namnge och lista de typer av moderna gränssnitt, kommer den här informationen att hjälpa till att ställa in allt korrekt och göra en bra presentation.

Detta är en separat programvara som är en del av Ourser och säkerställer förhållandet mellan användaren och OS. Tack vare kommandotolken kan du utföra datakommandon. Detta är en kommunikation med maskinen på sitt språk.

Av bristerna - du behöver veta kommandona, varje gång du ringer dem utan ett enda fel. Fördelen är förmågan att komma in i kommandon utan deltagande av den grafiska strukturen, vilket ger ytterligare möjligheter.

Kommandoraden (konsolgränssnittet) startar i sitt skal, till exempel i BIOS. Huvudvägen för dess plats: C: \ windows \ system32 \ cmd.exe. Den vanliga Yowser behöver inte vara avsiktlig där kommandoraden är belägen och hur det fungerar, och för proffs är det huvudverktyget, eftersom det hjälper till med datorn med virus, Windows-restaurering och i andra fall.

En enkel metod för att hitta kommandoraden: samtidigt trycka på WIN + R-tangenterna, i CMD-fönstret som visas.

Kommandotränssnitt

Grafisk och text

  • Grafisk (Eng. Grafiskt användargränssnitt, GUI) används i alla operationer, i de flesta applikationer. Ofta kallas WIMP - det här är en förkortning från de första bokstäverna i Wordwow, ikonen, menyn, pekdonet (manipuleringsanordning).
  • Huvudelement:
  • meny;

listor;

Pictograms (ritningar, scheman).

På Windows-fönster klickar användaren på ikoner, piktogram som visar att programmen och filerna är ett grafiskt gränssnitt, vilket ger gott om möjligheter till varje användare. Inget behov av att ange några kommandon. För bekväm interaktion används en datormus.

Du måste skilja grafiskt från det visuella gränssnittet, vilket representerar systemet som en uppsättning visuella bilder - det kan vara en ikon eller inskription som finns i en specifik skärmplats. Den visuella strukturen använder inte nödvändigtvis grafiska mappings. Den visuella strukturen kan grafisk och text.

Text använder vid inmatning och information, en uppsättning bokstäver / siffror, tecken på pseudografiska. Den använder alla grundläggande grafiska designelement: kryssrutor, knappar som släpper listor, etc. Olika med små krävande tekniska resurser, höghastighetsdata. Textgränssnittet är en typ av användare, medan kommandoraden är en del av texten.

I det enklaste fallet använder textgränssnittet en kommandorad, men många program med interaktiva element gör en mer vänlig, förståelig design, som närmar sig bekvämligheten till grafisk.

Vissa program stöder det utvecklade fönstersystemet, som Turbo Vision, D-Flat, Cscape, många har bytbara designämnen (dos navigator), liksom möjligheten att använda olika interaktiva interaktionsartiklar (joystick, mus).

Gestikulerande, röst, taktil och neural

  • Användaren hanterar datorn och ger kommandon med olika metoder: gester, röst etc.
  • Därför särskiljs typen av kontroll:
  • Årligt gränssnitt. Kontaktelement är grafiska tabletter, pekskärmar och annan teknik som reagerar på fingrets rörelser;
  • Voice Interface betecknar talhantering. Exempel är: Siri från Apple, Alice från Yandex;

taktil när interaktionen är baserad på taktila känslor, erhållande av känslig återkoppling (vibration, tryck);

Neuronal - överföring av kommandon genom elektroder som londe sig i hjärnan. Information kan tas från hjärnan och överförs till den, till exempel genom ögonhinnan. I praktiken kan Neurointerface lätta livet för förlamade patienter vars hjärna fungerar bra. Neurointerface tillåter dem att utföra konkreta åtgärder, läsa sina avsikter med hjälp av elektroder som är anslutna till hjärnan.

Grafiskt systemgränssnitt

Programvara, hårdvara, hårdvara och programvara

  • Gränssnittssystemet ger kontakt även mellan PROGS och enheter.
  • Det finns 3 grupper:
  • Programmeringsgränssnittet (engelska. Programmeringsgränssnittet) är samspelet mellan dem själva. I synnerhet API eller applikationsprogrammeringsgränssnittet - Metoder för utbyte av data mellan datorprogram (en skickar en begäran till API, en annan svar). Nyhetsportalen visar valutor. Inte redaktören är ansvarig för detta (han måste manuellt ändra siffrorna) och API som webbplatsen skickar en begäran till valutaväxlingen får ett svar.

Hårdvaran är utformad för att interagera fysiska anordningar med varandra med slots, kontakter, gateways. USB (universellt sekventiellt däck) är det mest kända exemplet. Genom den ansluts till PC-telefon, kamera, mus;

Hårdvaru-programvara är interaktionen mellan noder, element under programkontroll.

Användargränssnitt

Vad användaren kontaktar vad han ser framför sig själv, där den klickar - det här är användargränssnittet. Detta är den externa delen av enheten eller det program som användaren fungerar.

Ofta innebär under ordgränssnittet användaren (användargränssnitt). Det händer att webbplatsens besökare säger: "Det finns en förvirrande, obehaglig registrering eller meny." Så, platsen är obekväma att kontakta: det är svårt att hitta rätt föremål, kassan, ladda ner dokumentet. Den förståeliga strukturen är när en person omedelbart ser vart man klickar, vet vad det kommer att orsaka det. Men med Windows har många nybörjare problem, eftersom utformningen av denna OS-undersökning, oerfarna användare är förvirrade i inställningarna. På 1C-plattformen användes två olika användargränssnittsmekanismer i olika 1C-klienter.

Kommandorad, grafisk, text, röst, gestus, taktil, neural, procedur - Allt detta ingår i användargränssnittet. Under dess kontroll kommer användaren in i data i datorn, information på bildskärmen visas, skrivaren. Det finns även ett gränssnitt i kalkylbladet - det här är ett element som en person ser, kör, till exempel OpenOffice.org Calc-applikationen.

Men det finns några fler typer av användargränssnitt.

Hårdvara gränssnitt

Web, spel

Webbgränssnittet är en webbsida (en eller en uppsättning) som representerar en struktur för kontakt med en server eller enhet via ett HTTP-protokoll och en webbläsare. Till exempel kan klienten gå till banksidan, betala verktygstjänster. Den största fördelen - behöver inte installera ytterligare programvara, eftersom operativsystemet går med webbläsaren. Inget behov av att vara förvirrad med nätverksgränssnittet. Under denna term förstås som en virtuell eller fysisk anordning, som är avsedd att sända data mellan program via ett datanät (till exempel VLAN).

Det populära sättet att skapa ett webbgränssnitt är användningen av HTML med CSS och Javascript'a. Också använt Adobe Flash, Java-appletter eller Silverlight.

En annan typ är spelgränssnittet - är associerat direkt med GameDizayn, även om det går utöver sin kompetens. Spelaren och spelet är bebodda i olika universum, och spelstrukturen är punkten i deras ömsesidiga kontakt. Med det får spelaren den nödvändiga informationen från spelet, och det tar spelarens handlingar.

Material

Material eller taktilt gränssnitt är en annan typ av användare. Detta är en kontakt av en person med elektronik med konkreta strukturer. Till exempel flyttar en mus som en person samtidigt flyttar pilen på markören på skärmen.

Sorter av gränssnitt

Gränssnitt i telefoner

Den övergripande stilen i mobilenhetsgränssnittet kännetecknas som SIMP (skärm-ikon-menyn-pekare). På mobila Windows-plattformar är elementen i den struktur som upptar hela skärmen. Övergången mellan fönstren utförs av grafiska element eller drar med ett finger.

  • Funktionerna i SIMPs utformning förklaras av operativsystemens specifika.
  • Det vanligaste OS för gadgets:
  • Android;
  • Apple iOS;
  • WindowsMobile;
  • Palm OS;

Symbian OS;

Blackberry OS.

Ryssland är populär - Android, Apple iOS, WindowsMobile. Men tillverkare använder sina typer av gränssnittssystem och block, huvudorsaken är branding. Androidens förmåga att anpassa innebär att tillverkare av företagsutrustning kan göra ändringar i programvara, till exempel inom funktionalitet och design.

Olika systemiska strukturer i mobila enheter påverkar inte mycket ägares erfarenhet, eftersom de är skapade för att lösa universella uppgifter. Skillnad i uppsättningen applikationer.

Gränssnittet på den mobila enheten innehåller också hörlursuttag, laddning, rösthjälpare - mycket av vad som är baserat på datorns arbete, bara detta justeras för gadgets. Men i smartphones finns det många nya strukturer, till exempel NFC (NFS) - strukturen i den trådlösa kommunikationen.

Vad betyder gränssnittsspråk

Det är inte värt att förvirra det med de språk som är installerade när du skriver textmaterial.

  • Gränssnittsspråket är det som används vid lastning av operationerna, i menyn, i dialogrutorna, felfönster och referenser. Det kan ändras om minst 1 extra en är installerad på huvudspråket.
  • Ett enkelt sätt att ta reda på vilka språkfönster som står på en dator:
  • Öppna "kontrollpanelen";

Flik "språk";

Tilldelat huvudspråket som används nu. Det kan ändras eller lägga till en ny.

fynd

För en person är gränssnittet en grund för att arbeta med en dator eller en telefon. Och det här är ett sätt att interagera mellan program och utrustning. Enkelheten hos systemstrukturen beror, oavsett om det är lätt att hantera enheten. Utvecklare kommer upp med olika design och strukturer, vilket gör dem mer eller mindre trevliga, intuitiva för människor. IT-experter kan göra ändringar i vissa strukturer eller använda dem för att lösa allvarliga uppgifter, och oerfarna användare kan köpa för sig själva enheten med ett intuitivt gränssnittssystem för att underlätta arbetet och spara tid.

Gränssnittet sagt ofta när de menar interaktionen hos en person och dator eller applikationer. I artikeln kommer vi att analysera definitionen av gränssnittet, vilket är för interaktioner, deras typer och egenskaper.

  • Vad är gränssnittet

  • Gränssnittet är en "ledare" mellan man och ett program, ett operativsystem, en teknisk anordning eller en metod för interaktion mellan applikationer bland dem själva. En person ger kommandon med gränssnittet, enheten analyserar dem och svarar. De viktigaste uppgifterna för vilka den är avsedd för:

  • Ange och visa information (ljud, bild);

  • Förvaltning av enskilda tillämpningar

datautbyte med andra enheter;

Typer av gränssnitt

Interaktion med operativsystemet.

Kommandorad

Gränssnittet involverar interaktionen av inte bara människor och teknik, utan också ett datorprogram, programprogram, datoranordning. Till exempel, när enheter är anslutna till datorsystemenheten, eftersom interaktionsmetoden använder kontakten.

Vissa typer av interaktion gör att du kan få mer kontroll över en dator eller smartphone, men kräver ytterligare färdigheter. Andra är bekvämare, men ger mindre möjligheter. Varje typ har sina egna egenskaper.

Kommandoraden (konsolgränssnittet) startar i sitt skal, till exempel i BIOS. Huvudvägen för dess plats: C: \ windows \ system32 \ cmd.exe. Den vanliga Yowser behöver inte vara avsiktlig där kommandoraden är belägen och hur det fungerar, och för proffs är det huvudverktyget, eftersom det hjälper till med datorn med virus, Windows-restaurering och i andra fall.

Genom kommandoraden kan du utföra det maximala antalet operationer är ett direkt sätt att kommunicera med operativsystemet. För att skriva kommandot måste du ange texten i datorn och tryck på Enter, datorn startar.

Minusmetoden är att den endast är lämplig för utbildade användare. I kommandoraden finns det inga extra grafiska element, det måste behärska språket för interaktion, och kommandona fungerar kan inte misstas.

Grafiken förenklar interaktionen med datorn, det är mycket lättare att arbeta med det och bekvämare än med texten. I det grafiska gränssnittets roll är sådana element:

I det enklaste fallet använder textgränssnittet en kommandorad, men många program med interaktiva element gör en mer vänlig, förståelig design, som närmar sig bekvämligheten till grafisk.

Till exempel, när du interagerar med Windows använder ikoner och fönster, är musen ansluten till Enter. På smarttelefonen är inmatningsenheten en pekskärmskärm.

Textgränssnittet använder inte bilderna: Kommandon ges med text och information finns i textformulär.

Gesture-interaktionen gör att du kan ge kommandon till fingrarna. Den appliceras när du arbetar med en pekskärm av en smartphone. Till exempel gör "UP" -gestet att popup-fönstret visas.

Voice Interface är en rösthantering. Gadgeten känner igen och utför ljudkommandon.

taktil när interaktionen är baserad på taktila känslor, erhållande av känslig återkoppling (vibration, tryck);

Tactil innebär interaktion med hjälp av att röra: vibrationer eller känslighet för att trycka på.

Neuralgränssnittet sänder kommandot direkt från hjärnan till datorn, för detta implanteras elektroderna i hjärnan. Den används i medicin: så en förlamad person kan kommunicera med omvärlden.

Hårdvaran är utformad för att interagera fysiska anordningar med varandra med slots, kontakter, gateways. USB (universellt sekventiellt däck) är det mest kända exemplet. Genom den ansluts till PC-telefon, kamera, mus;

Programinteraktion med varandra ger ett programvarugränssnitt. Programmen skickar förfrågningar till varandra och får svar. Till exempel, för att ständigt visa relevant väder i en widget eller på en dator, skickar ett program ständigt en förfrågan till en annan, och det ger färsk data.

Hårdvaran är avsedd för organisation av kommunikation mellan fysiska enheter via kontakter och slitsar. Och när datorn läser information från en hårddisk - det här är ett gemensamt arbete i programmet och den fysiska enheten, det vill säga hårdvaru- och programgränssnittet.

Alla, med vilken den vanliga användaren interagerar när den innehåller en dator, går in på webbplatsen eller i programmet, är allt som en person ser på skärmen ett användargränssnitt.

Web, spelplats

Det populära sättet att skapa ett webbgränssnitt är användningen av HTML med CSS och Javascript'a. Också använt Adobe Flash, Java-appletter eller Silverlight.

Webbgränssnittet gör att du kan arbeta via webbläsaren. Detta är interaktionen mellan program på Internet. Till exempel kan du gå till affärswebbplatsen och att betala inköp. Webbläsaren i det här fallet kommer att vara ett webbgränssnitt, tack vare vilka sidor som interagerar.

Material

Spelet är hur användaren kan interagera med spelet som kommandon kan ge, i vilken form spelinformationen presenteras och hur spelet kommer att svara på handlingar.

Vad ska vara gränssnittet

Detta är en taktil kontakt med gadgets. Det inkluderar att röra pekskärmen, åtgärder med en mus eller joystick.

Logik databasstruktur (DDL).

Smartphones använder en pekskärm som innebär gestikulerande och taktila gränssnitt. Användaren berör elementen, operativsystemet eller programmet får kommandon från det och utför dem.

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