چطور با مشکل بروزرسانی میلیون‌ها رکورد در Rails کنار نیامدیم

نقاشی حرکت بر روی ریل‌ها
آیا متد find_each را می‌شناسید؟ اگر با Ruby on Rails کار کرده باشید حتماً از این متد استفاده کرده‌اید. find_each و متد مشابه آن each، برای گرفتن رکوردها به صورت تک‌تک استفاده می‌شوند. به عنوان مثال:

People.find_each(&:party_all_night!)
People.each(&:party_all_night!)

تفاوت بین find_each و each در نحوه‌ی پیاده‌سازی آنهاست. متد each تمام رکوردها را در یک آرایه ذخیره می‌کند و یک Enumerator برای این آرایه خروجی می‌دهد. حالا فرض کنید تعداد رکوردها چند میلیون باشد. تمام این چند میلیون ActiveRecord باید در حافظه ذخیره شوند. میزان مصرف حافظه سرسام‌آور خواهد شد. این می‌تواند مشکل‌ساز باشد، مخصوصا برای پروسس‌هایی که عمر طولانی دارند چون که Ruby حافظه‌ی گرفته شده را به سیستم پس نمی‌دهد (و در عوض در آینده از آن دوباره استفاده می‌کند).

۴ نظر
ادامه‌ی مطلب را بخوانید

مجنتو ۲

image00

یک سال و نیم پیش مجنتو ۲ نسخه Developer Beta منتشر شد و حالا هرچقدر بیشتر جلو می‌رویم، به نسخه‌ی نهایی که قرار است در دسترس عموم قرار بگیرد نزدیک‌تر می‌شویم. وبسایت مجنتو اعلام کرده که نسخه نهایی را در نیمه‌ی چهارم۲۰۱۵، یعنی پاییز۹۴، منتشر می‌کند. اما لازم نیست تا آن موقع صبر کنیم تا بفهمیم در مجنتو ۲ چه امکانات جدیدی اضافه شده است.

۴ نظر
ادامه‌ی مطلب را بخوانید

بازطراحی (Redesign) صفحه محصول فروشگاه ebay

redesigning_ftw

کمال‌گرایی یا وسواس، اسمش را هرچه بگذاریم، این ویژگی خوب یا بد در من نهادینه شده‌است؛ با این نگرش، می‌توان اثبات کرد که “هر چیزی می‌تواند بهتر شود”. به همین دلیل تصمیم گرفتم تا به شکل عملی، نمونه‌ای کوچک از روند و نتیجه بهینه‌سازی رابط کاربری (User Interface) و تجربه کاربری (User Experience) را به شما نمایش دهم.

۲ نظر
ادامه‌ی مطلب را بخوانید

بلاک ایستا(Static Blocks) در مجنتو

blogcart_static_block-(1)

بلاک‌ ایستا (Static Blocks)، امکانی است که به شما اجازه می‌دهد بدون نیاز به ویرایش کدهای قالب، از پنل ادمین تغییراتی در Front-end ایجاد کنید. به این شکل می‌توانید از بلاک‌ها در صفحات و بخش‌های مختلف استفاده کنید، برای مثال با پیدا کردن بلاک لینک‌های فوتر در پنل ادمین، می‌توانید عنوان‌های منو در فوتر را تغییر دهید. همچنین با بلاک‌های ایستا می‌توانید بنر و پروموشن‌های گرافیکی را هر لحظه و بدون نیاز به ویرایش قالب، تغییر دهید و برای جلب توجه بازدیدکننده‌های فروشگاه‌تان از بنرهای جدید استفاده کنید.

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

یک نظر
ادامه‌ی مطلب را بخوانید

نرخ تبدیل فروشگاه اینترنتی خود را افزایش دهید

realistic conversion rate

نرخ تبدیل چیست؟

فرض کنید فروشگاه اینترنتی شما روزانه ۱۰۰۰ بازدیدکننده دارد که ۱۰ نفر از آنها به مشتری تبدیل می‌شوند. نرخ تبدیل یعنی نسبت تعداد مشتریان به بازدیدکنندگان، که در اینجا ۱٪ می‌شود.

تا زمانی که فروشگاهی اینترنتی را اداره می‌کنید، این عدد برایتان مهم خواهد بود. چرا؟ اگر فروشگاه اینترنتی شما به طور متوسط در هر سفارش ۵۰۰۰ تومان فروش داشته باشد، با ۱۰ سفارش در روز، روزانه ۵۰ هزار تومان فروش خواهید داشت. حالا اگر بخواهید فروشتان به ۲۰۰ هزار تومان در روز برسد – با توجه به نرخ تبدیل فروشگاه – تعداد بازدیدکننده‌ها باید به ۴۰۰۰ نفر در روز برسد. اگر کمی تجربه در این زمینه داشته باشید، می‌دانید که این کار هزینه زیادی خواهد داشت. راه دیگر آن است که نرخ تبدیل افزایش یابد. مثلا اگر آن را به ۲٪ برسانید، تنها لازم است روزانه ۲۰۰۰ بازدیدکننده داشته باشید. (البته راه سومی هم وجود دارد که در مطالب بعدی به آن خواهم پرداخت).

۲ نظر
ادامه‌ی مطلب را بخوانید

چرا باید بنویسیم؟

programming-in-a-poetic-way

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

۱۳ نظر
ادامه‌ی مطلب را بخوانید