Bästa svaret
Miljön är bokstavligen allt installerat på din maskin som kan påverka antingen utvecklingen och eller testningen av din applikation – det kan inkludera:
- Redigerarna / IDE: erna som du använder (kan påverka hur effektivt du kan skriva kod).
- Vilka kompilatorer / tolkar du använder och deras exakta versioner – kan påverka om din kod kommer att köras alls, eller hur effektivt den gör det.
- Operativsystemet som är installerat på din maskin – Kan mycket väl påverka hur din kod skrivs.
- Miljövariablerna som ställts in på din maskin, särskilt relevanta vid testning, eftersom dessa dramatiskt kan påverka vissa funktioner i vissa applikationer.
- De extra biblioteken som är installerade på din maskin (inklusive eventuellt installerade av andra program); kan påverka hur bra din kod kommer att köras på andras maskiner (med potentiellt olika biblioteksversioner installerade)
- Andra program som körs på din maskin, särskilt under testning av belastning och prestanda.
- Det tillgängliga RAM och diskutrymme på din maskin: kan påverka hur bra din kod fungerar särskilt under belastnings- / stresstestförhållanden
- Lokal nätverkskapacitet och anslutning: kan direkt påverka hur bra vissa program fungerar (eller faktiskt om de fungerar överhuvudtaget.
Helst bör din utvecklingsmiljö vara så ren som du kan göra – installera bara de bibliotek som din kod behöver och använd endast versionerna av kompilatorn / tolk som du planerar att använda. På samma sätt för funktionstestning behöver du en ren miljö där din applikation bara kan köras med de versioner av biblioteken som du planerar för.
För belastning / stresstestning måste du gå ett steg längre – en helt steril maskin utan andra applikationer som körs på det än operativsystemet, och bara din applikation och beroenden som är installerade på den. Vissa organisationer kommer att gå så långt att de gör en fullständig diskrensning och installerar om när de planerar att stresstestprogram.
Svar
Programmering är processen att ta en algoritm och koda den till en notation, ett programmeringsspråk, så att det kan köras av en dator. Även om det finns många programmeringsspråk och många olika typer av datorer är det viktigaste första steget behovet av att ha lösningen. Utan en algoritm kan det inte finnas något program.
Datavetenskap är inte studier av programmering. Programmering är dock en viktig del av vad en datavetare gör. Programmering är ofta det sätt som vi skapar en representation för våra lösningar. Därför blir denna språkrepresentation och processen att skapa den en grundläggande del av disciplinen.
Algoritmer beskriver lösningen på ett problem i termer av de data som behövs för att representera probleminstansen och de nödvändiga stegen. för att producera det avsedda resultatet. Programmeringsspråk måste tillhandahålla ett notant sätt att representera både processen och data. För detta ändamål tillhandahåller språk kontrollkonstruktioner och datatyper.
Kontrollkonstruktioner gör det möjligt att representera algoritmiska steg på ett bekvämt men otvetydigt sätt. Algoritmer kräver åtminstone konstruktioner som utför sekventiell bearbetning, val för beslutsfattande och iteration för repetitiv kontroll. Så länge språket tillhandahåller dessa grundläggande påståenden kan det användas för algoritmrepresentation.
Alla dataposter i datorn representeras som strängar med binära siffror. För att ge dessa strängar mening måste vi ha datatyper. Datatyper ger en tolkning av denna binära data så att vi kan tänka på data i termer som är meningsfulla med avseende på det problem som löses. Dessa inbyggda datatyper på låg nivå (ibland kallade primitiva datatyper) ger byggstenarna för algoritmutveckling.
De flesta programmeringsspråk ger till exempel en datatyp för heltal. Strängar med binära siffror i datorns minne kan tolkas som heltal och ges de typiska betydelser som vi vanligtvis associerar med heltal (t.ex. 23, 654 och -19). Dessutom ger en datatyp en beskrivning av de operationer som dataposterna kan delta i. Med heltal är operationer som addition, subtraktion och multiplikation vanliga. Vi har förväntat oss att numeriska datatyper kan delta i dessa aritmetiska operationer.
Svårigheten som ofta uppstår för oss är det faktum att problem och deras lösningar är mycket komplexa. Dessa enkla, språk tillhandahållna konstruktioner och datatyper, även om de verkligen är tillräckliga för att representera komplexa lösningar, har vanligtvis en nackdel när vi arbetar igenom problemlösningsprocessen. Vi behöver sätt att kontrollera denna komplexitet och hjälpa till med att skapa lösningar.