Thread View: pl.comp.lang.delphi
67 messages
67 total messages
Page 1 of 2
Started by konsul41
Mon, 26 Jun 2017 11:47
Page 1 of 2 • 67 total messages
Zeos Delphi XE2
Author: konsul41
Date: Mon, 26 Jun 2017 11:47
Date: Mon, 26 Jun 2017 11:47
70 lines
3443 bytes
3443 bytes
Delphi XE2
ZEOS 7.0.3
Zapytanie nie dotyczy baz danych dlatego tutaj.
Czy ZEOSY są bezpiecznie w wątkach?
na formie leży ZConnecion
Na formie leży Query,DataSource i DBGrid
do DBGrida podpięte jest pobieranie danych w postaci BlobStream
Query := TZQuery.Create(nil);
try
Query.Close;
Query.Connection := ZQPoczta.Connection;
Query.SQL.Text := 'Select dane,nazwapliku,id from pliki where id=:id;';
Query.ParamByName('id').AsInteger := StrToInt(tmpf);
Query.Open;
if Query.RecordCount>0 then
begin
BS := Query.CreateBlobStream(Query.FieldByName('dane'),bmRead);
TBlobField(Query.FieldByName('dane')).SaveToStream(Stream);
result:=Query.FieldByName('nazwapliku').Text;
end;
finally
Query.free;
end;
następnie tworzę wątek
TPobierzPoczte = class(TThread)
private
FZTable1 : TZTable;
FConnection : TZConnection;
{ Private declarations }
IdMessage: TIdMessage;
IdPOP3: TIdPOP3;
wiadomosc : String;
FDaneProgram : TDaneProgram;
protected
procedure Execute; override;
procedure PobierzWiadomosci(host : String; user : String;password:
String; all : boolean=false);
function ZapiszPlikWBazieFTP(Stream : TStream;filename:
String):Integer;
procedure SendWiadomosc;
procedure RefreshDBGrid;
public
constructor Create(CreateSuspended: Boolean;DaneProgram :
TDaneProgram; Connection : TZConnection); overload;
end;
i w PobierzWiadomosci
pobieram wiadomości oraz przez Synchronize(...
wykonuję operacje na formie: Odświeżanie DBGrida i dodawanie tekstu do memo
Wszystko jest w porządku gdy nie dotykam DBGrida(w Aplikacji). Widzę
komunikaty wysyłane z wątku oraz nowe pozycje DBGrida(podczas
odświeżania z wątku) . Problem pojawia się gdy w wątku pobierane są
wiadomości a ja w tym czasie zaczynam "na pałę" klikać DBgrida i dostaję
błąd "SQL Error: lost synchronization with server: got message type "D",
length..."
wątek główny podaje Błąd: "SQL Error: could not receive data from
server: Socket operation on non-socket (0x..."
następnie sypią się ACCES violation w ZComponent160.bpl i mozna zabijać
aplikację.
Z trąd moje pytanie czy ZEOSY są bezpieczne wątkowo ewentualnie jak to
prawidłowo zrobić?
Re: Zeos Delphi XE2
Author: konsul41
Date: Mon, 26 Jun 2017 12:33
Date: Mon, 26 Jun 2017 12:33
2 lines
1174 bytes
1174 bytes
wygląda na to że nie są po utworzeniu odrębnego ZConnection w wątku nie ma objawów.
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Mon, 26 Jun 2017 15:07
Date: Mon, 26 Jun 2017 15:07
12 lines
1194 bytes
1194 bytes
On Mon, 26 Jun 2017 14:33:45 +0200, konsul41@wp.pl wrote: > wygląda na to że nie są > po utworzeniu odrębnego ZConnection w wątku nie ma objawów. Niekoniecznie. Drugim miejscem, które powinno być thread safe jest biblioteka dostępowa do serwera. Jeśli kontrolki będą, a biblioteka nie będzie to i tak wyjątki się pojawią. -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: wloochacz
Date: Tue, 27 Jun 2017 20:41
Date: Tue, 27 Jun 2017 20:41
18 lines
1780 bytes
1780 bytes
W dniu 2017-06-26 o 14:33, konsul41@wp.pl pisze: > wygląda na to że nie są > po utworzeniu odrębnego ZConnection w wątku nie ma objawów. Żadna (znana mi :P) biblioteka DAC (dla Delphi) nie jest bezpieczna w ten sposób. Nie chcesz mieć problemów, to każdy wątek ma osobne Connection. Period. Cały VCL nie jest bezpieczny wątkowo, a więc jeśli otwierasz DataSeta w wątku i jest on prezentowany przez kontrolki na formatce, to musisz zadbać o synchronizację swojego wątku z głównym wątkiem VCLa. Drugi period. Zadbasz o powyższe "periody" i będzie grało, a przynajmniej jest szansa ;-) -- wloochacz
Re: Zeos Delphi XE2
Author: konsul41
Date: Wed, 28 Jun 2017 06:05
Date: Wed, 28 Jun 2017 06:05
23 lines
1763 bytes
1763 bytes
W dniu 27-06-2017 o 22:41, wloochacz pisze: > W dniu 2017-06-26 o 14:33, konsul41@wp.pl pisze: >> wygląda na to że nie są >> po utworzeniu odrębnego ZConnection w wątku nie ma objawów. > > Żadna (znana mi :P) biblioteka DAC (dla Delphi) nie jest bezpieczna w > ten sposób. > Nie chcesz mieć problemów, to każdy wątek ma osobne Connection. > Period. Tak zrobiłem > > Cały VCL nie jest bezpieczny wątkowo, a więc jeśli otwierasz DataSeta w > wątku i jest on prezentowany przez kontrolki na formatce, to musisz > zadbać o synchronizację swojego wątku z głównym wątkiem VCLa. > Drugi period. Tutaj tak robiłem od początku > > Zadbasz o powyższe "periody" i będzie grało, a przynajmniej jest szansa ;-) > :-D
Re: Zeos Delphi XE2
Author: mmm
Date: Wed, 28 Jun 2017 06:12
Date: Wed, 28 Jun 2017 06:12
10 lines
1238 bytes
1238 bytes
>> >> Zadbasz o powyższe "periody" i będzie grało, a przynajmniej jest >> szansa ;-) >> > > :-D A tak z ciekawości słowo "Period" jakoś mi tu nie pasuje, moge prosić o podpowiedz jak je rozumieć ? M
Re: Zeos Delphi XE2
Author: konsul41
Date: Tue, 11 Jul 2017 07:48
Date: Tue, 11 Jul 2017 07:48
357 lines
12474 bytes
12474 bytes
Myślałem że gra, ale
tworzone są 4 wątki pobierania wiadomości
Każdy ma swoje
Connection, pop3, IDMessage i inne
w zasadzie działa ale jak go najdzie to dostaję informacje o:
- braku Field 'id' (pole zwracane w zapytaniu)
- braku połączenia
- błędy związane z libpq
- błędy związane z ssl
- większość błędów pojawia się przy przesyłaniu plików do bazy czyli w
function TPobierzPoczte.ZapiszPlikWBazieFTP(Stream: TStream; filename,
opis: String): Integer;
- ogólnie błędy z połączeniem
czy to są normalne objawy przy wątkach z zeos, czy ktoś już się z tym
spotkał?
KOD:
wywołanie wątków
procedure TPoczta.Button1Click(Sender: TObject);
var i : Integer;
Test : TPobierzPoczte;
dbInfo : TDBInfo;
begin
try
if Sender is TPNGSpeedButton then
begin
TPNGSpeedButton(Sender).Enabled:=false;
pasekk.Show;//wizualizacja (klepsydra)
for i := 0 to main1.Konfiguracja.Poczta.Count-1 do
begin
//if watkow>1 then break;
Memo1.Visible:=true;
Splitter1.Visible:=true;
Memo1.Width:=400;
dbinfo.Setdata(mainform.ZConnection1.HostName,
mainform.ZConnection1.DataBase,
mainform.ZConnection1.user,
mainform.ZConnection1.password,
IntToStr(mainform.ZConnection1.Port),
mainform.ZConnection1.Protocol,
mainform.ZConnection1.Properties.Text);
Test :=
TPobierzPoczte.Create(False,main1.Konfiguracja.Daneprogram,main1.Konfiguracja.Poczta[i].POP3,dbinfo);
inc(watkow);
end;
end;
finally
if Sender is TPNGSpeedButton then
begin
TPNGSpeedButton(Sender).Enabled:=true;
end;
end;
end;
wątek pobierania wiadomości
TPobierzPoczte = class(TThread)
private
FConnection : TZConnection;
{ Private declarations }
IdMessage: TIdMessage;
IdPOP3: TIdPOP3;
wiadomosc : String;
FDaneProgram : IXMLDaneprogramType;
Fpop3 : IXMLPOP3Type;
function CzyJestEmailWBazie(var Query: TZQuery;username :
String;temat : String;enadawca : String;datawiadomosci: TDate):Integer;
procedure Connect;
protected
procedure Execute; override;
//procedure PobierzWiadomosci(host : String; user :
String;password: String; all : boolean=false);
function ZapiszPlikWBazieFTP(Stream : TStream;filename:
String;opis: String):Integer;
procedure SendWiadomosc;
procedure Decrementthereadcount;
procedure RefreshDBGrid;
//procedure SendWiadomosc;
public
constructor Create(CreateSuspended: Boolean;DaneProgram :
IXMLDaneprogramType; pop3 : IXMLPOP3Type; DBInfo: TDBInfo); overload;
end;
{ TPobierzPoczte }
constructor TPobierzPoczte.Create(CreateSuspended: Boolean;
DaneProgram: IXMLDaneprogramType;pop3 : IXMLPOP3Type; DBInfo: TDBInfo);
begin
Inherited Create(CreateSuspended);
FDaneProgram:=DaneProgram;
Fpop3:=pop3;
FConnection:=TZConnection.Create(nil);
FConnection.User:=DBInfo.user;
FConnection.Password:=DBInfo.password;
FConnection.HostName:=DBInfo.Host;
FConnection.Database:=DBInfo.DataBase;
FConnection.Protocol:=DBInfo.Protocol;
FConnection.Properties.Text:=DBInfo.Properites;
FConnection.Connect;
if not FConnection.Connected then
begin
raise Exception.Create('Błąd połączenia z bazą');
terminate;
end;
end;
procedure TPobierzPoczte.Connect;
begin
//ustawienie adresu IP/nazwy serwera
IdPOP3.Host := Fpop3.Serwer;
//ustawienie nazwy użytkownika
IdPOP3.Username := Fpop3.user;
//ustawienie hasła użytkownika
IdPOP3.Password := Fpop3.password;
wiadomosc := 'Odbieranie poczty - ' + FDaneProgram.User;
Synchronize(SendWiadomosc);
//nawiązanie połączenia w przypadku jego braku
if not IdPOP3.Connected then
begin
try
wiadomosc := 'zestawianie połączenia!!!';
Synchronize(SendWiadomosc);
IdPOP3.Connect;
wiadomosc := 'połączony!!!';
Synchronize(SendWiadomosc);
except
on E: Exception do
begin
wiadomosc := 'błąd połączenia!!!';
Synchronize(SendWiadomosc);
wiadomosc := E.Message;
Synchronize(SendWiadomosc);
end;
end;
end;
end;
function TPobierzPoczte.CzyJestEmailWBazie(var Query: TZQuery;username :
String;temat : String;enadawca : String;datawiadomosci: TDate):Integer;
begin
Query.Close;
Query.SQL.Text := 'SELECT ' + ' id, nazwa, username, messageid,
temat, odkogo, datawiadomosci, skrzynkaid, nazwaskrzynki,
status,enadawca,dokogo' + ' FROM poczta where username=:username and
datawiadomosci=:datawiadomosci and enadawca=:enadawca and temat=:temat ;';
Query.ParamByName('username').Text := username;
Query.ParamByName('temat').Text := temat;
Query.ParamByName('enadawca').Text := enadawca;
Query.ParamByName('datawiadomosci').AsDateTime := datawiadomosci;
Query.Open;
result:=Query.RecordCount;
end;
procedure TPobierzPoczte.Decrementthereadcount;
var log : String;
begin
Dec(poczta.watkow);
if poczta.watkow=0 then
begin
log:=ExtractFilePath(Application.ExeName)+'poczta.log';
poczta.Memo1.Lines.SaveToFile(log);
//poczta.Memo1.Visible:=false;
//poczta.Splitter1.Visible:=false;
poczta.pasekk.Hide;
end;
end;
procedure TPobierzPoczte.Execute;
var
il_wiad : integer;
id : Integer;
STRIN : TMemoryStream;
Query : TZQuery;
begin
FreeOnTerminate := True;
IdMessage:= TIdMessage.Create(nil);
IdPOP3:= TIdPOP3.Create(nil);
try
Connect;
//odebranie wiadomości w przypadku pomyślnego nawiązania połączenia
if IdPOP3.Connected then
begin
//sprawdzenie ilości wiadomości na serwerze
il_wiad := IdPOP3.CheckMessages;
wiadomosc:=IntToStr(il_wiad);
Synchronize(SendWiadomosc);
while il_wiad>0 do
//for i := 1 to il_wiad do
begin
try
//czyszczenie komponentu IdMessage
IdMessage.Clear;
//odbiór wiadomości z serwera, wypełnienie komponentu IdMessage
IdPOP3.RetrieveHeader(il_wiad, IdMessage);
//mamy nagłówek wiadomości jeżeli taka wiadpomość jest już w
bazie to przechodzimy dalej
//wiadomość identyfikujemy po czasie ,dacie i temacie oraz
nadawcy
Query:=TZQuery.Create(nil);
try
Query.Connection := FConnection;
if
CzyJestEmailWBazie(Query,FDaneProgram.user,IdMessage.Subject,IdMessage.From.Address,IdMessage.Date)>0
then
begin
dec(il_wiad);
continue;
end else
begin
IdMessage.Clear;
//odbiór wiadomości z serwera, wypełnienie komponentu
IdMessage
IdPOP3.Retrieve(il_wiad, IdMessage);
id:=0;
try
STRIN:= TMemoryStream.Create;
IdMessage.SaveToStream(STRIN);
try
id:=ZapiszPlikWBazieFTP(STRIN,FormatDateTime('dd-mm-yyyy-hh-nn-ss-zzzz',Now())+'.elm',IdMessage.Subject);
if id=-1 then
begin
Continue;
end;
except
ON E: Exception DO ShowMessage('Błąd
zapisywania w bazie '+#13+IdMessage.Subject+' '+#13+E.Message);
end;
finally
STRIN.Free;
end;
//dodawanie wiadomości do bazy
Query.Close;
Query.SQL.Text:='INSERT INTO poczta( '+
' nazwa, username, messageid, temat,
odkogo, datawiadomosci, '+
' skrzynkaid, nazwaskrzynki, status,
enadawca, dokogo,fileid) '+
' VALUES (:nazwa, :username, :messageid,
:temat, :odkogo, :datawiadomosci, '+
' :skrzynkaid, :nazwaskrzynki, :status,
:enadawca, :dokogo,:fileid);';
Query.ParamByName('nazwa').Text:='';
Query.ParamByName('username').Text:=FDaneProgram.user;
Query.ParamByName('messageid').Text:='0';
Query.ParamByName('temat').Text:=IdMessage.Subject;
Query.ParamByName('odkogo').Text:=IdMessage.From.Text;
Query.ParamByName('datawiadomosci').AsDateTime:=IdMessage.Date;
Query.ParamByName('skrzynkaid').Text:='0';
Query.ParamByName('nazwaskrzynki').Text:='Skrzynka
Odbiorcza';
Query.ParamByName('status').AsInteger:=0;
Query.ParamByName('enadawca').Text:=IdMessage.From.Address;
Query.ParamByName('dokogo').Text:=IdMessage.Recipients.Items[0].Address;
Query.ParamByName('fileid').AsInteger:=id;
Query.Open;
wiadomosc:=FormatDateTime('dd-mm-yyyy
hh-nn-ss',IdMessage.Date)+' '+'emial od : '+IdMessage.From.Text +
' Temat: ' + IdMessage.Subject;
Synchronize(SendWiadomosc);
end;
finally
Query.Free;
end;
except
ON E:Exception Do ShowMessage('Błąd pobierania wadomości
'+#13+IdMessage.Subject+' '+#13+E.Message );
end;
Synchronize(RefreshDBGrid);
//DBGrid1.DataSource.DataSet.Refresh;
//Application.ProcessMessages;
dec(il_wiad)
end;
end;
IdPOP3.disconnect;
wiadomosc:='rozłączony!!!';
Synchronize(SendWiadomosc);
Synchronize(Decrementthereadcount);
finally
IdPOP3.Free;
IdMessage.Free;
end;
end;
procedure TPobierzPoczte.RefreshDBGrid;
begin
Poczta.DBGrid1.DataSource.DataSet.Refresh;
Application.ProcessMessages;
end;
procedure TPobierzPoczte.SendWiadomosc;
begin
poczta.Memo1.Lines.Add(IntToStr(handle)+' email '+Fpop3.User+'
'+wiadomosc);
Application.ProcessMessages;
end;
function TPobierzPoczte.ZapiszPlikWBazieFTP(Stream: TStream; filename,
opis: String): Integer;
var
BS : TStream;
fs : TFileStream;
BlobField : TField;
Query : TZQuery;
begin
result:=-1;
//ZTable1 := TZTable.Create(nil);
Query:=TZQuery.Create(nil);
try
Query.Connection:=Poczta.ZQPoczta.Connection;
Query.SQL.Text:='INSERT INTO pliki(dane, typ, nazwapliku,
id_sprawy,opis) '+
' VALUES (:dane, :typ, :nazwapliku,
:id_sprawy,:opis) returning id;';
Query.ParamByName('typ').Text := 'plik';
Query.ParamByName('nazwapliku').Text := ExtractFileName(filename);
Query.ParamByName('id_sprawy').AsInteger := 0;
Query.ParamByName('opis').Text := opis;
Query.ParamByName('dane').LoadFromStream(Stream,ftBlob);
try
Query.Open;
except
On E:Exception DO ShowMessage('Błąd wysyłania pliku do bazy
danych'+#13 +filename);
end;
if assigned(Query.Fields.FindField('id')) then
result:=Query.FieldByName('id').AsInteger;
finally
Query.free;
end;
end;
end.
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Tue, 11 Jul 2017 08:27
Date: Tue, 11 Jul 2017 08:27
19 lines
1529 bytes
1529 bytes
On Tue, 11 Jul 2017 09:48:35 +0200, konsul41@wp.pl wrote: > Myślałem że gra, ale > [ciach tonę syfilisu] Czy Ty jesteś w stanie napisać ładny, czytelny kod, nawet jeśli błędny i do doopy? Po prostu schludny, zachowujący zasady, przejrzysty i uporządkowany? Bo ten burdel, który tu wklejasz co chwilę wywołuje atak sraczki. Nie bądź syfiarz, jak idziesz do dentysty umyj zęby, jak idziesz do fryzjera umyj głowę, jak wklejasz kod na grupę napisz go czytelnie i czysto, szanuj potencjalnych czytelników, nawet jeśli sam lubisz tonąć w gównie. -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: miab
Date: Tue, 11 Jul 2017 08:49
Date: Tue, 11 Jul 2017 08:49
6 lines
1132 bytes
1132 bytes
W dniu 11-07-2017 o 09:48, konsul41@wp.pl pisze: Po pierwsze primo, dlaczego dla czystego INSERT ty używasz Open zamiast ExecSQL? miab
Re: Zeos Delphi XE2
Author: konsul41
Date: Tue, 11 Jul 2017 08:50
Date: Tue, 11 Jul 2017 08:50
67 lines
3727 bytes
3727 bytes
W dniu 11-07-2017 o 10:27, Roman Tyczka pisze:
> On Tue, 11 Jul 2017 09:48:35 +0200, konsul41@wp.pl wrote:
>
>> Myślałem że gra, ale
>>
> [ciach tonę syfilisu]
>
>
> Czy Ty jesteś w stanie napisać ładny, czytelny kod, nawet jeśli błędny i do
> doopy? Po prostu schludny, zachowujący zasady, przejrzysty i uporządkowany?
> Bo ten burdel, który tu wklejasz co chwilę wywołuje atak sraczki.
> Nie bądź syfiarz, jak idziesz do dentysty umyj zęby, jak idziesz do
> fryzjera umyj głowę, jak wklejasz kod na grupę napisz go czytelnie i
> czysto, szanuj potencjalnych czytelników, nawet jeśli sam lubisz tonąć w
> gównie.
>
>
Co ty masz jakiś gorszy dzień?
Ok. pokieruj mnie gdzie on jest nie czytelny? Pytam poważnie.
Skopiuj go do Delphi i zauważ są odpowiednie wcięcia trochę komentarzy,
itd.
Niestety przesyłając kod najpiekniej sformatowany w Delphi w poczcie
jest rozwalane formatowanie.
Co Ci się nie podoba w tym formatowaniu
if
CzyJestEmailWBazie(Query,FDaneProgram.user,IdMessage.Subject,IdMessage.From.Address,IdMessage.Date)>0
nie mieści Ci się w czytniku?
if CzyJestEmailWBazie(Query,
FDaneProgram.user,
IdMessage.Subject,
IdMessage.From.Address,
IdMessage.Date)>0 then
Czy tak sformatowany kod będzie dla ciebie bardzie czytelny?
Co Ci nie podoba się w tym?
dbinfo.Setdata(mainform.ZConnection1.HostName,
mainform.ZConnection1.DataBase,
mainform.ZConnection1.user,
mainform.ZConnection1.password,
IntToStr(mainform.ZConnection1.Port),
mainform.ZConnection1.Protocol,
mainform.ZConnection1.Properties.Text);
Może to Ci się nie podoba?
Query.SQL.Text := 'SELECT ' + ' id, nazwa, username, messageid, temat,
odkogo, datawiadomosci, skrzynkaid, nazwaskrzynki,
status,enadawca,dokogo' + ' FROM poczta where username=:username and
datawiadomosci=:datawiadomosci and enadawca=:enadawca and temat=:temat ;';
W Delphi jest to sformatowane tak że znaki '+ są na końcu linii i w
ograniczonych czytnikach poczty nie da się tego pokazać chyba że
Query.SQL.Text :=
'SELECT ' +
' id, nazwa, '+
' username, messageid, '+
' temat, odkogo, '+
' datawiadomosci, skrzynkaid, '+
' nazwaskrzynki, status, '+
' enadawca,dokogo' +
' FROM poczta where '+
' username=:username and datawiadomosci=:datawiadomosci '+
' and enadawca=:enadawca and temat=:temat ;';
To jest dopiero maszkara nieczytelna.
Re: Zeos Delphi XE2
Author: konsul41
Date: Tue, 11 Jul 2017 09:17
Date: Tue, 11 Jul 2017 09:17
46 lines
2555 bytes
2555 bytes
> A to id to jakiego jest typu?
>
> miab
Integer (serial z tabeli pliki)
chodzi o numer rekordu tabeli z plikami
funkcję
zmieniłem na dwutorową
function TPobierzPoczte.ZapiszPlikWBazieFTP(Stream: TStream; filename,
opis: String): Integer;
var BS : TStream;
fs : TFileStream;
BlobField : TField;
Query : TZQuery;
begin
result:=-1;
Query:=TZQuery.Create(nil);
try
Query.Connection:=Poczta.ZQPoczta.Connection;
Query.SQL.Text:='INSERT INTO pliki(typ, nazwapliku, id_sprawy,opis)
VALUES (:typ, :nazwapliku, :id_sprawy,:opis)
returning id;';
Query.ParamByName('typ').Text := 'plik';
Query.ParamByName('nazwapliku').Text := ExtractFileName(filename);
Query.ParamByName('id_sprawy').AsInteger := 0;
Query.ParamByName('opis').Text := opis;
Query.Open;
if assigned(Query.Fields.FindField('id')) then
begin
result:=Query.FieldByName('id').AsInteger;
Query.Close;
Query.SQL.Text:='UPDATE pliki SET dane=:dane WHERE id=:id;';
Query.ParamByName('id').AsInteger:=result;
Query.ParamByName('dane').LoadFromStream(Stream,ftBlob);
Query.ExecSQL;
end;
finally
Query.free;
end;
end;
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Tue, 11 Jul 2017 09:24
Date: Tue, 11 Jul 2017 09:24
61 lines
2885 bytes
2885 bytes
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.
> 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.
1. Spacje wokół przypisania zmiennych, Zmienna := Wartość;
2. Spacje po przecinkach, dwukropkach itd.
3. Nazwy parametrów metod oznaczamy np. małą literą a z przodu, np:
function TMyClass.Process(aParam : TSomeType);
4. Nie mieszj języka polskiego i angielskiego, czyli nie twórz potworków
typu GetWartosc(), SendWiadomosc(), stosuj ALBO polski ALBO angielski
5. Używaj camel case do nazw zmiennych, metod, parametrów czyli np.
DecrementThreadCount a nie pokraka typu: Decrementthereadcount (tu masz
jeszcze literówkę!)
6. Skoro musisz hardcodować SQL w kod to zrób to za pomocą consta lub
resourcestringa a nie pakuj go w środek kodu:
const
cSQL = 'select * from tabela ' +
'where kolumna = ':kolumna';
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!)
8. Poczytaj co robi const w parametrach metod i zastanów się dlaczego
powinieneś go używać
To tylko garść porad na początek, zacznij czytać książki i zacznij CZYTAĆ
OBCY KOD - wtedy się nauczysz pisać swój.
> 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
> Co Ci się nie podoba w tym formatowaniu
> if
> CzyJestEmailWBazie(Query,FDaneProgram.user,IdMessage.Subject,IdMessage.From.Address,IdMessage.Date)>0
Wszystko.
--
pozdrawiam
Roman Tyczka
Re: Zeos Delphi XE2
Author: konsul41
Date: Tue, 11 Jul 2017 09:41
Date: Tue, 11 Jul 2017 09:41
42 lines
2819 bytes
2819 bytes
> 1. Spacje wokół przypisania zmiennych, Zmienna := Wartość; Zawsze to stosuje, dla mnie jest bardziej czytelne. > 2. Spacje po przecinkach, dwukropkach itd. Jak powyżej. > > 3. Nazwy parametrów metod oznaczamy np. małą literą a z przodu, np: > function TMyClass.Process(aParam : TSomeType); Kwestia gustu, ale ok. > 4. Nie mieszj języka polskiego i angielskiego, czyli nie twórz potworków > typu GetWartosc(), SendWiadomosc(), stosuj ALBO polski ALBO angielski OK > 5. Używaj camel case do nazw zmiennych, metod, parametrów czyli np. > DecrementThreadCount a nie pokraka typu: Decrementthereadcount (tu masz > jeszcze literówkę!) Przeoczenie, zazwyczaj tak robię > 6. Skoro musisz hardcodować SQL w kod to zrób to za pomocą consta lub > resourcestringa a nie pakuj go w środek kodu: > > const > cSQL = 'select * from tabela ' + > 'where kolumna = ':kolumna'; > begin > lQuery := TQuery.Create; > lQuery.SQL := cSQL; A tutaj się z tobą nie zgodzę, ponieważ nie mam kodu SQL w miejscu w którym go potrzebuję. Czyli muszę podglądać co jest w danej chwili załadowane do SQl, a Ja chcę go widzieć i mieć pewność co mam. Dodatkowo jaki jest sens tworzenia const w takim wypadku? W czym poprawia ono przejrzystość kodu? Jakie inne możliwości są przekształcenia kodu SQL aby nie było "hardcodowania SQL"? W czym resourcestring (string w zasobach?)jest lepszy od mojego rozwiązania? ResourceHacker i mamy wszystkie SQL-e na dłoni. > 7. Pola klas powinny mieć prefiks f (wszystkie! i do tego nie raz F a raz > f, tylko tak samo!) Kwestia gustu nie jest to wymóg formalny ale OK
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Tue, 11 Jul 2017 10:08
Date: Tue, 11 Jul 2017 10:08
66 lines
3441 bytes
3441 bytes
On Tue, 11 Jul 2017 11:41:18 +0200, konsul41@wp.pl wrote: >> 1. Spacje wokół przypisania zmiennych, Zmienna := Wartość; > Zawsze to stosuje, dla mnie jest bardziej czytelne. Co stosujesz? Brak spacji? >> 2. Spacje po przecinkach, dwukropkach itd. > Jak powyżej. To, że Tobie się podoba nieczytelność to oczywiście Twoja osobista sprawa, ale jak wychodziosz do ludzi to się dostosuj do zasad jakie tam panują. >> 3. Nazwy parametrów metod oznaczamy np. małą literą a z przodu, np: >> function TMyClass.Process(aParam : TSomeType); > Kwestia gustu, ale ok. Nie gustu tylko czytelności oraz _często_ poprawności kodu. Zmienne lokalne też warto prefiksować. To przynosi korzyści także w czasie debugu. >> 5. Używaj camel case do nazw zmiennych, metod, parametrów czyli np. >> DecrementThreadCount a nie pokraka typu: Decrementthereadcount (tu masz >> jeszcze literówkę!) > Przeoczenie, zazwyczaj tak robię W tym co wklejasz robisz to _bardzo rzadko_, a już na pewno nie zazwyczaj. >> const >> cSQL = 'select * from tabela ' + >> 'where kolumna = ':kolumna'; >> begin >> lQuery := TQuery.Create; >> lQuery.SQL := cSQL; > A tutaj się z tobą nie zgodzę, ponieważ nie mam kodu SQL w miejscu w > którym go potrzebuję. Czyli muszę podglądać co jest w danej chwili > załadowane do SQl, a Ja chcę go widzieć i mieć pewność co mam. Masz go tuż nad beginem lub var'em metody. Czy w pobliżu. Warto tu dopisać, że metoda nie powinna mieć więcej niż kilkanaście linii kodu. > Dodatkowo jaki jest sens tworzenia const w takim wypadku? > W czym poprawia ono przejrzystość kodu? W przejrzystości. > Jakie inne możliwości są przekształcenia kodu SQL aby nie było > "hardcodowania SQL"? Repozytorium zapytań. > W czym resourcestring (string w zasobach?)jest lepszy od mojego > rozwiązania? ResourceHacker i mamy wszystkie SQL-e na dłoni. No i? Piszesz jakieś tajne zapytania, których ujawnienie zaburzy ład światowy? >> 7. Pola klas powinny mieć prefiks f (wszystkie! i do tego nie raz F a raz >> f, tylko tak samo!) > Kwestia gustu nie jest to wymóg formalny ale OK Wszystko nie jest wymogiem, możesz sobie pisać syf nadal, tylko nie oczekuj, że ktoś będzie się w tym grzebał, po prostu. -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: konsul41
Date: Tue, 11 Jul 2017 10:20
Date: Tue, 11 Jul 2017 10:20
17 lines
2144 bytes
2144 bytes
> Masz go tuż nad beginem lub var'em metody. Czy w pobliżu. Warto tu dopisać, > że metoda nie powinna mieć więcej niż kilkanaście linii kodu. 15 linii, ale to przesada (sztuka dla sztuki) 20-25 bardziej. wyciągnięcie const-a jest ominięciem tego ograniczenia (oszustwo), przecież go trzeba wliczać do ilości linii metody. > Repozytorium zapytań. Do tak prostych zapytań? > >> W czym resourcestring (string w zasobach?)jest lepszy od mojego >> rozwiązania? ResourceHacker i mamy wszystkie SQL-e na dłoni. > > No i? Piszesz jakieś tajne zapytania, których ujawnienie zaburzy ład > światowy? Nie, ale po co się wykładać. To tak jak pisać w NET i mieć pretensje że ktoś kradnie Ci kod lub używa takich samych pomysłów.
Re: Zeos Delphi XE2
Author: 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
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Tue, 11 Jul 2017 21:43
Date: Tue, 11 Jul 2017 21:43
76 lines
3383 bytes
3383 bytes
On Tue, 11 Jul 2017 17:28:54 +0200, wloochacz 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 ;-) Może lubisz taki bajzel w kodzie, ja wręcz przeciwnie. Zatem, gdy przychodzi mi go czytać to mnie trafia. >> Ok, kilka _powierzchownych_ uwag. > Wiesz, że dość mocno się czepiasz? > Po prostu. W którym miejscu? >> 1. Spacje wokół przypisania zmiennych, Zmienna := Wartość; > Ctrl+D > >> 2. Spacje po przecinkach, dwukropkach itd. > Ctrl+D Po co podajesz mi ten skrót? Oświecę Cię, znam go. Oświecę Cię drugi raz: wątek dotyczy kodu jaki wkleił OP, a ja odpisuje mu na pytanie dlaczego ten kod uważamy za syfiarsko napisany. W czym jeszcze mogę Cię oświecić? >> 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. No to bawcie się w tym bagnie, ale go nie publikujcie. Po prostu. >> 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... ;-) Dlaczego zatem nie piszesz LZmiennaLokalna? Może dlatego, żeby nie zaciemniać nazwy zmiennej? Tutaj pola klasy? >> 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 ;-) Ale lepiej tego nadużywać niż nie używać, bo nadużycie nie szkodzi, a brak ...w skrajnych przypadkach bardzo. >> 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ą. A mi owszem. Lepiej odcinają się od reszty nazwy i nie zaburzają jej czytania, np. fLCDSize FLCDSize aAddValue AAddValue > Poza tym, Spring4D Style Guide też nie trzyma się własnych wytycznych :P > Wiem, bo pośrednio maczałem w tym swoje brudne paluchy... Może dlatego, że kto inny zaczynał pisać Springa a kto inny go teraz prowadzi? -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: konsul41
Date: Wed, 12 Jul 2017 06:38
Date: Wed, 12 Jul 2017 06:38
28 lines
2284 bytes
2284 bytes
Na początku podłamałem się twoimi opisami mojego kodu. Taki doświadczony programista i tak mnie zjebał. Ktoś taki przecież nie może być fiutem który wymaga od innych czegoś czego absolutnie nigdy nie robi sam. Przecież nie mogło być tak, że Żona, przyjaciółka, sąsiadka nie dała mu rano i poprostu wyżył się na mnie. ALE https://groups.google.com/forum/#!searchin/pl.comp.lang.delphi/Roman$20tyczka|sort:relevance/pl.comp.lang.delphi/gcwYT21ree4/eLyKsu9pBQAJ i cytat Wołam metodę od zalogowania: var HTTPRIO: THTTPRIO; SessionToken: string; UslugaBIRzewnPubl: IUslugaBIRzewnPubl; ... i w linii UslugaBIRzewnPubl.Zaloguj(UserKey) dostaję wyjątek: Gdzie prefiksy zmiennych lokalnych, przecież na widok tego można dostać sraczki(według twoich kryteriów). Ja jestem amator więc mogę popełniać błędy i należy Mi je wytykać w sposób cywilizowany. Ty jesteś profesjonalistą (na takiego się kreujesz) więc tobie nie przystoi. Ogólnie bardzo mało publikujesz swojego kodu więc trudno się do niego odnieść. Ja przyznałem się do błędów, a ty będziesz miał odwagę?
Re: Zeos Delphi XE2
Author: Stregor
Date: Wed, 12 Jul 2017 06:53
Date: Wed, 12 Jul 2017 06:53
8 lines
1468 bytes
1468 bytes
> Ja przyznałem się do błędów, a ty będziesz miał odwagę? Nie odbieraj innym prawa do rozwoju :) Publikujesz post sprzed ponad pół roku. Kolega Roman w tym czasie mógł stać się innym człowiekiem :) -- Pozdrawiam, Stregor
Re: Zeos Delphi XE2
Author: konsul41
Date: Wed, 12 Jul 2017 07:00
Date: Wed, 12 Jul 2017 07:00
7 lines
1492 bytes
1492 bytes
W dniu 12-07-2017 o 08:53, Stregor pisze: >> Ja przyznałem się do błędów, a ty będziesz miał odwagę? > > Nie odbieraj innym prawa do rozwoju :) Publikujesz post sprzed ponad pół > roku. Kolega Roman w tym czasie mógł stać się innym człowiekiem :) > Tak to dobry komentarz do mojej wypowiedzi. ;-D
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Wed, 12 Jul 2017 08:35
Date: Wed, 12 Jul 2017 08:35
82 lines
4427 bytes
4427 bytes
On Wed, 12 Jul 2017 08:38:09 +0200, konsul41@wp.pl wrote: > Na początku podłamałem się twoimi opisami mojego kodu. Nie chodzi o podłamanie, tylko o konstruktywną krytykę, umiesz taką znieść czy będziesz na siłę szukał jak by mi tu dojebać? > Taki doświadczony programista i tak mnie zjebał. > Ktoś taki przecież nie może być fiutem który wymaga od innych czegoś > czego absolutnie nigdy nie robi sam. Przecież nie mogło być tak, że > Żona, przyjaciółka, sąsiadka nie dała mu rano i poprostu wyżył się na mnie. Masz bardzo ciekawy tok rozumowania. Gdy kiedyś byłem zielony i początkujący to po krytyce zastanawiałem się co mogę zrobić lepiej, bo chcę być lepszy w tym co robię, szukałem, eksperymentowałem, dociekałem i ciągle pytałem. Dzięki temu dziś wiem dużo więcej, choć na pewno nie wszystko. Za to Ty po krytyce zaczynasz googlować by znaleźć haka i jak tu dowalić komuś kto ośmielił się zwrócić Panu Doskonałemu uwagę. No brawo... ale daleko tak nie zajedziesz. > ALE > https://groups.google.com/forum/#!searchin/pl.comp.lang.delphi/Roman$20tyczka|sort:relevance/pl.comp.lang.delphi/gcwYT21ree4/eLyKsu9pBQAJ Wow, no po prostu Rutkowski przy Tobie to miękka fryta! Hehe :-) > i cytat > Wołam metodę od zalogowania: > > var > HTTPRIO: THTTPRIO; > SessionToken: string; > UslugaBIRzewnPubl: IUslugaBIRzewnPubl; > ... > i w linii UslugaBIRzewnPubl.Zaloguj(UserKey) dostaję wyjątek: > Gdzie prefiksy zmiennych lokalnych, przecież na widok tego można dostać > sraczki(według twoich kryteriów). Nie ma, to nie jest kod roboczy tylko mocno okrojony przykład napisany w oknie newsreadera, żeby skupić uwagę na sednie problemu. Nie mam zwyczaju wklejać całych unitów i niech sobie każdy szuka, tylko wklejam clou problemu. Teraz pytanie: czy ten kod wg Ciebie jest nieczytelny, nieprzejrzysty i bałaganiarski? ...no właśnie, i o to chodzi. A co do kodu roboczego... popytaj innych to zrozumiesz, że porządek w kodzie BARDZO POMAGA w pracy, a nie służy do szpanowania i mądrzenia się. Bez niego nie jesteś w stanie napisać dużego projektu i mieć nad nim kontrolę. > Ja jestem amator więc mogę popełniać > błędy i należy Mi je wytykać w sposób cywilizowany. Co niecywilizowanego Cię spotkało z mojej strony? Że napisałem "syfiasty kod"? Zdawało mi się, że się obracam wśród dojrzałych ludzi a nie delikatniusich przedszkolaków. Widać są i tacy tutaj. Mea culpa. > Ty jesteś profesjonalistą (na takiego się kreujesz) więc tobie nie przystoi. Konkretnie co? > Ogólnie bardzo mało publikujesz swojego kodu więc trudno się do niego > odnieść. Odnieść czy przyjebać? > Ja przyznałem się do błędów, a ty będziesz miał odwagę? No właśnie do nieczego się nie przyznajesz i brakuje Ci POKORY. Piszesz syfiasto, niedbale i badziewnie, a na uwagi reagujesz nerwami. O ile błędy w kodzie wynikające z niezrozumienia czy nieznajomości kwestii programistycznych są jak najbardziej oczywiste i zwyczajne, o tyle niedbalstwo, brak estetyki i porządku we wklejanym publicznie kodzie zasługuje na piętnowanie. Po prostu. I nie zachowuj się jak panienka, bo po nicku zgaduję, że powinieneś mieć jaja. -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: konsul41
Date: Wed, 12 Jul 2017 08:53
Date: Wed, 12 Jul 2017 08:53
36 lines
2705 bytes
2705 bytes
> Nie ma, to nie jest kod roboczy tylko mocno okrojony przykład napisany w > oknie newsreadera, Hmmm... podwójne standardy? Skąd wniosek że mój kod jest ostateczny? >> Ja przyznałem się do błędów, a ty będziesz miał odwagę? Potwierdziłem, że wszystkie twoje zarzuty są słuszne i dziękuję za nie. > No właśnie do nieczego się nie przyznajesz i brakuje Ci POKORY. Piszesz > syfiasto, niedbale i badziewnie, a na uwagi reagujesz nerwami. O ile błędy > w kodzie wynikające z niezrozumienia czy nieznajomości kwestii > programistycznych są jak najbardziej oczywiste i zwyczajne, o tyle > niedbalstwo, brak estetyki i porządku we wklejanym publicznie kodzie > zasługuje na piętnowanie. Po prostu. Przygadał Kocioł garnkowi. "Niech pierwszy rzuci kamieniem" > Teraz pytanie: czy ten kod wg Ciebie jest nieczytelny, nieprzejrzysty > i bałaganiarski? Nie oczywiście nie, według ciebie. Ale u innych może wywoływać atak "sraczki". > > I nie zachowuj się jak panienka, bo po nicku zgaduję, że powinieneś mieć > jaja. Widzę że nie wyłapałeś sarkazmu. W normalnej rozmowie między kulturalnymi ludźmi nie używa się słów powszechnie uznawanych za obraźliwe. "Bo ten burdel, który tu wklejasz co chwilę wywołuje atak sraczki. ... nawet jeśli sam lubisz tonąć w gównie." Uważasz że to nie jest obraźliwe? Jeżeli nawet nie obraźliwe to pokazuje Twoją frustracje. Nie wszyscy mają taki sam stosunek do kodu jak Ty i u innych nie wywołuje jakoś "sraczki".
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Wed, 12 Jul 2017 09:23
Date: Wed, 12 Jul 2017 09:23
27 lines
2193 bytes
2193 bytes
On Wed, 12 Jul 2017 10:53:08 +0200, konsul41@wp.pl wrote: > W normalnej rozmowie między kulturalnymi ludźmi nie używa się słów > powszechnie uznawanych za obraźliwe. > "Bo ten burdel, który tu wklejasz co chwilę wywołuje atak sraczki. > ... > nawet jeśli sam lubisz tonąć w gównie." > Uważasz że to nie jest obraźliwe? Jeżeli nawet nie obraźliwe to pokazuje > Twoją frustracje. Ok, jestem sfrustrowanym bucem i wyżyłem się na Tobie, bo mi nie dała sąsiadka rano. Przepraszam. Lepiej Ci teraz? > Nie wszyscy mają taki sam stosunek do kodu jak Ty i u > innych nie wywołuje jakoś "sraczki". Uhm.... a zastanowiłeś się czemu nie uzyskałeś rozwiązania problemu? ps. mam kilka teorii co było przyczyną i prawdopodobnie problem byłby rozwiązany, ale nie mam siły brnąć przez ten kod i o tym napisałem, inni olali temat od razu i zajęli się swoimi sprawami. Teraz przemyśl czy na pewno o takie zakończenie tego wątku Ci chodziło i czy uparte cwaniakowanie Ci się tu opłaciło. -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: konsul41
Date: Wed, 12 Jul 2017 09:32
Date: Wed, 12 Jul 2017 09:32
8 lines
1488 bytes
1488 bytes
> Ok, jestem sfrustrowanym bucem i wyżyłem się na Tobie, bo mi nie dała > sąsiadka rano. Przepraszam. Lepiej Ci teraz? Mi to lotto ale tobie współczuję. > ps. mam kilka teorii co było przyczyną i prawdopodobnie problem byłby > rozwiązany Chwalipięta.
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Wed, 12 Jul 2017 09:39
Date: Wed, 12 Jul 2017 09:39
18 lines
1743 bytes
1743 bytes
On Wed, 12 Jul 2017 11:32:37 +0200, konsul41@wp.pl wrote: >> Ok, jestem sfrustrowanym bucem i wyżyłem się na Tobie, bo mi nie dała >> sąsiadka rano. Przepraszam. Lepiej Ci teraz? > Mi to lotto ale tobie współczuję. Gdyby Ci latało to byś nie bił piany o pierdoły przez 60% wątku. >> ps. mam kilka teorii co było przyczyną i prawdopodobnie problem byłby >> rozwiązany > Chwalipięta. A mi lotto co o mnie myślisz, a problem jak miałeś tak masz i jesteś w ciemnej dupie. Gratuluję! -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: konsul41
Date: Wed, 12 Jul 2017 09:44
Date: Wed, 12 Jul 2017 09:44
5 lines
1472 bytes
1472 bytes
> A mi lotto co o mnie myślisz, a problem jak miałeś tak masz i jesteś w > ciemnej dupie. > Tu gdzie jestem jest raczej jasno ;-)
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Wed, 12 Jul 2017 09:51
Date: Wed, 12 Jul 2017 09:51
12 lines
1517 bytes
1517 bytes
On Wed, 12 Jul 2017 11:44:18 +0200, konsul41@wp.pl wrote: >> A mi lotto co o mnie myślisz, a problem jak miałeś tak masz i jesteś w >> ciemnej dupie. > > Tu gdzie jestem jest raczej jasno ;-) A są klamki? :-P -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: konsul41
Date: Wed, 12 Jul 2017 09:55
Date: Wed, 12 Jul 2017 09:55
12 lines
1781 bytes
1781 bytes
W dniu 12-07-2017 o 11:51, Roman Tyczka pisze: > On Wed, 12 Jul 2017 11:44:18 +0200, konsul41@wp.pl wrote: > >>> A mi lotto co o mnie myślisz, a problem jak miałeś tak masz i jesteś w >>> ciemnej dupie. >> >> Tu gdzie jestem jest raczej jasno ;-) > > A są klamki? :-P > Nawet okno bez krat, na ścianach nie ma gąbki i mogę wychodzić samodzielnie, a Ty? ;-D
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Wed, 12 Jul 2017 09:57
Date: Wed, 12 Jul 2017 09:57
17 lines
1743 bytes
1743 bytes
On Wed, 12 Jul 2017 11:55:04 +0200, konsul41@wp.pl wrote: >>>> A mi lotto co o mnie myślisz, a problem jak miałeś tak masz i jesteś w >>>> ciemnej dupie. >>> >>> Tu gdzie jestem jest raczej jasno ;-) >> >> A są klamki? :-P >> > Nawet okno bez krat, na ścianach nie ma gąbki i mogę wychodzić > samodzielnie, a Ty? ;-D No zobacz, ta medycyna czyni cuda :-) -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: immo
Date: Wed, 12 Jul 2017 10:07
Date: Wed, 12 Jul 2017 10:07
7 lines
1996 bytes
1996 bytes
W dniu środa, 12 lipca 2017 11:57:21 UTC+2 użytkownik Roman Tyczka napisał: Panowie, umówcie się na piwo i dajcie sobie po "pysku" jeśli tego potrzebujecie, ale oszczędźcie pozostałym tego publicznego okładania się. pozdrawiam, Przemek O.
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Wed, 12 Jul 2017 10:10
Date: Wed, 12 Jul 2017 10:10
10 lines
1751 bytes
1751 bytes
On Wed, 12 Jul 2017 03:07:49 -0700 (PDT), immo wrote: > Panowie, umówcie się na piwo i dajcie sobie po "pysku" jeśli tego potrzebujecie, ale oszczędźcie pozostałym tego publicznego okładania się. Wolisz martwą grupę i jeden post na miesiąc? Bo nie oszukujmy się, taka ona już jest. -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: immo
Date: Wed, 12 Jul 2017 10:28
Date: Wed, 12 Jul 2017 10:28
12 lines
2436 bytes
2436 bytes
W dniu środa, 12 lipca 2017 12:10:21 UTC+2 użytkownik Roman Tyczka napisał: > On Wed, 12 Jul 2017 03:07:49 -0700 (PDT), immo wrote: > > > Panowie, umówcie się na piwo i dajcie sobie po "pysku" jeśli tego potrzebujecie, ale oszczędźcie pozostałym tego publicznego okładania się. > > Wolisz martwą grupę i jeden post na miesiąc? > Bo nie oszukujmy się, taka ona już jest. No niestety - nowych programistów brak - a ja już raczej nie będę zadawał pytań na grupie - bo i tak nikt na nie nie odpowie :P pozdrawiam, Przemek O.
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Wed, 12 Jul 2017 10:50
Date: Wed, 12 Jul 2017 10:50
20 lines
2122 bytes
2122 bytes
On Wed, 12 Jul 2017 03:28:26 -0700 (PDT), immo wrote: >>> Panowie, umówcie się na piwo i dajcie sobie po "pysku" jeśli tego potrzebujecie, ale oszczędźcie pozostałym tego publicznego okładania się. >> >> Wolisz martwą grupę i jeden post na miesiąc? >> Bo nie oszukujmy się, taka ona już jest. > > No niestety - nowych programistów brak - Otóż. > a ja już raczej nie będę zadawał pytań na grupie - bo i tak nikt na nie nie odpowie :P Heh, dobra prowokacja :-) Jeśli pytania będą stricte deweloperskie i dotyczą Delphi... to jest szansa :-) -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: wloochacz
Date: Wed, 12 Jul 2017 11:13
Date: Wed, 12 Jul 2017 11:13
134 lines
6692 bytes
6692 bytes
W dniu 2017-07-11 o 23:43, Roman Tyczka pisze: > On Tue, 11 Jul 2017 17:28:54 +0200, wloochacz 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 ;-) > > Może lubisz taki bajzel w kodzie, ja wręcz przeciwnie. Zatem, gdy > przychodzi mi go czytać to mnie trafia. > >>> Ok, kilka _powierzchownych_ uwag. >> Wiesz, że dość mocno się czepiasz? >> Po prostu. > > W którym miejscu? Odpowiem Ci twoim sposobem - w każdym. I dodam coś więcej; chodzi o to jak o tym piszesz, a nie o czym piszesz. Jesteś niepotrzebnie napastliwy, arogancki i wychodzi na to, że pozjadałeś wszystkie rozumy. Też tak miałem, ale na dłuższą metę, przynosi to więcej szkody niż pożytku. Dla Ciebie i innych, dla wszystkich. Ale oczywiście zrobisz co zechcesz :) >>> 1. Spacje wokół przypisania zmiennych, Zmienna := Wartość; >> Ctrl+D >> >>> 2. Spacje po przecinkach, dwukropkach itd. >> Ctrl+D > > Po co podajesz mi ten skrót? Ponieważ da się to zrobić przy pomocy automatycznego formatowania kodu, dostępnego domyślnie właśnie przez CTRL+D. > Oświecę Cię, znam go. Oświecę Cię drugi raz: > wątek dotyczy kodu jaki wkleił OP, a ja odpisuje mu na pytanie dlaczego ten > kod uważamy za syfiarsko napisany. W czym jeszcze mogę Cię oświecić? Hmm... naprawdę mam trudność w przyznaniu się w czym jeszcze mógłbyś mnie oświecić. Aczkolwiek jak tylko coś takiego się znajdzie, od razu poproszę o oświecenie. A za aktualne oświecenie serdecznie dziękuję. >>> 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. > > No to bawcie się w tym bagnie, ale go nie publikujcie. Po prostu. Jesteś jakiś fanatyk czy co? Na przykład dla mnie bagnem, syfem, kiła i mogiłą może być oznaczenia małą literą prefiksu argumentu funkcji. Tylko ja, w odróżnieniu od Ciebie, uważam że to jest czysto subiektywna opinia i szkoda prądu na jej argumentowanie. >>> 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... ;-) > > Dlaczego zatem nie piszesz LZmiennaLokalna? Bo jestem leniwy i nie chce mi się wciskać Shifta. A drugie primo, ponieważ prefiksy z małej litery mam zarezerwowane dla zmiennych lokalnych. > Może dlatego, żeby nie > zaciemniać nazwy zmiennej? Tutaj pola klasy? Jak widzisz, pudło. A pola klasy dla mnie to w 99% przypadków są to prywatne zmienne dla właściwości. A że bardzo intensywnie korzystam z MMXa, to robi mi się to samo, tak jak skonfigurowałem. A skonfigurowałem, że mają się zaczynać z prefiksem F - z wielkiej litery. > >>> 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 ;-) > > Ale lepiej tego nadużywać niż nie używać, bo nadużycie nie szkodzi, a brak > ...w skrajnych przypadkach bardzo. Zgoda. Jednakże zawsze stoję na stanowisku, że ZAWSZE trzeba wiedzieć i rozumieć co się robi i jak to działa. Nie wytłumaczyłeś dlaczego należy używać const, tylko zachowałeś się jak fachowiec-hydraulik - niby coś wiesz, ale nie powiesz, tylko opierdolisz innego fachowca, że zjebał i jest na pewno źle. Ale dlaczego źle i co to da in plus, tego hydraulik już nie powie, bo uważa, że wtedy każdy może zostać hydraulikiem. I cala magia i prestiż znika... Osobiście tego typu zachowanie uważam za wyjątkowo słabe... >>> 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ą. > > A mi owszem. Lepiej odcinają się od reszty nazwy i nie zaburzają jej > czytania, np. > > fLCDSize > > FLCDSize > > aAddValue > > AAddValue Jak pisałem, to subiektywna opinia i szkoda prądu. Dodam coś jeszcze - u mnie w kodzie praktycznie nie ma odwołania do zmiennych prywatnych, które utrzymują stan właściwości (bo w 99% przypadków używam ich do właściwości). Zatem ich występowanie w kodzie jest w dwóch miejscach; deklaracja i ciało gettera danej właściwości. A skoro nie mieszam używania zmiennej prywatnej klasy, ze zmienną lokalną metody, to nie mam takich potrzeb. Poza tym, mam do tego inne prefiksy... Poza tym, dla mnie jest to wystarczająco widoczne i nie zaburza czytania: http://wklej.org/hash/5c9e2e1dc7c/ >> Poza tym, Spring4D Style Guide też nie trzyma się własnych wytycznych :P >> Wiem, bo pośrednio maczałem w tym swoje brudne paluchy... > > Może dlatego, że kto inny zaczynał pisać Springa a kto inny go teraz > prowadzi? I właśnie dlatego tym bardziej powinni stosować się do własnych zasad opisanych w Style Guide. Takie dokumenty tworzy się głównie dla zespołów, a nie dla jednoosobowych guru. A więc jeśli takie zasady istnieją, to powinni się do nich stosować, bo sami wprowadzają, jak to określasz, syf w kodzie. -- wloochacz
Re: Zeos Delphi XE2
Author: immo
Date: Wed, 12 Jul 2017 13:04
Date: Wed, 12 Jul 2017 13:04
13 lines
1982 bytes
1982 bytes
W dniu środa, 12 lipca 2017 13:13:39 UTC+2 użytkownik wloochacz napisał: > > Dlaczego zatem nie piszesz LZmiennaLokalna? > Bo jestem leniwy i nie chce mi się wciskać Shifta. > A drugie primo, ponieważ prefiksy z małej litery mam zarezerwowane dla > zmiennych lokalnych. Dla zmiennych lokalnych jest prefiks '_' !!! Jedyny słuszny bo JA takiego używam! Kurcze! No! :P pozdrawiam, Przemek O. PS. Nie mogłem się powstrzymać...
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Wed, 12 Jul 2017 13:27
Date: Wed, 12 Jul 2017 13:27
140 lines
6559 bytes
6559 bytes
On Wed, 12 Jul 2017 13:13:34 +0200, wloochacz wrote: >>> Wiesz, że dość mocno się czepiasz? >>> Po prostu. >> >> W którym miejscu? > Odpowiem Ci twoim sposobem - w każdym. > I dodam coś więcej; chodzi o to jak o tym piszesz, a nie o czym piszesz. > Jesteś niepotrzebnie napastliwy, arogancki i wychodzi na to, że > pozjadałeś wszystkie rozumy. No popatrzcie kto to mówi, największy grupowy pyskacz od zarania tej grupy :-) Boisz się, że stracisz pozycję? :-) Dobre! +1 > Też tak miałem, ale na dłuższą metę, przynosi to więcej szkody niż > pożytku. Dla Ciebie i innych, dla wszystkich. > Ale oczywiście zrobisz co zechcesz :) Ok, będę się od Ciebie uczył łagodności, empatii, kultury i savoir vivru - obiecuję! :-) >>>> 1. Spacje wokół przypisania zmiennych, Zmienna := Wartość; >>> Ctrl+D >>> >>>> 2. Spacje po przecinkach, dwukropkach itd. >>> Ctrl+D >> >> Po co podajesz mi ten skrót? > Ponieważ da się to zrobić przy pomocy automatycznego formatowania kodu, > dostępnego domyślnie właśnie przez CTRL+D. Ale nieś ten kaganek oświaty tam gdzie jest mrok (czyt. konsul), a nie do mnie. >> Oświecę Cię, znam go. Oświecę Cię drugi raz: >> wątek dotyczy kodu jaki wkleił OP, a ja odpisuje mu na pytanie dlaczego ten >> kod uważamy za syfiarsko napisany. W czym jeszcze mogę Cię oświecić? > Hmm... naprawdę mam trudność w przyznaniu się w czym jeszcze mógłbyś > mnie oświecić. Aczkolwiek jak tylko coś takiego się znajdzie, od razu > poproszę o oświecenie. > A za aktualne oświecenie serdecznie dziękuję. No problem ;-) >>>> 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. >> >> No to bawcie się w tym bagnie, ale go nie publikujcie. Po prostu. > Jesteś jakiś fanatyk czy co? Nie, jedynie wysoce sobie cenię czytelność kodu. > Na przykład dla mnie bagnem, syfem, kiła i mogiłą może być oznaczenia > małą literą prefiksu argumentu funkcji. Nieważne tak naprawdę czy małą czy dużą, ważne żeby było to odróżnione. Tak jak consty, fieldy itd. > Tylko ja, w odróżnieniu od Ciebie, uważam że to jest czysto subiektywna > opinia i szkoda prądu na jej argumentowanie. Popatrz jak pięknie się różnimy. >>>> 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... ;-) >> >> Dlaczego zatem nie piszesz LZmiennaLokalna? > Bo jestem leniwy i nie chce mi się wciskać Shifta. > A drugie primo, ponieważ prefiksy z małej litery mam zarezerwowane dla > zmiennych lokalnych. Jest to jakaś konwencja i dzięki temu zmienia drastycznie sytuację w stisunku do braku konwencji, a szczególnie braku konsekwencji czyli pisania za każdym razem inaczej, a to OP właśnie nagminnie czyni. >>>> 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 ;-) >> >> Ale lepiej tego nadużywać niż nie używać, bo nadużycie nie szkodzi, a brak >> ...w skrajnych przypadkach bardzo. > Zgoda. > Jednakże zawsze stoję na stanowisku, że ZAWSZE trzeba wiedzieć i > rozumieć co się robi i jak to działa. > Nie wytłumaczyłeś dlaczego należy używać const, tylko zachowałeś się jak > fachowiec-hydraulik - niby coś wiesz, ale nie powiesz, tylko opierdolisz > innego fachowca, że zjebał i jest na pewno źle. > Ale dlaczego źle i co to da in plus, tego hydraulik już nie powie, bo > uważa, że wtedy każdy może zostać hydraulikiem. I cala magia i prestiż > znika... > > Osobiście tego typu zachowanie uważam za wyjątkowo słabe... Ten wątek tego nie dotyczył. Zwróciłem uwagę, że to bardzo ważne i poleciłem doczytać szczegóły, wg mnie takie zachowanie jest zupełnie na miejscu i zupełnie wystarczające dla osoby zainteresowanej tematem. A jeśli ktoś ma to gdzieś to nawet wykład będący offtopem do niego nie dotrze. >> A mi owszem. Lepiej odcinają się od reszty nazwy i nie zaburzają jej >> czytania, np. >> >> fLCDSize >> >> FLCDSize >> >> aAddValue >> >> AAddValue > Jak pisałem, to subiektywna opinia i szkoda prądu. > > Dodam coś jeszcze - u mnie w kodzie praktycznie nie ma odwołania do > zmiennych prywatnych, które utrzymują stan właściwości (bo w 99% > przypadków używam ich do właściwości). > Zatem ich występowanie w kodzie jest w dwóch miejscach; deklaracja i > ciało gettera danej właściwości. > A skoro nie mieszam używania zmiennej prywatnej klasy, ze zmienną > lokalną metody, to nie mam takich potrzeb. A co z lazy getterami? >> Może dlatego, że kto inny zaczynał pisać Springa a kto inny go teraz >> prowadzi? > I właśnie dlatego tym bardziej powinni stosować się do własnych zasad > opisanych w Style Guide. Takie dokumenty tworzy się głównie dla > zespołów, a nie dla jednoosobowych guru. > A więc jeśli takie zasady istnieją, to powinni się do nich stosować, bo > sami wprowadzają, jak to określasz, syf w kodzie. Racja. -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: wloochacz
Date: Wed, 12 Jul 2017 14:18
Date: Wed, 12 Jul 2017 14:18
22 lines
2140 bytes
2140 bytes
W dniu 2017-07-12 o 15:04, immo pisze: > W dniu środa, 12 lipca 2017 13:13:39 UTC+2 użytkownik wloochacz napisał: > >>> Dlaczego zatem nie piszesz LZmiennaLokalna? >> Bo jestem leniwy i nie chce mi się wciskać Shifta. >> A drugie primo, ponieważ prefiksy z małej litery mam zarezerwowane dla >> zmiennych lokalnych. > > Dla zmiennych lokalnych jest prefiks '_' !!! Jedyny słuszny bo JA takiego używam! Kurcze! No! :P Ci powiem, że też tak robiłem. Ale zrezygnowałem, kod wydawała mi się jakiś taki "postrzępiony", a to nie służyło mojej małej prywatnej nerwicy natręctw :P > pozdrawiam, > Przemek O. > > PS. Nie mogłem się powstrzymać... I bardzo dobrze, bo dokładnie to się do tego sprowadza :) -- wloochacz
Re: Zeos Delphi XE2
Author: wloochacz
Date: Wed, 12 Jul 2017 14:42
Date: Wed, 12 Jul 2017 14:42
185 lines
9073 bytes
9073 bytes
W dniu 2017-07-12 o 15:27, Roman Tyczka pisze: > On Wed, 12 Jul 2017 13:13:34 +0200, wloochacz wrote: > >>>> Wiesz, że dość mocno się czepiasz? >>>> Po prostu. >>> >>> W którym miejscu? >> Odpowiem Ci twoim sposobem - w każdym. >> I dodam coś więcej; chodzi o to jak o tym piszesz, a nie o czym piszesz. >> Jesteś niepotrzebnie napastliwy, arogancki i wychodzi na to, że >> pozjadałeś wszystkie rozumy. > > No popatrzcie kto to mówi, największy grupowy pyskacz od zarania tej grupy > :-) Boisz się, że stracisz pozycję? :-) Ja naprawdę niczego nie muszę, co (IMHO) implikuje, że o takie sprawy się nie obawiam. A tak naprawdę, mam to głęboko właśnie tam... > Dobre! +1 Cieszę się. >> Też tak miałem, ale na dłuższą metę, przynosi to więcej szkody niż >> pożytku. Dla Ciebie i innych, dla wszystkich. >> Ale oczywiście zrobisz co zechcesz :) > > Ok, będę się od Ciebie uczył łagodności, empatii, kultury i savoir vivru - > obiecuję! :-) > >>>>> 1. Spacje wokół przypisania zmiennych, Zmienna := Wartość; >>>> Ctrl+D >>>> >>>>> 2. Spacje po przecinkach, dwukropkach itd. >>>> Ctrl+D >>> >>> Po co podajesz mi ten skrót? >> Ponieważ da się to zrobić przy pomocy automatycznego formatowania kodu, >> dostępnego domyślnie właśnie przez CTRL+D. > > Ale nieś ten kaganek oświaty tam gdzie jest mrok (czyt. konsul), a nie do > mnie. Dobrze, inaczej - jak dla sześciolatka. To Ty zacząłeś nieść ów kaganek, a ja tylko nieśmiało zwracam uwagę, że robisz to w sposób niepełny i czasem styl Twoich wypowiedzi jest nieadekwatny. Chcesz być pieniacz (jak ja :P), to bardzo proszę. Chcesz popyskować z kimś o czymś, proszę bardzo. Ale siebie Ci nie polecam do takich zabaw ;-) >>> Oświecę Cię, znam go. Oświecę Cię drugi raz: >>> wątek dotyczy kodu jaki wkleił OP, a ja odpisuje mu na pytanie dlaczego ten >>> kod uważamy za syfiarsko napisany. W czym jeszcze mogę Cię oświecić? >> Hmm... naprawdę mam trudność w przyznaniu się w czym jeszcze mógłbyś >> mnie oświecić. Aczkolwiek jak tylko coś takiego się znajdzie, od razu >> poproszę o oświecenie. >> A za aktualne oświecenie serdecznie dziękuję. > > No problem ;-) > >>>>> 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. >>> >>> No to bawcie się w tym bagnie, ale go nie publikujcie. Po prostu. >> Jesteś jakiś fanatyk czy co? > > Nie, jedynie wysoce sobie cenię czytelność kodu. To fajnie, jednakże jednocześnie, co wielokrotnie udowodniłeś w wątku, uważasz, że Twoje propozycje są naj. Otóż wystaw sobie, że nie dla wszystkich. I Ci nie wszyscy, mają własne argumenty. Oczywiście możesz się z nimi nie zgadzać, ale kontrargumentując to w sposób "No to bawcie się w tym bagnie, ale go nie publikujcie" to sam widzisz, że coś tu się nie klei. >> Na przykład dla mnie bagnem, syfem, kiła i mogiłą może być oznaczenia >> małą literą prefiksu argumentu funkcji. > > Nieważne tak naprawdę czy małą czy dużą, ważne żeby było to odróżnione. Tak > jak consty, fieldy itd. > >> Tylko ja, w odróżnieniu od Ciebie, uważam że to jest czysto subiektywna >> opinia i szkoda prądu na jej argumentowanie. > > Popatrz jak pięknie się różnimy. > >>>>> 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... ;-) >>> >>> Dlaczego zatem nie piszesz LZmiennaLokalna? >> Bo jestem leniwy i nie chce mi się wciskać Shifta. >> A drugie primo, ponieważ prefiksy z małej litery mam zarezerwowane dla >> zmiennych lokalnych. > > Jest to jakaś konwencja i dzięki temu zmienia drastycznie sytuację w > stisunku do braku konwencji, a szczególnie braku konsekwencji czyli pisania > za każdym razem inaczej, a to OP właśnie nagminnie czyni. To oczywiste, że konwencja jest szalenie istotna. Ale aby była respektowana, musi być prosta, przejrzysta, jednoznaczna i OPISANA. Inaczej, to tylko widzimisię kogoś tam... Co do konwencji, to mam lekkiego fioła na jej punkcie. U mnie konwencja jest wszędzie; w formatowaniu kodu, nazewnictwie w kodzie (każdym - SQL i baza danych też ma pewną konwencję), w zachowaniu pewnych obiektów (ponieważ _convention over configuration_, ale bez przeginania), itd., itp. Czy mam własny Style Guide? Pewnie, że mam. Właśnie na jego podstawie powstał ten ze Spring4D. >>>>> 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 ;-) >>> >>> Ale lepiej tego nadużywać niż nie używać, bo nadużycie nie szkodzi, a brak >>> ...w skrajnych przypadkach bardzo. >> Zgoda. >> Jednakże zawsze stoję na stanowisku, że ZAWSZE trzeba wiedzieć i >> rozumieć co się robi i jak to działa. >> Nie wytłumaczyłeś dlaczego należy używać const, tylko zachowałeś się jak >> fachowiec-hydraulik - niby coś wiesz, ale nie powiesz, tylko opierdolisz >> innego fachowca, że zjebał i jest na pewno źle. >> Ale dlaczego źle i co to da in plus, tego hydraulik już nie powie, bo >> uważa, że wtedy każdy może zostać hydraulikiem. I cala magia i prestiż >> znika... >> >> Osobiście tego typu zachowanie uważam za wyjątkowo słabe... > > Ten wątek tego nie dotyczył. Wątek istotnie tego nie dotyczył, ale Twoje zachowanie tak właśnie widzę. > Zwróciłem uwagę, że to bardzo ważne i Prawda. > poleciłem doczytać szczegóły, Gdzie ten biedny non-pro ma je doczytać? Nie podałeś żadnego źródła. > wg mnie takie zachowanie jest zupełnie na > miejscu i zupełnie wystarczające dla osoby zainteresowanej tematem. > A jeśli ktoś ma to gdzieś to nawet wykład będący offtopem do niego nie dotrze. Powtarzam; nie chodzi o Twoje intencje, tylko o sposób w jaki je przekazujesz. Atakujesz, negujesz i nie dajesz prawie nic konkretnego w zamian. >>> A mi owszem. Lepiej odcinają się od reszty nazwy i nie zaburzają jej >>> czytania, np. >>> >>> fLCDSize >>> >>> FLCDSize >>> >>> aAddValue >>> >>> AAddValue >> Jak pisałem, to subiektywna opinia i szkoda prądu. >> >> Dodam coś jeszcze - u mnie w kodzie praktycznie nie ma odwołania do >> zmiennych prywatnych, które utrzymują stan właściwości (bo w 99% >> przypadków używam ich do właściwości). >> Zatem ich występowanie w kodzie jest w dwóch miejscach; deklaracja i >> ciało gettera danej właściwości. >> A skoro nie mieszam używania zmiennej prywatnej klasy, ze zmienną >> lokalną metody, to nie mam takich potrzeb. > > A co z lazy getterami? Parę linii powyżej napisałem o dwóch miejscach; deklaracja i ciało gettera danej właściwości - właśnie lazy getter miałem na myśli. >>> Może dlatego, że kto inny zaczynał pisać Springa a kto inny go teraz >>> prowadzi? >> I właśnie dlatego tym bardziej powinni stosować się do własnych zasad >> opisanych w Style Guide. Takie dokumenty tworzy się głównie dla >> zespołów, a nie dla jednoosobowych guru. >> A więc jeśli takie zasady istnieją, to powinni się do nich stosować, bo >> sami wprowadzają, jak to określasz, syf w kodzie. > > Racja. > -- wloochacz
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Thu, 13 Jul 2017 09:38
Date: Thu, 13 Jul 2017 09:38
25 lines
1903 bytes
1903 bytes
On Wed, 12 Jul 2017 16:42:03 +0200, wloochacz wrote: >> wg mnie takie zachowanie jest zupełnie na >> miejscu i zupełnie wystarczające dla osoby zainteresowanej tematem. >> A jeśli ktoś ma to gdzieś to nawet wykład będący offtopem do niego nie dotrze. > Powtarzam; nie chodzi o Twoje intencje, tylko o sposób w jaki je > przekazujesz. Zacytuję Ci ....Ciebie: "> Poradziłem sobie /ciach/ IMO gówno sobie poradziłeś." To na temat stylu i sposobu przekazywania ;-) > Atakujesz, negujesz i nie dajesz prawie nic konkretnego w zamian. Nic nie daję? Hmm... to o czym był mój post z propozycją zmiany stylu kodowania? -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: wloochacz
Date: Thu, 13 Jul 2017 16:09
Date: Thu, 13 Jul 2017 16:09
34 lines
2612 bytes
2612 bytes
W dniu 2017-07-13 o 11:38, Roman Tyczka pisze: > On Wed, 12 Jul 2017 16:42:03 +0200, wloochacz wrote: > >>> wg mnie takie zachowanie jest zupełnie na >>> miejscu i zupełnie wystarczające dla osoby zainteresowanej tematem. >>> A jeśli ktoś ma to gdzieś to nawet wykład będący offtopem do niego nie dotrze. >> Powtarzam; nie chodzi o Twoje intencje, tylko o sposób w jaki je >> przekazujesz. > > Zacytuję Ci ....Ciebie: > > "> Poradziłem sobie > > /ciach/ > IMO gówno sobie poradziłeś." > > To na temat stylu i sposobu przekazywania ;-) To była moja własna subiektywna opinia na temat poradzenia sobie z konkretnym problemem. Potem piszę, dlaczego tak *IMO* uważam. >> Atakujesz, negujesz i nie dajesz prawie nic konkretnego w zamian. > > Nic nie daję? Hmm... to o czym był mój post z propozycją zmiany stylu > kodowania? Ten post o sraczce, czy to późniejsze ciut bardziej konkretne? Tak czy owak, tak dokładnie uważam - brakuje tam konkretów. Napisałem też o tym co uważam, że powinno być, aby było konkretnie. Bo to, że coś powinno być tak czy siak, to fajnie. Ale jeszcze DLACZEGO tak miałoby być? -- wloochacz
Re: Zeos Delphi XE2
Author: J-23
Date: Thu, 13 Jul 2017 23:19
Date: Thu, 13 Jul 2017 23:19
79 lines
5885 bytes
5885 bytes
W dniu 12.07.2017 o 12:50, Roman Tyczka pisze: > On Wed, 12 Jul 2017 03:28:26 -0700 (PDT), immo wrote: > >> a ja już raczej nie będę zadawał pytań na grupie - bo i tak nikt na nie nie odpowie :P > > Heh, dobra prowokacja :-) > Jeśli pytania będą stricte deweloperskie i dotyczą Delphi... to jest szansa > :-) > No właśnie stricte deweloperskie a nie syf. Nie róbcie Panowie drugiego syfu jak to uczyniono na pl.comp.programming tylko po to by był ruch na grupie bo to jest totalnie pozbawione sensu i powoduje bardzo niski procent wartościowej informacji. Sam już nie wiele programuje w Delphi raczej jestem bardziej obserwatorem tego co się z tym bądź co bądź fajnym środowiskiem dzieje. Swoją przygodę z Delphi zakończyłem bodajże na wersji 2005/2006 nie pamiętam dokładnie. Teraz jeśli już coś robię w Pascalu to na Lazarusie Co do kodu Pana Konsula - nie jest on idealny ale nie jest też taki zły. Ale napewno Pan Roman Tyczka przesadził w krytyce. Jeżeli chodzi o mnie to mi najbardziej przeszkadza mieszanie nazw tworząc je z polskich i angielskich słówek. Konwencja nazewnictwa powinna być w jednym języku - Zazwyczaj ja osobiście stosuje nazewnictwo z języka angielskiego - powód jest prosty czasem potrzebuje pomocy i nie wiem gdzie umieszczę fragment kodu czy na polskojęzycznym forum czy nie. Język angielski jest jednak powszechny jeśli chodzi o tę branże i nawet jeśli będzie to forum obcojęzyczne to jest większa skala ludzi potrafiąca a przynajmniej stara się pomóc Co do reszty zasada jest jedna ustalenie na początku projektu zasad nazewnictwa poszczególnych elementów i tego się trzymanie przez cały projekt Co do Kodu i słów Pana Romana Tyczki i jego komentarza - kodu Pana Konsula Sam nie publikował lepszego kodu a wytknął mu to sam autor wątku po czy on stwierdził że jest to wersja robocza. Jeśli nawet to raz nie napisał autor wątku że jest to jego wersja finalna kodu. Argument Pana Tyczki ogólnie jest bezsensu że jego kod to wersja robocza bo jak słusznie zauważył autor wątku nie ma on za wiele wspólnego z tymi argumentami które zostały poruszone przez Pana Romana Tyczkę Swoją drogą poprawiać ten kod na wersję finalną trzymając się zasad podanych to jest zabawa w kotka i myszkę, bo równa się praktycznie przepisanie go od zera :) Musiałbym się ostro nudzić by pisać tak odmienny od finalnego kod testowy - ale to taka moja opinia :) Pan Roman Tyczka ogólnie "lubi się pienić" (moje zdanie jest podyktowane jego postami z tej grupy.) Dopowiadam aby nie było że wyskoczy zaraz z pytaniem typu "znasz mnie osobiście, że tak mnie oceniasz?" jak to ma robić w zwyczaju - Można prześledzić Archiwum Grupy by zobaczyć go w akcji Panie Romanie odniosę się wprost do Pana. Przeczytałem sobie cały ten wątek również tę odnogę gdzie prowadził Pan z rozmowę z Panem Włochaczem i powiem tyle Pan mu nawet do pięt nie dorasta z wiedzą. Owszem jest krzykaczem ale z jego postów oprócz krytyki płynie też kupę merytorycznej wiedzy (Zgoda moża wyciągnąć z jego postów że jest to człowiek który zjadł rozum ale Pan jest przy nim malutki jeśli chodzi o poziom wiedzy - wręcz robaczek) Kiedyś bardzo merytorycznie pisał na tej grupie już nie żyjący Piotr Hosowicz jego wywody były nie raz aż przy długie ale płynęła z nich garść konkretnych informacji Ja od Pana Panie Romanie oczekiwałbym (myślę że reszta grupy też) garści solidnych argumentów w obronie tego czym Pan tak zjechał Pana Konsula Tylko nie w formie "pyskówki" a posta w którym pokazuje jaki powinien być prawidłowy kod - myślę że ma Pan go dużo u siebie więc jakiś przykładowy moduł niech Pan wezie ze swojego finalnego kodu i go zaprezentuje. Może go Pan opublikować na Github, Dysku Google lub w ostateczności służe nawet własnym FTP (Wcześniej proszę o kod na maila jeśli zdecyduje się na mój FTP) tak by mogli wszyscy zobaczyć jak wygląda kod od którego nie ma się "sraczki" Pozdrawiam J-23
Re: Zeos Delphi XE2
Author: marfi
Date: Fri, 14 Jul 2017 16:22
Date: Fri, 14 Jul 2017 16:22
14 lines
2622 bytes
2622 bytes
Użytkownik "J-23" <Baczeklu@poczta.fm> napisał w wiadomości news:59680016$0$15198$65785112@news.neostrada.pl... > > Może go Pan opublikować na Github, Dysku Google lub w ostateczności służe > nawet własnym FTP (Wcześniej proszę o kod na maila jeśli zdecyduje się na > mój FTP) tak by mogli wszyscy zobaczyć jak wygląda kod od którego nie ma > się "sraczki" > Co prawda swoją przygodę z Delphi skończyłem na D7 (kod wiecznie żywy) ale i tak chetnie zapoznam się z kodem od którego nie ma się sraczki - popieram. -- marfi
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Sat, 15 Jul 2017 07:11
Date: Sat, 15 Jul 2017 07:11
111 lines
6940 bytes
6940 bytes
On Fri, 14 Jul 2017 01:19:50 +0200, J-23 wrote: >>> a ja już raczej nie będę zadawał pytań na grupie - bo i tak nikt na nie nie odpowie :P >> >> Heh, dobra prowokacja :-) >> Jeśli pytania będą stricte deweloperskie i dotyczą Delphi... to jest szansa >> :-) > No właśnie stricte deweloperskie a nie syf. Nie róbcie Panowie drugiego > syfu jak to uczyniono na pl.comp.programming tylko po to by był ruch na > grupie bo to jest totalnie pozbawione sensu i powoduje bardzo niski > procent wartościowej informacji. Sam już nie wiele programuje w Delphi > raczej jestem bardziej obserwatorem tego co się z tym bądź co bądź > fajnym środowiskiem dzieje. Pan policjant znów się ocknął! > Swoją przygodę z Delphi zakończyłem bodajże na wersji 2005/2006 nie > pamiętam dokładnie. Teraz jeśli już coś robię w Pascalu to na Lazarusie ...przygodę skończyłem, ale przyjść i moralizatorkę poćwiczyć nie odpuszczę. Brawo Ty. > Co do kodu Pana Konsula - nie jest on idealny ale nie jest też taki zły. > Ale napewno Pan Roman Tyczka przesadził w krytyce. "Napewno" to umrzemy. Reszta to tylko słowa, słowa, słowa... > Co do Kodu i słów Pana Romana Tyczki i jego komentarza - kodu Pana Konsula > Sam nie publikował lepszego kodu a wytknął mu to sam autor wątku po czy Kod się pisze, żeby pracował, a nie do publikacji, zatem zarzut, że nie publikuję jest z ucha. > on stwierdził że jest to wersja robocza. Jeśli nawet to raz nie napisał > autor wątku że jest to jego wersja finalna kodu. Argument Pana Tyczki > ogólnie jest bezsensu że jego kod to wersja robocza bo jak słusznie > zauważył autor wątku nie ma on za wiele wspólnego z tymi argumentami > które zostały poruszone przez Pana Romana Tyczkę Nie napisałem, że to wersja robocza tylko przykład na potrzeby pokazania problemu, wersja robocza była dużo większa i skomplikowana. Gdy się publikuje publicznie kod to warto się trzymać pewnych zasad, na SO nazwanych MCVE: https://stackoverflow.com/help/mcve > Swoją drogą poprawiać ten kod na wersję finalną trzymając się zasad > podanych to jest zabawa w kotka i myszkę, bo równa się praktycznie > przepisanie go od zera :) Musiałbym się ostro nudzić by pisać tak > odmienny od finalnego kod testowy - ale to taka moja opinia :) Co poradzę, że jesteś panie policjancie leniwy i nie chcesz szanować czasu osoby, która potencjalnie może Ci pomóc w znalezieniu problemu? > Pan Roman Tyczka ogólnie "lubi się pienić" (moje zdanie jest podyktowane > jego postami z tej grupy.) Dopowiadam aby nie było że wyskoczy zaraz z > pytaniem typu "znasz mnie osobiście, że tak mnie oceniasz?" jak to ma > robić w zwyczaju - Można prześledzić Archiwum Grupy by zobaczyć go w akcji Z takim pytaniem zaraz wyskoczy i tak, ale o tym niżej. > Panie Romanie odniosę się wprost do Pana. Przeczytałem sobie cały ten > wątek również tę odnogę gdzie prowadził Pan z rozmowę z Panem Włochaczem > i powiem tyle Pan mu nawet do pięt nie dorasta z wiedzą. Owszem jest > krzykaczem ale z jego postów oprócz krytyki płynie też kupę > merytorycznej wiedzy (Zgoda moża wyciągnąć z jego postów że jest to > człowiek który zjadł rozum ale Pan jest przy nim malutki jeśli chodzi o > poziom wiedzy - wręcz robaczek) Uuu... wjechał pan policjant wlochaczowi od tyłu chyba aż do gardła. Masz panie policaju dokładnie zerowe pojęcie o moim poziomie wiedzy, jak sam zauważyłeś nie znasz mnie i tylko znalazłeś w sieci kilka postów, w których nie było niczego co mogłoby Ci dać jakiekolwiek, choćby blade pojęcie o moim poziomie. Ale oczywiście udając miłego i grzecznego, że aż fałszywość się wylewa, oceniasz mój poziom wiedzy jako nikły. Czym się różni panie policjancie Twój post od mojego, w którym bezpośrednio schlastałem kod OP? Powiem Ci... ja bazowałem na tym co wkleił OP i nazwałem rzeczy po imieniu, a Ty bazujesz na ...widzimisiu swojego wewnętrznego policmajstra i chęci podlizania temu i owemu oraz stosujesz obłudnie miły ton jednocześnie insynuując bzdury. Taki masz policjancki stajl... Czy masz jakiś argument rzeczowy na temat mojej wiedzy? Słucham... > Ja od Pana Panie Romanie oczekiwałbym (myślę że reszta grupy też) garści > solidnych argumentów w obronie tego czym Pan tak zjechał Pana Konsula Nie rozumiem dlaczego to co napisałem w wypunktowanej liście jest niezrozumiałe, choć pisane prostym językiem, bez trudnych słów... może powinienem stosować mniej zdań złożonych? > Tylko nie w formie "pyskówki" a posta w którym pokazuje jaki powinien > być prawidłowy kod - myślę że ma Pan go dużo u siebie więc jakiś > przykładowy moduł niech Pan wezie ze swojego finalnego kodu i go > zaprezentuje. https://pastebin.com/tK4b8ZiJ https://pastebin.com/EQUhVFxZ https://pastebin.com/uG55ASyW > Może go Pan opublikować na Github, Dysku Google lub w ostateczności > służe nawet własnym FTP (Wcześniej proszę o kod na maila jeśli zdecyduje > się na mój FTP) tak by mogli wszyscy zobaczyć jak wygląda kod od którego > nie ma się "sraczki" I co dalej policjancie? Dostanę mandat czy na pouczeniu się skończy? -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Sat, 15 Jul 2017 07:21
Date: Sat, 15 Jul 2017 07:21
37 lines
2678 bytes
2678 bytes
On Thu, 13 Jul 2017 18:09:26 +0200, wloochacz wrote: >> Zacytuję Ci ....Ciebie: >> >> "> Poradziłem sobie >> >> /ciach/ >> IMO gówno sobie poradziłeś." >> >> To na temat stylu i sposobu przekazywania ;-) > To była moja własna subiektywna opinia na temat poradzenia sobie z > konkretnym problemem. > Potem piszę, dlaczego tak *IMO* uważam. Piszesz dlaczego tak uważasz, tak ja ja napisałem dlaczego uważam kod OP za syfiarsko nieczytelny. Mi zarzucasz, że nie napisałem dlaczego tak trzeba pisać, a sam także nic już nie dodałeś. Gdzie tu konsekwsencja? A może chodzi o czepialstwo? >>> Atakujesz, negujesz i nie dajesz prawie nic konkretnego w zamian. >> >> Nic nie daję? Hmm... to o czym był mój post z propozycją zmiany stylu >> kodowania? > Ten post o sraczce, czy to późniejsze ciut bardziej konkretne? > > Tak czy owak, tak dokładnie uważam - brakuje tam konkretów. > Napisałem też o tym co uważam, że powinno być, aby było konkretnie. > Bo to, że coś powinno być tak czy siak, to fajnie. Ale jeszcze DLACZEGO > tak miałoby być? Uwagi JAK PISAĆ miały na celu poprawę CZYTELNOŚCI kodu. I o tym był post. Jakie dodatkowe DLACZEGO miałbym napisać? A o tym dlaczego warto używać const można założyć osobny wątek, tamten dotyczył formy i o formie pisałem. -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: kameleonsql
Date: Sat, 15 Jul 2017 16:38
Date: Sat, 15 Jul 2017 16:38
42 lines
3794 bytes
3794 bytes
W dniu sobota, 15 lipca 2017 09:21:11 UTC+2 użytkownik Roman Tyczka napisał: > On Thu, 13 Jul 2017 18:09:26 +0200, wloochacz wrote: > > >> Zacytuję Ci ....Ciebie: > >> > >> "> Poradziłem sobie > >> > >> /ciach/ > >> IMO gówno sobie poradziłeś." > >> > >> To na temat stylu i sposobu przekazywania ;-) > > To była moja własna subiektywna opinia na temat poradzenia sobie z > > konkretnym problemem. > > Potem piszę, dlaczego tak *IMO* uważam. > > Piszesz dlaczego tak uważasz, tak ja ja napisałem dlaczego uważam kod OP za > syfiarsko nieczytelny. Mi zarzucasz, że nie napisałem dlaczego tak trzeba > pisać, a sam także nic już nie dodałeś. Gdzie tu konsekwsencja? A może > chodzi o czepialstwo? > > >>> Atakujesz, negujesz i nie dajesz prawie nic konkretnego w zamian. > >> > >> Nic nie daję? Hmm... to o czym był mój post z propozycją zmiany stylu > >> kodowania? > > Ten post o sraczce, czy to późniejsze ciut bardziej konkretne? > > > > Tak czy owak, tak dokładnie uważam - brakuje tam konkretów. > > Napisałem też o tym co uważam, że powinno być, aby było konkretnie. > > Bo to, że coś powinno być tak czy siak, to fajnie. Ale jeszcze DLACZEGO > > tak miałoby być? > > Uwagi JAK PISAĆ miały na celu poprawę CZYTELNOŚCI kodu. I o tym był post. > Jakie dodatkowe DLACZEGO miałbym napisać? A o tym dlaczego warto używać > const można założyć osobny wątek, tamten dotyczył formy i o formie pisałem. > > -- > pozdrawiam > Roman Tyczka Tak, zerknąłem ma ten wątek dość pobieżnie (raczej czytając ze zrozumieniem) i tak myślę, że Panie Romanie (o dziwo imienniku mój) Tyczka, Pan to się powinien na wizytę do psychologa chyba umówić (programowanie jest bardzo stresującym zajęciem, zwłaszcza na tak zwanym komercyjnym / profesjonalnym poziomie), a nie pisać na tym forum. Pozdrawiam
Re: Zeos Delphi XE2
Author: Karol
Date: Sun, 16 Jul 2017 05:04
Date: Sun, 16 Jul 2017 05:04
12 lines
2055 bytes
2055 bytes
> https://pastebin.com/tK4b8ZiJ Miałem czytać książki więc: http://helion.pl/ksiazki/oprogramowanie-latwe-w-utrzymaniu-pisz-kod-podatny-na-przyszle-zmiany-joost-visser,oplaut.htm Autor: Joost Visser Ilość linii kodu w funkcji max 15 inaczej trzeba przemyśleć koncepcje. Za dużo argumentów funkcji, to zaciemnia kod.
Re: Zeos Delphi XE2
Author: J-23
Date: Sun, 16 Jul 2017 19:10
Date: Sun, 16 Jul 2017 19:10
173 lines
9724 bytes
9724 bytes
W dniu 15.07.2017 o 09:11, Roman Tyczka pisze: > On Fri, 14 Jul 2017 01:19:50 +0200, J-23 wrote: > >>>> a ja już raczej nie będę zadawał pytań na grupie - bo i tak nikt na nie nie odpowie :P >>> >>> Heh, dobra prowokacja :-) >>> Jeśli pytania będą stricte deweloperskie i dotyczą Delphi... to jest szansa >>> :-) >> No właśnie stricte deweloperskie a nie syf. Nie róbcie Panowie drugiego >> syfu jak to uczyniono na pl.comp.programming tylko po to by był ruch na >> grupie bo to jest totalnie pozbawione sensu i powoduje bardzo niski >> procent wartościowej informacji. Sam już nie wiele programuje w Delphi >> raczej jestem bardziej obserwatorem tego co się z tym bądź co bądź >> fajnym środowiskiem dzieje. > > Pan policjant znów się ocknął! > >> Swoją przygodę z Delphi zakończyłem bodajże na wersji 2005/2006 nie >> pamiętam dokładnie. Teraz jeśli już coś robię w Pascalu to na Lazarusie > > ...przygodę skończyłem, ale przyjść i moralizatorkę poćwiczyć nie > odpuszczę. Brawo Ty. > Sam Pan czyta pl.comp.programming. Wygodnie? Znikomy jest tam procent wartościowej informacji - podobnie jak Pana posty publikowane tutaj ale o tym szerzej za chwile >> Co do kodu Pana Konsula - nie jest on idealny ale nie jest też taki zły. >> Ale napewno Pan Roman Tyczka przesadził w krytyce. > > "Napewno" to umrzemy. Reszta to tylko słowa, słowa, słowa... Lubi Pan na pusto chlapać jęzorem :) > >> Co do Kodu i słów Pana Romana Tyczki i jego komentarza - kodu Pana Konsula >> Sam nie publikował lepszego kodu a wytknął mu to sam autor wątku po czy > > Kod się pisze, żeby pracował, a nie do publikacji, zatem zarzut, że nie > publikuję jest z ucha. > Zarzut o brak publikacji ?! Gdzie? Radzę przetrzeć ekran monitora bo zachlapał go Pan jęzorem klepiąc na pusto Napisałem tylko że kod Romana Tyczki publikowany tutaj (w różnych postach) nie jest lepszy od Konsula - mam nadzieje że teraz dotarło :) >> on stwierdził że jest to wersja robocza. Jeśli nawet to raz nie napisał >> autor wątku że jest to jego wersja finalna kodu. Argument Pana Tyczki >> ogólnie jest bezsensu że jego kod to wersja robocza bo jak słusznie >> zauważył autor wątku nie ma on za wiele wspólnego z tymi argumentami >> które zostały poruszone przez Pana Romana Tyczkę > > Nie napisałem, że to wersja robocza tylko przykład na potrzeby pokazania > problemu, wersja robocza była dużo większa i skomplikowana. Gdy się > publikuje publicznie kod to warto się trzymać pewnych zasad, na SO > nazwanych MCVE: > > https://stackoverflow.com/help/mcve Pokaże mi Pan tutaj swój post (archiwum) w którym Pan to spełnił to uznam że ten link podany przez Pana ma sens w tej dyskusji. > >> Swoją drogą poprawiać ten kod na wersję finalną trzymając się zasad >> podanych to jest zabawa w kotka i myszkę, bo równa się praktycznie >> przepisanie go od zera :) Musiałbym się ostro nudzić by pisać tak >> odmienny od finalnego kod testowy - ale to taka moja opinia :) > > Co poradzę, że jesteś panie policjancie leniwy i nie chcesz szanować czasu > osoby, która potencjalnie może Ci pomóc w znalezieniu problemu? > >> Pan Roman Tyczka ogólnie "lubi się pienić" (moje zdanie jest podyktowane >> jego postami z tej grupy.) Dopowiadam aby nie było że wyskoczy zaraz z >> pytaniem typu "znasz mnie osobiście, że tak mnie oceniasz?" jak to ma >> robić w zwyczaju - Można prześledzić Archiwum Grupy by zobaczyć go w akcji > > Z takim pytaniem zaraz wyskoczy i tak, ale o tym niżej. > >> Panie Romanie odniosę się wprost do Pana. Przeczytałem sobie cały ten >> wątek również tę odnogę gdzie prowadził Pan z rozmowę z Panem Włochaczem >> i powiem tyle Pan mu nawet do pięt nie dorasta z wiedzą. Owszem jest >> krzykaczem ale z jego postów oprócz krytyki płynie też kupę >> merytorycznej wiedzy (Zgoda moża wyciągnąć z jego postów że jest to >> człowiek który zjadł rozum ale Pan jest przy nim malutki jeśli chodzi o >> poziom wiedzy - wręcz robaczek) > > Uuu... wjechał pan policjant wlochaczowi od tyłu chyba aż do gardła. Tu widać jaki Pan reprezentuje poziom dyskusji. Brak kontrargumentów wywołuje u Pana brak racjonalnego myślenia - zauważyłem już to nie tylko ja :) nawet dostał Pan radę odwiedzenia lekarza - może warto skorzystać? > > Masz panie policaju dokładnie zerowe pojęcie o moim poziomie wiedzy, jak > sam zauważyłeś nie znasz mnie i tylko znalazłeś w sieci kilka postów, w > których nie było niczego co mogłoby Ci dać jakiekolwiek, choćby blade > pojęcie o moim poziomie. Ale oczywiście udając miłego i grzecznego, że aż > fałszywość się wylewa, oceniasz mój poziom wiedzy jako nikły. Czym się > różni panie policjancie Twój post od mojego, w którym bezpośrednio > schlastałem kod OP? Powiem Ci... ja bazowałem na tym co wkleił OP i > nazwałem rzeczy po imieniu, a Ty bazujesz na ...widzimisiu swojego > wewnętrznego policmajstra i chęci podlizania temu i owemu oraz stosujesz > obłudnie miły ton jednocześnie insynuując bzdury. Taki masz policjancki > stajl... > Po za chamstwem nic z Pana postów nie wynika :) Czym się różnił mój post od Pana? a no choćby tym (Skupie się tu na warstwie merytorycznej) że powiedziałem co mi się nie podoba i podałem powód dlaczego ja stosuje nazwy takie a nie inne... u Pana tego zabrakło Ponadto w mojej ocenie większość tych elementów które Pan wymienił jest mocno subiektywna. Dla przykładu nawet samo środowisko wspiera pewne rzeczy w odwrotny sposób np pola klasy są w Delphi z dużej litery Pan stosuje z małej - pytanie po co? > Czy masz jakiś argument rzeczowy na temat mojej wiedzy? Słucham... Argumenty czerpie z postów Umieszczonych tutaj i wystarczy przejrzeć archiwum grupy by zorientować się kto tutaj jaki poziom reprezentuje. Przywołani przeze mnie Włochach czy Piotr Hosowicz (mogłbym wymienić jeszcze kilku) ale to nie ma sensu by zorientować się jaki jest poziom tych ludzi. Myślę że wielu użytkowników tej grupy się ze mną zgodzi > >> Ja od Pana Panie Romanie oczekiwałbym (myślę że reszta grupy też) garści >> solidnych argumentów w obronie tego czym Pan tak zjechał Pana Konsula > > Nie rozumiem dlaczego to co napisałem w wypunktowanej liście jest > niezrozumiałe, choć pisane prostym językiem, bez trudnych słów... może > powinienem stosować mniej zdań złożonych? Zabrakło opisania lub wskazania powodu dlaczego tak a nie inaczej. > >> Tylko nie w formie "pyskówki" a posta w którym pokazuje jaki powinien >> być prawidłowy kod - myślę że ma Pan go dużo u siebie więc jakiś >> przykładowy moduł niech Pan wezie ze swojego finalnego kodu i go >> zaprezentuje. > > https://pastebin.com/tK4b8ZiJ > https://pastebin.com/EQUhVFxZ > https://pastebin.com/uG55ASyW > To ma być ładny kod ?! Ciekawe :) Mówiąc moduł miałem na myśli coś kompletnego a nie trzy klasy nawet nie powiązane ze sobą. Na podstawie tego kodu nic nie da się racjonalnego powiedzieć Dla mnie rzucają się dwie rzeczy - nazw pól kasy o tym wspomniałem wcześniej - jestem ciekaw czemu Pan stosuje taka notację - nadmiarowe jak dla mnie użycie bloku begin...end przez co kod robi się bardzo rozlazły Podsumowując nie musi Pan publikować tony kodu. Obiecałem że odniosę się do Pana postów publikowanych tutaj przemawia przez nie zwykłe chamstwo zero rzetelnej dyskusji. Warto? Chyba nie! Nie lepiej odpowiadając skupić się na realnym problemie? Tak by np spotkać się z ludźmi na Zlocie i wypić piwo - zamiast się pieklić o durnotę a Pan to robi nagminnie bez uzasadnienia -- J-23
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Sun, 16 Jul 2017 22:15
Date: Sun, 16 Jul 2017 22:15
187 lines
9770 bytes
9770 bytes
On Sun, 16 Jul 2017 21:10:43 +0200, J-23 wrote: >>> Swoją przygodę z Delphi zakończyłem bodajże na wersji 2005/2006 nie >>> pamiętam dokładnie. Teraz jeśli już coś robię w Pascalu to na Lazarusie >> >> ...przygodę skończyłem, ale przyjść i moralizatorkę poćwiczyć nie >> odpuszczę. Brawo Ty. >> > > Sam Pan czyta pl.comp.programming. Wygodnie? Znikomy jest tam procent > wartościowej informacji - To, że Ty niczego tam nie potrafisz znaleźć nie oznacza, że tak ma każdy Panie gliniarz. Czytać to trza umieć. > podobnie jak Pana posty publikowane tutaj ale > o tym szerzej za chwile Ta... już drżę zlękniony. >> Kod się pisze, żeby pracował, a nie do publikacji, zatem zarzut, że nie >> publikuję jest z ucha. > > Zarzut o brak publikacji ?! Gdzie? Radzę przetrzeć ekran monitora bo > zachlapał go Pan jęzorem klepiąc na pusto Jak do tej pory, w tym wątku, z nas obu to Ty rządzisz w jałowości wypowiedzi i offtopie, więc się zastanów czy znów nie stosujesz policaju nadużycia władzy, to niedozwolone. > Napisałem tylko że kod Romana Tyczki publikowany tutaj (w różnych > postach) nie jest lepszy od Konsula - mam nadzieje że teraz dotarło :) No zobacz jak ślicznie pieprzysz od rzeczy, widzisz czarne, ale mówisz białe, bo tak Ci pasuje i głupio przyznać oponentowi rację. >> Nie napisałem, że to wersja robocza tylko przykład na potrzeby pokazania >> problemu, wersja robocza była dużo większa i skomplikowana. Gdy się >> publikuje publicznie kod to warto się trzymać pewnych zasad, na SO >> nazwanych MCVE: >> >> https://stackoverflow.com/help/mcve > > Pokaże mi Pan tutaj swój post (archiwum) w którym Pan to spełnił to > uznam że ten link podany przez Pana ma sens w tej dyskusji. A niby manipulancie i hochsztaplerze mój kod jaki tu cytujecie, którego punktu postulatu nie spełnia? No, dajesz, już się nie mogę doczekać. Żenujące są te Twoje nadętę wypociny. >>> Panie Romanie odniosę się wprost do Pana. Przeczytałem sobie cały ten >>> wątek również tę odnogę gdzie prowadził Pan z rozmowę z Panem Włochaczem >>> i powiem tyle Pan mu nawet do pięt nie dorasta z wiedzą. Owszem jest >>> krzykaczem ale z jego postów oprócz krytyki płynie też kupę >>> merytorycznej wiedzy (Zgoda moża wyciągnąć z jego postów że jest to >>> człowiek który zjadł rozum ale Pan jest przy nim malutki jeśli chodzi o >>> poziom wiedzy - wręcz robaczek) >> >> Uuu... wjechał pan policjant wlochaczowi od tyłu chyba aż do gardła. > > Tu widać jaki Pan reprezentuje poziom dyskusji. Ojejciu, jaki biedny, pokrzywdzony żuczek. Jak się euyfemizmu nie użyje to prawda brutalnie zabija? > Brak kontrargumentów wywołuje u Pana brak racjonalnego myślenia - zauważyłem już to nie > tylko ja :) No póki co to Ty pierdzisz sloganami, a konkretów jak nie było tak nie ma. > nawet dostał Pan radę odwiedzenia lekarza - może warto skorzystać? Uuuu, toś mi dogrzał, nie wiem jak się odgryźć, może tak: a Ty masz krzywe nogi! Poszło Ci w buty? :-) >> Masz panie policaju dokładnie zerowe pojęcie o moim poziomie wiedzy, jak >> sam zauważyłeś nie znasz mnie i tylko znalazłeś w sieci kilka postów, w >> których nie było niczego co mogłoby Ci dać jakiekolwiek, choćby blade >> pojęcie o moim poziomie. Ale oczywiście udając miłego i grzecznego, że aż >> fałszywość się wylewa, oceniasz mój poziom wiedzy jako nikły. Czym się >> różni panie policjancie Twój post od mojego, w którym bezpośrednio >> schlastałem kod OP? Powiem Ci... ja bazowałem na tym co wkleił OP i >> nazwałem rzeczy po imieniu, a Ty bazujesz na ...widzimisiu swojego >> wewnętrznego policmajstra i chęci podlizania temu i owemu oraz stosujesz >> obłudnie miły ton jednocześnie insynuując bzdury. Taki masz policjancki >> stajl... >> > > Po za chamstwem nic z Pana postów nie wynika :) Oj, żebyś Ty biedaczku spotykał w życiu tylko takich chamów to świat byłby pięknym miejscem. > Czym się różnił mój post od Pana? a no choćby tym (Skupie się tu na > warstwie merytorycznej) że powiedziałem co mi się nie podoba i podałem > powód dlaczego ja stosuje nazwy takie a nie inne... u Pana tego zabrakło Nie chce mi się naprawdę już kopać z koniem i szukać cytatów komuś, kto ma w dupie argumenty i tylko musi udowodnić sobie jaki jest fajniusi. Ale jak Ci się zachce to znajdziesz to czego Ci "zabrakło". > Ponadto w mojej ocenie większość tych elementów które Pan wymienił jest > mocno subiektywna. Dla przykładu nawet samo środowisko wspiera pewne > rzeczy w odwrotny sposób np pola klasy są w Delphi z dużej litery Pan > stosuje z małej - pytanie po co? Tylko, że to jest akurat detal, bo czy to będzie małe f czy duże Z jest szczegółem o znaczeniu nikłym, chodzi o sam fakt wyróżnienia pola czy parametru, paniał w końcu? Bo gdybym napisał, że ma to być x to teraz mistrzu biłbyś pianę "ale dlaczego to ma być x?" I tak do usrania, z braku argumentów można się czepić byle czego, grunt to się czepić, w tym kraju to takie popularne ostatnio. >> Czy masz jakiś argument rzeczowy na temat mojej wiedzy? Słucham... Nie wiem, może użyj rozumu? > Argumenty czerpie z postów Umieszczonych tutaj i wystarczy przejrzeć > archiwum grupy by zorientować się kto tutaj jaki poziom reprezentuje. > Przywołani przeze mnie Włochach czy Piotr Hosowicz (mogłbym wymienić > jeszcze kilku) ale to nie ma sensu by zorientować się jaki jest poziom > tych ludzi. > > Myślę że wielu użytkowników tej grupy się ze mną zgodzi Tak, szukaj poparcia i klakierów, gdy argumentacja trzeszczy w szwach. Siła złego na jednego, bo ośmielił się gówno nazwać gównem bez sztucznej uprzejmości policmajstra. >>> Ja od Pana Panie Romanie oczekiwałbym (myślę że reszta grupy też) garści >>> solidnych argumentów w obronie tego czym Pan tak zjechał Pana Konsula >> >> Nie rozumiem dlaczego to co napisałem w wypunktowanej liście jest >> niezrozumiałe, choć pisane prostym językiem, bez trudnych słów... może >> powinienem stosować mniej zdań złożonych? > > Zabrakło opisania lub wskazania powodu dlaczego tak a nie inaczej. Oj Ty to jesteś nieborak, ciągle Ci czegoś brakuje. Może użyj googla albo kup książkę? Mądrej głowie dość dwie słowie - słyszałeś o tym? Czy może musze Ci tę metaforę wyjaśnić także? >> https://pastebin.com/tK4b8ZiJ >> https://pastebin.com/EQUhVFxZ >> https://pastebin.com/uG55ASyW >> > > To ma być ładny kod ?! Ciekawe :) Heh. No... to ma być kod, i co? > Mówiąc moduł miałem na myśli coś kompletnego a nie trzy klasy nawet nie > powiązane ze sobą. Ojej, znowu coś Ci brakuje? Jak tu żyć? > Na podstawie tego kodu nic nie da się racjonalnego powiedzieć > Dla mnie rzucają się dwie rzeczy > - nazw pól kasy o tym wspomniałem wcześniej - jestem ciekaw czemu Pan > stosuje taka notację > - nadmiarowe jak dla mnie użycie bloku begin...end przez co kod robi się > bardzo rozlazły No toś zaorał kod po same pachy... tylko czemu mnie to nie dziwi.... > Podsumowując nie musi Pan publikować tony kodu. Obiecałem że odniosę się > do Pana postów publikowanych tutaj przemawia przez nie zwykłe chamstwo > zero rzetelnej dyskusji. Warto? Nie masz różowego pojęcia co to jest chamstwo - taki mam wniosek. > Chyba nie! Nie lepiej odpowiadając skupić się na realnym problemie? Czyli reasumując: - nieczytelność kodu, zwłaszcza w dużych kawałkach jakie serwuje tu OP, nie są problemem podczas ewentualnej analizy i próby zrozumienia usterki kodu? - ważniejsze jest by sobie kadzić i się klepać po pleckach? Co do drugiego pytania ani przywoływany przez Ciebie wloochacz, ani śp. Hosowicz nigdy nie byli przymilnymi gogusiami jakim Ty się starasz być, a potrafili przywalić z grubej rury. Tak, wiem, oni pisali zajebisty kod a ja jestem lamerem... <ziew> -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Sun, 16 Jul 2017 22:16
Date: Sun, 16 Jul 2017 22:16
18 lines
2184 bytes
2184 bytes
On Sat, 15 Jul 2017 09:38:52 -0700 (PDT), kameleonsql@gmail.com wrote: >> Uwagi JAK PISAĆ miały na celu poprawę CZYTELNOŚCI kodu. I o tym był post. >> Jakie dodatkowe DLACZEGO miałbym napisać? A o tym dlaczego warto używać >> const można założyć osobny wątek, tamten dotyczył formy i o formie pisałem. > > Tak, zerknąłem ma ten wątek dość pobieżnie (raczej czytając ze > zrozumieniem) i tak myślę, że Panie Romanie (o dziwo imienniku mój) > Tyczka, Pan to się powinien na wizytę do psychologa chyba umówić > (programowanie jest bardzo stresującym zajęciem, zwłaszcza na tak zwanym > komercyjnym / profesjonalnym poziomie), a nie pisać na tym forum. Toś wyskoczył jak filip... i to już wszystkie mądrości jakie kryjesz w zanadrzu? -- pozdrawiam Roman Tyczka
Re: Zeos Delphi XE2
Author: J-23
Date: Sun, 16 Jul 2017 22:56
Date: Sun, 16 Jul 2017 22:56
18 lines
2537 bytes
2537 bytes
W dniu 17.07.2017 o 00:15, Roman Tyczka pisze: > Co do drugiego pytania ani przywoływany przez Ciebie wloochacz, ani śp. > Hosowicz nigdy nie byli przymilnymi gogusiami jakim Ty się starasz być, a > potrafili przywalić z grubej rury. > Tak, wiem, oni pisali zajebisty kod a ja jestem lamerem... <ziew> Hehe :) bawią mnie te Pańskie teksty ale w jednym sie z Panem zgodze oni potrafili dobitnie coś powiedzieć ale podpierali to solidą argumentaacją czego u Pana jest brak. Po za tym gdzie ja wcześniej napisałem że oni piszą zajebisty kod :)? Mają wiedze z której potrafią skorzystać i przekazać za równo włochacz jak i sp. Hosowicz. Co do reszty to nawet się nie odniosę bo szkoda mi czasu i tak zostanie Pan w swoim zadufaniu -- J-23
Re: Zeos Delphi XE2
Author: Roman Tyczka
Date: Mon, 17 Jul 2017 06:20
Date: Mon, 17 Jul 2017 06:20
24 lines
2317 bytes
2317 bytes
On Sun, 16 Jul 2017 07:04:47 +0200, Karol wrote: >> https://pastebin.com/tK4b8ZiJ > > Miałem czytać książki więc: > > http://helion.pl/ksiazki/oprogramowanie-latwe-w-utrzymaniu-pisz-kod-podatny-na-przyszle-zmiany-joost-visser,oplaut.htm > > Autor: Joost Visser > > Ilość linii kodu w funkcji max 15 > inaczej trzeba przemyśleć koncepcje. > > Za dużo argumentów funkcji, to zaciemnia kod. No i masz rację, do tego ideału trzeba dążyć i dążę. Z każdą kolejną refaktoryzacją jest lepiej. Niestety kod taki powstaje, gdy zwycięża naturalne u programistów lenistwo. Ale, gdy potem szuka się błędu to się wyciąga wniosek, że jednak lepiej poświęcić trochę więcej czasu na developerkę niż na debug. -- pozdrawiam Roman Tyczka
Page 1 of 2 • 67 total messages
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads