triton
کاربر فعال
سلام خدمت همه دوستان
در اینجا در واقع درخواست یک همکاری دارم تا با کمک هم یک ORM برای اکشن اسکریپت بنویسیم. در ادامه توضیح می دهم که منظورم چیه:
معمولا زمانی که با پایگاه داده سر و کار داریم ، حتی برای انجام کارهای ساده باید با کدهای SQLite سر و کله بزنیم که بسیار خسته کننده هست و معمولا developer ها به شدت از این قسمت کار (یعنی کار با پایگاه داده) تنفر دارند و از اون فراری هستند.
برای حل این مشکل راه حلی با نام ORM یا Object-relational mapping.
در ORM شما کلاس هایتان را در ابتدا می سازید (کلاس های value object ها) و مثل قبل از اونها در برنامه استفاده می کنید و هرجا که لازم باشه با پایگاه داده کار کنید فقط این کلاس یا نمونه ای از آن را به ORM می دهید و آن همه کارها را انجام می دهد.
برای درک بهتر می تونم یک مثال بزنم:
مثلا ما کلاس زیر را داریم (value object class):
[PHPS]
package vo
{
public dynamic class Student
{
public var id:int;
public var name:String;
public var family:String;
}
}
[/PHPS]
و از اون در برنامه نمونه هایی می سازیم:
[PHPS]
var s:Student = new Student();
s.id = 0;
s.name = 'Mahdi';
s.family = 'Abedi';
[/PHPS]
و وقتی می خواهیم با اون کاری روی پایگاه داده انجام دهیم از API مربوط به ORM را استفاده می کنیم، مثلا برای ذخیره ، حذف ، بروزرسانی یا واکشی اون از پایگاه داده می تونیم کد زیر را داشته باشیم:
[PHPS]
ORM.save(s);
ORM.remove(s);
ORM.update(s);
var other:Student = ORM.get(Student, {id: 0});
[/PHPS]
یا حتی می توان API را به داخل اشیاء فرستاد تا راحت تر کار کرد:
[PHPS]
var s:Student = new Student();
s.save();
s.remove();
[/PHPS]
می بینید که اگر موفق به انجام این کار شویم در 90% موارد دیگر با کدهای sqlite سر وکار نداریم.
بهترین نمونه ای که در این مورد در زبان های دیگر دیدم EF یا Entity Framework در C# هست که کار را برای برنامه نویس های خودش بسیار آسان کرده است.
فکر کنم که دیگر به خوبی ORM را درک کرده اید. البته ORM برای Flex طراحی شده (که البته خیلی ضعیف است) که به خاطر عدم وجود متاتگ (
, [Id], [Column],…) در پروژه های غیر Flex در Flash نمی توان در AS3 استفاده نمود. ولی به نظر من پیاده سازی یک ORM برای AS3 غیر ممکن نیست و انشا الله می توانیم با کمک هم آن را انجام دهیم.
حالا سوال اینجاست چه کسانی حاظر هستند در انجام این کار همکاری کنند و به چه صورت این کار صورت بگیرد؟
در اینجا در واقع درخواست یک همکاری دارم تا با کمک هم یک ORM برای اکشن اسکریپت بنویسیم. در ادامه توضیح می دهم که منظورم چیه:
معمولا زمانی که با پایگاه داده سر و کار داریم ، حتی برای انجام کارهای ساده باید با کدهای SQLite سر و کله بزنیم که بسیار خسته کننده هست و معمولا developer ها به شدت از این قسمت کار (یعنی کار با پایگاه داده) تنفر دارند و از اون فراری هستند.
برای حل این مشکل راه حلی با نام ORM یا Object-relational mapping.
در ORM شما کلاس هایتان را در ابتدا می سازید (کلاس های value object ها) و مثل قبل از اونها در برنامه استفاده می کنید و هرجا که لازم باشه با پایگاه داده کار کنید فقط این کلاس یا نمونه ای از آن را به ORM می دهید و آن همه کارها را انجام می دهد.
برای درک بهتر می تونم یک مثال بزنم:
مثلا ما کلاس زیر را داریم (value object class):
[PHPS]
package vo
{
public dynamic class Student
{
public var id:int;
public var name:String;
public var family:String;
}
}
[/PHPS]
و از اون در برنامه نمونه هایی می سازیم:
[PHPS]
var s:Student = new Student();
s.id = 0;
s.name = 'Mahdi';
s.family = 'Abedi';
[/PHPS]
و وقتی می خواهیم با اون کاری روی پایگاه داده انجام دهیم از API مربوط به ORM را استفاده می کنیم، مثلا برای ذخیره ، حذف ، بروزرسانی یا واکشی اون از پایگاه داده می تونیم کد زیر را داشته باشیم:
[PHPS]
ORM.save(s);
ORM.remove(s);
ORM.update(s);
var other:Student = ORM.get(Student, {id: 0});
[/PHPS]
یا حتی می توان API را به داخل اشیاء فرستاد تا راحت تر کار کرد:
[PHPS]
var s:Student = new Student();
s.save();
s.remove();
[/PHPS]
می بینید که اگر موفق به انجام این کار شویم در 90% موارد دیگر با کدهای sqlite سر وکار نداریم.
بهترین نمونه ای که در این مورد در زبان های دیگر دیدم EF یا Entity Framework در C# هست که کار را برای برنامه نویس های خودش بسیار آسان کرده است.
فکر کنم که دیگر به خوبی ORM را درک کرده اید. البته ORM برای Flex طراحی شده (که البته خیلی ضعیف است) که به خاطر عدم وجود متاتگ (
حالا سوال اینجاست چه کسانی حاظر هستند در انجام این کار همکاری کنند و به چه صورت این کار صورت بگیرد؟