• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مهندسی معکوس در برنامه‌های PHP
#1
سلام و عرض خسته نباشید خدمت همه پی اچ پی کارای عزیز

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

سیستمش بر پایه MVC طراحی شده ، پلاگین و ماژول و از این چیزها میخوره.

ممنون میشم خیلی ساده راهنماییم کنیم چون من هنوز آماتورم.
  پاسخ
تشکر شده توسط :
#2
آنالایز کردن یه سیستم گاهی از نوشتنش بیشتر طول میکشه...
حداقل داشته هایی که لازم دارید آشنایی با مباحث شیء گرایی هست و اینکه بتونید کشف کنید از چه فریم ورکی استفاده شده (اگه فریم ورک شخصی نیست)

معمولاً روزهای اول آنالایز رو باید صرف شناخت رفتارهای سیستم کنید، یعنی اول عملکرد سیستم رو کشف کنید، بتدریج که با سیستم آشنا بشید، خودتون چند تا زیر سیستم رو میتونید ازش مدل کنید...
بعد هم یه سری به کلاس ها بزنید، عملکرد کلی هر کلاس رو کشف کنید (صرف اینکه فقط به بک گراند از وظیفه اونها داشته باشید)...
بعد به سمت هر use case رو بطور کامل باید مورد بررسی قرار بدید، یعنی از اینترفیس شروع کنید و برید تو موتور! ببینید هر عملی چه واکنش هایی رو برای سیستم داره...

هر جا چیز جدیدی کشف کردید سریع کامنت بزارید براش...

مرحله به مرحله که جلو میرید سیستم رو روی کاغذ (یا نرم افزار UML) تکمیل کنید تا دست آخر مدل کلی اون رو داشته باشید...

فقط از مستند سازی غافل نشید که سیستمی که به دست خود آدم نوشته نشده خیلی فرار هست...
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : webnevesht cyletech sarbaz boBak
#3
اوف بابا مهندسی نرم افزار! بابا تحلیل گر!Big Grin خوشم اومد
بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
  پاسخ
تشکر شده توسط : hamid_80386 sarbaz
#4
حمید آقا ممنون بابت راهنماییت. مثل اینکه خیلی پیچیده میشه.

میشه یک لطفی بکنی و در مورد UML توضیح ساده بدی که چی هست .
  پاسخ
تشکر شده توسط :
#5
UML یک زبان برای ساخت و مستند سازی سیستم های نرم افزاری هست،
در واقع پروژه رو براتون مدل میکنه

UML مخفف Unified Modeling Language به معنای زبان مدلسازی یکپارچه هست

همونطور که یه ساختمان برای ساخت نیاز به نقشه داره، سیستم های کاپیوتری بزرگ هم به نقشه نیاز دارن تا کار از دستتون خارج نشه...

اگه تو دنیا یک زبان برنامه نویسی تصویری داشتیم اون UML بود...

شما به .NET نگاه کن، یکی از مزیت های دات نت این هست که چند تا برنامه نویس با تخصصی متفاوت (مثلاً یکی VB و دیگری #C) بهم JOIN میشن و یک پروژه واحد رو به پایان میرسونن، با چه زبان واحدی باهاشون صحبت کنیم که پروژه پیش بره؟ اون زبان UML هست...

توی یه پروژه وب چطور طراح های html و برنامه نویس های java script و طراح های بانک اطلاعاتی و برنامه نویس های سمت سرور مثل PHP رو بهم لینک کنیم؟
همه اینها با نقشه ای که UML براشون ساخته پیش میره...
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : sarbaz webnevesht boBak
#6
خیلی ممنون حمید آقا . هنوز تصور خاصی نمیتونم از نحوه کارش داشته باشم.

البته من دیشب بعد از اینکه این تاپیک رو زدم نشتم همه کلاسها رو در آوردم . یک سری کلاسها از کلاسهای دیگه ارث برده شده بود که روی کاغذ همه رو به یک شکلی کشیدم. تقریبا میشه گفت از اون ترس از پیچیدگیش خارج شدم چون به نظرم با این کارم جمع و جور تر و کوچک تر به نظر میرسید سیستم.

حالا نمیدونم شاید UML هم که شما میگید همین کار رو میکنه و بهتر . باید در موردش کمی تحقیق کنم. یک نمونه ای چیزی از فایلهای تولیدی این نرم افزارها ندارید که بدونم به چه شکل هست ؟ و اینکه به نظرتون بهترین نرم افزار UML برای PHP چیه ؟
  پاسخ
تشکر شده توسط :
#7
UML برای PHP نیست، یک زبان کلی هست برای همه زبانهای برنامه نویسی...

میتونی از نرم افزار Microsoft Visio 2010 یا از rational rose یا از Visual studio 2010 Modeling Project استفاده کنی...

UML در ویکی پدیا

این هم یک کتاب خوب:
.pdf   UML_Slides[ebook.VeyQ.ir].pdf (اندازه 297.55 KB / تعداد دانلود: 18)
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : sarbaz webnevesht boBak Rain7
#8
ممنون حمید آقا ، حالا یکم در موردش جستجو میکنم ببینم چه جوریاست.

بازم ممنون خیلی لطف کردی.
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان