Article View: pl.comp.lang.delphi
Article #345871Re: Zeos Delphi XE2
From: wloochacz
Date: Tue, 11 Jul 2017 15:28
Date: Tue, 11 Jul 2017 15:28
116 lines
4929 bytes
4929 bytes
W dniu 2017-07-11 o 11:24, Roman Tyczka pisze:
> On Tue, 11 Jul 2017 10:50:31 +0200, konsul41@wp.pl wrote:
>
>> Co ty masz jakiś gorszy dzień?
>
> Twój kod tak działa na spokojnego człowieka.
To subiektywna opinia; ja tam do spokojnych się nie zaliczam, a na mnie
tak nie działa ;-)
>> Ok. pokieruj mnie gdzie on jest nie czytelny? Pytam poważnie.
>> Skopiuj go do Delphi i zauważ są odpowiednie wcięcia trochę komentarzy,
>> itd.
>
> Ok, kilka _powierzchownych_ uwag.
Wiesz, że dość mocno się czepiasz?
Po prostu.
> 1. Spacje wokół przypisania zmiennych, Zmienna := Wartość;
Ctrl+D
> 2. Spacje po przecinkach, dwukropkach itd.
Ctrl+D
> 3. Nazwy parametrów metod oznaczamy np. małą literą a z przodu, np:
> function TMyClass.Process(aParam : TSomeType);
Chyba Ty oznaczasz.
Albo Wy.
Ale My nie.
> 4. Nie mieszj języka polskiego i angielskiego, czyli nie twórz potworków
> typu GetWartosc(), SendWiadomosc(), stosuj ALBO polski ALBO angielski
Polinglisz zawsze daje radę! :P
Pełna zgoda.
> 5. Używaj camel case do nazw zmiennych, metod, parametrów czyli np.
> DecrementThreadCount a nie pokraka typu: Decrementthereadcount (tu masz
> jeszcze literówkę!)
True.
> 6. Skoro musisz hardcodować SQL w kod to zrób to za pomocą consta lub
> resourcestringa a nie pakuj go w środek kodu:
Resourcestring?
Hmm...
> const
> cSQL = 'select * from tabela ' +
> 'where kolumna = ':kolumna';
Zgoda, (teraz ja się czepiam) ale to dalej pokraczne, bo:
const
cSQL = 'select * from tabela' + sLineBreak +
'where kolumna = ':kolumna';
Polecam CnWizards i konfigurację wizarda "Convert to string".
> begin
> lQuery := TQuery.Create;
> lQuery.SQL := cSQL;
> ...
>
> 7. Pola klas powinny mieć prefiks f (wszystkie! i do tego nie raz F a raz
> f, tylko tak samo!)
Ja mam F, nie f - jak w źródłach producenta...
I jak widzę fDoopa, to mnie to boli, właśnie tam... ;-)
Ale nie widzę innego, a dla mnie szalenie istotnego elementu konwencji.
Prefix dla zmiennych lokalnych.
Ja zawsze używam l
A wiec nie tak:
var
BS : TStream;
fs : TFileStream;
BlobField : TField;
Query : TZQuery;
tylko tak:
var
lBS : TStream;
lFS : TFileStream;
lBlobField : TField;
lQuery : TZQuery;
Dlatego tak, że w kodzie od razu widzę, że to jest zmienna lokalna, a
nie jakaś... inna.
> 8. Poczytaj co robi const w parametrach metod i zastanów się dlaczego
> powinieneś go używać
I dlaczego nie zawsze i wszędzie jest to potrzebne ;-)
> To tylko garść porad na początek, zacznij czytać książki i zacznij CZYTAĆ
> OBCY KOD - wtedy się nauczysz pisać swój.
Te małe literki a i f mnie się nie podobają.
Poza tym, Spring4D Style Guide też nie trzyma się własnych wytycznych :P
Wiem, bo pośrednio maczałem w tym swoje brudne paluchy...
>> Niestety przesyłając kod najpiekniej sformatowany w Delphi w poczcie
>> jest rozwalane formatowanie.
>
> 9. Publikuj kod przez wklej.org lub pastebin.com, nikt Ci nie każe wklejać
> w posta
WŁAŚNIE!
>> Co Ci się nie podoba w tym formatowaniu
>> if
>> CzyJestEmailWBazie(Query,FDaneProgram.user,IdMessage.Subject,IdMessage.From.Address,IdMessage.Date)>0
>
> Wszystko.
Bardzo treściwa odpowiedź...
Mi się np. nie podoba, że to zwraca int zamiast bool.
Samo ciało tej funkcji tez mi się nie podoba, bo aż się prosi (jeśli
tego w ZEOS nie ma) o ClassHelper dla Connection z metodami na wzór FireDAC:
http://docwiki.embarcadero.com/Libraries/Tokyo/en/FireDAC.Comp.Client.TFDCustomConnection.ExecSQLScalar
--
wloochacz
Technical Details
Message-ID:
<5964eeb7$0$15204$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<5950f43c$0$15190$65785112@news.neostrada.pl> <5950ff29$0$640$65785112@news.neostrada.pl> <5952c2f7$0$15208$65785112@news.neostrada.pl> <ok1vsm$gb2$1@portraits.wsisiz.edu.pl> <d1oytca0xw8i$.dlg@tyczka.com> <ok23gn$k5m$1@portraits.wsisiz.edu.pl> <n6gl583g0iv1$.dlg@tyczka.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Subject: Re: Zeos Delphi XE2 Newsgroups: pl.comp.lang.delphi References: <5950f43c$0$15190$65785112@news.neostrada.pl> <5950ff29$0$640$65785112@news.neostrada.pl> <5952c2f7$0$15208$65785112@news.neostrada.pl> <ok1vsm$gb2$1@portraits.wsisiz.edu.pl> <d1oytca0xw8i$.dlg@tyczka.com> <ok23gn$k5m$1@portraits.wsisiz.edu.pl> <n6gl583g0iv1$.dlg@tyczka.com> From: wloochacz <wloochacz@no.spam.gmail.com> Date: Tue, 11 Jul 2017 17:28:54 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <n6gl583g0iv1$.dlg@tyczka.com> Lines: 116 Message-ID: <5964eeb7$0$15204$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 79.186.32.57 X-Trace: 1499786935 unt-rea-a-02.news.neostrada.pl 15204 79.186.32.57:3790 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit