Daily Curious Perversion of Programming #11

Mindig megnyugtató ha olyan kódot látok, amit egy kezdő Pascal tanfolyam első vizsgájáról kiszórnék, ha én lennék az oktató.

Persze nem kell félni, nem tanítok, csak egy tuskó amigás vagyok, aki azt képzeli, hogy látott már szoftvert belülről. Mai gyöngyszemünk viszont (kommentek tőlem):


// eta függvény. működik.

private boolean getFooBar(int various, int arguments);

// később...

public boolean anImportantGlobalFlag;

public void setSomeImportantFlag() {
   if (!getFooBar(various, args))
       anImportantGlobalFlag = false;
   else
       anImportantGlobalFlag = true;
}

Höh. "Gyakoroljuk még a boolean értékadásokat fiam, leülhet, elégtelen." Mondtam, aztán felsírtam. Aztán meg komolyan elbizonytalanodtam. Csak én vagyok ilyen túlreagálós maximalista hülye, hogy ezektől a falat kaparom, és nem értem, hogy írhat le ilyet magát programozónak mondó ember? Mondjuk manapság már bármilyen jöttmentből lehet programozó, itt vagyok rá elő példának. Meg végülis így is működik, ezt az érdemet nem lehet elvitatni tőle...

Hozzászólások

Neveznek en is a versenyen:

new OrderHead(
-1,
username,
userData.getIsRetail(),
orderData.getCourierId(),
userData.isFbr() ? OrderType.FBR : OrderType.NORMAL,
trid,
currency.getCode(),
currency.getRate(),
paymentId,
courier.getName(),
prices.getDeliveryCost().getTotalCostInHUF(),
prices.getDeliveryCost().getDiscount(),
billIsRequired,
contactInfo.getBillName(),
contactInfo.getBillAddress().getCountryId(),
contactInfo.getBillAddress().getZipCode(),
contactInfo.getBillAddress().getCity(),
contactInfo.getBillAddress().getStreetName(),
contactInfo.getBillVatNumber(),
contactInfo.getFullName(),
countryCode,
contactInfo.getAddress().getZipCode(),
contactInfo.getAddress().getBuilding(),
contactInfo.getAddress().getCity(),
contactInfo.getAddress().getStreetName(),
contactInfo.getTelephone(),
contactInfo.getCellular(),
getEmail(),
orderCourierRemark,
orderUserRemark,
prices.getFinalCostInCurrency(true, true, true, true),
orderDate,
undertakenDate,
hasAccountGroup(AccountGroups.NORMAL),
getDomain().getDomain(),
orderData.getOrderCartInfo().isAllItemsOnStock(),
odInfo,
null,
"",
getAffiliate()
);

Kulon felhivnam a figyelmet, h a contactInfo milyen ugyesen van van atadva.

Hat, ha valaki a kornyezetembe ilyen fuggvenyhivast csinalna (teljesen mindegy, hogy konstruktor vagy sem) azt meg C-ben is korberohognem, nem hogy javaban. Pedig az egyik ismerosom sajnos pont ilyen tipusu programozo, es javithatatlanul hulye szegeny.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

az az igazsag, hogy en pont latom, hogy hol lehet ertelme ilyet csinalni.. ti. a masik helyettesites, hogy nem a fieldek gettereivel kerem le a dolgot, hanem magat az ojjektumot odaadom, sokszor nem jarhato ut a diverz API-hasznalat miatt => marad ez az atadasi forma.

ronda? ronda. szukseges _lehet_? igen.

Mar bocs, de olyankor az API szar. Jelen esetben raadasul a hivas mindket vege sajat fejlesztes.
Tudod, egy dolog az, amikor ket-harom getter fuggvenyt eleresztek, egy masik, amikor ilyen allatsagokat muvelek. De meg ez is elviselhetobb, ha legalabb segedvaltozokba kipakolna, hogy szukseg eseten konnyen lehessen modositani a dolgot. Ezt a programkodot igy akkor sem irnam le, ha a fejemhez pisztolyt szegeznel.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Hangosan felkiáltottam, amikor eljutott az agyamig, hogy ezt most miért...

De akkor már és is: (JavaScript)

setValami(data.type == "valami" > 0 ? false : true);

Augh... Ez fajt.
Vegulis csak durvan 10-50 ciklusido feleslegesen...
De nezheted a dolog pozitiv oldalat is. O mar felkeszitette a kodot arra az esetre, ha getFooBar nem booleannal terne vissza... ;)
--
"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "

ez pite :)

en talalkoztam mar ilyennel pl (ActionScript3):

function blabla(arg1, arg2)
{
if (arg2 == "true")
myvar = true;
else
myvar = false;
}

ugyanebben a kodban mashol (ezt azota sem hevertem ki):

function blabla(x)
{
if (x == 1) a = 1;
if (x == 2) a = 2;
if (x == 3) a = 3;
if (x == 4) a = 4;
if (x == 5) a = 5;
}

ez nalam minden idok nr1, ha nem a sajat szememmel latom, el sem hiszem...

Vegigolvastam. Atyaeg. En kocakodernek szamitok, de ilyent azert nem mernek leirni...
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.