View Full Version : گفتگو: طراحی یک برنامه حرفه ای
Hussein39
یک شنبه 01 خرداد 1390, 23:34 عصر
سلام دوستان
من می خواستم بدونم که چه جوری یه برنامه رو طراحی کنیم. یعنی واسه طراحی یه برنامه چه کارهایی باید کرد. من C# رو یاد گرفتم، sql رو هم یاد گرفتم، طراحی بانک و رابطه ها رو هم یادگرفتم. حالا مشکل اینجاست که من با توجه به آموخته هام یه برنامه واسه مدیریت یه مجموعه نوشتم برنامه خوب کار می کنه ولی مشکل اینجاست که اگه مثلاً در آینده یه مشکل تو برنامه پیش آمد نمی تونم بفهمم مشکل از کجاست (رو کله نمیشه زیاد حساب باز کرد:چشمک:) تو این چند روز که رو وب سرچ کردم حسابی گیج شدم نمی دونم که اول باید RUB یاد بگیرم، UML یاد یگیرم، Design pattern یاد بگیرم...
من می خوام برنامه هام رو طوری طراحی کنم که مثلاً یک متد رو یک بار بنویسم و 100 جا استفاده کنم:متفکر:
با تشکر
Hussein39
سه شنبه 03 خرداد 1390, 22:01 عصر
کسی نمی خواد شرکت کنه یا حداقل جواب من رو بده
Hussein39
چهارشنبه 04 خرداد 1390, 23:44 عصر
آقا حداقل یه شکلک بزارین که من بدونم کسی داره اینجا رو هم نگاه می کنه:ناراحت:
hamidhws
پنج شنبه 05 خرداد 1390, 01:57 صبح
قبل از هرچیز شما باید برنامتون رو بصورت لایه ای پیاده سازی کنید و کار هر قسمت رو از قسمت دیگه کاملا جدا کنید .
من می خوام برنامه هام رو طوری طراحی کنم که مثلاً یک متد رو یک بار بنویسم و 100 جا استفاده کنم
بعد از اینکار سعی کنید حتما از شی گرایی استفاده کنید. مثلا فرض کنید شما توی برنامه احتیاج به محاسبه 2 متغیر دارید و اونو هم باید 100 بار توی قسمت های مختلف تکرار کنید
بدترین کار اینه که یه کپی از کد بگیرید و توی 100 تا قسمت کپی کنید!
بهترین کار اینه که یه رویداد تعریف کنید (بهتره که یه کلاس تعریف کنید و رویداد ها رو توی اون تعریف کنید >> یعنی اگر میخواید برای قسمت امنیت کد نویسی کنید یه کلاس به اسم security تعریف کنید و همه رویدادهای مربوط به امنیت رو توی اون تعریف کنید)
بعد از اون فقط کافیه توی اون 100 تا قسمت اون رویداد رو صدا بزنید.
بعد برای همه رویداد های همه کلاس ها از try ...catch استفاده کنید (البته اگر از دات نت استفاده میکنید) بعد خطای مربوط به هر قسمت رو بعد از catch تعریف کنید
اینطوری همه خطاها رو میتونید مدیریت کنید و هم پشتیبانی و تغییرات برنامه ساده تر میشه.
موفق باشید
Hussein39
پنج شنبه 05 خرداد 1390, 12:39 عصر
قبل از هرچیز شما باید برنامتون رو بصورت لایه ای پیاده سازی کنید و کار هر قسمت رو از قسمت دیگه کاملا جدا کنید .
بعد از اینکار سعی کنید حتما از شی گرایی استفاده کنید. مثلا فرض کنید شما توی برنامه احتیاج به محاسبه 2 متغیر دارید و اونو هم باید 100 بار توی قسمت های مختلف تکرار کنید
بدترین کار اینه که یه کپی از کد بگیرید و توی 100 تا قسمت کپی کنید!
بهترین کار اینه که یه رویداد تعریف کنید (بهتره که یه کلاس تعریف کنید و رویداد ها رو توی اون تعریف کنید >> یعنی اگر میخواید برای قسمت امنیت کد نویسی کنید یه کلاس به اسم security تعریف کنید و همه رویدادهای مربوط به امنیت رو توی اون تعریف کنید)
بعد از اون فقط کافیه توی اون 100 تا قسمت اون رویداد رو صدا بزنید.
بعد برای همه رویداد های همه کلاس ها از try ...catch استفاده کنید (البته اگر از دات نت استفاده میکنید) بعد خطای مربوط به هر قسمت رو بعد از catch تعریف کنید
اینطوری همه خطاها رو میتونید مدیریت کنید و هم پشتیبانی و تغییرات برنامه ساده تر میشه.
موفق باشید
خیلی ممنون که جواب دادین اجرت با سیدالشهدا ، حالا سوال اینجاست که Design pattern ها کجای قضیه قرار دارن آیا این design pattern ربطی به UML، RUB داره یا نه در ضمن منظورت از لایه بندی همون برنامه نویسی 3 لایه ست این که واسه برنامه نویسی کلاینت سرور مورد استفاده قرار می گیره یا طرف واسم مثال زد:گیج:
JaguarXF
دوشنبه 09 خرداد 1390, 08:02 صبح
اگه مثلاً در آینده یه مشکل تو برنامه پیش آمد نمی تونم بفهمم مشکل از کجاست (رو کله نمیشه زیاد حساب باز کرد:چشمک:) تو این چند روز که رو وب سرچ کردم حسابی گیج شدم نمی دونم که اول باید RUB یاد بگیرم، UML یاد یگیرم، Design pattern یاد بگیرم...
یعنی چه مشکل پیش اومد؟ چه مشکلی؟ مشکلی که یک باگ در برنامه باشه؟ کد رو باید طوری بنویسی که خوانا باشه . داکیومنت شده باشه . قابل maintenance باشه. وب رو بگرد به اندازه کافی مظلب هست درباره اینکه چطور باید کد رو maintain کرد. برنامه باید از خودش لاگ بگیره: متد اول لود شد .. متد اول پایان یافت ... متد دوم لود شد .. فلان stored procedure لود شد ... و غیره : اینها رو باید بتونی در لاگ برنامه ات ببینی تا اگر روزی مشتری زنگ زد گفت فلان دکمه کار نمیکنه بفهمی مشکل داره از کجای برنامه شروع میشه. فعلا تا همبنجا کفایت میکنه !
در مرحله بعدی از پیشرفت! باید بتونی برک پوینت داخل برنامه بذاری . منظورم فعال کردنش داخل برنامه ای هست که دست مشتری هست. نه برنامه ای که روی کامپابلر اجرا میکنی! هاهاه ! تا بتونی دقیقا ببینی به فلان اسکریپت چه پارامترهایی داره پاس میشه چی داره برگشت میشه و غیره ...
غیر از این باشه برنامه حرفه ای نیست.
Hussein39
سه شنبه 10 خرداد 1390, 19:08 عصر
سلام دوست عزیز حالا مشکل من روی خوانایی برنامه است چطور می شه یه برنامه خوانا نوشت می دونم که اول باید تحلیل بشه ببینی مشتری چی می خواد ازت، اون ها رو بررسی کنید اگه نیاز به بانک داشتی بانکت رو بر حسب قوانین نرمال سازی نرمال کنی. اگه یکی از برنامه های خودم رو بهت نشون بدم سرگیجه می گیری، بعد از یک مدت می گذره، نمی دونم چی به چیه بایستی روی یک پروژه کوچیک کلی وقت صرف کنم که بفهمم جریان از چه قراره ولی در صورتی که می بینم بعضی برنامه های که هم کار من رو انجام می دن خیلی خشکل کد هاشون رو نوشتن و من راحت می تونم بفهمم که جریان چیه. می رم تو فرمشون رو نگه می کنم اصلا کلا هی متد فراخوانی می کنند تمام کارهاشون کلاس بندی خوشکل تمیز، حلا بیا برنامه های من همشون داخل یک فرم خوبه که حداقل سواد تابع رو هم دارم( البته کلاس ها و چند تا مفاهیمش رو هم می دونم) ولی وقتی می خوام رو کاغذ کار ها رو پیاده سازی کنم گیج می شم. نمی دونم چی به چیه و آخر هم مجبور می شم مثل اکبر آقای سبزی فروش کد بزنم اگه گرفت گرفت نگرفت دستکاریش کنم. نمی دونم منظورم رو رسونم. در ضمن این maintenance که می گی چیه چیکارش باید کرد چه جوری باید استفاده کرد باید روی چه مفاهیمی تسلط داشت.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.