A puha kód egy számítógép-programozási gyakorlat, ami adatokat és függvényeket szervez ki konfigurációs fájlokba. A program az adatokat preprocesszor makrókból, külső konstansokból, konfigurációs fájlokból, adatbázisból vagy parancssori argumentumokból szerzi. Ellentéte a kemény kód (hard code), amikor az adatok a forrásban szerepelnek.

A gyakorlatban szerkesztés

Önmagában a puha kód nem tekinthető programozási antimintának, mivel rugalmasságot nyújt a program konfigurálásához a szükséges mértékben. Ez hasonlít a varázsszámok elkerüléséhez, ami javítja az olvashatóságot és segíti a karbantartást. Az azonban, hogy túl sok adatot vesznek ki a kódból, tovább bonyolítja a programot és rontja a karbantarthatóságot. A puha kódot ez utóbbi értelemben a The Daily WTF egy cikke ismertette.[1]

Lehetséges következmények szerkesztés

Szélsőséges esetben a puhán kódolt programhoz kifejlesztenek egy kevéssé átgondolt szkriptnyelvet, és konfigurációs fájlokat, amelyek szerkesztéséhez fejlett programozási tudásra van szükség. Ehhez kifejlesztenek egy másik programot, ami gyakran szintén puhán kódolt.

A határ az elegendő és a túl sok között nem húzható meg mereven és nem is általános, függ a program stílusától és természetétől. A zárt kódú programoknak több beállítási lehetőséggel kell bírnia, mivel a felhasználók nem szerkeszthetik a kódot. Korlátozott terjesztésű programok esetén a kemény kód javasolt, mivel ilyenkor elegendő csak átírni magát a kódot. Webalkalmazások esetén a korlátozott konfigurálhatóság az előnyös, mivel a szkript megváltoztatása körülbelül olyan egyszerű, mint egy konfigurációs fájl átírása.

A puha kód elkerülésére figyelembe kell venni a végfelhasználó által elvárt rugalmasságot, és összehasonlítani a várható bonyodalmakkal, amiket a konfigurálhatóság okoz.

Alternatív megoldások szerkesztés

Több programtervezési minta is képes ugyanazt a rugalmasságot nyújtani, mint amit a puha kód megcéloz. Ha a kódnak konfigurációs fájlra van szüksége, akkor egy már létező szkriptnyelvet kell beiktatni, esetleg tartományspecifikus nyelvvel bővítve. Egy másik megközelítés, hogy az alkalmazás legtöbb funkcionalitását könyvtárakba szervezzük, és ehhez egy API-t nyújtunk, hogy egymáshoz hasonló alkalmazásokat lehessen fejleszteni.

Hasonló fogalmak szerkesztés

A képességtervezésben a puha kódnak más jelentései vannak.

  • Kemény kód: Az adott képesség bele van kódolva a programba.
  • Paraméteres: A képesség korlátozottan konfigurálható táblákkal, vagy tulajdonságfájlokkal.
  • Puha kód: A képesség konfigurálásához szükséges értékeket nem közvetlenül olvassák be, hanem többet közülük számításokkal származtatnak. A szabályok szkript formában vannak megadva, paraméterként vannak jelen.

Jegyzetek szerkesztés

Fordítás szerkesztés

Ez a szócikk részben vagy egészben a Softcoding című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.