Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: tojsemja kdy 21. 01. 2015, 15:54:23

Název: Duplicita kódu Bash
Přispěvatel: tojsemja kdy 21. 01. 2015, 15:54:23
ahoj,
jsem prudič, mám rád čistej kód, bez duplicit, návrhový vzory, takovej kód, co se čte jako poezie viz http://knihy.cpress.cz/cisty-kod.html

a lámu si hlavu, jak z tohodle kódu udělat jednu funkcičku. jednou potřebuju do logu zapsat datum, jednou vlastní nějakej řetězec, a předpokládám že nějaký takový podobný zapisování přijde...


function printDatum {
if [ -f $LOG ]; then
date >> $LOG
fi
}

function printString {
if [ -f $LOG ]; then
echo $1 >> $LOG
fi
}
Název: Re:duplicita kodu BASH
Přispěvatel: Kolemjdoucí kdy 21. 01. 2015, 16:12:29
Citace od: tojsemja kdy 21. 01. 2015, 15:54:23
mám rád čistej kód


Tak to BASH není nic pro Vás.

[code]
function printDatum
{
    if [ -f $LOG ]; then
        if [ -z $1 ]; then
            date >> $LOG
        else
            echo $1 >> $LOG
fi
    fi
}
Název: Re:duplicita kodu BASH
Přispěvatel: tojsemja kdy 21. 01. 2015, 16:28:49
v budoucnu budu do logu potrebovat vkladat info o sitovnym nastaveni, info o disku... a predstavuju si ze to vlepim sem. a z pohledu co pisou v ty knize tak si nejsem jistej jestli je zcela vhodne.. pokud $1 je prazdne, tak zapsat, jinak zapsat datum. takovej kod se neda nijak hezky rozsirit.. :)
Název: Re:duplicita kodu BASH
Přispěvatel: linux_noob kdy 21. 01. 2015, 16:35:23

function printString {
if [ -f $LOG ]; then
echo $1 >> $LOG
fi
}
function printDatum {
printString `date`
}


jinak ocenuju jednotnou konvenci pojmenovani funkci (Datum vs. String).
Název: Re:duplicita kodu BASH
Přispěvatel: aaaa kdy 21. 01. 2015, 16:35:44
Tak ty funkci dej tech parametru vic, jeden z nich vystupni format, ne?
Tva otazka mi pripomina:
A: Na co jezdi spalovaci motor?
B: Na benzin
A: Ale ja chci mit kontejnerovou lod a letadlo a ty potrebujou mazut a na avgas, tva odpoved je prinejmensim nedostatecna
Název: Re:duplicita kodu BASH
Přispěvatel: tojsemja kdy 21. 01. 2015, 16:39:45
Citace od: aaaa kdy 21. 01. 2015, 16:35:44
Tak ty funkci dej tech parametru vic, jeden z nich vystupni format, ne?
Tva otazka mi pripomina:
A: Na co jezdi spalovaci motor?
B: Na benzin
A: Ale ja chci mit kontejnerovou lod a letadlo a ty potrebujou mazut a na avgas, tva odpoved je prinejmensim nedostatecna

v ty knize (fakt doporucuji precist) se dlouze pojednava ze cim vic ma funkce parametru, tim vetsi zlo to je... :D jinak nad tim resenim jsem taky premyslel :)
Název: Re:duplicita kodu BASH
Přispěvatel: Kolemjdoucí kdy 21. 01. 2015, 16:51:51
Citace od: tojsemja kdy 21. 01. 2015, 16:28:49

Až budete vědět co všechno to má dělat, tak nám dejte vědět.

Citace od: tojsemja kdy 21. 01. 2015, 16:39:45
v ty knize (fakt doporucuji precist) se dlouze pojednava ze cim vic ma funkce parametru, tim vetsi zlo to je...

Tady tohle se používá zhruba tak 20 let a zlo tam kromě autora knihy za tu dobu nikdo nenašel:

BOOL StretchBlt(HDC hdcDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeightDest, HDC hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc, DWORD dwRop);
Název: Re:duplicita kodu BASH
Přispěvatel: tojsemja kdy 21. 01. 2015, 16:57:09
Citace od: Kolemjdoucí kdy 21. 01. 2015, 16:51:51
Citace od: tojsemja kdy 21. 01. 2015, 16:28:49

Až budete vědět co všechno to má dělat, tak nám dejte vědět.

Citace od: tojsemja kdy 21. 01. 2015, 16:39:45
v ty knize (fakt doporucuji precist) se dlouze pojednava ze cim vic ma funkce parametru, tim vetsi zlo to je...

ja nevim, ale ja nikdy nebudu vedet s cim zakaznik prijde a jak se zmeni pozadavky zitra? proto uz dnes chci mit kod tip-top? :)
Název: Re:duplicita kodu BASH
Přispěvatel: Kolemjdoucí kdy 21. 01. 2015, 17:02:44
Citace od: tojsemja kdy 21. 01. 2015, 16:57:09
ja nikdy nebudu vedet s cim zakaznik prijde a jak se zmeni pozadavky zitra?

S čím přijde v budoucnosti se bude řešit v budoucnosti.
Název: Re:duplicita kodu BASH
Přispěvatel: karel kdy 21. 01. 2015, 18:04:29
pletes si pojmy s dojmy, cisty, funkcni a hlavne jednoduchy kod proc ne ale u kompilovaneho jazyka do interpretovanych duplicity sem tam patrej ma to docela vliv na vykon
Název: Re:duplicita kodu BASH
Přispěvatel: JardaP . kdy 21. 01. 2015, 18:13:07
Pouzijte jednu funkci pro oba pripady (function printString). Jako parametr jednou predejte date ve zpetnych apostrofech, jednou retezec dle vaseho vkusu.
Název: Re:duplicita kodu BASH
Přispěvatel: OMG kdy 22. 01. 2015, 09:17:10
Citace od: tojsemja kdy 21. 01. 2015, 16:57:09
...
ja nevim, ale ja nikdy nebudu vedet s cim zakaznik prijde a jak se zmeni pozadavky zitra? proto uz dnes chci mit kod tip-top? :)
vyborny napad, takze u evidence dochazky treba rovnou naprogramuj ucetnictvi, kamerovy system a ridici system pro atomovou elektrarnu... co kdyby si to to pekarstvi nahodou zitra rozmyslelo a prislo s tim za tebou...
budto mas jasne requirements, nebo delas dort jak pejsek s kocickou...
Název: Re:Duplicita kódu Bash
Přispěvatel: Tomáš Marný kdy 22. 01. 2015, 09:27:34
Mně dala nejvíc kniha Leo Brodie: Thinking Forth.
Název: Re:duplicita kodu BASH
Přispěvatel: Worker kdy 22. 01. 2015, 09:50:59
Citace od: OMG kdy 22. 01. 2015, 09:17:10
Citace od: tojsemja kdy 21. 01. 2015, 16:57:09
...
ja nevim, ale ja nikdy nebudu vedet s cim zakaznik prijde a jak se zmeni pozadavky zitra? proto uz dnes chci mit kod tip-top? :)
vyborny napad, takze u evidence dochazky treba rovnou naprogramuj ucetnictvi, kamerovy system a ridici system pro atomovou elektrarnu... co kdyby si to to pekarstvi nahodou zitra rozmyslelo a prislo s tim za tebou...
budto mas jasne requirements, nebo delas dort jak pejsek s kocickou...
To uz vypada ako Firefox, ci Emacs.
Název: Re:Duplicita kódu Bash
Přispěvatel: nobody kdy 22. 01. 2015, 12:59:59
printString(){
    if [ -f LOG ]; then
        echo "${1:-$(date)}" >>$LOG
    fi
}
Název: Re:duplicita kodu BASH
Přispěvatel: tojsemja kdy 22. 01. 2015, 14:09:41
Citace od: linux_noob kdy 21. 01. 2015, 16:35:23

function printString {
if [ -f $LOG ]; then
echo $1 >> $LOG
fi
}
function printDatum {
printString `date`
}


jinak ocenuju jednotnou konvenci pojmenovani funkci (Datum vs. String).

tohle se mi libi. jsem blbej ze sem na to neprisel. jen to ma drobou vadu, date vrati Thu Jan 22 14:09:15 CET 2015 takze do promenne $1 se vlozi retezec Thu
Název: Re:Duplicita kódu Bash
Přispěvatel: linux_noob kdy 22. 01. 2015, 14:13:05
nj, na to jsem zapomnel no

function printString {
if [ -f $LOG ]; then
echo $1 >> $LOG
fi
}
function printDatum {
printString "`date`"
}