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 Geek Alerts
Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
مهم ترین تفاوت بین برنامه‌نویس حرفه‌ای و مبتدی، "طرز فکرشه" 🥶

برنامه نویسای حرفه ای "قبل از کدنویسی" فکر می‌کنن.


وقتی باگ می‌خوری دو واکنش وجود داره
مبتدی: سریع می‌پره توی کد --> کجاشُ اشتباه نوشتم؟

حرفه‌ای: یک قدم عقب میره --> فرضیاتم چی بودن؟ کدومش ممکنه غلط باشه؟


یه برنامه نویس خوب ... 👨‍💻
➊ اول مسئله رو دقیق تحلیل می‌کنه

➋ ابزار مناسب رو انتخاب می‌کنه

➌ با کمترین و بهینه‌ترین کد، بهترین راه‌حل رو می‌سازه


چطوری این ذهنیت رو باید بسازیم
➊ قبل از کدنویسی، بنویس دقیقاً چی می‌خوای بسازی

➋ ساده‌ترین حالت مسئله رو اول حل کن

➌ همیشه از خودت بپرس: راه بهتری نیست؟



🗣️ یه برنامه‌نویس حرفه‌ای، مثل یه معمار فکر می‌کنه، نه مثل یه بنّا. بهترین برنامه‌نویس‌ها، کمتر کد می‌زنن و بهتر فکر می‌کنن.

#️⃣ #programming #tips

🧑‍💻 @CoolyCode
Forwarded from Linuxor ?
طراحای وب وقتی دارن یه وبسایت می‌سازن ممکنه فراموش کنن بعضی تگ ها رو بزارن یا یه سری کارا کنن که در نهایت منجر به این می‌شه پرفورمنس وبسایت بیاد پایین این سایت 88 تا آیتم رو به صورت چک لیست درست کرده که می‌تونین برین از روش دونه دونه مشکلات وبسایتتون رو چک کنید

frontendchecklist.io

@Linuxor
Forwarded from Geek Alerts
Forwarded from Geek Alerts
Forwarded from Geek Alerts
Forwarded from Geek Alerts
Forwarded from Geek Alerts
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰 انقلابی در سیستم مدیریت Swap لینوکس!

🔹در یکی از بزرگ‌ترین تغییرات چند سال اخیر، ۲۷ پچ جدید و بزرگ توسط Kairui Song از Tencentبرای زیرسیستم Swap لینوکس ارائه شده که مدیریت سنتی swap را متحول می‌کند. این پچ‌ها با معرفی ساختار نوینی به نام Swap Tables، عملکرد را ۲۰ تا ۳۰٪ بهبود داده‌اند و مصرف حافظه را به‌طور چشمگیری کاهش داده‌اند.
هدف اصلی: جایگزینی و ساده‌سازی ساختارهای متنوع و پراکنده‌ی قبلی مثل swap cache، swap maps و swap cgroup maps.

🔧 ویژگی‌های کلیدی:
🔸 ساختار جدید Swap Table
🔸یک ساختار داده واحد برای انجام سه وظیفه: کش، نقشه Swap، و مدیریت cgroup.
🔸 کاهش مصرف حافظه
🔸اندازه هر ورودی از ۱۲ بایت → ۱۰ بایت کاهش یافته.
🔸 تخصیص پویا:Swap فقط در صورت نیاز تخصیص داده می‌شود. حافظه آزادنشده یا Idle memory یا Unused memory آزادتر می‌ماند.
🔸سازگار با: شاخه‌های mm-stable و mm-unstable کرنل لینوکس.

📌 مهم‌ترین تغییرات فنی:
🔸 معماری Table-Driven : مدیریت مدرن، ساده‌سازی ساختار، حذف تعریف‌های قدیمی و پیچیده.
🔸 بهبود همگام‌سازی و قفل‌گذاری :استفاده از قفل‌های جدید فولیو، کاهش Lock Contention در سیستم‌های چند هسته‌ای.
فولیو (Folio) در کرنل لینوکس به مجموعه‌ای از صفحات حافظه گفته می‌شود که به صورت یکجا مدیریت می‌شوند

🔸 رفع مشکلات قبلی :حذف مسیرهای مبهم، متغیرهای منسوخ مثل SWAP_HAS_CACHE و COUNT_CONTINUED.
🔸حذف کدهای قدیمی و پیچیده مربوط به سواپ که باعث مبهم بودن جریان کاری و مدیریت سواپ شده بودند.
🔸حذف مسیریابی‌ها و دورزدن‌های پیچیده مانند bypass سواپ کش برای SWP_SYNCHRONOUS_IO.
🔸استفاده از قفل‌های دقیق‌تر و ریزتر (cluster lock) به جای الگوریتم‌های پیچیده قدیمی که باعث بهبود عملکرد و کاهش تداخل روی دیسک‌های HDD شده است.
🔸یکپارچه‌سازی مسیرهای خواندن و نوشتن (swap in/out) و هماهنگ‌سازی بهتر با حافظه موقت.
🔸فعال‌سازی mTHP swap-in برای بارهای کاری بیشتر و حذف محدودیت‌های قبلی.
🔸بهبود خواندن پیش‌دستی (read ahead) و کاهش تکه‌تکه شدن mTHP.

🔹 مزایای نهایی:
🔸 کاهش چشمگیر مصرف RAM در سیستم‌های بزرگ
🔸 افزایش چشم‌گیر عملکرد برای بارهای کاری سنگین
🔸 آماده برای توسعه‌های آینده مانند NVMe و تعامل هوشمند با cgroups
🔸 ساده‌سازی نگهداری در هسته اصلی لینوکس

📚 سورس اصلی این تغییرات:

github.com/ryncsn/linux/tree/kasong/devel/swap-table
https://www.spinics.net/lists/kernel/msg5684904.html

📌نویسنده: حسین سیلانی
اخبار و آموزش های بیشتر در کانال:
https://t.iss.one/linuxtnt

📌منبع :  آکادمی کندوی دانش
https://learninghive.ir
Forwarded from Gopher Academy
🔵 عنوان مقاله
New Experimental 'Green Tea' Garbage Collector

🟢 خلاصه مقاله:

مقاله‌ای پیشنهادی با معرفی یک الگوریتم جمع‌آوری زباله (GC) جدید و مبتنی بر اسپن، که "آگاه از حافظه" بوده و برای اشیاء کوچک ساخته شده است، به‌منظور بهبود موقعیت مکانی و زمانی در سیستم‌های مدرن چند CPU توسط بهره‌گیری بهتر از توپولوژی‌های حافظه و سلسله‌مراتب کش مطرح شده است. نتایج اولیه بنچمارک‌ها مخلوط هستند، اما هنوز روزهای اولیه‌اند. شما اکنون می‌توانید با استفاده از ابزار gotip آن را امتحان کنید و قرار است به عنوان یک آزمایش اختیاری در Go 1.25 عرضه شود.

🟣لینک مقاله:
https://golangweekly.com/link/169212/web


👑 @gopher_academy
Forwarded from Panic Dev (Hessam)
چرا لاراول sail استفاده نکنیم ...

اگر شما هم با تعداد متعددی پروژه همزمان کار میکنید یا بین پروژه های لاراولی زیاد سوئیچ میشید .

اجرا همزمان پروژه ها با sail منابع زیادی میطلبه یا باید یکی رو down کنید بعد یکی رو up یا کانفیگ و پورت متفاوت برای هرکدوم روی env ست کنید .


ولی از همه مهم تر که من دیروز باهاش برخورد کردم

اشغال فضای زیادی دیسک هست .
برای هر پروژه لاراولی که بخواید با sail اون رو راه اندازی کنید
از اول یه image براش بیلد میشه و دوباره تمام کانتیر های mysql , redis و ... براش از اول ساخته میشه .

مسئله اول ،‌اون سردرد موقع هر بار بیلد و pull که به جای خودش

ولی در این بین کلی image دارید هر بار به اضافه کلی volume

من وقتی دیروز فضای دیکسم به شدت پر شده بود امدم تمیز کاری کنم
وقتی یه docker prune زدم ۴۵ گیگ فضا ازاد شد!

اینجا بود که فهمیدم برای دولوپری که تو تمام پروژه ها تمام enviroment اش تقریبا یکی هست

خیلی زیاد داره فضا و اینترنت مصرف میشه .


خوب به این فک کردم بریم سراغ جایگزین .
همونطور که میدونید هستن ابزار هایی مثل herd , longhorn , valet که یا برای ویندوز یا قشر پولدار خانواده اپل

و چیز به درد بخوری پیدا نکردم که یکبار اجرا بشه و تمام پروژه ها رو ساپورت کنه . و همش در حال سوئیچ نباشم .


در اخر به این نتیجه رسیدم باید برگردم به خودم یه چیزی بزنم .

که تهش شد این ریپازیتوری ساده .


‍‍https://github.com/mohaphez/larasaur


شما با استفاده از این یه پوشه دارید به اسم projects مثلا

بعد داخلش یه فولدر میسازید dev-env و فایل های این ریپازیتوری میره داخلش

بعد یه

bash install-dev-shortcuts.sh


این تمام کامند هایی که نیاز دارید بهتون میده

حالا پروژه هاتون میره داخل پوشه projects

مثلا با این ساختار

~/projects/
├── dev-env/
├── x/
│ ├── a-laravel/
│ └── b-laravel/
├── y/
│ ├── c-laravel/
│ └── v-laravel/
└── z/
├── h-old-laravel/
└── b-new-laravel/


همه چی امادست

اول یه دستور up میزنید

up


که بیلد اولیه گرفته بشه و سرویس ها بیاد بالا

بعد داخل هر پروژه که دارید یا جدید میسازید داخل خود مسیرش مثلا

cd  ~/projects/a-laravel 


یه دستور

addsite 


میزنید این براتون یه کانفیگ nginx میسازه میندازه برای داکر و یه دامین با پسوند .local میسازه
مثلا این میشه

a-laravel.local


و تمام

کلا بعد از این دیگه هر چی پروژه میسازید یه addsite میزنید و یه دستور restart

بعد همه چی امادست .


هم روی محیط ایزولست هم در مصرف اینترنت و وقت صرفه جویی شده هم فضای کمتری میگیره

هم روی سیستمتون نیاز به نصب دپندسی های زیادی ندارید برای راه اندازی lamp


گذاشتم شاید به درد شما هم خورد .

الان فقط زمانی سراغ sail میرم که پروژه واقعا محیط متفاوت خاصی بخواد مثل php 7.4

@panicdev
Forwarded from Panic Dev (Hessam)
یه پکیج پایتون جمع‌وجور نوشتم که باهاش می‌تونید خیلی راحت حالت maintenance رو روی اپ FastAPI تون فعال/غیرفعال کنید.

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

گیت‌هاب:
https://github.com/msamsami/fastapi-maintenance

@DevTwitter | <Mehdi/>
Forwarded from Geek Alerts
Forwarded from Geek Alerts
Forwarded from Geek Alerts
Forwarded from Geek Alerts
اروپا برای اپل قانونی گذاشت که باید به برنامه‌ها اجازه بده سیستم پرداخت خارجی داشته باشن، اپل هم مجبور شد این رو اجرا کنه ولی به معنی تلافی نکردن نیست، الان هر برنامه‌ای که سیستم پرداخت خارجی اضافه کرده باشه اپل یه هشدار با آیکن قرمز تو صفحه نصبش نمایش میده که این برنامه‌ امن نیست یا حریم‌خصوصی نداره. این هشدار رو هم جوری نمایش میده که شما احساس کنید اون بازی یا برنامه رو نباید نصب کنید.

🔗 mjtsai
🤓 @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
#کوته_نیوز

مدیرعامل مخابرات: مشکل ما اینه که مردم از محتوای خارجی استفاده می‌کنن. :)))

@DevTwitter
Forwarded from Linuxor ?
دنبال ابزار مانیتورینگ بودید netdata رو امتحان کنید، اونقدری امکانات داره تو داشبوردش آدم تو داشبوردش گم می‌شه

نسخه Demo جهت تست :
app.netdata.cloud/spaces/netdata-demo

نصب

learn.netdata.cloud/docs/netdata-agent/installation/

@Linuxor