Forwarded from TorhamDev | تورهام 😳
خوب دوستان، از الان میتونیم بگیم حداقل قزقستان نیستیم!😂
اینا دیگه رسما پکتها باز میکنن میخونن اگر صلاح دونستن دوباره بسته بندیش میکنن میفرستن.
اتفاقی که اینجا با http میوفته، از اونجا که http هیچ رمزنگاری روش سوار نیست، همه میتونن پکتها رو باز کنن و بخوننش. اما https که اومد و TLS اضافه کرد باعث شد که پکتها رمزنگاری بشن و کسی نتونه اونا رو بخونه؛ اگه شما لازم دارید که پکت رو بخونید باید کلیدها رمزنگاری رو داشته باشید. در نتیجه هیچ کس جز مقصد و مبدا نمیتونن بخوننش، اما شاید براتون سوال بشه که پس چطوری فیلتر میکنن؟ خب اون فیلترینگ تو لایه پایین تر اتفاق میوفته که برای مثال IP هارو میبندن، چون هیچ وقت IP و پورت رمزنگاری نمیشن همه میتونن بخوننشون، در نهایت خواستم بگم دوستان غیور قزاقستان اومدن یک برنامه نوشتن که رو یوزر نصب میشه و این کلیدهای رمزنگاری رو هم میگیره :))) و گویا نصبش هم اجباری. تازه اسمش هم چسبوندم به امنیت :)))))
@TorhamDevCH
اینا دیگه رسما پکتها باز میکنن میخونن اگر صلاح دونستن دوباره بسته بندیش میکنن میفرستن.
اتفاقی که اینجا با http میوفته، از اونجا که http هیچ رمزنگاری روش سوار نیست، همه میتونن پکتها رو باز کنن و بخوننش. اما https که اومد و TLS اضافه کرد باعث شد که پکتها رمزنگاری بشن و کسی نتونه اونا رو بخونه؛ اگه شما لازم دارید که پکت رو بخونید باید کلیدها رمزنگاری رو داشته باشید. در نتیجه هیچ کس جز مقصد و مبدا نمیتونن بخوننش، اما شاید براتون سوال بشه که پس چطوری فیلتر میکنن؟ خب اون فیلترینگ تو لایه پایین تر اتفاق میوفته که برای مثال IP هارو میبندن، چون هیچ وقت IP و پورت رمزنگاری نمیشن همه میتونن بخوننشون، در نهایت خواستم بگم دوستان غیور قزاقستان اومدن یک برنامه نوشتن که رو یوزر نصب میشه و این کلیدهای رمزنگاری رو هم میگیره :))) و گویا نصبش هم اجباری. تازه اسمش هم چسبوندم به امنیت :)))))
@TorhamDevCH
Forwarded from Laravel News
Automatically Detect and Rehash Passwords https://laravel-news.com/automatically-detect-and-rehash-passwords
Laravel News
Automatically Detect and Rehash Passwords
Laravel Auto Rehash is a package by Samson Endale that takes care of automatically rehashing user passwords during login.
Forwarded from Geek Alerts
شرکت deepseek نسخه IOS خودشرو منتشر کرد.
هر ۲ ویژگی یعنی DeepThink و Search در نسخه موبایل نیز در دسترس هست.
توی توضیحاتش نوشته این مدل پیشرفته با نام DeepSeek-V3 شناخته میشه و بیش از ۶۰۰ میلیارد پارامتر داره، با استانداردهای جهانی همراهه و و سرعت بالاتر و کارامدی بیشتر داره، زندگی تو رو به شکلی کارآمدتر میکنه.
https://apps.apple.com/
@geekalerts
هر ۲ ویژگی یعنی DeepThink و Search در نسخه موبایل نیز در دسترس هست.
توی توضیحاتش نوشته این مدل پیشرفته با نام DeepSeek-V3 شناخته میشه و بیش از ۶۰۰ میلیارد پارامتر داره، با استانداردهای جهانی همراهه و و سرعت بالاتر و کارامدی بیشتر داره، زندگی تو رو به شکلی کارآمدتر میکنه.
https://apps.apple.com/
@geekalerts
Forwarded from Anonymous 🏴☠️
🚀 دنبال دورههای آموزشی پولی به صورت رایگان هستید؟ 🚀
به کانال ما بپیوندید و به گنجینهای از بهترین دورههای آموزشی از سایتهای مختلف دسترسی پیدا کنید که ما آنها را برای شما رایگان قرار دادهایم! 🎁
از آموزشهای تخصصی تا مهارتهای کاربردی، همه چیز اینجاست. هر روز با محتوای جدید منتظر شما هستیم!
🌟 @packagePD 🌟
به کانال ما بپیوندید و به گنجینهای از بهترین دورههای آموزشی از سایتهای مختلف دسترسی پیدا کنید که ما آنها را برای شما رایگان قرار دادهایم! 🎁
از آموزشهای تخصصی تا مهارتهای کاربردی، همه چیز اینجاست. هر روز با محتوای جدید منتظر شما هستیم!
🌟 @packagePD 🌟
Forwarded from Gopher Academy
🔵 عنوان مقاله
templ: A Way to Build HTML with Go
🟢 خلاصه مقاله:
مقاله مورد بحث بر توسعه اجزاء در برنامهنویسی وب تمرکز دارد که هر کدام قطعههایی از HTML را رندر میکنند. این اجزاء سپس به گونهای با هم ترکیب میشوند تا صفحات وب، اسناد، و اپلیکیشنها را شکل دهند. هسته این فرآیند در این است که با استفاده از مخزن کد متنباز GitHub، توسعهدهندگان میتوانند به تکه کدهای نوشته شده توسط دیگران دسترسی پیدا کنند و آنها را در پروژههای خود به کار ببرند. این رویکرد نه تنها به بهبود کارایی و کاهش تکرار کار کمک میکند بلکه فرصتهایی برای همکاری و اشتراکگذاری دانش فنی بین توسعهدهندگان از سراسر دنیا فراهم میآورد. این مدل از توسعه مبتنی بر اجزاء، به صورت گستردهای به عنوان یک استاندارد صنعتی در توسعه وب به کار رفته است.
🟣لینک مقاله:
https://golangweekly.com/link/163992/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
templ: A Way to Build HTML with Go
🟢 خلاصه مقاله:
مقاله مورد بحث بر توسعه اجزاء در برنامهنویسی وب تمرکز دارد که هر کدام قطعههایی از HTML را رندر میکنند. این اجزاء سپس به گونهای با هم ترکیب میشوند تا صفحات وب، اسناد، و اپلیکیشنها را شکل دهند. هسته این فرآیند در این است که با استفاده از مخزن کد متنباز GitHub، توسعهدهندگان میتوانند به تکه کدهای نوشته شده توسط دیگران دسترسی پیدا کنند و آنها را در پروژههای خود به کار ببرند. این رویکرد نه تنها به بهبود کارایی و کاهش تکرار کار کمک میکند بلکه فرصتهایی برای همکاری و اشتراکگذاری دانش فنی بین توسعهدهندگان از سراسر دنیا فراهم میآورد. این مدل از توسعه مبتنی بر اجزاء، به صورت گستردهای به عنوان یک استاندارد صنعتی در توسعه وب به کار رفته است.
🟣لینک مقاله:
https://golangweekly.com/link/163992/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
templ.guide
Introduction | templ docs
templ - build HTML with Go
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
ابزارهای هوش مصنوعی که هیشکی بهت نمیگه چون سکرته !
1. useTrag.com:
یه دستیار باهوش که کدهای برنامهنویسیت رو بررسی میکنه و اشکالات رو پیدا میکنه. مثل یه برنامهنویس با تجربه عمل میکنه و بهت میگه کجای کارت ایراد داره!
2. Pixyer.AI:
تصویربرداری حرفهای از محصولات رو برات انجام میده. انگار یه عکاس حرفهای داری که عکسهای تبلیغاتی محصولاتت رو میگیره.
3. CapGo.AI:
این یکی مثل یه اکسل خیلی باهوشه! میتونه خودش دادهها رو تحلیل کنه و گزارشهای هوشمند بهت بده.
4. Averi.ai:
مدیر بازاریابی دیجیتال شخصیته! استراتژیهای بازاریابی رو طراحی میکنه و کمپینهات رو مدیریت میکنه.
5. GiddyGiddy.com:
یه همراه مجازی که باهات چت میکنه و حرف میزنه. مثل یه دوست که همیشه در دسترسه!
6. TableSprint.com:
کمکت میکنه سریع و راحت اپلیکیشن بسازی، بدون اینکه نیاز به دانش فنی زیادی داشته باشی.
7. Kusho.AI:
یه ابزار تست هوشمند که مسیرهای مختلف نرمافزارت رو چک میکنه تا مطمئن شی همه چیز درست کار میکنه.
8. PricingMaker.com:
قیمتگذاری محصولات و خدماتت رو هوشمندانه انجام میده. با تحلیل بازار، بهترین قیمت رو پیشنهاد میده.
9. SmartLeadMagnet.com:
محتوای جذاب و ارزشمند تولید میکنه که بتونی باهاش مشتری جذب کنی - مثل کتابهای الکترونیکی یا راهنماها.
10. PodLM.ai:
پادکست تولید میکنه! میتونه متن رو به پادکست تبدیل کنه یا حتی محتوای پادکست رو خودش بسازه.
خب رفیق، اینا ابزارهای جدید و باحالی هستن که میتونن خیلی از کارهات رو راحتتر کنن. البته حواست باشه که هر کدوم رو قبل از استفاده تو کسب و کارت خوب تست کنی تا مطمئن شی برات مفیده.
@DevTwitter | <Safakaram/>
1. useTrag.com:
یه دستیار باهوش که کدهای برنامهنویسیت رو بررسی میکنه و اشکالات رو پیدا میکنه. مثل یه برنامهنویس با تجربه عمل میکنه و بهت میگه کجای کارت ایراد داره!
2. Pixyer.AI:
تصویربرداری حرفهای از محصولات رو برات انجام میده. انگار یه عکاس حرفهای داری که عکسهای تبلیغاتی محصولاتت رو میگیره.
3. CapGo.AI:
این یکی مثل یه اکسل خیلی باهوشه! میتونه خودش دادهها رو تحلیل کنه و گزارشهای هوشمند بهت بده.
4. Averi.ai:
مدیر بازاریابی دیجیتال شخصیته! استراتژیهای بازاریابی رو طراحی میکنه و کمپینهات رو مدیریت میکنه.
5. GiddyGiddy.com:
یه همراه مجازی که باهات چت میکنه و حرف میزنه. مثل یه دوست که همیشه در دسترسه!
6. TableSprint.com:
کمکت میکنه سریع و راحت اپلیکیشن بسازی، بدون اینکه نیاز به دانش فنی زیادی داشته باشی.
7. Kusho.AI:
یه ابزار تست هوشمند که مسیرهای مختلف نرمافزارت رو چک میکنه تا مطمئن شی همه چیز درست کار میکنه.
8. PricingMaker.com:
قیمتگذاری محصولات و خدماتت رو هوشمندانه انجام میده. با تحلیل بازار، بهترین قیمت رو پیشنهاد میده.
9. SmartLeadMagnet.com:
محتوای جذاب و ارزشمند تولید میکنه که بتونی باهاش مشتری جذب کنی - مثل کتابهای الکترونیکی یا راهنماها.
10. PodLM.ai:
پادکست تولید میکنه! میتونه متن رو به پادکست تبدیل کنه یا حتی محتوای پادکست رو خودش بسازه.
خب رفیق، اینا ابزارهای جدید و باحالی هستن که میتونن خیلی از کارهات رو راحتتر کنن. البته حواست باشه که هر کدوم رو قبل از استفاده تو کسب و کارت خوب تست کنی تا مطمئن شی برات مفیده.
@DevTwitter | <Safakaram/>
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
خوب بنچمارک 2021 آپدیت شد.
برید ببینید که php خام با دیتابیس pgsql کجا رفته!! درست چسبیده پشت سر node.js :))
حالا اونا به کنار laravel swoole ( همون لاراول اوکتان یا ورژن 8 لاراوله ) و lumen swoole هم اضافه شدن که توی تصویر میبینید که چطور جنگو رو لت و پار کردن :)))
واسه .net core عزیز هم فاتحه رو میخونم رفته توی رتبه ی 36 نشسته الان میگید واو چه رتبه ی خوبیه باید بگم که 5 فریم ورک php و همچنین خود php با ماژول ngx ازش جلو هست :))))
رتبه ی php با ماژول ngx و دیتابیس pqsql رتبه ی 20 ام هست.
شکست سنگین را بر تمام جنگو کار ها و asp کار ها تبریک عرض میکنم.
بنچمارک :
https://www.techempower.com/benchmarks/
پ.ن : حالا جنگو کار ها عزیز قبل آپدیت بنچمارک که اصلا php و لاراول اوکتان نبود خیلی قبولش داشتید حالا آپدیت شده باید دوبرابر قبولش داشته باشید :))
عمو عرفان برا همه ی افراد آرزوی موفقیت میکند و قصد تخریب ندارد.
@DevTwitter | <ERFAN MOHAMMADI/>
برید ببینید که php خام با دیتابیس pgsql کجا رفته!! درست چسبیده پشت سر node.js :))
حالا اونا به کنار laravel swoole ( همون لاراول اوکتان یا ورژن 8 لاراوله ) و lumen swoole هم اضافه شدن که توی تصویر میبینید که چطور جنگو رو لت و پار کردن :)))
واسه .net core عزیز هم فاتحه رو میخونم رفته توی رتبه ی 36 نشسته الان میگید واو چه رتبه ی خوبیه باید بگم که 5 فریم ورک php و همچنین خود php با ماژول ngx ازش جلو هست :))))
رتبه ی php با ماژول ngx و دیتابیس pqsql رتبه ی 20 ام هست.
شکست سنگین را بر تمام جنگو کار ها و asp کار ها تبریک عرض میکنم.
بنچمارک :
https://www.techempower.com/benchmarks/
پ.ن : حالا جنگو کار ها عزیز قبل آپدیت بنچمارک که اصلا php و لاراول اوکتان نبود خیلی قبولش داشتید حالا آپدیت شده باید دوبرابر قبولش داشته باشید :))
عمو عرفان برا همه ی افراد آرزوی موفقیت میکند و قصد تخریب ندارد.
@DevTwitter | <ERFAN MOHAMMADI/>
Forwarded from کانال مهرداد لینوکس
⚠️ ویروس ویندوزی برای دزدی و جاسوسی روی آداپتور تبدیل USB به پورت شبکه RJ45
که چینیها در(aliexpress) میفروشند
🚨 چیپ حافظه فلش SPI که روی این تبدیل است به عنوان ذخیرهساز همراه با ویروس کار گذاشته شده
بیش از 10هزار بار فروش داشته😱
با استفاده و اجرای طولانی مدت کد خود را به فرآیندها سیستم تزریق می کند،
توانایی شناسایی و فرار از ماشین های مجازی دارد،
توانایی تغییر تنظیمات پروکسی را
توانایی استخراج کلیدهای فشرده شده
برای رد گم کردن از عناصر زبان روسی
توانای ذخیره سازی حجیم داده های دزدیده شده در حافظه فلش روی برد را دارد
گزارش تحلیل
منبع
❤️ ممنون از حمایت هاتون 💐🌺
که چینیها در(aliexpress) میفروشند
🚨 چیپ حافظه فلش SPI که روی این تبدیل است به عنوان ذخیرهساز همراه با ویروس کار گذاشته شده
بیش از 10هزار بار فروش داشته😱
با استفاده و اجرای طولانی مدت کد خود را به فرآیندها سیستم تزریق می کند،
توانایی شناسایی و فرار از ماشین های مجازی دارد،
توانایی تغییر تنظیمات پروکسی را
توانایی استخراج کلیدهای فشرده شده
برای رد گم کردن از عناصر زبان روسی
توانای ذخیره سازی حجیم داده های دزدیده شده در حافظه فلش روی برد را دارد
گزارش تحلیل
منبع
🔥دفعه بعدی که یک قهوه ساز سفارش دادید باز کردید یک انتن کد Morse دید تعجب نکنید 😁
در خرید های خود دقت کنید ، خطر از آنچه فکر میکنید به شما نزدیک تر است
استفاده از لینوکس ، و توصیه های امنیتی را جدی بگیرد
❤️ ممنون از حمایت هاتون 💐🌺
Forwarded from Sudoer (Morteza Bashsiz)
دلنوشته
واقعا زندگی خیلی کار سختیه
خیلی هم کار سختیه
من بر این باور بودم و هستم همیشه که برای خوب زندگی کردن باید چندتا کار رو خوب انجام بدم
۱. تلاش کنم
۲. برنامه داشته باشم
۳. پیگیر باشم
۴. مشتاق باشم
۵. با اراده باشم
و این رو هم همیشه در نظر دارم که شانس خیلی مهمه و هیچ راه سادهتری برای زندگی و هیچ میانبری وجود نداره
واقعا زندگی خیلی کار سختیه
خیلی هم کار سختیه
من بر این باور بودم و هستم همیشه که برای خوب زندگی کردن باید چندتا کار رو خوب انجام بدم
۱. تلاش کنم
۲. برنامه داشته باشم
۳. پیگیر باشم
۴. مشتاق باشم
۵. با اراده باشم
و این رو هم همیشه در نظر دارم که شانس خیلی مهمه و هیچ راه سادهتری برای زندگی و هیچ میانبری وجود نداره
Forwarded from Laravel News
The definitive Guide to Webhooks in Laravel https://laravel-news.com/webhooks-in-laravel
Laravel News
The definitive Guide to Webhooks in Laravel - Laravel News
Master webhooks in Laravel with this definitive guide. Learn setup, security, event handling, and more to build powerful real-time integrations.
Forwarded from DevAcademy
برا بچه هایی که دنبال کارآموزی هستن،این لینک چک کنن شاید بدردشون خورد
https://career.dgshahr.com/job-detail/75f135b3-5b0f-417e-9284-088548230688
💻@DevAcaademy
💬@DevAcademyGroup
https://career.dgshahr.com/job-detail/75f135b3-5b0f-417e-9284-088548230688
💻@DevAcaademy
💬@DevAcademyGroup
Forwarded from مهندسی برق و کامپیوتر پارس پژوهان
🔔قطعی شد🔔
🐍یادگیری عمیق با پایتون
🔥DEEP LEARNING by PYTHON
⏰ 16 ساعت؛ 2.5 میلیون تومان
🗓جمعه ها از 28 دی
🎙توضیحات مدرس دوره 👉کلیک
🎥وبینار رایگان👉کلیک
✍️لینک ثبت نام👉کلیک
📌مشاوره و ثبت نام:
🙍♂️@ParsPajouhaanCEE
📞021-88322992(105)
🌐 وبسایت 📱 کانال تلگرام 📱 اینستاگرام
🐍یادگیری عمیق با پایتون
🔥DEEP LEARNING by PYTHON
⏰ 16 ساعت؛ 2.5 میلیون تومان
🗓جمعه ها از 28 دی
🎙توضیحات مدرس دوره 👉کلیک
🎥وبینار رایگان👉کلیک
✍️لینک ثبت نام👉کلیک
📌مشاوره و ثبت نام:
🙍♂️@ParsPajouhaanCEE
📞021-88322992(105)
🌐 وبسایت 📱 کانال تلگرام 📱 اینستاگرام
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
Forwarded from Gopher Academy
🤝Mohammad AbdorrahmaniMohammad Abdorrahmani
اگه شما هم با Golang کد میزنید، خبر خوب اینه که ورژن 1.24 قراره تو فوریه 2025 منتشر بشه و کلی بهبود خفن آورده که کارمون رو هم سریعتر میکنه، هم راحتتر.
هایلایتهای این نسخه:
1️⃣ سوئیچ به SwissTable تو کامپایلر:
گولنگ با این تغییر، مدیریت مپها رو خیلی بهینهتر کرده! رم کمتر مصرف میشه و عملیات خوندن/نوشتن سریعتر شده.
2️⃣ آپدیت استاندارد لایبرری:
دو پکیج جدید داریم:
os.Root برای راحتتر کردن کارهای مربوط به دایرکتوریها.
weak برای هندل کردن weak pointers که خیلی وقتا به درد میخوره.
یه قابلیت جدید برای alias کردن sliceها که به خصوص با افزایش استفاده از جنریکها خیلی کاربردیه.
3️⃣ بهبود ابزارها (Tooling):
یه قابلیت خفن به اسم متا-پترن اضافه شده که نصب ابزارهایی مثل mockgen رو راحتتر از همیشه میکنه.
خروجی JSON برای go test: تحلیل تستها دیگه یه لذت شده!
GOAUTH: حالا میتونید راحتتر به ریپوزیتوریهای پرایوت مثل GitHub وصل بشید.
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
اگه شما هم با Golang کد میزنید، خبر خوب اینه که ورژن 1.24 قراره تو فوریه 2025 منتشر بشه و کلی بهبود خفن آورده که کارمون رو هم سریعتر میکنه، هم راحتتر.
هایلایتهای این نسخه:
1️⃣ سوئیچ به SwissTable تو کامپایلر:
گولنگ با این تغییر، مدیریت مپها رو خیلی بهینهتر کرده! رم کمتر مصرف میشه و عملیات خوندن/نوشتن سریعتر شده.
2️⃣ آپدیت استاندارد لایبرری:
دو پکیج جدید داریم:
os.Root برای راحتتر کردن کارهای مربوط به دایرکتوریها.
weak برای هندل کردن weak pointers که خیلی وقتا به درد میخوره.
یه قابلیت جدید برای alias کردن sliceها که به خصوص با افزایش استفاده از جنریکها خیلی کاربردیه.
3️⃣ بهبود ابزارها (Tooling):
یه قابلیت خفن به اسم متا-پترن اضافه شده که نصب ابزارهایی مثل mockgen رو راحتتر از همیشه میکنه.
خروجی JSON برای go test: تحلیل تستها دیگه یه لذت شده!
GOAUTH: حالا میتونید راحتتر به ریپوزیتوریهای پرایوت مثل GitHub وصل بشید.
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
Forwarded from Gopher Academy
در نسخه 1.24 زبان برنامهنویسی Go (Golang)، ویژگی جدیدی به نام SwissTable به عنوان بخشی از بهبودهای مربوط به map (نوع دادهای دیکشنری یا associative array در Go) معرفی شد. این ویژگی بهینهسازیهایی در عملکرد و کارایی
---
### ۱. SwissTable چیست؟
- SwissTable یک ساختار دادهای جدید برای پیادهسازی
- این ساختار دادهای بر اساس جدول هش (hash table) کار میکند، اما با بهینهسازیهایی که باعث افزایش سرعت و کاهش مصرف حافظه میشود.
---
### ۲. مزایای SwissTable:
- سرعت بیشتر: SwissTable با استفاده از تکنیکهای بهینهسازی مانند SIMD (Single Instruction, Multiple Data) و cache-friendly data structures**، سرعت عملیاتهای درج، حذف و جستجو در `map` را افزایش میدهد.
- **مصرف حافظه کمتر: این ساختار دادهای از حافظه بهینهتری استفاده میکند و باعث کاهش مصرف حافظه در مقایسه با پیادهسازیهای قدیمیتر
- مقیاسپذیری بهتر: SwissTable برای کار با مجموعههای دادهای بزرگ و کوچک بهطور همزمان بهینهسازی شده است.
---
### ۳. تغییرات در Go 1.24:
- در Go 1.24، تیم توسعهدهندگان Go تصمیم گرفتند از SwissTable به عنوان پیادهسازی پیشفرض برای
- این تغییر بهطور خودکار برای همه کاربران Go اعمال میشود و نیازی به تغییر کد یا تنظیمات خاصی ندارد.
---
### ۴. تأثیر SwissTable بر برنامههای Go:
- برنامههای موجود: برنامههایی که از
- برنامههای جدید: توسعهدهندگان میتوانند از
---
### ۵. مقایسه با پیادهسازی قدیمی `map`:
- پیادهسازی قدیمی: در نسخههای قبلی Go،
- SwissTable: این ساختار دادهای جدید با استفاده از تکنیکهای پیشرفتهتر، عملکرد
---
### ۶. مثال استفاده از `map` در Go:
در Go،
با استفاده از SwissTable، این عملیاتها (درج، حذف، و جستجو) سریعتر و با مصرف حافظه کمتری انجام میشوند.
---
### ۷. نتیجهگیری:
- SwissTable یک بهبود بزرگ در پیادهسازی
- این ویژگی باعث افزایش سرعت، کاهش مصرف حافظه، و بهبود مقیاسپذیری
- توسعهدهندگان Go میتوانند بدون نیاز به تغییر کد، از مزایای این بهبودها بهرهمند شوند.
اگر از Go استفاده میکنید، بهروزرسانی به نسخه 1.24 یا بالاتر را در نظر بگیرید تا از این بهبودهای عملکردی بهرهمند شوید.
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
map ارائه میدهد. در زیر به بررسی این ویژگی و مزایای آن میپردازیم:---
### ۱. SwissTable چیست؟
- SwissTable یک ساختار دادهای جدید برای پیادهسازی
map در Go است که از الگوریتمها و تکنیکهای بهینهشده برای بهبود عملکرد استفاده میکند.- این ساختار دادهای بر اساس جدول هش (hash table) کار میکند، اما با بهینهسازیهایی که باعث افزایش سرعت و کاهش مصرف حافظه میشود.
---
### ۲. مزایای SwissTable:
- سرعت بیشتر: SwissTable با استفاده از تکنیکهای بهینهسازی مانند SIMD (Single Instruction, Multiple Data) و cache-friendly data structures**، سرعت عملیاتهای درج، حذف و جستجو در `map` را افزایش میدهد.
- **مصرف حافظه کمتر: این ساختار دادهای از حافظه بهینهتری استفاده میکند و باعث کاهش مصرف حافظه در مقایسه با پیادهسازیهای قدیمیتر
map میشود.- مقیاسپذیری بهتر: SwissTable برای کار با مجموعههای دادهای بزرگ و کوچک بهطور همزمان بهینهسازی شده است.
---
### ۳. تغییرات در Go 1.24:
- در Go 1.24، تیم توسعهدهندگان Go تصمیم گرفتند از SwissTable به عنوان پیادهسازی پیشفرض برای
map استفاده کنند.- این تغییر بهطور خودکار برای همه کاربران Go اعمال میشود و نیازی به تغییر کد یا تنظیمات خاصی ندارد.
---
### ۴. تأثیر SwissTable بر برنامههای Go:
- برنامههای موجود: برنامههایی که از
map استفاده میکنند، بهطور خودکار از مزایای SwissTable بهرهمند میشوند. این بهبودها شامل افزایش سرعت و کاهش مصرف حافظه است.- برنامههای جدید: توسعهدهندگان میتوانند از
map با اطمینان بیشتری استفاده کنند، زیرا عملکرد آن بهطور قابل توجهی بهبود یافته است.---
### ۵. مقایسه با پیادهسازی قدیمی `map`:
- پیادهسازی قدیمی: در نسخههای قبلی Go،
map با استفاده از یک ساختار دادهای مبتنی بر hash table پیادهسازی میشد که عملکرد خوبی داشت، اما برای برخی موارد خاص (مانند مجموعههای دادهای بزرگ) بهینهسازی نشده بود.- SwissTable: این ساختار دادهای جدید با استفاده از تکنیکهای پیشرفتهتر، عملکرد
map را در همه موارد بهبود میبخشد.---
### ۶. مثال استفاده از `map` در Go:
در Go،
map به صورت زیر استفاده میشود:package main
import "fmt"
func main() {
// ایجاد یک map
m := make(map[string]int)
// درج داده در map
m["apple"] = 5
m["banana"] = 3
// خواندن داده از map
fmt.Println("تعداد سیبها:", m["apple"])
// حذف داده از map
delete(m, "banana")
// بررسی وجود کلید در map
if value, exists := m["banana"]; exists {
fmt.Println("تعداد موزها:", value)
} else {
fmt.Println("موز وجود ندارد.")
}
}
با استفاده از SwissTable، این عملیاتها (درج، حذف، و جستجو) سریعتر و با مصرف حافظه کمتری انجام میشوند.
---
### ۷. نتیجهگیری:
- SwissTable یک بهبود بزرگ در پیادهسازی
map در Go است که در نسخه 1.24 معرفی شد.- این ویژگی باعث افزایش سرعت، کاهش مصرف حافظه، و بهبود مقیاسپذیری
map میشود.- توسعهدهندگان Go میتوانند بدون نیاز به تغییر کد، از مزایای این بهبودها بهرهمند شوند.
اگر از Go استفاده میکنید، بهروزرسانی به نسخه 1.24 یا بالاتر را در نظر بگیرید تا از این بهبودهای عملکردی بهرهمند شوید.
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
بررسی دو مفهوم stateful و stateless توی طراحی سیستم ها بخصوص توی وب و api ها
این روش ها هرکدوم مزایا و معایب خودشونو دارن که من چند تاشو میگم
1- دارای حالت (stateful) : توی یک سیستم دارای حالت ، سرور میاد و اطلاعاتی که مربوط به وضعیت کاربر میشن رو ذخیره میکنه داخل session ؛ برای مثال وقتی وارد یک سایت فروشگاهی میشیم اطلاعاتی مثله (سبد خرید ، احراز هویت و ...) به دست سرور توی session ما ذخیره میشن.
از مزایای این روش اینه که مناسبه برای سیستم هایی که نیاز به پیگیری وضعیت کاربر دارن مثل (بازی ها ، چت ها ، سبد خرید و ....)
معایبش هم اینه که باید منابع بیشتری مصرف کنید و مقیاس پذیری سخت تری داره
2- بی حالت (stateless) : توی این مدل سیستم ها هیچ اطلاعاتی از درخواست های قبلی کاربر ذخیره نمیشن توی session. و هر درخواست مستقل از درخواست قبلی ارسال میشه و همه ی اطلاعات مورد نیاز باید توی همون درخواست دریافت بشه.
مزایای این روش سرعت بیشتری که داره هست چون نیاز ندارید به session دسترسی داشته باشید و مقیاس پذیری بالایی داره
معایب هم می تونیم به مدیریت پیچیده ای که ممکنه برای حفظ وضعیت کاربر ها ایجاد بشه اشاره کنیم و همینطور به ارسال اطلاعات تکراری و اضافی در هر درخواست اشاره کنیم.
@DevTwitter | <Ali/>
این روش ها هرکدوم مزایا و معایب خودشونو دارن که من چند تاشو میگم
1- دارای حالت (stateful) : توی یک سیستم دارای حالت ، سرور میاد و اطلاعاتی که مربوط به وضعیت کاربر میشن رو ذخیره میکنه داخل session ؛ برای مثال وقتی وارد یک سایت فروشگاهی میشیم اطلاعاتی مثله (سبد خرید ، احراز هویت و ...) به دست سرور توی session ما ذخیره میشن.
از مزایای این روش اینه که مناسبه برای سیستم هایی که نیاز به پیگیری وضعیت کاربر دارن مثل (بازی ها ، چت ها ، سبد خرید و ....)
معایبش هم اینه که باید منابع بیشتری مصرف کنید و مقیاس پذیری سخت تری داره
2- بی حالت (stateless) : توی این مدل سیستم ها هیچ اطلاعاتی از درخواست های قبلی کاربر ذخیره نمیشن توی session. و هر درخواست مستقل از درخواست قبلی ارسال میشه و همه ی اطلاعات مورد نیاز باید توی همون درخواست دریافت بشه.
مزایای این روش سرعت بیشتری که داره هست چون نیاز ندارید به session دسترسی داشته باشید و مقیاس پذیری بالایی داره
معایب هم می تونیم به مدیریت پیچیده ای که ممکنه برای حفظ وضعیت کاربر ها ایجاد بشه اشاره کنیم و همینطور به ارسال اطلاعات تکراری و اضافی در هر درخواست اشاره کنیم.
@DevTwitter | <Ali/>
Forwarded from Gopher Academy
در نسخههای جدید زبان برنامهنویسی Go (Golang)، بهروزرسانیهایی در استاندارد لایبرری (Standard Library) انجام شده است که شامل اضافه شدن پکیجهای جدید و بهبود پکیجهای موجود میشود. در اینجا به دو پکیج جدید که اشاره کردید، یعنی `os.Root` و `weak`**، میپردازیم:
---
### ۱. **پکیج `os.Root`:
این پکیج جدید برای سادهسازی کارهای مربوط به مدیریت دایرکتوریها و مسیرهای فایلسیستمی معرفی شده است.
#### ویژگیهای کلیدی:
- دسترسی آسان به دایرکتوریهای ریشه: این پکیج توابعی را فراهم میکند که دسترسی به دایرکتوریهای ریشه (مانند
- مدیریت مسیرها: توابعی برای کار با مسیرهای نسبی و مطلق، تغییر دایرکتوری جاری، و بررسی وجود فایل یا دایرکتوری ارائه میدهد.
- سازگاری با سیستمعاملهای مختلف: این پکیج بهطور خودکار با تفاوتهای بین سیستمعاملها (مانند لینوکس، ویندوز، و macOS) سازگار است.
#### مثال استفاده:
---
### ۲. پکیج `weak`:
این پکیج جدید برای مدیریت weak pointers (اشارهگرهای ضعیف) معرفی شده است. weak pointers به توسعهدهندگان اجازه میدهند تا به یک شیء اشاره کنند بدون اینکه مانع از جمعآوری آن توسط Garbage Collector (GC) شوند.
#### ویژگیهای کلیدی:
- مدیریت حافظه هوشمند: weak pointers به توسعهدهندگان کمک میکنند تا از memory leaks جلوگیری کنند، زیرا این اشارهگرها مانع از جمعآوری شیء توسط GC نمیشوند.
- استفاده در ساختارهای داده پیچیده: این پکیج برای مواردی مانند کشها (caches)**، **لیستهای وابسته**، و سایر ساختارهای دادهای که نیاز به مدیریت حافظه دقیق دارند، مفید است.
- **سازگاری با Garbage Collector: weak pointers بهطور کامل با GC Go سازگار هستند و هیچ تأثیر منفی بر عملکرد آن ندارند.
#### مثال استفاده:
---
### ۳. مزایای این پکیجها:
- `os.Root`:
- سادهسازی کار با دایرکتوریها و مسیرها.
- کاهش نیاز به کدنویسی دستی برای مدیریت مسیرها.
- سازگاری با سیستمعاملهای مختلف.
- `weak`:
- جلوگیری از memory leaks با استفاده از weak pointers.
- مدیریت هوشمند حافظه در ساختارهای داده پیچیده.
- بهبود عملکرد برنامههایی که نیاز به مدیریت دقیق حافظه دارند.
---
### ۴. نتیجهگیری:
- `os.Root` و `weak` دو پکیج جدید و مفید در استاندارد لایبرری Go هستند که به توسعهدهندگان کمک میکنند تا کدهای بهینهتر و قابلحفظتری بنویسند.
- اگر از Go استفاده میکنید، بهروزرسانی به نسخههای جدید را در نظر بگیرید تا از این بهبودها و قابلیتهای جدید بهرهمند شوید.
این پکیجها بهطور خاص برای برنامههایی که نیاز به مدیریت حافظه دقیق یا کار با فایلسیستم دارند، بسیار مفید هستند.
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
---
### ۱. **پکیج `os.Root`:
این پکیج جدید برای سادهسازی کارهای مربوط به مدیریت دایرکتوریها و مسیرهای فایلسیستمی معرفی شده است.
#### ویژگیهای کلیدی:
- دسترسی آسان به دایرکتوریهای ریشه: این پکیج توابعی را فراهم میکند که دسترسی به دایرکتوریهای ریشه (مانند
/ در لینوکس یا C:\ در ویندوز) را سادهتر میکند.- مدیریت مسیرها: توابعی برای کار با مسیرهای نسبی و مطلق، تغییر دایرکتوری جاری، و بررسی وجود فایل یا دایرکتوری ارائه میدهد.
- سازگاری با سیستمعاملهای مختلف: این پکیج بهطور خودکار با تفاوتهای بین سیستمعاملها (مانند لینوکس، ویندوز، و macOS) سازگار است.
#### مثال استفاده:
package main
import (
"fmt"
"os"
)
func main() {
// دریافت دایرکتوری ریشه
root := os.Root()
fmt.Println("دایرکتوری ریشه:", root)
// تغییر دایرکتوری جاری به دایرکتوری ریشه
err := os.Chdir(root)
if err != nil {
fmt.Println("خطا در تغییر دایرکتوری:", err)
return
}
// لیست فایلها و دایرکتوریها در دایرکتوری ریشه
files, err := os.ReadDir(".")
if err != nil {
fmt.Println("خطا در خواندن دایرکتوری:", err)
return
}
for _, file := range files {
fmt.Println(file.Name())
}
}
---
### ۲. پکیج `weak`:
این پکیج جدید برای مدیریت weak pointers (اشارهگرهای ضعیف) معرفی شده است. weak pointers به توسعهدهندگان اجازه میدهند تا به یک شیء اشاره کنند بدون اینکه مانع از جمعآوری آن توسط Garbage Collector (GC) شوند.
#### ویژگیهای کلیدی:
- مدیریت حافظه هوشمند: weak pointers به توسعهدهندگان کمک میکنند تا از memory leaks جلوگیری کنند، زیرا این اشارهگرها مانع از جمعآوری شیء توسط GC نمیشوند.
- استفاده در ساختارهای داده پیچیده: این پکیج برای مواردی مانند کشها (caches)**، **لیستهای وابسته**، و سایر ساختارهای دادهای که نیاز به مدیریت حافظه دقیق دارند، مفید است.
- **سازگاری با Garbage Collector: weak pointers بهطور کامل با GC Go سازگار هستند و هیچ تأثیر منفی بر عملکرد آن ندارند.
#### مثال استفاده:
package main
import (
"fmt"
"runtime"
"weak"
)
func main() {
// ایجاد یک شیء
obj := "این یک شیء است"
// ایجاد یک weak pointer به شیء
wp := weak.New(&obj)
// بررسی وجود شیء
if val, ok := wp.Get(); ok {
fmt.Println("شیء وجود دارد:", *val)
} else {
fmt.Println("شیء جمعآوری شده است.")
}
// حذف اشارهگر به شیء
obj = ""
runtime.GC() // اجرای Garbage Collector
// بررسی دوباره وجود شیء
if val, ok := wp.Get(); ok {
fmt.Println("شیء هنوز وجود دارد:", *val)
} else {
fmt.Println("شیء جمعآوری شده است.")
}
}
---
### ۳. مزایای این پکیجها:
- `os.Root`:
- سادهسازی کار با دایرکتوریها و مسیرها.
- کاهش نیاز به کدنویسی دستی برای مدیریت مسیرها.
- سازگاری با سیستمعاملهای مختلف.
- `weak`:
- جلوگیری از memory leaks با استفاده از weak pointers.
- مدیریت هوشمند حافظه در ساختارهای داده پیچیده.
- بهبود عملکرد برنامههایی که نیاز به مدیریت دقیق حافظه دارند.
---
### ۴. نتیجهگیری:
- `os.Root` و `weak` دو پکیج جدید و مفید در استاندارد لایبرری Go هستند که به توسعهدهندگان کمک میکنند تا کدهای بهینهتر و قابلحفظتری بنویسند.
- اگر از Go استفاده میکنید، بهروزرسانی به نسخههای جدید را در نظر بگیرید تا از این بهبودها و قابلیتهای جدید بهرهمند شوید.
این پکیجها بهطور خاص برای برنامههایی که نیاز به مدیریت حافظه دقیق یا کار با فایلسیستم دارند، بسیار مفید هستند.
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
Forwarded from Gopher Academy
در نسخههای جدید زبان برنامهنویسی Go (Golang)، قابلیت جدیدی برای alias کردن sliceها معرفی شده است که به توسعهدهندگان اجازه میدهد تا به راحتی از sliceها با نامهای جدید استفاده کنند. این قابلیت به خصوص با افزایش استفاده از جنریکها (Generics) در Go بسیار مفید است، زیرا باعث بهبود خوانایی و کاهش تکرار کد میشود.
---
### ۱. alias کردن sliceها چیست؟
- alias کردن به معنی تعریف یک نام جدید برای یک نوع داده موجود است. این کار به توسعهدهندگان اجازه میدهد تا از نامهای کوتاهتر یا توصیفیتر برای انواع دادهای پیچیده استفاده کنند.
- در Go، این قابلیت بهطور خاص برای sliceها بسیار مفید است، زیرا sliceها یکی از پرکاربردترین انواع دادهای در Go هستند.
---
### ۲. چرا alias کردن sliceها مهم است؟
- بهبود خوانایی کد: با استفاده از aliasها، میتوانید از نامهای توصیفیتر برای sliceها استفاده کنید که باعث خوانایی بیشتر کد میشود.
- کاهش تکرار کد: اگر از sliceها با انواع دادهای پیچیده استفاده میکنید، alias کردن باعث کاهش تکرار کد و سادهتر شدن آن میشود.
- سازگاری با جنریکها: با معرفی جنریکها در Go، alias کردن sliceها به توسعهدهندگان اجازه میدهد تا از جنریکها بهطور موثرتری استفاده کنند.
---
### ۳. نحوه alias کردن sliceها:
در Go، میتوانید از کلمه کلیدی `type` برای تعریف alias استفاده کنید. در اینجا چند مثال آورده شده است:
#### مثال ۱: alias کردن یک slice ساده
#### مثال ۲: alias کردن یک slice با جنریکها
#### مثال ۳: alias کردن sliceهای پیچیده
---
### ۴. مزایای alias کردن sliceها:
- خوانایی بهتر: با استفاده از aliasها، میتوانید از نامهای توصیفیتر برای sliceها استفاده کنید که باعث خوانایی بیشتر کد میشود.
- کاهش تکرار کد: اگر از sliceها با انواع دادهای پیچیده استفاده میکنید، alias کردن باعث کاهش تکرار کد و سادهتر شدن آن میشود.
- سازگاری با جنریکها: alias کردن sliceها به توسعهدهندگان اجازه میدهد تا از جنریکها بهطور موثرتری استفاده کنند.
---
### ۵. نتیجهگیری:
- alias کردن sliceها یک قابلیت جدید و مفید در Go است که به توسعهدهندگان اجازه میدهد تا کدهای خواناتر و قابلحفظتری بنویسند.
- این قابلیت به خصوص با افزایش استفاده از جنریکها در Go بسیار مفید است، زیرا باعث بهبود خوانایی و کاهش تکرار کد میشود.
اگر از Go استفاده میکنید، بهروزرسانی به نسخههای جدید را در نظر بگیرید تا از این بهبودها و قابلیتهای جدید بهرهمند شوید.
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
---
### ۱. alias کردن sliceها چیست؟
- alias کردن به معنی تعریف یک نام جدید برای یک نوع داده موجود است. این کار به توسعهدهندگان اجازه میدهد تا از نامهای کوتاهتر یا توصیفیتر برای انواع دادهای پیچیده استفاده کنند.
- در Go، این قابلیت بهطور خاص برای sliceها بسیار مفید است، زیرا sliceها یکی از پرکاربردترین انواع دادهای در Go هستند.
---
### ۲. چرا alias کردن sliceها مهم است؟
- بهبود خوانایی کد: با استفاده از aliasها، میتوانید از نامهای توصیفیتر برای sliceها استفاده کنید که باعث خوانایی بیشتر کد میشود.
- کاهش تکرار کد: اگر از sliceها با انواع دادهای پیچیده استفاده میکنید، alias کردن باعث کاهش تکرار کد و سادهتر شدن آن میشود.
- سازگاری با جنریکها: با معرفی جنریکها در Go، alias کردن sliceها به توسعهدهندگان اجازه میدهد تا از جنریکها بهطور موثرتری استفاده کنند.
---
### ۳. نحوه alias کردن sliceها:
در Go، میتوانید از کلمه کلیدی `type` برای تعریف alias استفاده کنید. در اینجا چند مثال آورده شده است:
#### مثال ۱: alias کردن یک slice ساده
package main
import "fmt"
// تعریف یک alias برای slice از اعداد صحیح
type IntSlice = []int
func main() {
var numbers IntSlice = []int{1, 2, 3, 4, 5}
fmt.Println(numbers) // خروجی: [1 2 3 4 5]
}
#### مثال ۲: alias کردن یک slice با جنریکها
package main
import "fmt"
// تعریف یک alias برای slice از هر نوع دادهای با استفاده از جنریکها
type GenericSlice[T any] = []T
func main() {
var numbers GenericSlice[int] = []int{1, 2, 3, 4, 5}
fmt.Println(numbers) // خروجی: [1 2 3 4 5]
var names GenericSlice[string] = []string{"Alice", "Bob", "Charlie"}
fmt.Println(names) // خروجی: [Alice Bob Charlie]
}
#### مثال ۳: alias کردن sliceهای پیچیده
package main
import "fmt"
// تعریف یک alias برای slice از sliceهای اعداد صحیح
type IntSliceSlice = [][]int
func main() {
var matrix IntSliceSlice = [][]int{
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
}
fmt.Println(matrix) // خروجی: [[1 2 3] [4 5 6] [7 8 9]]
}
---
### ۴. مزایای alias کردن sliceها:
- خوانایی بهتر: با استفاده از aliasها، میتوانید از نامهای توصیفیتر برای sliceها استفاده کنید که باعث خوانایی بیشتر کد میشود.
- کاهش تکرار کد: اگر از sliceها با انواع دادهای پیچیده استفاده میکنید، alias کردن باعث کاهش تکرار کد و سادهتر شدن آن میشود.
- سازگاری با جنریکها: alias کردن sliceها به توسعهدهندگان اجازه میدهد تا از جنریکها بهطور موثرتری استفاده کنند.
---
### ۵. نتیجهگیری:
- alias کردن sliceها یک قابلیت جدید و مفید در Go است که به توسعهدهندگان اجازه میدهد تا کدهای خواناتر و قابلحفظتری بنویسند.
- این قابلیت به خصوص با افزایش استفاده از جنریکها در Go بسیار مفید است، زیرا باعث بهبود خوانایی و کاهش تکرار کد میشود.
اگر از Go استفاده میکنید، بهروزرسانی به نسخههای جدید را در نظر بگیرید تا از این بهبودها و قابلیتهای جدید بهرهمند شوید.
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0