🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#345858
Author: konsul41
Date: Mon, 26 Jun 2017 11:47
70 lines
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
#345859
Author: konsul41
Date: Mon, 26 Jun 2017 12:33
2 lines
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
#345860
Author: Roman Tyczka
Date: Mon, 26 Jun 2017 15:07
12 lines
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
#345861
Author: wloochacz
Date: Tue, 27 Jun 2017 20:41
18 lines
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
#345862
Author: konsul41
Date: Wed, 28 Jun 2017 06:05
23 lines
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
#345863
Author: mmm
Date: Wed, 28 Jun 2017 06:12
10 lines
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
#345864
Author: konsul41
Date: Tue, 11 Jul 2017 07:48
357 lines
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
#345865
Author: Roman Tyczka
Date: Tue, 11 Jul 2017 08:27
19 lines
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
#345908
Author: miab
Date: Tue, 11 Jul 2017 08:49
6 lines
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
#345866
Author: konsul41
Date: Tue, 11 Jul 2017 08:50
67 lines
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
#345905
Author: konsul41
Date: Tue, 11 Jul 2017 09:17
46 lines
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
#345867
Author: Roman Tyczka
Date: Tue, 11 Jul 2017 09:24
61 lines
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
#345868
Author: konsul41
Date: Tue, 11 Jul 2017 09:41
42 lines
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
#345869
Author: Roman Tyczka
Date: Tue, 11 Jul 2017 10:08
66 lines
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
#345870
Author: konsul41
Date: Tue, 11 Jul 2017 10:20
17 lines
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
#345871
Author: wloochacz
Date: Tue, 11 Jul 2017 15:28
116 lines
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
#345872
Author: Roman Tyczka
Date: Tue, 11 Jul 2017 21:43
76 lines
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
#345883
Author: konsul41
Date: Wed, 12 Jul 2017 06:38
28 lines
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
#345884
Author: Stregor
Date: Wed, 12 Jul 2017 06:53
8 lines
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
#345885
Author: konsul41
Date: Wed, 12 Jul 2017 07:00
7 lines
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
#345886
Author: Roman Tyczka
Date: Wed, 12 Jul 2017 08:35
82 lines
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
#345887
Author: konsul41
Date: Wed, 12 Jul 2017 08:53
36 lines
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
#345889
Author: Roman Tyczka
Date: Wed, 12 Jul 2017 09:23
27 lines
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
#345888
Author: konsul41
Date: Wed, 12 Jul 2017 09:32
8 lines
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
#345890
Author: Roman Tyczka
Date: Wed, 12 Jul 2017 09:39
18 lines
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
#345891
Author: konsul41
Date: Wed, 12 Jul 2017 09:44
5 lines
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
#345892
Author: Roman Tyczka
Date: Wed, 12 Jul 2017 09:51
12 lines
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
#345893
Author: konsul41
Date: Wed, 12 Jul 2017 09:55
12 lines
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
#345894
Author: Roman Tyczka
Date: Wed, 12 Jul 2017 09:57
17 lines
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
#345895
Author: immo
Date: Wed, 12 Jul 2017 10:07
7 lines
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
#345896
Author: Roman Tyczka
Date: Wed, 12 Jul 2017 10:10
10 lines
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
#345897
Author: immo
Date: Wed, 12 Jul 2017 10:28
12 lines
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
#345898
Author: Roman Tyczka
Date: Wed, 12 Jul 2017 10:50
20 lines
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
#345873
Author: wloochacz
Date: Wed, 12 Jul 2017 11:13
134 lines
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
#345874
Author: immo
Date: Wed, 12 Jul 2017 13:04
13 lines
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
#345876
Author: Roman Tyczka
Date: Wed, 12 Jul 2017 13:27
140 lines
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
#345875
Author: wloochacz
Date: Wed, 12 Jul 2017 14:18
22 lines
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
#345877
Author: wloochacz
Date: Wed, 12 Jul 2017 14:42
185 lines
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
#345878
Author: Roman Tyczka
Date: Thu, 13 Jul 2017 09:38
25 lines
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
#345879
Author: wloochacz
Date: Thu, 13 Jul 2017 16:09
34 lines
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
#345899
Author: J-23
Date: Thu, 13 Jul 2017 23:19
79 lines
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
#345900
Author: marfi
Date: Fri, 14 Jul 2017 16:22
14 lines
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
#345901
Author: Roman Tyczka
Date: Sat, 15 Jul 2017 07:11
111 lines
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
#345880
Author: Roman Tyczka
Date: Sat, 15 Jul 2017 07:21
37 lines
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
#345881
Author: kameleonsql
Date: Sat, 15 Jul 2017 16:38
42 lines
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
#345902
Author: Karol
Date: Sun, 16 Jul 2017 05:04
12 lines
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
#345904
Author: J-23
Date: Sun, 16 Jul 2017 19:10
173 lines
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
#345906
Author: Roman Tyczka
Date: Sun, 16 Jul 2017 22:15
187 lines
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
#345882
Author: Roman Tyczka
Date: Sun, 16 Jul 2017 22:16
18 lines
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
#345907
Author: J-23
Date: Sun, 16 Jul 2017 22:56
18 lines
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
#345903
Author: Roman Tyczka
Date: Mon, 17 Jul 2017 06:20
24 lines
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