بعضی از مشتریان سارینا که قصد راهاندازی فروشگاه اینترنتی دارند، بنا به سلیقه و نیازهایشان، گاهی یکی از قالبهای آمادهی مجنتو را خریداری میکنند. سپس تیم سارینا مراحل نصب، راهاندازی، طراحی و غیره را آغاز میکند. اکثر قالبهای مجنتو چپچین هستند، در نتیجه یکی از وظایف ما راستچین کردن قالبهای مجنتو است. تعداد کمی از قالبهای مجنتو به شکل راستچین وجود دارند. یکی از سوالاتی که همیشه ذهن مشتریان ما را درگیر میکند، این است که کدام قالب را انتخاب کنند؟ قالب راستچین مجنتو یا قالبی که ما آن را راستچین میکنیم؟ این مطلب به تفاوت این دو قالب اختصاص دارد.
دسترسیپذیری برای همه
چند سال پیش که مدیر پروژهی فروشگاه اینترنتی ورچین بودم، تلفنمان برای کارهای مختلفی زنگ میخورد. اغلب بازاریاب بودند یا میخواستند پروژهی دانشجوییشان را با بررسی فروشگاه اینترنتی ورچین انجام دهند. در یکی از تماسها، آقای جوانی که خیلی مؤدب و خوش صحبت بود تقاضای متفاوتی داشت:« من نابینا هستم و خیلی دوست داشتم از فروشگاه شما خرید کنم، اما وب سایت شما برایم قابل استفاده نیست.» برایم از ابزارهای کمکیاش گفت و توضیح داد آنها چطور وبسایتها را «میخوانند». این ابزارها در عین حال که خیلی کارآمد هستند ،آنقدر هوشمند نیستند که ذهن طراح سایت را بخوانند. طراح سایت باید آنها را راهنمایی کند.
یکی از رایجترین مشکلاتی که در هنگام کار با CSS وجود دارد، درک نادرست از چگونگی حق تقدم سلکتورها است.
این مشکل آنجا خودش را حسابی نشان میدهد که بخواهید CSS نوشته شدهی خودتان را بر روی CSS دیگری اعمال کنید، مانند راستچین کردن یک قالب.
نمود دیگر این مشکل زمانی آشکار میشود که یک وباپلیکیشن پیچیده طراحی کنید و به دلیل بزرگی آن، بیدلیل در داکیومنت خود کلاس و ID ایجاد کنید.
آیا متد 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 حافظهی گرفته شده را به سیستم پس نمیدهد (و در عوض در آینده از آن دوباره استفاده میکند).