DelphiGuru

وبلاگ شخصی علی دهبان

DelphiGuru

وبلاگ شخصی علی دهبان

DelphiGuru

در این بلاگ مطالب درخور توجه از دنیای برنامه نویسی پیشرفته و به طور اختصاصی تر مباحث مربوط به زبان شی گرا و سطح بالای دلفی قرار میگیرد.

Exception Handling

1- Exception ها رو نخورید!

کد زیر رو در نظر بگیرید :

try
SomeRoutineThatSometimesCausesAHardToFindAccessViolation

except

end;

در این قطعه کد هر نوع استثنایی رو به دام انداخته ایم اما هیچ اقدامی برای آن نشده است نه پیغامی نه کار خاصی ... در واقع با این کار ، کاربر ممکن است هیچ خطایی رو نبینه و برنامه هم به درستی کار نکنخ و Silent بمونه...

  

۲- Exception رو به دام نیاندازید و متن پیغامش رو خودتون دوباره Message نکنید زیرا به هر صورت نمایش داده خواهد شد!

کد زیر را در رابطه با این مطلب در نظر بگیرید:

try
 SomeCodeThatMightCauseAProblem
except
on
E: Exception do 
 begin
  MessageDlg(E.Message, mtWarning, [mbOK], 0);
 end;
end;

۳- خودتون به صورت ساختگی Exception ایجاد نکنید! به طور مثال ممکن هست کاری شبیه به کد زیر انجام داده باشید که صحیح نیست :

function StringIsInteger(aStr: string): Boolean;
var
Temp: integer;
begin
 Result := True;
 try
  Temp := StrToInt(aStr);
 except
  Result := False;
 end;
end;

4- یک نکته ی دیگر هم در استفاده از بلوک try ... except ... end هست که گاهی اوقات قابل استفاده ست.
شما میتونید پیغام های خطا رو  از داخل فانکشن و یا پروسیجر فرزند به پدر پاس بدید و پدر بر اساس اون تصمیم بگیره کار خاصی رو انجام بده و یا همون پیام رو مستقیم نمایش بده...
به کد زیر توجه که کنید در فانکشن فرزند یک متغیر لیبل تعریف شده ولی Create نشده و مقداری به Caption اون اختصاص داده شده ، در نتیجه Exception ایجاد میشه و میاد بیرون اما نکته اینجاست که اگر پدری باشه که مسیج رو دریافت کنه فانکشن فرزند میتونه Raise کنه و میشه در سمت پدر تصمیم گیری برای حرکت بعدی رو انجام داد،
به کد نگاهی بیاندازید : 

function TForm1.child: string;
var lbl:TLabel;
begin

try
 lbl.Caption:= 'aaaaaa';
except
 raise Exception.Create('MY Error Message');
end;

end;

//=================================

procedure TForm1.btn1Click(Sender: TObject);
begin

try
 child;
except on E:exception do
 ShowMessage(E.Message);
end;

end;

۱ نظر موافقین ۱ مخالفین ۰ ۲۱ خرداد ۹۶ ، ۲۲:۳۵
علی دهبان

begin

پایان سال 2015، بالای 3.9 میلیون فرصت شغلی در زمینه رایانش ابری در کشور آمریکا وجود داشت که این رقم برای کل فرصت های شغلی این زمینه در سراسر دنیا به رقمی حدود 18 میلیون می رسد. 
علاوه بر این، متخصصینی که دارای مهارت رایانش ابری هستند، سالانه به طور متوسط حقوقی نزدیک به 90،000 دلار دریافت می کنند.
پس رایانش ابری زمینه ای بسیار مهم برای کار است، اما مهارت های لازم برای شروع به کار در این زمینه چیست؟ هر مهارتی در این 9 زمینه شما را متمایز می کند.

1- مهارت های پایگاه داده ای

از آنجایی که رایانش ابری اغلب با انباری از داده و اطلاعات رو به روست، توانایی کار با پایگاه داده و داشتن درک درست از آن حیاتی است. SQL و MySQL زبان های استاندارد برای پایگاه داده هستند اما آشنایی با سیستم های Open-source مثل Hadoop، Cassandra و MongoDB نیز بسیار مفید واقع خواهد شد.

۱ نظر موافقین ۱ مخالفین ۰ ۱۴ دی ۹۵ ، ۱۱:۱۲
علی دهبان

begin

آندرس هلزبرگ  متولد دسامبر ۱۹۶۰ (Anders Hejlsberg) مهندس نرم‌افزار برجسته و نابغه ی دانمارکی است که در طراحی چندین زبان و ابزار برنامه‌نویسی محبوب و تجاری سهم بزرگی داشته‌است. او سازنده اصلی توربو پاسکال و معمار ارشد دلفی بوده است و هم اکنون با مایکروسافت به عنوان طراح ارشد سی‌شارپ و توسعه‌دهندهٔ هسته تایپ‌اسکریپت همکاری می‌کند.

در ادامه مطلب اورا بیشتر میشناسیم...

۰ نظر موافقین ۱ مخالفین ۰ ۰۷ تیر ۹۵ ، ۱۶:۳۸
علی دهبان

 Free DataBase Managemment Tools

begin

در طی سالهای گذشته و به تدریج که نرم افزار های مدیریت داده به رشد و توسعه خود ادامه میدادند در کنار اینها ابزارهایی جهت مدیریت بهتر و افزایش کارایی به عنوان دستیار مدیران دیتابیس ، طراحی و توسعه داده شد و شرکت هایی بسیار بزرگی نیز در این زمینه فعالیت میکنند.از این میان 18 ابزار رایگان رو بطور مختصر معرفی میکنم که توانایی کمک بسیار بزرگی به یک DBA را دارند و البته همه فقط مختص SQL Server نیستند وکارایی بیشتری دارند. مجوعه ی این ابزارها متعلق به شرکت بزرگ idera میباشد که در زمینه دیتابیس ها و BI و Big Data و غیره ...فعالیت دارد.

نکته : این کمپانی غول پیکر مالک جدید دلفی نیز میباشد!

 در ادامه مطلب به معرفی ابزارها میپردازیم...
۰ نظر موافقین ۱ مخالفین ۰ ۰۶ تیر ۹۵ ، ۰۱:۰۲
علی دهبان

برنامه‌ نویسی به روش برنامه نویسان NASA 

nasa codding

begin

آیا می‌دانید برنامه‌نویسان خبره‌ی سازمان ملی هوا و فضای آمریکا (NASA) چگونه پروژه‌های حیاتی و مهم را کدنویسی می‌کنند؟ برای نوشتن کدهایی با خوانایی و امنیت بالا و آسان بودن در درک آن ها، آزمایشگاه موشک‌های پیشران ناسا، ۱۰ قانون را برای توسعه‌ی برنامه‌ها و نرم افزار‌های کاربردی خود وضع کرده‌ است که تمامی توسعه دهندگان این سازمان باید از آن ها تبعیت کنند. در ادامه مطلب این قوانین را مرور میکنیم...

۰ نظر موافقین ۱ مخالفین ۰ ۰۵ تیر ۹۵ ، ۲۳:۴۴
علی دهبان

تجربه برنامه‌نویسی در این چند سال، مسائل بسیاری را درباره توسعه نرم‌افزارها به من آموخته است. گشتی در اینترنت و فهرست کردن آنچه تجربه کرده ‌ام، نکاتی را کنار هم قرار داد که شاید برای شما نیز جالب توجه باشد

 

نشانه های برنامه‌نویس و برنامه نویسی خوب...

good developer

begin

1- یک برنامه‌نویس، حدود ده الی بیست درصد زمان خود را به کد‌نویسی مشغول است و بیشتر برنامه‌نویس‌ها بدون توجه به تجربه و مهارت، در هر روز حدود ده الی دوازده خط کد‌برنامه که در محصول نهایی به‌کار گرفته خواهد شد، می‌ نویسند.

۲ نظر موافقین ۱ مخالفین ۰ ۰۴ خرداد ۹۵ ، ۲۲:۰۶
علی دهبان

Frank Borland

begin

احتمالا نام فرانک بورلند برای بعضی از شما که از اعضای قدیمی جامعه ی بورلند !  هستید آشناست اما قطعاً همه ی دوستان جدید با فرانک آشنایی کافی ندارند. 

اما Frank Borland کیست؟ از کجا آمده ؟ شغل او چه بوده و چه هست؟  این تاریخچه ی کوتاه (در ادامه ی مطلب) تا حدودی پاسخ این سوالات را دربرخواهد داشت.

۲ نظر موافقین ۱ مخالفین ۰ ۲۶ ارديبهشت ۹۵ ، ۰۳:۵۰
علی دهبان

RAD Server

Rad Server

begin

Embarcadero  از محصول جدیدش Rad Server رونمایی کرد.

این ابزار میتواند جهت تولید سریعتر یک Back-end برای توسعه ی نرم افزار های موجود به شما کمک شایانی بنماید.به این ترتیب میتوانید پلتفرم های جدیدتر  (همچون موبایل) که در نظر دارید تا به Application خود بیافزایید را در کوتاه ترین زمان طراحی  و آماده نمایید.

 

ntegration_Middleware_RAD_Server_Graphic

Multi tier در حد آب خوردن!

UI توسط Rad Studio طراحی میشود و سرویس هایی(REST/JSON) سمت سرور توسط Rad Server جهت ارتباط با کلاینت ها و همچنین لایه ی ارتباط با دیتابیس طراحی و در یک سرور عادی و یا در سرویس های Cloaud انتشار میابد و در نهایت با حداکثر سرعت کلاینت شما آماده است!

end.

۰ نظر موافقین ۱ مخالفین ۰ ۲۶ ارديبهشت ۹۵ ، ۰۲:۱۷
علی دهبان

begin

Design Pattern چیست و به چه دردی میخورد! سوال همینجاست که آیا واقعاً بدون دانستن الگوهای طراحی شما نمیتوانید یک طراح نرم افزار موفق باشید؟

در پاسخ به این سوال باید گفت که خیر! شاید هم بله... !

واقعیت اینست که تعداد قابل توجهی از نرم افزارهای تولید شده ( حد اقل در ایران) الگوهای طراحی را رعایت نمی نمایند و جزو نرم افزارهای موفق هم شناخته میشوند! اما در پس این جریان تولید و توسعه و نگهداری و حتی پشتیبانی چه خبر بوده است؟ چه مسیری طی شده است و چه مسیری واقعا باید طی میشد؟هرینه های توسعه و نگهداری این سیستم ها چگونه است؟

کسی که ادعا میکند که یک مهندس نرم افزار است باید توانایی طراحی مبتنی بر الگو را داشته باشد. الگوهای طراحی در ارتباط تنگاتنگ با OOP (برنامه نویسی شی گرا)هستند و دربسیاری موارد مشکلات OOP را برطرف مینمایند! بله OOP علارغم اینکه به برنامه نویسی در سال های اخیر جانی دوباره بخشید ناگزیر مشکلات خاص خود را نیز به دنبال داشت.

استفاده صحیح از الگوهای طراحی در زیرساخت برنامه ها ، میتواند سرعت روند توسعه را دوچندان نماید و از به وجود آمدن کدهای موسوم به Code Smells و مشکلی به  نام بدهی های فنی جلوگیری نماید. استفاده مجدد از ماژول ها و بخش های مختلف به آسانی صورت میگیرد و در نهایت توسعه به واقع اصولی ، آسان و سریع تر انجام میشود.

در مقابل ، استفاده ی  بی رویه و اجباری از الگوهای طراحی نیز در جایی که طراحی ساده شی گرا کفایت میکند توصیه نمیشود.

در ادامه مطلب با انواع الگوهای طراحی آشنا خواهیم شد.

۱ نظر موافقین ۲ مخالفین ۰ ۲۰ ارديبهشت ۹۵ ، ۱۶:۲۸
علی دهبان

begin

اگر شما از آن دسته از افرادی هستید که هنگام کدنویسی برای حذف صداهای اطرافتان یک هدست همیشه به سر دارید ! ابزار آنلاین  Noisli  احتمالا برایتان جذاب خواهد بود. 

در این سایت شما میتوانید با ترکیب صداهای مختلف ریتم مورد علاقه خود را جهت آرامش و یا انرژی گرفتن  ساخته و حتی ذخیره و یا در شبکه های اجتماعی با دوستان خود Share کنید. البته به شرطی که در سایت ثبت نام کنید امکانات اضافی تر را خواهید داشت. مثلا Nosili یک تایمر هم در اختیار شما قرار می‌دهد به این شکل که زمان های کاری خود را به بازه های کاری 30 دقیقه یی تقسیم‌بندی کرده، و بین آن‌ها آنتراک های مثلا 5 دقیقه یی در نظر گرفته و پس از چند بازه ی کاری، چیزی در حدود نیم ساعت رفع خستگی کنید.

سایت فوق در آدرس  www.noisli.com در دسترس میباشد.

end.

۰ نظر موافقین ۲ مخالفین ۰ ۱۷ ارديبهشت ۹۵ ، ۲۱:۲۵
علی دهبان

begin

مقدمه)

در سال 2010 انتشارات Oreilly کتابی با عنوان

 Ninety Seven Things Every Programmer Should Know عرضه نمود.

در کتاب فوق 97 نکته ی کاربردی با توجه به تجربیات برنامه نویسان برتر دنیا (تا آن روز!) ارائه شد.در ادامه و در آینده طی  97 مطلب جداگانه ، تک تک این Best Practice ها را بررسی خواهم نمود.  (دانلود کتاب اصلی)    برو به مطلب بعدی : چیز1 !

end.

۰ نظر موافقین ۲ مخالفین ۰ ۱۷ ارديبهشت ۹۵ ، ۱۶:۱۲
علی دهبان
تست جوئل The Joel Test

begin

12 راه برای کدنویسی بهتر ...

جوئل اسپولسکی، یهودی ساکن آمریکا است که از جمله سوابقش مدیریت پروژه MS Excel v5 است. او نظریات منحصر به فرد و جالبی در زمینه تولید نرم افزار دارد و امروزه در شرکت خودش، Fog Creek Software  مشغول به کار است. متن زیر که توسط وی در اوت 2000 منتشر شده است مشخصه های ارزیابی یک تیم نرم افزاری را به زبان ساده و تا حدی طنز گونه بیان میکند. در ترجمه این متن سعی شده است اصطلاحات فنی به صورتی که بین برنامه نویسان حرفه ای در ایران مصطلح است به کار رود.

۲ نظر موافقین ۲ مخالفین ۰ ۱۴ ارديبهشت ۹۵ ، ۱۰:۳۷
علی دهبان

begin

مفهوم اصطلاح Bad Code Smell  چیست ؟

  

اصطلاح Code Smell که گاهی Bad Smell  هم اطلاق میشود در واقع به بخش هایی از سورس کد گفته میشه که پتانسیل این را دارند که مشکلات عمیقی برای سیستم به وجود بیاورند. Code Smell ها ساختارهای خاصی از کد هستند که اصول اساسی طراحی را نقض و تاثیر منفی در کیفیت طراحی میگذارند. این به این معنی است که نفر بعدی که سورس به دستش میرسد هر لحظه ممکن است خودکشی نماید یا سر از تیمارستان در بیاورد...!!!

Code Smell ها بطور معمول باگ نیستند و از لحاظ فنی و دستوری در آن زبان خطا ندارند و جلوی اجرا و کارایی عادی برنامه رو نمیگیرند. در عوض با ضعف عجیبی که در طراحی ایجاد میکنند میتوانند باعث کند شدن سرعت توسعه ، بالا رفتن ریسک ایجاد باگ های منطقی و یا شکست و واماندگی در آینده ای نزدیک شوند.

۱ نظر موافقین ۲ مخالفین ۰ ۱۳ ارديبهشت ۹۵ ، ۱۲:۴۴
علی دهبان