🎄 یک برنامه نویس تنبل
2.02K subscribers
1.54K photos
284 videos
37 files
1.91K links
کانال یک برنامه نویس تنبل

🔥لینوکس
🔥برنامه نویسی فرانت‌اند
🔥برنامه نویسی بک‌اند
🔥اخبار تکنولوژی و...

ارتباط با مدیریت :

@CoderNap

اسپانسر هاست سایت راییوم توسط پوینا

https://rayium.ir

@poinair
Download Telegram
🔸Design Patterns

@TheRaymondDev
🔥4👍2
🔶 خواهشا ردیس را به عنوان Primary Database استفاده نکنید!

یکی از جذاب‌ترین ریفکتور هایی که در اکالا انجام دادم، به ریلیز کردن ۴۰ گیگابایت رم ردیس برای استفاده در سبد خرید و سفارش‌ها مربوط میشه. در این فرآیند، موفق شدم تنها از ۴۰۰ مگابایت رم استفاده کنم!

در شروع کار، به این فکر می‌کردم که چگونه می‌توانم ۴۰ گیگابایت رم را آزاد کنم. اولین راه‌حلی که به ذهنم رسید، فشرده‌سازی داده‌ها بود. اما هیچ کامپرسوری نمی‌توانست به اندازه کافی این حجم داده را فشرده کند، و هزینه‌ی Decompress کردن آن بخاطر لود بالای سیستم، بسیار بالا بود.

هر کلید ما حاوی حدود ۱-۲ کیلوبایت JSON بود و مجبور بودیم که هر محصول را بدون TTL در Redis نگه داریم، زیرا Round Trip ما به Redis در لحظه به حدود ۳۰K می‌رسید و Redis ۴۰ گیگابایتی را مصرف می‌کرد. هیچ اپلیکیشنی نمی‌توانست این حجم Request را با منابع پایین و زمان پاسخ‌دهی ۱۰ میلی‌ثانیه انجام دهد!

در ادامه، وقتی وارد فضای حل مسئله شدم:

پاک‌سازی داده‌های اضافی: اولین قدم ما حذف کلی داده‌های غیرضروری بود که هر کلید را به حدوداً ۵۰۰ بایت تبدیل کرد.

استفاده از Protobuf: به این فکر کردم که چرا از JSON استفاده کنیم؟ با استفاده از deserializer و serializer قدرتمندی مثل Protobuf، می‌توانستیم حجم داده‌ها را به طور چشمگیری کاهش دهیم. با تبدیل داده‌ها به باینری و ذخیره آن، حجم هر کلید به حدود ۳۰۰ بایت کاهش یافت، که به معنای کاهش ۸۰ درصدی مصرف رم بود. با این حال، کیفیت و سرعت بالا در اکالا برای ما بسیار مهم بود.

شکستن کلیدها: کلیدها را به دو بخش تقسیم کردم:

اطلاعات محصول (شامل نام، بارکد، آدرس عکس و...) در یک کلید با حجم تقریباً ۲۰۰ بایت.
موجودی هر محصول در فروشگاه‌ها در کلیدی دیگر با حجم حدود ۱۰۰ بایت.
در روش قبلی، اگر یک میلیون کالا داشتیم، مصرف حدود ۲۸۶ مگابایت بود. اما در روش جدید، فرض کنیم از یک میلیون تا 2000 محصول داریم و برای یک میلیون کالا موجودی در استور های مختلف، حدود ۹۵ مگابایت مصرف می‌شد!
کش کردن محصولات: همچنین، کالاهای اضافه‌شده به سبد خرید مشتریان را به مدت ۴ روز کش کردم. به جای استفاده از Redis به عنوان Primary Database و بدون TTL، هرگاه داده‌ای نداشتیم، از منبع اصلی اطلاعات را می‌گرفتیم و دوباره به مدت ۴ روز کش می‌کردیم. اگر کاربری همان کالا را دوباره به سبد خرید اضافه می‌کرد، TTL آن به صورت Sliding افزایش می‌یافت.

در نهایت، با همین ۴۰۰ مگابایت، همه چیز به خوبی به هم رسید و ما توانستیم پرفورمنس و سرعت را بدون هیچ افت کیفیتی حفظ کنیم!

</Hasan Arab borzo>

@TheRaymondDev
6👍1
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
🔶 دوره آموزشی طراحی قالب شرکتی بر پایه وردپرس

1- ایجاد پوشه و فایل ها
2- آپلود پروژه در گیت هاب
3- ایجاد سربرگ و صفحه معرفی
4- خدمات ما
5- نمونه کارها
6- آمار شرکت
7- تیم ما
8- مشتریان ما
9- فوتر
10 - جدا سازی بخش های قالب
11- پویا سازی منوها
12- ایجاد پست تایپ ها
13- پویا سازی خدمات ما با متاباکس
14- پویا سازی تیم ما با متاباکس
15- پویا سازی مشتریان ما با متاباکس
16- پویا سازی آمار شرکت
17- پویا سازی نمونه کار
18- ایجاد متاباکس گالری
19- جاوا اسکریپت برای گالری نمونه کار
20- نمایش گالری عکس در نمونه کارها
21- ایجاد برگه و برگه وبلاگ
22- تک صفحه (Single) برای وبلاگ
23- ابزارک ها
24- ایجاد صفحات ۴۰۴ – دسته بندی – بایگانی – جستجو و برچسب ها
25- نظرات
26- ایجاد تنظیمات سایت با فریم ورک Option Tree و فوتر

قیمت دوره 999,000 تومان
با تخفیف 60 درصد 399,000 تومان


https://rayium.ir/?p=1412
#دوره
@TheRaymondDev
👍1
🔶 کتابخانه (CopyCode JS) کپی - پیست کد ها

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

پیش نیاز استفاده از کتابخانه جی کوئری است.

پیش نمایش آنلاین :

https://rayiumir.github.io/copycode-js/


گیت هاب :

https://github.com/Rayiumir/copycode-js

در استفاده از copycode.js با دو تگ pre و code سروکار دارید. برای تنظیم دکمه، از استایل برای تنظیمات دکمه استفاده کنید و در هر ویرایشگری که از این دو تگ پشتیبانی می کند، سازگار است.


برای حمایت از ما توی گیت هاب ⭐️ دهید.

#jQuery
@TheRaymondDev
👍2😐1
Forwarded from Golden Code (@lix)
در لاراول وقتی نیاز به پردازش دیتای سنگین داریم میتونیم از lazy collection استفاده کنیم.

با استفاده از lazy collection درواقع دیتاها فقط زمانی که بهشون نیاز باشه لود میشن، پس بدلیل لود تدریجی سرعت بارگزاری بهتر میشه!
این یعنی برخلاف Collection معمولی که همه‌ی دیتاها رو یک‌جا لود میکنه.
#Laravel
@GoldenCodeir
(به‌منبع و مثالش دقت کنید 👇🏾)
https://x.com/thelarrybarker/status/1855281331770429474?t=W8HppF5MAi6ewngacubEXw&s=35
👍3
🔶 بعد از چند سال توقف واردات خودرو, خودروی شیائومی SU7 در تهران دیده شد

@TheRaymondDev
7🤣5🤮1
Forwarded from Linuxor ?
به جزئی از سیستم که همه اجزا به اون وابسته ان و در صورت خرابی، کل سیستم از بین می‌ره، SPOF یا نقطه شکست می‌گن


جالب اینجاست پیدا کردن SPOF توی یه سیستم کار ساده ای نیست و ممکنه آشکار نباشه که با ریداندنسی و بالانسینگ بین اجزا می‌شه SPOF رو کاهش داد


مثلا سیستم های ارزی و بانکی تعداد زیادی سرور دارن که به صورت تکراری داده هارو توش بکاپ میگیرن و حتی نیازه که سرور های بکاپ هم تراکنش هارو commit کنن تا حتی یک ثانیه سرور اصلی قطع شه هیچ تراکنشی بلاتکلیف نشه

🐧 @Linuxor
👍7
🔶 بنابر گزارش تامز هاردور، هسته‌ی لینوکس ۶/۱۱ با به‌روزرسانی‌های خود، گامی مهم در جهت بهبود پشتیبانی از کارت‌های حافظه‌ی SD برداشته است. این به‌روزرسانی به‌ویژه روی کارت‌های حافظه‌ی SD با ظرفیت زیاد و سرعت انتقال داده سریع مانند SDUC و UHS-II تمرکز دارد.

یکی از ویژگی‌های مهم هسته‌ی لینوکس ۶/۱۱، پشتیبانی کامل از کارت‌های حافظه‌ی SDUC است. این کارت‌ها با ظرفیت تئوری ۱۲۸ ترابایت، امکان ذخیره حجم عظیمی از داده‌ها را فراهم می‌کنند. با توجه به اینکه در‌حال‌حاضر کارت‌های حافظه‌ی SDUC با ظرفیت ۸ ترابایت در بازار موجود هستند، می‌توان انتظار داشت که در آینده‌ی نزدیک شاهد تولید کارت‌های حافظه با ظرفیت‌های بیشتر نیز باشیم.

</Zoomit>

#خبر

@TheRaymondDev
🔥3👍1
🔶 همه چیز درباره پکیج های اسنپ (snap) در اوبونتو

https://B2n.ir/d02618

#لینوکس

@TheRaymondDev
👍1🤔1
🤣16🔥1
🔶 ابزار Upscayl : افزایش کیفیت عکس با هوش مصنوعی

https://github.com/upscayl/upscayl

برای سیستم عامل های لینوکس, مک او اس, ویندوز در دسترس است.

#AI
@TheRaymondDev
11👍1
🔶 به نظر میاد بعد از ۳۰ سال ایران صاحب جنگنده سوخو ۳۵ روسی شده است.

طبق گفته ها قرار است به مرور زمان ۲۴ فروند جنگنده سوخو ۳۵ برای مصر تولید شده اند به ایران تحویل داده شوند و حتی صحبت از ایجاد خطوط تولید سوخو ۳۵ در ایران شده که هنوز تایید نشده است.

#Technology
@TheRaymondDev | @PARVAZDAROJ
👍7🤣1
🔶 پلتفرم Fragment ، که برای خرید اشتراک پریمیوم، استار تلگرام و غیره ... با رمزارز TON استفاده می شود, احزار هویت را اجباری کرده است. با اجباری شدن احزار هویت کاربران ایرانی نمی تواند در پلتفرم فعالیت کند و امکان نقد کردن درآمدهای تبلیغات تلگرام و استارهای کاربران ایرانی نخواهند داشت.

#خبر

@TheRaymondDev
💔1
🤣12
Forwarded from Linuxor ?
به این نوع شرط میگن implicit else یعنی بجای اینکه else بزاریم اخر کد بخش else رو نوشتیم

بهتره توی کد زدن حتما بلوک else رو بزارین توی شرط های پیچیده تر باعث کاهش خوانایی و کاهش قابلیت نگهداری کد میشه اما اگه else وجود داشته باشه باعث شفافیت بیشتری میشه‌

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

🐧 @Linuxor
👍4