Delphi Can
Free vs FreeAndNil - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: Free vs FreeAndNil (/showthread.php?tid=283)

Sayfalar: 1 2 3 4


Free vs FreeAndNil - edo - 11-10-2016

Aşağıda iki farklı adreste aynı konuda farklı görüşler var. Hatta Nick Hodges'un açtığı konu başlığı altına yorum yazdım ama (sanırım forumu 2014'de taşıdığından dolayı artık takip etmediğinden Big Grin ) her hangi bir cevap alamadım. 

http://www.nickhodges.com/post/Using-FreeAndNil.aspx

http://eurekalog.blogspot.com.tr/2009/04/why-should-you-always-use-freeandnil_28.html

Sizlerin bu konudaki fikirleri nelerdir?


Cvp: Free vs FreeAndNil - Tuğrul HELVACI - 11-10-2016

(11-10-2016, Saat: 09:18)edo Adlı Kullanıcıdan Alıntı: Aşağıda iki farklı adreste aynı konuda farklı görüşler var. Hatta Nick Hodges'un açtığı konu başlığı altına yorum yazdım ama (sanırım forumu 2014'de taşıdığından dolayı artık takip etmediğinden Big Grin ) her hangi bir cevap alamadım. 

http://www.nickhodges.com/post/Using-FreeAndNil.aspx

http://eurekalog.blogspot.com.tr/2009/04/why-should-you-always-use-freeandnil_28.html

Sizlerin bu konudaki fikirleri nelerdir?

Ben bu hususta Nick Hodges tarafında değilim. FreeAndNil kullananlar arasındayım. Sanırım Nick, yeterince geniş bir projede yeterli sayıda Access Violation hatası almamış Wink


Cvp: Free vs FreeAndNil - edo - 11-10-2016

(11-10-2016, Saat: 10:08)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı:
(11-10-2016, Saat: 09:18)edo Adlı Kullanıcıdan Alıntı: Aşağıda iki farklı adreste aynı konuda farklı görüşler var. Hatta Nick Hodges'un açtığı konu başlığı altına yorum yazdım ama (sanırım forumu 2014'de taşıdığından dolayı artık takip etmediğinden Big Grin ) her hangi bir cevap alamadım. 

http://www.nickhodges.com/post/Using-FreeAndNil.aspx

http://eurekalog.blogspot.com.tr/2009/04/why-should-you-always-use-freeandnil_28.html

Sizlerin bu konudaki fikirleri nelerdir?

Ben bu hususta Nick Hodges tarafında değilim. FreeAndNil kullananlar arasındayım. Sanırım Nick, yeterince geniş bir projede yeterli sayıda Access Violation hatası almamış Wink

Şimdi öyle de demiyelim de Big Grin  Öyle olduğunu zannetmiyorum ama ben de arada kaldım netdeki bir çok guru genelde, çoğu durumda (ki istisna durumları biliyorsunuz) Free kullanımın yeterli olduğunu söylüyor. Ama EurokaLog gibi elinde bu iş için yeterli istatistik olan bir firma da öbür uçta yer alınca insanın kararsız kalmaması çok zor  Angel


Cvp: Free vs FreeAndNil - Tuğrul HELVACI - 11-10-2016

(11-10-2016, Saat: 10:18)edo Adlı Kullanıcıdan Alıntı:
(11-10-2016, Saat: 10:08)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Ben bu hususta Nick Hodges tarafında değilim. FreeAndNil kullananlar arasındayım. Sanırım Nick, yeterince geniş bir projede yeterli sayıda Access Violation hatası almamış Wink

Şimdi öyle de demiyelim de Big Grin  Öyle olduğunu zannetmiyorum ama ben de arada kaldım netdeki bir çok guru genelde, çoğu durumda (ki istisna durumları biliyorsunuz) Free kullanımın yeterli olduğunu söylüyor. Ama EurokaLog gibi elinde bu iş için yeterli istatistik olan bir firma da öbür uçta yer alınca insanın kararsız kalmaması çok zor  Angel

Spring4D Nick'in projesi olmaması lazım Wink


Cvp: Free vs FreeAndNil - Fesih ARSLAN - 11-10-2016

Merhaba,
Sorunuza bir katkıda bulunarak, kapsamını genişletelim. 
Delphi XE4 ile birlikte gelen ve TObject Sınıfına ait DisposeOf'u da bu kapsamda değerlendirmekte fayda var!


Cvp: Free vs FreeAndNil - edo - 11-10-2016

(11-10-2016, Saat: 10:20)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı:
(11-10-2016, Saat: 10:18)edo Adlı Kullanıcıdan Alıntı: Şimdi öyle de demiyelim de Big Grin  Öyle olduğunu zannetmiyorum ama ben de arada kaldım netdeki bir çok guru genelde, çoğu durumda (ki istisna durumları biliyorsunuz) Free kullanımın yeterli olduğunu söylüyor. Ama EurokaLog gibi elinde bu iş için yeterli istatistik olan bir firma da öbür uçta yer alınca insanın kararsız kalmaması çok zor  Angel

Spring4D Nick'in projesi olmaması lazım Wink

Aklımda nedense öyle kalmış sonradan emin olamadığım için hemen düzelttim ama kırmızı ışığa yakalanmışım :Smile

Genelde video ve kitaplarındaki örnekler hep spring4d üzerine olduğu için öyle hatırladım heralde. 

Ama şu kısım da dikkate değer: 

2006 – 2010: Borland/CodeGear/Embarcadero Technologies
Leading provider of software and database development tools
Delphi R&D Manager
  • Directly led and managed the work of thirteen highly skilled software developers

  • Managed entire development process from start to finish, including tracking requirements, bugs, administrative issues and integration

  • Communicated with customers via blogging, presentations, webinars, etc.
Delphi Product Manager
  • Responsible for feature set and roadmap for the Delphi development tool and language

  • Interfaced with customers to determine product definition

  • Presented product at multiple customer events and conferences world-wide
Ayrıca kendisi Marco'dan sonra Delphi camiasındaki en önemli gurulardan biriydi bence. Artık o da Embarcadero'nun bir personeli malesef  Huh


Cvp: Free vs FreeAndNil - Tuğrul HELVACI - 11-10-2016

(11-10-2016, Saat: 10:25)edo Adlı Kullanıcıdan Alıntı:
(11-10-2016, Saat: 10:20)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Spring4D Nick'in projesi olmaması lazım Wink

Aklımda nedense öyle kalmış sonradan emin olamadığım için hemen düzelttim ama kırmızı ışığa yakalanmışım :Smile

Genelde video ve kitaplarındaki örnekler hep spring4d üzerine olduğu için öyle hatırladım heralde. 

Ama şu kısım da dikkate değer: 

2006 – 2010: Borland/CodeGear/Embarcadero Technologies
Leading provider of software and database development tools
Delphi R&D Manager
  • Directly led and managed the work of thirteen highly skilled software developers

  • Managed entire development process from start to finish, including tracking requirements, bugs, administrative issues and integration

  • Communicated with customers via blogging, presentations, webinars, etc.
Delphi Product Manager
  • Responsible for feature set and roadmap for the Delphi development tool and language

  • Interfaced with customers to determine product definition

  • Presented product at multiple customer events and conferences world-wide
Ayrıca kendisi Marco'dan sonra Delphi camiasındaki en önemli gurulardan biriydi bence. Artık o da Embarcadero'nun bir personeli malesef  Huh

Kişileri ne çok küçümsemek lazım ne de çok büyütmek. Yurt dışında işler bizim ülkemizdeki gibi değil. Orada genelde herkesin bir uzmanlık alanı vardır. Bizde ise, her konuda bilgi sahibi olmamız beklenir. Bu tarz arkadaşların bir ara yoğun bir şekilde insanlara yardımcı oldukları grupları vardı teamb isminde ve bu arkadaşlar forumları sık kullanırlardı. O forumlarda sık sık soru yanıtladıkları gibi, ara sıra da bilmedikleri hususlarda sorular sorarlardı. Velhasıl, düşündüğünüz gibi Delphi guruları değillerdir bu insanlar. Emin olun, bu ülkeden bir çok programcı yurt dışında over-qualified olarak değerlendirilir ve işe alınmaz. (Benim başıma bir kaç kez geldi)

 Velhasıl konumuza dönecek olursak, her şeyin bir pointer olduğunu biliyorsa programcımız; Free yerine FreeAndNil kullanmayı tercih edecektir.

Neden ?

FreeAndNil kullanırsanız;

Assigned koşullarınız düzgün sonuçlar üretir.
Access Violation, GPF vb hataları dikkatsiz iseniz ancak alabilirsiniz.
Multi free hataları almazsınız.

Liste daha da uzar gider...


Cvp: Free vs FreeAndNil - kimimben - 11-10-2016

(11-10-2016, Saat: 10:53)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Emin olun, bu ülkeden bir çok programcı yurt dışında over-qualified olarak değerlendirilir ve işe alınmaz. (Benim başıma bir kaç kez geldi)

Aynı şey benim de başıma Türkiye de gelmişti. "Seni her işi yaparım abi modunda gördük diye söylemişlerdi."
Ne yapalım öğrenmeyelim mi, öğrenmek kötü birşey mi şeklinde bir cevap vermiştim.( Ki merak ettiğim şeyleri araştırmayı öğrenmeyi çok severim. )
Mülakatı yapan kişiler "Not responding" sonrası "geçersiz bir işlem yürütmüştü".

Tabi bu durumların hepsi insanın vizyonunu bir şekilde etkiliyor. Lanet olsun pragmatizm'e diyorsunuz.
Bunu niye anlattım bende bilmiyorum.


Cvp: Free vs FreeAndNil - masteryoda - 11-10-2016

(11-10-2016, Saat: 11:50)kimimben Adlı Kullanıcıdan Alıntı:
(11-10-2016, Saat: 10:53)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Emin olun, bu ülkeden bir çok programcı yurt dışında over-qualified olarak değerlendirilir ve işe alınmaz. (Benim başıma bir kaç kez geldi)

Aynı şey benim de başıma Türkiye de gelmişti. "Seni her işi yaparım abi modunda gördük diye söylemişlerdi."
Ne yapalım öğrenmeyelim mi, öğrenmek kötü birşey mi şeklinde bir cevap vermiştim.( Ki merak ettiğim şeyleri araştırmayı öğrenmeyi çok severim. )
Mülakatı yapan kişiler "Not responding" sonrası "geçersiz bir işlem yürütmüştü".

Tabi bu durumların hepsi insanın vizyonunu bir şekilde etkiliyor. Lanet olsun pragmatizm'e diyorsunuz.
Bunu niye anlattım bende bilmiyorum.

Sistem de güvenlik açığına rastlayıo bunu müdürüne bildirip işten kovulana ne demeli Smile


Free vs FreeAndNil - SimaWB - 20-10-2016

SysUtils.pas içerisinde FreeAndNil şu şekilde tanımlanmış:
procedure FreeAndNil(var Obj);
var
 P: TObject;
begin
 P := TObject(Obj);
 TObject(Obj) := nil;
 P.Free;
end;

Önce nil yapılıp sonra Free edildiğine göre bence fonksiyonun ismi NilAndFree olmalıydı  Big Grin