Duplicita kódu Bash

tojsemja

Duplicita kódu Bash
« 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...

Kód: [Vybrat]
function printDatum {
if [ -f $LOG ]; then
date >> $LOG
fi
}

function printString {
if [ -f $LOG ]; then
echo $1 >> $LOG
fi
}
« Poslední změna: 21. 01. 2015, 22:15:46 od Petr Krčmář »


Kolemjdoucí

Re:duplicita kodu BASH
« Odpověď #1 kdy: 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
}

tojsemja

Re:duplicita kodu BASH
« Odpověď #2 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.. :)

linux_noob

Re:duplicita kodu BASH
« Odpověď #3 kdy: 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).

aaaa

Re:duplicita kodu BASH
« Odpověď #4 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


tojsemja

Re:duplicita kodu BASH
« Odpověď #5 kdy: 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 :)

Kolemjdoucí

Re:duplicita kodu BASH
« Odpověď #6 kdy: 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);

tojsemja

Re:duplicita kodu BASH
« Odpověď #7 kdy: 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? :)

Kolemjdoucí

Re:duplicita kodu BASH
« Odpověď #8 kdy: 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.

karel

Re:duplicita kodu BASH
« Odpověď #9 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

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:duplicita kodu BASH
« Odpověď #10 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.

OMG

Re:duplicita kodu BASH
« Odpověď #11 kdy: 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...

Tomáš Marný

Re:Duplicita kódu Bash
« Odpověď #12 kdy: 22. 01. 2015, 09:27:34 »
Mně dala nejvíc kniha Leo Brodie: Thinking Forth.

Worker

Re:duplicita kodu BASH
« Odpověď #13 kdy: 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.

nobody

Re:Duplicita kódu Bash
« Odpověď #14 kdy: 22. 01. 2015, 12:59:59 »
printString(){
    if [ -f LOG ]; then
        echo "${1:-$(date)}" >>$LOG
    fi
}