Ett verktyg som borde vara i ditt webbkodningsarsenal är tillståndsdiagrammet. Ett tillståndsdiagram visar de olika "tillstånden" (reaktioner) som din ansökan (t ex webbplats) kan innehålla, samt vilken åtgärd eller inmatning (från användaren) som krävs för att komma till en viss stat. Ett tillståndsschema hjälper till att göra konkreta i åtanke alla möjliga användar- / applikationsinteraktioner. Detta ökar chansen att du åtminstone anser att du kodar för alla möjligheter, helt enkelt för att du nu känner till dem alla - vilket minskar chansen att du har buggy-kod eller sämre, glömde att hantera specifik funktionalitet.
Ett tillståndsdiagram består av två komponenter: cirklar för att representera tillstånd (applikationsreaktioner / utgång) och pilar för att representera övergångar (användaråtgärder / inmatning). Statliga diagram är mycket praktiska för komplexa och inte så komplexa datortillämpningar av något slag. Men när det gäller webbutveckling är statliga diagram inte alltid i bruk:
Å andra sidan, om du bygger en webbplats där du måste hantera särskilda övergångar, då kan ett statsdiagram vara till stor nytta:
Det överraskande är att statliga diagram är inte allt som är komplicerat att producera. Men enligt min erfarenhet används de inte allt så ofta av de flesta programmerare, trots fördelarna (djupare förståelse för användarinteraktioner, sammanhållning av kodningsinsats). Jag svär vid dem - eller gjorde när jag kodade varje dag i olika jobb.
Det rekommenderas att du producerar tillståndsdiagram på papper först och sedan överför dem till en digital kopia om och endast om det är nödvändigt. (Det finns något om taktiliteten för skissningsinmatning / visningsrelationer på papper som gör dem mer konkreta i ditt sinne, vilket gör det lättare att passa alla möjliga interaktioner och därigenom minska buggar i dina applikationer.)
Ett tillståndsdiagram består av:
Du kan se ett enkelt exempel direkt nedan - vilket kommer att utvidgas senare i den här artikeln:
Här är stegen för att skapa statliga diagram (med en lutning mot webbaserade applikationer):
För att expandera på # 7 ovan, kom ihåg att med webbplatser kan det finnas en hel del repetition av åtgärder. Till exempel om varje sida innehåller samma navigeringsmeny, behöver du inte visa dessa övergångar om och om igen och störa tillståndschemat. Anger bara grupperade handlingar med någon kortformad notation / symbol.
(Det är mycket lättare att förstå ett statligt diagram om du är den som ritar det, ett steg i taget. Om du är en person som tittar på ett färdigt tillståndsdiagram kan det vara skrämmande. Därför lever statsdiagram ofta bara papper - förutsatt att du använder dem.
För en statisk webbplats som använder Nej AJAX-y-funktioner (dvs alla egenskaper där webbadressen inte ändras) är ett tillståndsdiagram ganska lätt att producera men i allmänhet onödigt. Till exempel, en statisk webbplats där varje sida är kopplad till varje andra sida resulterar i ett statligt diagram som ibland kallas för en "helt ansluten" graf. Sådana tillståndsdiagram är vanligtvis meningslösa eftersom det inte finns någon speciell hantering för att visualisera. Varje stat är ansluten till alla andra stater)
Där statliga diagram är mest praktiska är för dynamiska platser - speciellt de med AJAX-y-funktioner (till exempel droppmenyer, reglage, dragspel, gallerier etc.). I det senare fallet kanske webbläsaren i webbläsaren inte ändras, men sidinnehållet gör det så delvis. Det är svårare att visualisera alla möjliga tillstånd och övergångar (handlingar) eftersom en "sida" kan ha multipel sub-stater.
Ett statligt diagram (eller en uppsättning alltmer detaljerad diagram) är mycket praktisk i det här fallet - speciellt om det finns ett team av kodare (och ibland designare) att arbeta med.
I en kommande handledning ska jag visa dig hur du kodar jQuery för två effekter jag använder i min AboutMe-mall. Live-sidan har några CSS-glitcher som måste strykas ut först. Jag skulle också vilja lägga till några fler jQuery-baserade funktioner om det finns tillräckligt med tid. Dessa extrafunktioner kommer att vara föremål för vårt exempel.
I framtiden kommer denna mall att bli ett gratis WordPress-tema riktat till frilansare som vill visa upp sitt arbete (spelupplevelse). För nu vill jag visa hur statliga diagram kan hjälpa dig att förstå nödvändiga orsaker / reaktioner (aka inmatningar / övergångar) för galleriet "Nuvarande spelningar" ovan. Förstå nödvändiga övergångar hjälper dig att koda mer självsäker, och det är allt som kodar språkoberoende. Så du kan bestämma kodbibliotek / språk efter att du skapat statligt diagram.
Om du tittar på galleriet "Current Gigs" i mitten till vänster om bilden ovan eller på live-sidan ser du att det här är i princip samma begrepp som ett bildgalleri. Klicka på en länk och detaljer om den "spelningen" visas. Men när jag byggde levande sidan fanns det inga jQuery-handledning om hur man slänger text i mixen, för varje "ram" i showcase. Jag var tvungen att komma med min egen kod.
För att göra det måste jag först förstå alla möjliga användarinteraktioner. Ett tillståndsdiagram är idealiskt för detta. Låt oss dock ante. Vad jag verkligen ville ha är ett showcase-område som visar både aktuella spelningar och tidigare spelningar. Det är som en visuell C.V. (Curriculum Vitae, aka "CV"), visar ett galleri av arbetslivserfarenhet. Varje spelkonst innehåller en skärmknapp på den tillhörande webbplatsens hemsida, tillsammans med en del text som ger detaljer om det arbete jag gjorde / gör där.
För nu har sidan bara "Aktuella spelningar", men borde ha "Past Gigs" också. Här är en lista över de funktionella kraven för vad showcaseområdet ska ha:
Så att upprepa är målet att ha ett flikat gränssnitt där flikarna är märkta "Aktuella spelningar" och "Tidigare spelningar". Detta möjliggör fler flikar senare, begränsad endast av bredden på varje etikett och bredden på presentationsutrymmet (590 bildpunkter). Men jag vill att flikarna ska vara "osynliga", som nämnts. Istället för de typiska flikarna i ett flikgränssnitt vill jag använda mini-banners. Om du tittar på live test sidan finns det en mini-banner med etiketten "Current Gigs", och en annan märkt "Past Gigs". Det blir flikarna. Här är en närbildsskärm av vad det slutliga showcase-området kan se ut, med standardinställningar.
För att skapa tillståndsdisplayet måste vi först räkna upp alla möjliga unika tillstånd, inmatningar och åtgärder:
Obs! Vid denna punkt är vi bara oroade över vad som händer i C.V. monter. I det statliga diagrammet bryr vi oss inte om handlingar som påverkar andra delar av webbsidan. Vi visar bara åtgärder / reaktioner som påverkar C.V. monter.
Här är ett exempel tillstånd diagram för ovanstående funktionalitet.
Några anteckningar om detta diagram:
Genom att expandera på punkt # 5 ovan är tumregeln att om det finns flera repetitiva övergångar från ett relaterat grupp av stater kan du anteckna övergångarna med någon form av kort form. Du vill helt enkelt få en känsla av de viktiga övergångarna så att de är främst i ditt sinne. Ett annat tillvägagångssätt är att ta ett komplext diagram och dela upp i delar: huvudöversikt, sedan "exploderade" versioner av övergångskluster.
Till exempel kan diagrammet ovan ha haft ett huvudstatusdiagram som innehåller noderna S, CG och PG. Då skulle det finnas två detaljerade diagram. Man skulle ha S, CG och motsvarande delstater som representerar olika spelningar. Det andra detaljerade diagrammet skulle ha S, PG och motsvarande gig-deltillstånd.
Sammantaget borde du nu ha en tydligare mental bild av hur showcase-sektionen fungerar. Jag kommer inte att komma in i hur man flyttar från ett statligt diagram till den faktiska koden. Det borde bli uppenbart när du förstår alla användarinteraktioner. Statliga diagram - och din förståelse av dem borde hjälpa dig att skriva mer sammanhängande kod, vilket minskar chanserna för en buggy-applikation. Din kodningsteknik ändras inte.