‫۹ سال و ۷ ماه قبل، شنبه ۲۵ بهمن ۱۳۹۳، ساعت ۱۸:۰۴
با سلام

آیا بدین صورت درست است که Repository رو بصورت جنریک جهت حذف کدهای تکراری لایه سرویس بسازیم (Add/Update/Delete/GetAll/GetById) سپس با کمک Extention Methods (کلاس‌های تکمیل کننده) سایر متدهای مورد نیاز هر entity رو به Reository اش اضافه کنیم (مثلا GetByName/GetByRangeDate).

بدین صورت هم حد و مرز رعایت میشه و هم از کدنویسی‌های تکراری راحت میشیم
‫۹ سال و ۷ ماه قبل، شنبه ۲۵ بهمن ۱۳۹۳، ساعت ۱۴:۴۲
10 فرمان برنامه نویسان(خلاصه)
  1. بفهم و متوجه شو که تو اشتباه خواهی کرد: نکته اینست که قبل از اینکه وارد محصولتان شوند باید پیدایشان کنی.
  2. تو خود کدت نیستی: بیاد داشته باش که نکته اصلی مرور کدها پیدا کردن مشکلات است.
  3. مهم نیست که چقدر "کاراته" میدونی، همیشه یکی بیشتر میدونه: چنین فردی در صورتیکه شما بخواهید چند حرکت جدید به شما میاموزد.
  4. بدون مشاوره کدهایتان را بازنویسی نکنید: بین حل مشکلات کد‌ها و بازنویسی کدها مرز مشخصی وجود دارد.
  5. راه حل افرادی که کمتر از شما میدانند تحمل، صبر و احترام است: افراد غیر فنی که با برنامه نویسان برخورد دارند فکر میکنند که بهترین نقش اول را در گروه پر از گریه کن دارند.
  6. تنها ثابت جهان تغییر است: آغوشتان را باز کنید و لبخند بزنید. به تغییرات در مقررات و یلتفرمها یا ابزارها مثل یک چالش نگاه کنید.
  7. تنها مرجع واقعی، دانش است نه موقعیت: دانش قدرت می‌آورد و قدرت احترام، پس اگر در محیطتان احترام میخواهید دانش بجوئید.
  8. برای چیزی که اعتقاد دارید بجنگید ولی شکست را به آرامش بپذیرید: بفهمید که بعضی وقتها ایده‌های شما رد میشوند. حتی اگر در آخر حق با شما بود، انتقام نگیرید و نگوئید"من که گفته بودم".
  9. "مردی در تاریکی"  نباشید: یک شخص کدنویس در یک دفتر تاریک نباشید که فقط برای خرید یک نوشابه ظاهر یشود. بدور از تماس، روشنایی، و بدون کنترل .
  10. از کدها نقد کنید نه از کدنویس، و با کدنویس مهربان باشید نه با کدها: تا حد زیادی نظرات سازنده و مثبت برای بهبود کدها ارائه بدهید. 
‫۹ سال و ۸ ماه قبل، یکشنبه ۱۹ بهمن ۱۳۹۳، ساعت ۱۳:۳۸
سلام
خیر دوست عزیز، روش استفاده شده ActiveRecord نیست. در این مثال چون Order و OrderItem در یک Aggregate قراردارند و Order به عنوان AggregateRoot مشخص شده است و مسئولیت چک کردن Invariant‌ها را برعهده دارد، لذا از ایجاد و حذف مستقیم OrderItem جلوگیری شده و به جای آن از متد‌های Add و Remove بر روی Entity استفاده شده است. اینجا بحث Object مطرح هست و نه دیتابیس. برخلاف ActiveRecord که بر روی متد Add، شی را در دیتابیس Insert میکند، اینجا OrderItem تنها به شیء Order اضافه شده است. 
برای اطلاعات بیشتر در مورد Aggregate‌ها و Invariant‌ها به پست زیر مراجعه کنید : 
‫۹ سال و ۸ ماه قبل، یکشنبه ۱۹ بهمن ۱۳۹۳، ساعت ۱۳:۱۲

زمانیکه متدهای Add و Remove به داخل entityها منتقل می‌شن، الگویی حاصل میشه به نام Active record. این الگو در اصل یک ضد الگو هست به این دلایل:

- متدهای CRUD به اینترفیس عمومی موجودیت‌ها منتقل شدن.

- تست پذیری این نوع اشیاء پایین هست.

- SRP را نقض می‌کنند.

اطلاعات بیشتر

‫۹ سال و ۸ ماه قبل، جمعه ۱۷ بهمن ۱۳۹۳، ساعت ۲۲:۱۴
یه بار یکی از نزدیکانم یادمه یه قیمت برای وب سایتش گفتم که البته بالا هم نبود و چون خیلی نسبت نزدیک داشت تخفیف خوبی هم بهش دادم ولی بعد از یه مدت از تهران اومد شهر ما و گفت به یکی وب سایت داده طراحی کرده (چون ارزونتر از من بود حدود 200 تومان) و بلد نیست باهاش کار کنه و چطوری میتونه سایتش رو به روز کنه که متوجه شدم طرف اصلا html براش زده و سیستم مدیریتی نداره که بخواد تغییری ایجاد کنه و هر تغییر را باید به طرف بگه که خلاصه بعدا اومد پیش خودم و پول مجدد داد تا من براش یک سیستم مدیریتی تحویل بدم، یادمه پشت خط رفت بهش گفته بود میخوای یک میلیون بده برات وردپرس نصب کنم ، اونم یک نصب ساده