Wat betekent ‘hard gecodeerd’?

Mijn opdracht vraagt me om toegang te krijgen tot een test.txt-document, dus de bestandsnaam moet hard worden gecodeerd op mijn C-schijf. Ik heb geen idee wat hardcoderen betekent. Kan iemand me hier alsjeblieft mee helpen?


Antwoord 1, autoriteit 100%

“harde codering” betekent iets in uw broncode plaatsen. Als je niethard codeert, dan doe je zoiets als de gebruiker om de gegevens vragen, of de gebruiker toestaan de gegevens op de opdrachtregel te zetten, of iets dergelijks.

Dus, om de locatie van het bestand hard te coderen als zijnde op de C:-schijf, zou je gewoon de padnaam van het bestand allemaal samen in je broncode moeten zetten.

Hier is een voorbeeld.

int main()
{
    const char *filename = "C:\\myfile.txt";
    printf("Filename is: %s\n", filename);
}

De bestandsnaam is “hard gecodeerd” als: C:\myfile.txt

De reden dat de backslash wordt verdubbeld, is omdat backslashes speciaal zijn in C-strings.


Antwoord 2, autoriteit 23%

“Hard codering” betekent iets dat u wilt insluiten in uw programma of een ander project dat niet direct kan worden gewijzigd.
Als u bijvoorbeeld een databaseserver gebruikt, moet u hardcoderen om uw database met uw project te verbinden en dat kan niet door de gebruiker worden gewijzigd.
Omdat je hard gecodeerd hebt.


Antwoord 3, autoriteit 8%

Het antoniem van Hard-Codingis Soft-Coding. Voor een beter begrip van Hard Coding zal ik beide termen introduceren.

  • Harde codering: functie is gecodeerd naar het systeem en laat configuratie niet toe;
  • Parametrisch: functie is configureerbaar via tabelgestuurde of eigenschappenbestanden met beperkte parametrische waarden;
  • Soft-coding: functie maakt gebruik van ‘engines’ die resultaten afleiden op basis van een willekeurig aantal parameterwaarden (bijv. bedrijfsregels in BRE); regels zijn gecodeerd maar bestaan als parameters in het systeem, geschreven in scriptvorm

Voorbeelden:

// firstName has a hard-coded value of "hello world"
string firstName = "hello world";
// firstName has a non-hard-coded provided as input
Console.WriteLine("first name :");
string firstName = Console.ReadLine();

Een hardgecodeerde constante[1]:

float areaOfCircle(int radius)
{
    float area = 0;
    area = 3.14*radius*radius;  //  3.14 is a hard-coded value
    return area;
}

Bovendien kunnen harde codering en zachte codering worden beschouwd als anti-patronen[2]. Men moet dus streven naar een evenwicht tussen harde en zachte codering.

  1. Harde codering
    Hard coderen” is een bekend antipatroon waartegen de meeste boeken over webontwikkeling ons al in het voorwoord waarschuwen. Harde codering is de ongelukkige praktijk waarbij we configuratie- of invoergegevensopslaan, zoals een bestandspad of een externe hostnaam, in de broncodein plaats van deze te verkrijgen van een configuratiebestand, een database, een gebruikersinvoer of een andere externe bron.

    Het grootste probleem met harde code is dat het alleen goed werkt in een bepaalde omgeving, en op elk moment dat de omstandigheden veranderen, moeten we de broncode aanpassen, meestal in meerdere aparte plaatsen.

  2. Zachte codering
    Als we heel erg ons best doen om de valkuil van hard coderen te vermijden, kunnen we gemakkelijk een ander antipatroon tegenkomen genaamd “soft coding“, wat precies het tegenovergestelde is.

    Bij zachte codering plaatsen we dingen die in de broncode zouden moeten staan in externe bronnen, we slaan bijvoorbeeld bedrijfslogica op in de database. De meest voorkomende reden waarom we dit doen, is de angst dat bedrijfsregels in de toekomst zullen veranderen, daarom zullen we de code moeten herschrijven.

    In extreme gevallen kan een zacht gecodeerd programma zo abstract en ingewikkeld worden dat het bijna onmogelijk is om het te begrijpen(vooral voor nieuwe teamleden), en extreem moeilijk te onderhouden en te debuggen.

Bronnen en citaten:

1: Quora: Wat betekent hard-coded iets in de context van computerprogrammering?
2: Hongkiat: de 10 coderingsantipatronen die u moet vermijden

Verder lezen:

Software Engineering SE : Is het ooit een goed idee om waarden hard te coderen in onze applicaties?
Wikipedia: Hardcoding
Wikipedia: zachte codering


Antwoord 4, autoriteit 3%

Scenario

In een universiteit zijn er veel studenten die verschillende cursussen volgen, en na een examen moeten we een cijferkaart maken met daarop het cijfer. Ik kan het cijfer op twee manieren berekenen

1. Ik kan zo’n code schrijven

   if(totalMark <= 100 && totalMark > 90) { grade = "A+"; }
    else if(totalMark <= 90 && totalMark > 80) { grade = "A"; }
    else if(totalMark <= 80 && totalMark > 70) { grade = "B"; }
    else if(totalMark <= 70 && totalMark > 60) { grade = "C"; }

2. Je kunt de gebruiker vragen om ergens een cijferdefinitie in te voeren en die gegevens op te slaan

Zoiets als opslaan in een databasetabel

In het eerste geval is het cijfer hetzelfde voor alle cursussen en als de regel verandert, moet de code worden gewijzigd. Maar voor het tweede geval geven we de gebruiker de mogelijkheid om een cijfer in te voeren op basis van hun vereiste. De code wordt dus niet gewijzigd als de cijferregels veranderen.

Dat is het belangrijkste wanneer u gebruikers meer voorzieningen geeft om bedrijfslogica te definiëren. Het eerste geval is niets anders dan Harde codering.

Dus in uw vraag, als u de gebruiker aan het begin vraagt om het pad van het bestand in te voeren, kunt u het hard gecodeerde pad in uw code verwijderen.


Antwoord 5, autoriteit 2%

Er zijn twee soorten codering.

(1) harde codering
(2) zachte codering

Harde codering. Wijs waarden toe aan het programma tijdens het schrijven van de broncode en maak een uitvoerbaar bestand van het programma. Nu is het een heel moeilijk proces om de programmabroncodewaarden te wijzigen of aan te passen. net als in block-chain-technologie is genesis block hard-code die niet kan worden gewijzigd of aangepast.

Soft-coding: het is een proces van het invoegen van waarden van een externe bron in een computerprogramma. zoals waarden invoegen via toetsenbord, opdrachtregelinterface. Soft-coding wordt beschouwd als een goede programmeerpraktijk omdat ontwikkelaars programma’s gemakkelijk kunnen wijzigen.

Other episodes