Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
🔶 آپلود فایل عکس در لاراول

1- تعریف مسیر آپلود فایل در filesystems.php قسمت disks :

'public_files' => [
'driver' => 'local',
'root' => public_path(),
'url' => env('APP_URL').'/',
'visibility' => 'public',
],


2- برای جدول :

$table->string('img');


3- برای Request :

'img' => ['required', 'mimes:png,jpeg', 'max:2048'],


4- برای Controller :

public function store(Request $request)
{
$data = $request->validated();

if ($request->hasFile('img')) {
$file = $request->file('img');
$file_name = $file->getClientOriginalName();
$file->storeAs('customers/img', $file_name, 'public_files');
$data['img'] = $file_name;
}

Customer::create($data);

return to_route('customers.index');
}


5- برای Blade :
<form action="{{ route('customers.store') }}" method="POST" enctype="multipart/form-data">
<div class="mb-3">
<label for="formFile" class="form-label">تصویر شاخص :</label>
<input class="form-control rounded-5 @error('img') is-invalid @enderror" name="img" type="file" id="formFile" accept="image/*">
@error('img')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<button type="submit" class="btn btn-primary rounded-5 mt-4"><i class="fa-duotone fa-send"></i> ثبت عکس جدید </button>
</div>
</form>


#لاراول

@TheRaymondDev
Forwarded from LinFAQ (Reza)
#روزی_یک_نکته با دلاتو

دسته‌بندی: #کاربردی #أموزشی
#emacs #vterm

برای بدست آوردن یه ترمینال با امکانات کامل داخل emacs باید چیکار کنیم؟🤔

فقط کافیه از vterm استفاده کنید:
(use-package vterm
ensure t)

برای پنهان کردن modeline داخل vterm هم از دستور زیر استفاده کنید:
(add-hook 'vterm-mode-hook
(lambda () (setq mode-line-format nil)))

ضمنا نیازه که cmake هم روی سیستمتون نصب باشه.


@LinFAQ | @LinAcademy
Forwarded from Pishro App
سال 1990 بود که HTML به دنیا معرفی شد

در سال 1994 عزیز دل CSS به جهان معرفی شد تا دردسرهای HTML را حل کنند و عملا مشکلات HTML حل شود

در سال 1995 باز دیدن روی وب هیچ کاری نمیشه کرد، لذا JavaScript متولد شد

در سال 2006 باز با به دنیا آمدن JQuery توانستند جلوی خودکشی برنامه نویسها را بگیرند وگرنه اون 3 تا داشتند ملت را دیوانه میکردند

در سال 2010 باز Web Developer ها در نزدیکی سکته بودند که Angular JS به بازار آمد تا اندکی از میزان درد و خونریزی کاسته شود

در سال 2013 کل آنچه گفتیم تا الان بدرد نخور شده بود، لذا React به بازار آمد بلکی باهاش بشود اندکی درست کار کرد

در سال 2014 بود که Vuejs آمد چون ملت از React هم خسته شده بودند

در سال 2016 یکدفعه Angular به بازار عرضه شد و ملت مسلمان و غیر مسلمان با خود گفتند : اینه !. دیگه خلاص شد - این آخرین فریم ورک و تمام کننده همه چیز است، برای همیشه راحت شدیم

در سال 2017 آمدند WASM را آوردند بلکه مشکلات سرعت و امنیت و منابع و سختی یادگیری و ... را که همه موارد بالا برای بشریت درست کرده بودند را حل کنند !

در سال 2019 باز svelte آمد ، شاید که بتوان بی دردسر در Front کار کردن اندکی واقعی شود

باز در همان 2019 ، دیدن نمیشه که یکسری از بالاییها را بندازند سطل آشغال که، لذا React Hooks آمد تا کار کردن با React امکان پذیر بماند

باز در 2020 ، Vue Composition آمد تا اگر کسی دید React Hooks نمی تواند جواب باشد، از طریق آن و در فریم ورک دیگر مشکلاتش را حل کند

در 2020 ، سعی شد با HTMX هم تلاشهایی بشود بلکی مشکلات همه اینها یک طوری حل شود

در 2021 ، باز React Suspense را آوردند، باشد که بتواند با React و داسئانهایش ادامه داد

در 2023 هم svelte Runes آمد تا گند کاریهای svelte لاپوشانی شود

هم اکنون در 2024 ، همچنان JQuery در 75 درصد از بسترهای وب مورد استفاده می باشد و بقیه هم فقط در حال افزایش پیچیدکی و دردسر هستند !!DevTwitter

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from کارزار
Media is too big
VIEW IN TELEGRAM
⭕️نشست ویژه «مسئولیت پلتفرم‌ها، آزادی بیان و اخلاق در دنیای دیجیتال»
در تاریخ ششم مرداد ماه ۱۴۰۳ در کافه‌رویداد کارزار برگزار شد.

در حالی که بحث بر سر آزادی بیان در فضای دیجیتال و مسئولیت‌پذیری مدیران رسانه‌های اجتماعی همچنان داغ است، بازداشت اخیر پاول دوورف، بنیانگذار تلگرام در فرانسه، بار دیگر اهمیت این موضوع را برجسته کرد.

در این نشست کارشناسان، فعالان مدنی و نمایندگان رسانه‌ها به بررسی چالش‌ها و راهکارهای این حوزه پرداختند و ضمن بررسی ابعاد مختلف آزادی بیان در عصر دیجیتال، به نقش مدیران شبکه‌های اجتماعی در حفظ این آزادی و در عین حال مقابله با سوءاستفاده از آن پرداخته شد.

🔗 برای تماشای ویدیوی کامل نشست به صفحه آپارات کارزار مراجعه نمایید:
aparat.com/karzar.net


✌🏼 #قدرت_بی_قدرتان
آموزش ساخت پاپ‌آپ با HTML بدون استفاده از جاوااسکریپت

🔸 ویژگی Popover یکی از امکانات جدید HTML هستش که در نسخه HTML 6 معرفی شده. این اتریبیوت به شما اجازه می‌ده تا بدون نیاز به استفاده از جاوااسکریپت یا پلاگین‌های اضافی به سادگی پاپ‌آپ ایجاد کنید.

نحوه استفاده 🚀
<div popover id="mydiv">
<h2>من تایتلم</h2>
<hr>
<p>حال کن اینم از پاپ‌اور شما 😎</p>
<button popovertarget="mydiv" popovertargetaction="hide">فشار بده جهت بستن</button>
</div>

<button popovertarget="mydiv">فشار بده جهت باز شدن</button>


🌐 مشاهده داکیومنت popover

🔻 نمونه کد آنلاین

#️⃣ #html #popover

🚀 @coolycode
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond 🐰 Dev)
🔶 جی کوئری کتابخانه جاوا اسکریپت کاملی هست که به تنهایی ۷۵ درصد پویایی وب سایت ها به دوش می کشد ...

نسخه ۴ بتا هم منتشر شده...

https://blog.jquery.com/2024/07/17/second-beta-of-jquery-4-0-0/

@TheRaymondDev
Forwarded from Abolfazl Devs (Abolfazl)
https://github.com/ixabolfazl/poembot

این پروژه کارش اینه که بر اساس زمان بندی و دسته بندی شعری که تو تنظیماتش مشخص میکنید از سایت گنجور میاد شعر دریافت میکنه و تو کانال تلگرام می‌فرسته

یه نمونه که برا خودم اجرا کردم کانال زیر هست که داخلش هر روز صبح و عصر میاد یه رباعی از خیام و یا مولانا میفرسته تو کانال
@iipoem

نیاز به سرور نداره و با گیتهاب اکشن هم میتونید یه نمونه برا خودتون ران کنید.

تا حد امکان سورسشم مرتب کردم که بشه راحت تغیر داد و استفاده کرد👌

اگه خوشتون اومد خوشحال میشم تو گیتهاب ستاره بدید.
@abolfazl_devs
Forwarded from Gopher Academy
🔵 عنوان مقاله
spark-connect-go: Apache Spark Connect Client for Go

🟢 خلاصه مقاله:
مقاله مورد بررسی به توصیف محصول نرم‌افزاری جدید به نام "Spark Connect" برای کلاینت Apache Spark در زبان برنامه‌نویسی Go می‌پردازد. این محصول، که هنوز در مرحله آزمایشی بسیار بالایی قرار دارد، امکان اتصال و تعامل برنامه‌های نوشته شده به زبان Go با Apache Spark را فراهم می‌کند. Apache Spark یک موتور محاسباتی قدرتمند برای پردازش داده‌های بزرگ است و استفاده از آن در زمینه‌های تحلیل داده و یادگیری ماشین رایج است. با اضافه شدن پشتیبانی از زبان Go، توسعه‌دهندگانی که در این زبان تخصص دارند می‌توانند از قابلیت‌های محاسباتی Spark بهره‌مند شوند. این گام نوین می‌تواند فرصت‌های تازه‌ای را برای بهینه‌سازی و افزایش کارایی پروژه‌های مبتنی بر داده ایجاد کند و در نهایت به پیشبرد دانش و فناوری در حوزه‌های مختلف کمک کند.

🟣لینک مقاله:
https://github.com/apache/spark-connect-go


👑 @gopher_academy
📱 تست نفوذ حرفه‌ای و دسترسی کامل به گوشی‌های اندرویدی!

🖥 یادگیری تکنیک‌های پیچیده و ابزارهای تخصصی برای تست نفوذ اندورید!

📶 در این سناریو تست نفوذ بر روی موبایل هایی که به شبکه Wi-Fi ما متصل هستند، صورت می‌گیرد.

📝 در این سناریو از دیوایس های واقعی استفاده می‌شود و از مجازی ساز ها ( مانند Nox و ... ) استفاده نمی‌شود و کاملا در محیط واقعی و کلاینت های واقعی انجام می‌شود.

⌨️ قراره یاد بگیریم با زبان پایتون دسترسی به پیامک ها و ... از موبایلی که به شبکه ما وصل هست بگیریم.

🔜 به زودی ...
با ما همراه باشید ...
💪 حمایت کنید ...

🌐 Website: LearnSecurity.ir
🎓 Channel: @LearnSecurityIR
🖥 Programming: @GozarIT | @PyFarsi
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Sadra Codes
من یک پروژه رو چطور توسعه می‌دم؟ شما چطور توسعه می‌دید؟!

ابتدای کار، نه خبری از git هست، نه vscode و نه هیچ لینتر یا پلاگین خاصی. صرفا یه ایده زده به سرم و فقط می‌خوام تست کنم ببینم عملی هست یا نه. (به عبارتی، آیا پتانسیل پیشرفت یا ارزش اینو داره که زمان و انرژی بیشتری روش بذارم؟)

در حدی که کل کار توی یه main.py در میاد! 🫡

اگه پتانسیل رو داشت و به نتایج خوبی رسیدم، راجع بهش پست می‌ذارم و نظر و فیدبک می‌گیرم. رفقا.. اگه ابزار Xی وجود داشت که مشکلاتی از قبیل W و Y و Z رو حل می‌کرد، شما ازش استفاده می‌کردید؟ بنظرتون به چه صورت رلیز شه؟ چطوری در دسترس باشه؟ از قابلیت‌هایی که دوست دارید داشته باشه بگید و..

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

بعد از این مرحله، تصمیم می‌گیرم مدل پروژه به چه شکل باشه. کاربراش رو تعیین می‌کنم و یه مدل توسعه خوب به کار می‌گیرم و شروع می‌کنم. این مرحله خیلی مفصله و خب فعلا زیاده بهش نمی‌پردازم اینجا.

افراد زیادی هستن توی مارکت که تحت عنوان Solopreneur کار می‌کنن. یک سری از ابزارهایی که شما امروز ازش استفاده می‌کنید (یا شاید پولی بابتش می‌پردازید) توسط این افراد ساخته شدن. بارها دیدم که یه سریاشون حتی می‌گن، تمرکزشون صرفا روی دلیور کردن فیچر به هر قیمتیه. حتی از version controller هم استفاده نمی‌کنن!! فقط push می‌کنن. هیچ تستی هم ندارن! آنچنان کدبیس سنگینی ندارن و اکثر تمرکزشون روی Shipmentه.

مارک لو (Marc Lou) چند وقت پیش یه توییت زد که یکی از ابزارهایی که قبلا درست کرده بود رو بازخرید کرده. گویا ابزار رو طراحی کرده بود و بخاطر شرایط مالی مجبور شد به قیمت ۱۰ هزارتا واگذار کنه به یه تیم دیگه. چند روز پیش بعد از چند ماه دوباره پروژه رو از اون تیم خرید (رایگان) و داره روش کار می‌کنه. نکته‌ای که این وسط هست، زمانی که این پروژه دست Marc نبود، هیچ توسعه‌ای روش انجام نمی‌شد! حالا خود مارک دلیلش رو دقیق نگفت ولی من حدس می‌زدم به خاطر همون طرز تفکر تمرکز ۱۰۰ درصدی روی shipment باشه.

یعنی مارک با این طرز تفکر توسعه این ایده رو پیش برده بود و خب خروجی کار نهایتا یه تیکه کده که صرفا کار می‌کنه، پول می‌سازه و ظاهرا استیبله ولی به چه قیمت؟ نه تست داره. نه تمیزه. نه داکیومنت درستی داره و واسه onboard شدن روش چاره‌ای جز ریویو کردن کد ندارید. خب تمام این مسائل باعث میشن که توسعه این پروژه واسه یه تیم جدید یه معضل باشه. اگه قرار باشه این ایده پول بیشتری بسازه، همزمان با تغییر نیاز کاربرها باید اون ایده هم تغییر کنه و نیازها رو براورده کنه.

ولی خب اون تیم با این خرید، یه حجم خوبی از مارکت رو از وجود خودش آگاه کرد و خیلیم ضرر نکرد!

توییت مارک: https://twitter.com/marc_louvion/status/1834574006827250020

دوست دارم نظر شما رو هم بدونم. شما چیکار می‌کنید؟ فلوی توسعه شما به چه شکله؟
بچه‌ها،منو یکی از دوستام که داریم پروسه مصاحبه‌ رو می‌گذرونیم، یه وبسایت زدیم تا تجربه‌هامون از مصاحبه با شرکت‌های مختلف رو باهم به اشتراک بذاریم. اگه دوست داشتین، می‌تونین کانتربیوت کنین و ازمون حمایت کنین.

دمو سایت :
https://mo1ein.github.io/jobname/index.html

@DevTwitter | <نوشین/>
Forwarded from Python BackendHub (Mani)
حق!
ایلان ماسک یک حرف قشنگ زد، گفت هرچی قدم ها کوچیک تر باشه و سریعتر باشه، بهتره تا قدم های بلند تر. این موضوع چه استارت آپ چه FAANG صدق میکنه. حالا چرا؟
۳ نقطه تصور کنید تو یک بردار مختصات، اولی میشه software requirement. چیزی که دارید کد میزنیدش. دومی میشه business requirement. چیزی که بیزنس گفته نیاز هست بهش. و سومی میشه user needs. چیزی که واقعا یوزر‌ نیاز داره.

این ۳ نقطه تو واقعیت نزدیک بهم نیستن. چون بیزنس هیچوقت درک ۱۰۰درصدی از نیاز کاربر نداره، و نرم افزار سعی میکنه چیزی که بیزنس گفته رو پیاده کنه. نیاز انسان دائم در حال تغییره، پس نقطه سوم در حال تغییره رو نمودار. حالا منطقیه شما یک مسیر خیلی بزرگ رو برید؟ اون موقع میبینید دیگه اون نیازمندی وجود نداره وقتی به مرحله shipment رسیدین! ولی‌قدم هاتونو هرچی کوچیک و سریعتر کنید اون نقطه در حال حرکت رو بهش بهش نزدیک تر میشید و دنبالش میکنید.

@PyBackendHub
Forwarded from Gopher Academy
چرا Go همچنان ایستا نوع باقی مانده است:

تعیین نوع در زمان کامپایل: حتی با استفاده از Generics، کامپایلر Go در زمان کامپایل نوع داده‌ها را تشخیص داده و آنها را بررسی می‌کند. این ویژگی از ایجاد خطاهای مربوط به نوع جلوگیری می‌کند.

ایمنی و کارایی: بر خلاف زبان‌های پویا (مثل Python)، Go نمی‌گذارد که در زمان اجرا نوع‌ها تعیین شوند. این باعث می‌شود که برنامه در زمان اجرا سریع‌تر باشد و از نظر مصرف حافظه و منابع بهینه‌تر عمل کند.

پایداری و اطمینان: Go به دلیل نوع ایستا و بررسی نوع‌ها در زمان کامپایل، امکان باگ‌ها و خطاهای ناشی از نوع‌های نادرست را کاهش می‌دهد. با وجود Generics، این اطمینان همچنان حفظ شده است.


👑 @gopher_academy
پک‌من به نسخه ۷ آپدیت داد کاسه کوزه های مارو شکست :)))


aur helper
هاتون رو سر وقت بروز کنید، yay و paru هنوز آپدیت نگرفتن.


@SohrabContents
💎 پکیج Django Cleanup مدیریت خودکار فایل‌های اضافی 💎

امروز می‌خوام در مورد یه کتابخونه خیلی کاربردی به اسم Django Cleanup صحبت کنم که کلی از مشکلات مربوط به مدیریت فایل‌ها رو توی پروژه‌های جنگو حل می‌کنه. 😎 اگه تا حالا با فایل‌های اضافی و بی‌استفاده دست‌وپنجه نرم کردی، این کتابخونه می‌تونه حسابی به کارت بیاد.

حالا Django Cleanup چیه؟ 🤔
به طور خلاصه، Django Cleanup به صورت خودکار فایل‌ها و تصویرهای ذخیره‌شده توی پروژه رو مدیریت می‌کنه. فرض کن یه فایل یا عکس توی پروژه آپلود کردی و بعد اون رکورد یا مدل رو حذف کردی. معمولاً فایل مرتبط توی سرور باقی می‌مونه و فضای سرور رو اشغال می‌کنه. 😒 Django Cleanup این فایل‌های اضافی رو به صورت خودکار حذف می‌کنه تا دیگه نیاز نباشه خودت دستی این کارو انجام بدی.

چرا Django Cleanup کاربردیه؟ 🤔

1⃣ مدیریت خودکار فایل‌های اضافه 🗑️:
بعد از حذف رکوردهای مدل، فایل‌های مرتبط بهش هم خود به خود حذف میشن.


2⃣ جلوگیری از انباشت فایل‌های اضافی 🚮:
نیازی نیست که خودت دنبال فایل‌های قدیمی بگردی و پاکشون کنی. این کتابخونه همه چیز رو برات مرتب می‌کنه.

3⃣ ساده و راحت در استفاده 🛠️:
فقط با نصب و یه سری تنظیمات ساده، همه چی رو هندل می‌کنه.


چطوری نصبش کنیم؟ 🛠️
نصب و استفاده از Django Cleanup خیلی ساده‌ست. اول از همه باید نصبش کنی:

pip install django-cleanup

بعد از نصب، باید این کتابخونه رو به تنظیمات جنگو اضافه کنی:

INSTALLED_APPS = [
    # بقیه اپ‌ها...
    'django_cleanup.apps.CleanupConfig',
]

همین دیگه نیازی نیست کاری انجام بدی. از این به بعد هر وقت رکوردی که فایل داره حذف بشه، فایل‌های مرتبط هم پاک میشن.

مثال از استفاده 📂
فرض کن یه مدل ساده برای کاربر داری که یه عکس آپلود می‌کنه:

class UserProfile(models.Model):
    avatar = models.ImageField(upload_to='avatars/')


وقتی یه پروفایل کاربر رو حذف می‌کنی، فایل avatar مربوط به اون کاربر هم به صورت خودکار از پوشه avatars/ پاک میشه و دیگه فضای اضافی نمی‌گیره.

جمع‌بندی
فهمیدیم Django Cleanup یه ابزار خیلی ساده ولی قدرتمنده که کمک می‌کنه پروژه‌هات تمیز و منظم بمونه و از انباشت فایل‌های بی‌استفاده جلوگیری کنی. اگه توی پروژه‌هات با فایل‌های زیادی سروکار داری، حتماً از این کتابخونه استفاده کن تا کارت راحت‌تر بشه 🔥

امید وارم مفید بوده باشه :)


#django #django_clean_up #trick


@ninja_learn_ir
فلسفه شرکت‌های IT، از جمله HP، IBM، Dell، و غیره به‌عنوان بخشی از استراتژی‌ مدیریت داده‌ که ترویج داده میشود.

"هر داده‌ای در نهایت از بین خواهد رفت" یا "هیچ سیستم ذخیره‌سازی دائمی نیست"

روزی که داده شما از بین بره سقوط خواهید کرد
پس بکاپ بگیرید و در سیستم های خودتون نگهداری کنید.

همه چیز عمر مفید داره حتی انسان
سخت افزار ها هم عمر مفید دارن هیچ چیز دائمی نیست

@poinair پوینا
‏به خودتون یه لطف بزرگ کنید و اگه لپتاپ ایسوس دارید بجای زباله افزار Armoury Crate ایسوس از g-helper استفاده کنید
بینهایت تمیز تر، بینهایت سبک تر، ‌بینهایت کارامد تر.

مطمئن باشید armoury کلی سرویس رو سیستمتون داره اجرا میکنه که نیازی به اکثرشون ندارید.
https://github.com/seerge/g-helper

@DevTwitter | <Navid Mafi/>
آیا نابغه بودن به ثروتمند شدن کمک می‌کند؟

این شخص *نورم لارسن*، مخترع فرمول اسپری معروف *WD-40* است.

در سال 1953، شرکت تازه‌تأسیس *Rocket Chemical* واقع در ایالت کالیفرنیای آمریکا، اولین سری از محصول *WD-40* را تولید کرد. این محصول برای چربی‌گیری، گریس‌زدایی و تمیزکاری قطعات مورد استفاده در صنایع هوافضا و موشک‌ها ساخته شده بود. پس از 40 بار تلاش برای جداسازی آب از فرمول شیمیایی، سرانجام موفقیت به دست آمد و به همین دلیل شرکت نام آن را *WD-40* گذاشت که مخفف عبارت *Water Displacement perfected on 40th* است.

برای اولین بار از این محصول برای حفاظت موشک‌های *Atlas* در برابر زنگ‌زدگی و خوردگی استفاده شد. جالب اینجاست که تا امروز هیچ شرکتی موفق به کشف فرمول دقیق آن نشده است.

این اسپری بعدها به صورت عمومی عرضه شد و اکنون یکی از پرفروش‌ترین و پرکاربردترین اسپری‌های دنیا است.

اما متأسفانه، *نورم لارسن* پس از مدتی از شرکت خارج شد و تقریباً هیچ بهره مالی و ثروتی از این اسپری فوق‌العاده نبرد.

@poinair پوینا
Forwarded from Dev (Ayhan Dev)
Forwarded from Gopher Academy
🔵 عنوان مقاله
💎 Gemfast: A Drop-In 'Gem' Server for Ruby Developers

🟢 خلاصه مقاله:
مقاله معرفی شده به ارائه یک سرور جدید Rubygems (سیستم مدیریت بسته‌های Ruby) می‌پردازد که به زبان برنامه‌نویسی Go نوشته شده است. این سرور به منظور تسهیل در نصب و راه‌اندازی طراحی شده است. این سرور جدید به کاربران Ruby اجازه می‌دهد تا بسته‌های نرم‌افزاری (gems) را از مخازن رسمی نصب کنند، ذخیره‌سازی موقت انجام دهند و همچنین بسته‌های خصوصی خود را ارائه دهند. این امکان به توسعه‌دهندگان این قابلیت را می‌دهد که به شکل موثرتری بر روی عرضه و نگهداری بسته‌های نرم‌افزاری خود کنترل داشته باشند، و همزمان از مشکلات احتمالی ناشی از استفاده از مرکز توزیع عمومی جلوگیری کنند.

🟣لینک مقاله:
https://github.com/gemfast/server


👑 @gopher_academy