Fórum Root.cz

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

Název: Duplicita kódu Bash
Přispěvatel: tojsemja 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...

Kód: [Vybrat]
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í 21. 01. 2015, 16:12:29
mám rád čistej kód
Kód: [Vybrat]

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 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 21. 01. 2015, 16:35:23
Kód: [Vybrat]
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 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 21. 01. 2015, 16:39:45
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í 21. 01. 2015, 16:51:51

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

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 21. 01. 2015, 16:57:09

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

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í 21. 01. 2015, 17:02:44
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 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 . 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 22. 01. 2015, 09:17:10
...
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ý 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 22. 01. 2015, 09:50:59
...
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 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 22. 01. 2015, 14:09:41
Kód: [Vybrat]
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 22. 01. 2015, 14:13:05
nj, na to jsem zapomnel no
Kód: [Vybrat]
function printString {
if [ -f $LOG ]; then
echo $1 >> $LOG
fi
}
function printDatum {
printString "`date`"
}