Forwarded from Linuxor ?
Forwarded from a pessimistic researcher (Kc)
آقااااا :))) من اینو دستم خورد اینجا فرستاده شد :))
کلا هر پستی میاد اینجا یک ساعت وایسید بعد بخونید من یکم بد دستم تو تلگرام :))
من قدیما ممبرای کانالم سی چهل تا بود کلا و همه هم دوستام بودن مهران و مهدی و حسین و مهسا و ساغر و مریم و رضا و پسرداییم و تعدادی از دوستای کارشناسیم برای همین پستها و مطالب اروتیک میذاشتم هر از چندگاهی فضا یکم از این فرمال سمی خارج بشه اما از وقتی که ممبرا زیاد شد و مثلا استادای دانشگاهمم جوین شدن دیگه حیا میکنم و از این حرفا نمیزنم
حالا امشبم چون شب سال نو هستش پاک نمیکنم و باشه به یاد ایام قدیم :)
کلا هر پستی میاد اینجا یک ساعت وایسید بعد بخونید من یکم بد دستم تو تلگرام :))
من قدیما ممبرای کانالم سی چهل تا بود کلا و همه هم دوستام بودن مهران و مهدی و حسین و مهسا و ساغر و مریم و رضا و پسرداییم و تعدادی از دوستای کارشناسیم برای همین پستها و مطالب اروتیک میذاشتم هر از چندگاهی فضا یکم از این فرمال سمی خارج بشه اما از وقتی که ممبرا زیاد شد و مثلا استادای دانشگاهمم جوین شدن دیگه حیا میکنم و از این حرفا نمیزنم
حالا امشبم چون شب سال نو هستش پاک نمیکنم و باشه به یاد ایام قدیم :)
Forwarded from a pessimistic researcher (Kc)
آقااااا :))) من اینو دستم خورد اینجا فرستاده شد :))
کلا هر پستی میاد اینجا یک ساعت وایسید بعد بخونید من یکم بد دستم تو تلگرام :))
من قدیما ممبرای کانالم سی چهل تا بود کلا و همه هم دوستام بودن مهران و مهدی و حسین و مهسا و ساغر و مریم و رضا و پسرداییم و سروش و تعدادی از دوستای کارشناسیم برای همین پستها و مطالب اروتیک میذاشتم هر از چندگاهی فضا یکم از این فرمال سمی خارج بشه اما از وقتی که ممبرا زیاد شد و مثلا استادای دانشگاهمم جوین شدن دیگه حیا میکنم و از این حرفا نمیزنم
حالا امشبم چون شب سال نو هستش پاک نمیکنم و باشه به یاد ایام قدیم :) ولی دیگه از این خبرا نخواهد بود :)
کلا هر پستی میاد اینجا یک ساعت وایسید بعد بخونید من یکم بد دستم تو تلگرام :))
من قدیما ممبرای کانالم سی چهل تا بود کلا و همه هم دوستام بودن مهران و مهدی و حسین و مهسا و ساغر و مریم و رضا و پسرداییم و سروش و تعدادی از دوستای کارشناسیم برای همین پستها و مطالب اروتیک میذاشتم هر از چندگاهی فضا یکم از این فرمال سمی خارج بشه اما از وقتی که ممبرا زیاد شد و مثلا استادای دانشگاهمم جوین شدن دیگه حیا میکنم و از این حرفا نمیزنم
حالا امشبم چون شب سال نو هستش پاک نمیکنم و باشه به یاد ایام قدیم :) ولی دیگه از این خبرا نخواهد بود :)
Forwarded from code2 - تکنولوژی و فناوری (Mahdi Taleghani)
👨💻When to Use Which?
#javanoscript
🏹 Arrow Functions:
Short, simple functions or callbacks (e.g., event listeners, array methods like map, filter, reduce).
When you need to preserve "this" from the enclosing scope.
👍 Normal Functions:
When defining methods in objects or classes.
When you need dynamic "this" or access to the "arguments" object.
For constructors or functions requiring the "new" keyword.
@code2_ir
#javanoscript
🏹 Arrow Functions:
Short, simple functions or callbacks (e.g., event listeners, array methods like map, filter, reduce).
When you need to preserve "this" from the enclosing scope.
👍 Normal Functions:
When defining methods in objects or classes.
When you need dynamic "this" or access to the "arguments" object.
For constructors or functions requiring the "new" keyword.
@code2_ir
Forwarded from Go Casts 🚀
مصاحبه های طراحی سیستم نقش مهمی تو خیلی از مصاحبه های فنی دارن. من با چند برنامه نویس از سطوح مختلف با تجربه های ۴، ۵ سال و کمتر بصورت ناشناس مصاحبه های mock فنی طراحی سیستم انجام دادم که ۶ تا از این مصاحبه ها در دوره قرار گرفته. موضوع مصاحبه ها در مورد سیستم های مختلفی هست از جمله سرویس های پرداخت، بورس، فایل و غیره ست.
الحمدلله که این مصاحبه ها به دوستان کمک کرده تو فرآیند مصاحبه های طراحی سیستم عملکرد بهتری داشته باشن و به استخدام شون کمک کرده.
دوره + تیمسازی بکند و گولنگ Go Casts
لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان
https://survey.porsline.ir/s/PISsWn7f
همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://news.1rj.ru/str/gocasts/434
تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://news.1rj.ru/str/gocasts/441
دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4
@gocasts
الحمدلله که این مصاحبه ها به دوستان کمک کرده تو فرآیند مصاحبه های طراحی سیستم عملکرد بهتری داشته باشن و به استخدام شون کمک کرده.
دوره + تیمسازی بکند و گولنگ Go Casts
لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان
https://survey.porsline.ir/s/PISsWn7f
همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://news.1rj.ru/str/gocasts/434
تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://news.1rj.ru/str/gocasts/441
دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4
@gocasts
Forwarded from Go Casts 🚀
بهینه سازی مصرف حافظه برای اپلیکیشن گولنگ
چند تا مقاله میفرستم که نکات ریز و خوبی رو اشاره میکنن برای بهینه سازی مصرف حافظه در گولنگ
دقت کنید که هر جایی لازم نیست این موارد رو رعایت کنید، اما یه سری هاش رو اگه از اول تو پروژه رعایت کنید، خیلی زحمتی نداره براتون و کدتون هم بهینه تر میشه، چه اشکالی داره؟!
Optimizing Memory Usage in Go: Reducing Memory Footprint
https://clouddevs.com/go/optimizing-memory-usage/
Memory Optimization and Garbage Collector Management in Go
https://betterprogramming.pub/memory-optimization-and-garbage-collector-management-in-go-71da4612a960
Memory Allocations
https://go101.org/optimizations/0.3-memory-allocations.html
Optimizing Memory Usage in Golang: When is a Variable Allocated to the Heap
https://hackernoon.com/optimizing-memory-usage-in-golang-when-is-a-variable-allocated-to-the-heap
Mastering Go Memory Optimization: 20 Expert Techniques for Efficient Applications
https://dev.to/aaravjoshi/mastering-go-memory-optimization-20-expert-techniques-for-efficient-applications-4bjc
Enhancing Go Struct Efficiency: Essential Tips for Memory Optimization
https://www.codingexplorations.com/blog/enhancing-go-struct-efficiency-essential-tips-for-memory-optimization
How To Perform Memory Optimization and Garbage Collector Management in Go?
https://dev.to/nikl/how-to-perform-memory-optimization-and-garbage-collector-management-in-go-1j7
Golang Writing memory efficient and CPU optimized Go Structs
https://dev.to/deadlock/golang-writing-memory-efficient-and-cpu-optimized-go-structs-2ick
دوره + تیمسازی بکند و گولنگ Go Casts
لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان
https://survey.porsline.ir/s/PISsWn7f
همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://news.1rj.ru/str/gocasts/434
تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://news.1rj.ru/str/gocasts/441
دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4
@gocasts
چند تا مقاله میفرستم که نکات ریز و خوبی رو اشاره میکنن برای بهینه سازی مصرف حافظه در گولنگ
دقت کنید که هر جایی لازم نیست این موارد رو رعایت کنید، اما یه سری هاش رو اگه از اول تو پروژه رعایت کنید، خیلی زحمتی نداره براتون و کدتون هم بهینه تر میشه، چه اشکالی داره؟!
Optimizing Memory Usage in Go: Reducing Memory Footprint
https://clouddevs.com/go/optimizing-memory-usage/
Memory Optimization and Garbage Collector Management in Go
https://betterprogramming.pub/memory-optimization-and-garbage-collector-management-in-go-71da4612a960
Memory Allocations
https://go101.org/optimizations/0.3-memory-allocations.html
Optimizing Memory Usage in Golang: When is a Variable Allocated to the Heap
https://hackernoon.com/optimizing-memory-usage-in-golang-when-is-a-variable-allocated-to-the-heap
Mastering Go Memory Optimization: 20 Expert Techniques for Efficient Applications
https://dev.to/aaravjoshi/mastering-go-memory-optimization-20-expert-techniques-for-efficient-applications-4bjc
Enhancing Go Struct Efficiency: Essential Tips for Memory Optimization
https://www.codingexplorations.com/blog/enhancing-go-struct-efficiency-essential-tips-for-memory-optimization
How To Perform Memory Optimization and Garbage Collector Management in Go?
https://dev.to/nikl/how-to-perform-memory-optimization-and-garbage-collector-management-in-go-1j7
Golang Writing memory efficient and CPU optimized Go Structs
https://dev.to/deadlock/golang-writing-memory-efficient-and-cpu-optimized-go-structs-2ick
دوره + تیمسازی بکند و گولنگ Go Casts
لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان
https://survey.porsline.ir/s/PISsWn7f
همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://news.1rj.ru/str/gocasts/434
تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://news.1rj.ru/str/gocasts/441
دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4
@gocasts
Clouddevs
CloudDevs - The Largest LATAM Developer Hiring Platform
Hire CloudDevs' highly vetted, Latin American developers. Hire remote developers from your time-zone, within 24 hours.
Forwarded from Geniuses Group (Omid Hekayati)
ایجاد روابط #دوستی پایدار، یکی از پایه های اصلی #به_زیستی در زندگی هست.
در ابتدا آغاز سال ۲۰۲۵ رو خدمت تمام عزیزان تبریک عرض میکنیم و برای همه شما بهترین سالها رو آرزو میکنیم! اگر مطالب قبلی را نخونید اینجا و اینجا توضیح دادیم که چرا یادآوری مناسب های تاریخی و جشن گرفتن آنها، برای همه مفید هست.
قبلا در این پست اشاره شد که #ارتباط_برقرار_کردن و داشتن تنوع انواع دوست در #دایره_دوستی ما مهم هست و باید بدونیم برچسب های مختلفی برای انواع دوست وجود داره، مثلا در پی نوشت این پست گفتیم که در زبان عربی ۱۲ لایه دوستی یا برچسب برای دوستان وجود داره! پس بعد از درک اهمیت این موضوع، باید پاسخ بدیم چجوری بین دوستان مختلف خودمون تمایز قائل بشیم یا حتی چجوری از ابتدا به یک فرد اجازه بدیم وارد دایره شناختی فردی (برچسب دوست) ما بشه. یکی از راه های موثر امکان شروع یک گفت و گو در هر فرصتی هست.
شاید برای شما هم پیش اومده باشه در جمعی از افراد باشید و ندونید چجوری سر صحبت را باز کنید تا باهاشون عمیق تر آشنا بشید و حتی یک روز تفریحی خوب را بگذرونید. عبارت کلیدی questions to ask in friends group شما را به لیست جذابی از سوالات میرسونه که می تونه در جمع دوستان فارغ از تخصص افراد باعث ایجاد مشارکت و گفت و گو بشه. یکی از لیست های معروف 36 questions that might lead to love هست که توسط یک روان شناس معروف تهیه شده و سوالات به شدت جذابی داره، پیشنهاد می کنم حتما یکبار در یک جمع همخوانی کنید و پاسخ بدید به سوالاتش. یادمون باشه در اکثر لیست سوال ها با این عبارت کلیدی، اشاره میشه که همون اول شفاف بگید که هر فردی دوست نداره می تونه براحتی سوال را رد کنه و جواب نده و مخاطب خاصی برای سوال ها نگذارید و اصرار اضافه هم نکنید کسی جواب بده، مثل بازی های جرات یا حقیقت!
در انتها یادآوری کنم در ابتدای پست به کلمه #پایدار هم اشاره شد، به این موضوع هم کمی بیشتر فکر کنیم که چجوری میشه روابط را پایدارتر کنیم. مثلا در این پست در لینکدین من اشاره کردم که تمایلی به قبول کردن یا ارسال درخواست ایجاد رابطه وقتی طرف مقابل را نمی شناسم ندارم، به جز اینکه دلیل قوی برای ایجاد رابطه نیاز ببینم. یادمون باشه، از نظر #علوم_شناختی ذهن ما خوشبختانه یا متاسفانه محدودیت های فراوانی داره، یکی از این محدودیت های دایره شناختی ما از انسان ها هست. البته همانطور که در پست لینکدین هم اشاره شد، قصد ایجاد نسخه یکسان برای همه نیست، قصد صرفا #تلنگر_ذهنی هست که یادمون باشه جزییات پیدا و پنهان تاثیرگذار در #تصمیم_گیری ها را فراموش نکنیم.
در ابتدا آغاز سال ۲۰۲۵ رو خدمت تمام عزیزان تبریک عرض میکنیم و برای همه شما بهترین سالها رو آرزو میکنیم! اگر مطالب قبلی را نخونید اینجا و اینجا توضیح دادیم که چرا یادآوری مناسب های تاریخی و جشن گرفتن آنها، برای همه مفید هست.
قبلا در این پست اشاره شد که #ارتباط_برقرار_کردن و داشتن تنوع انواع دوست در #دایره_دوستی ما مهم هست و باید بدونیم برچسب های مختلفی برای انواع دوست وجود داره، مثلا در پی نوشت این پست گفتیم که در زبان عربی ۱۲ لایه دوستی یا برچسب برای دوستان وجود داره! پس بعد از درک اهمیت این موضوع، باید پاسخ بدیم چجوری بین دوستان مختلف خودمون تمایز قائل بشیم یا حتی چجوری از ابتدا به یک فرد اجازه بدیم وارد دایره شناختی فردی (برچسب دوست) ما بشه. یکی از راه های موثر امکان شروع یک گفت و گو در هر فرصتی هست.
شاید برای شما هم پیش اومده باشه در جمعی از افراد باشید و ندونید چجوری سر صحبت را باز کنید تا باهاشون عمیق تر آشنا بشید و حتی یک روز تفریحی خوب را بگذرونید. عبارت کلیدی questions to ask in friends group شما را به لیست جذابی از سوالات میرسونه که می تونه در جمع دوستان فارغ از تخصص افراد باعث ایجاد مشارکت و گفت و گو بشه. یکی از لیست های معروف 36 questions that might lead to love هست که توسط یک روان شناس معروف تهیه شده و سوالات به شدت جذابی داره، پیشنهاد می کنم حتما یکبار در یک جمع همخوانی کنید و پاسخ بدید به سوالاتش. یادمون باشه در اکثر لیست سوال ها با این عبارت کلیدی، اشاره میشه که همون اول شفاف بگید که هر فردی دوست نداره می تونه براحتی سوال را رد کنه و جواب نده و مخاطب خاصی برای سوال ها نگذارید و اصرار اضافه هم نکنید کسی جواب بده، مثل بازی های جرات یا حقیقت!
در انتها یادآوری کنم در ابتدای پست به کلمه #پایدار هم اشاره شد، به این موضوع هم کمی بیشتر فکر کنیم که چجوری میشه روابط را پایدارتر کنیم. مثلا در این پست در لینکدین من اشاره کردم که تمایلی به قبول کردن یا ارسال درخواست ایجاد رابطه وقتی طرف مقابل را نمی شناسم ندارم، به جز اینکه دلیل قوی برای ایجاد رابطه نیاز ببینم. یادمون باشه، از نظر #علوم_شناختی ذهن ما خوشبختانه یا متاسفانه محدودیت های فراوانی داره، یکی از این محدودیت های دایره شناختی ما از انسان ها هست. البته همانطور که در پست لینکدین هم اشاره شد، قصد ایجاد نسخه یکسان برای همه نیست، قصد صرفا #تلنگر_ذهنی هست که یادمون باشه جزییات پیدا و پنهان تاثیرگذار در #تصمیم_گیری ها را فراموش نکنیم.
Audio
ساخت لوگو SVG با AI ✅
خودم از Adobe استفاده کردم برای Convert به SVG که تو ویس توضیح دادم، خروجیش تمیزه واقعا 👌
🚀 @coolycode
رفقا این روشو خودم کشف کردم که واقعا جالب بود و جواب داده خودمم تست گرفتم و لوگوی جدیدی که نیاز داشتم رو تونستم با همین روش ایجاد کنم، استفاده کنید و لذت ببرید ؛)
#AI
خودم از Adobe استفاده کردم برای Convert به SVG که تو ویس توضیح دادم، خروجیش تمیزه واقعا 👌
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
This media is not supported in your browser
VIEW IN TELEGRAM
🔥دوست دارید شهر و محله خودتان را در Minecraft ببینید؟
قبلا گفتم Minecraft فقط یک بازی نیست
✅این بار پروژه Arnis با استفاده از اطلاعات OpenStreetMap
شهر ها را با Minecraft برای شما باز سازی میکنه
💠 با استفاده از داده های مکانی از OpenStreetMap و استفاده از قابلیت های قدرتمند زبان Rust ،نرم افزار Arnis یک راه حل کارآمد و قوی برای ایجاد جهان های پیچیده و دقیق در Minecraft ارائه می دهد که منعکس کننده جغرافیا و معماری دنیای واقعی است.
❤️ ممنون از حمایت هاتون 💐🌺
قبلا گفتم Minecraft فقط یک بازی نیست
✅این بار پروژه Arnis با استفاده از اطلاعات OpenStreetMap
شهر ها را با Minecraft برای شما باز سازی میکنه
💠 با استفاده از داده های مکانی از OpenStreetMap و استفاده از قابلیت های قدرتمند زبان Rust ،نرم افزار Arnis یک راه حل کارآمد و قوی برای ایجاد جهان های پیچیده و دقیق در Minecraft ارائه می دهد که منعکس کننده جغرافیا و معماری دنیای واقعی است.
یادش بخیر یاد این جریان افتادم ..
سال ۱۳۸۱ با تعداد 1.5ميليون عکس از منطقه 6 تهران برای ساخت یک بازی به نام رانندگی در تهران با بودجه 2ميليارد تومان هزينه تحقيقاتي به سفارش نيروي انتظامي ساخته شد
یک شخصیتی بود به اسم داش سیا مجری معروف محمد حسيني.
نتیجه بازی هم فکر کنم قابل حدس باشه
فکر میکنید ارزش این پول امروز چقدره؟
❤️ ممنون از حمایت هاتون 💐🌺
Forwarded from Gopher Academy
رفتار متغیرهای حلقه در Go
در Go، وقتی یک حلقه مانند
مثال مشکلساز:
فرض کنید کدی شبیه به زیر داریم:
مشکل چیست؟
1. متغیر
2. goroutineها به دلیل اجرای همزمان (asynchronous execution) ممکن است با تأخیر اجرا شوند.
3. زمانی که goroutine اجرا میشود، ممکن است مقدار
نتیجه
تمام goroutineها ممکن است به جای مقادیر مختلف، فقط مقدار آخرین آیتم حلقه را چاپ کنند.
---
راهحل: ایجاد کپی مستقل از متغیر حلقه
برای جلوگیری از این مشکل، باید مطمئن شویم که هر goroutine به یک کپی مستقل از مقدار
اصلاح کد:
تابع ناشناس با پارامتر
یک روش دیگر برای ایجاد کپی، ارسال مقدار متغیر حلقه به تابع ناشناس به صورت پارامتر است.
کد شما:
1. `m` به عنوان آرگومان: متغیر
2. کپی مستقل: حالا تابع ناشناس داخل goroutine به یک کپی مجزا و مستقل از مقدار متغیر
3. مشکل حل میشود: هر goroutine مقدار درست متغیر مربوط به تکرار خودش را پردازش میکند.
---
چرا این کار به جلوگیری از مشکلات همزمانی کمک میکند؟
مشکلات همزمانی زمانی رخ میدهند که چندین goroutine به صورت همزمان به یک منبع مشترک دسترسی داشته باشند.
در اینجا:
- اگر از متغیر حلقه
- با ایجاد کپی (از طریق
- این جداسازی تضمین میکند که مقدار هر goroutine به حلقه وابسته نیست و دیگر دچار تداخل نخواهد شد.
---
مثال عملی
قبل از اصلاح:
#### بعد از اصلاح:
---
جمعبندی
خط
1. یک کپی مستقل از مقدار
2. این کپی را به تابع ناشناس ارسال میکند.
3. به جلوگیری از مشکلات ناشی از استفاده همزمان از متغیرهای حلقه در goroutineها کمک میکند.
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
در Go، وقتی یک حلقه مانند
for تعریف میشود، متغیرهای حلقه (result در این مثال) به صورت متغیر مشترک (shared) در حافظه استفاده میشوند. این بدان معناست که همه goroutineها به یک مرجع (reference) از این متغیر دسترسی دارند، نه به یک کپی از مقدار فعلی آن.مثال مشکلساز:
فرض کنید کدی شبیه به زیر داریم:
for _, result := range collections {
go func() {
fmt.Println(result.Title) // از result استفاده میشود
}()
}مشکل چیست؟
1. متغیر
result به طور مداوم در طول حلقه تغییر میکند.2. goroutineها به دلیل اجرای همزمان (asynchronous execution) ممکن است با تأخیر اجرا شوند.
3. زمانی که goroutine اجرا میشود، ممکن است مقدار
result تغییر کرده باشد و goroutine به مقدار آخرین تغییر یافته دسترسی داشته باشد، نه مقداری که هنگام تعریف goroutine موجود بود.نتیجه
تمام goroutineها ممکن است به جای مقادیر مختلف، فقط مقدار آخرین آیتم حلقه را چاپ کنند.
---
راهحل: ایجاد کپی مستقل از متغیر حلقه
برای جلوگیری از این مشکل، باید مطمئن شویم که هر goroutine به یک کپی مستقل از مقدار
result دسترسی دارد. این کار را با تعریف یک متغیر محلی جدید در هر تکرار حلقه انجام میدهیم.اصلاح کد:
for _, result := range collections {
m := result // یک کپی از `result` ایجاد میکنیم
go func() {
fmt.Println(m.Title) // حالا goroutine به کپی مستقل دسترسی دارد
}()
}تابع ناشناس با پارامتر
یک روش دیگر برای ایجاد کپی، ارسال مقدار متغیر حلقه به تابع ناشناس به صورت پارامتر است.
کد شما:
go func(m articleapp.NewArticle) {
// کد داخل goroutine
}(m)1. `m` به عنوان آرگومان: متغیر
result کپی شده و به عنوان پارامتر m به تابع ناشناس ارسال میشود.2. کپی مستقل: حالا تابع ناشناس داخل goroutine به یک کپی مجزا و مستقل از مقدار متغیر
result دسترسی دارد.3. مشکل حل میشود: هر goroutine مقدار درست متغیر مربوط به تکرار خودش را پردازش میکند.
---
چرا این کار به جلوگیری از مشکلات همزمانی کمک میکند؟
مشکلات همزمانی زمانی رخ میدهند که چندین goroutine به صورت همزمان به یک منبع مشترک دسترسی داشته باشند.
در اینجا:
- اگر از متغیر حلقه
result مستقیماً استفاده شود، goroutineها به یک مرجع مشترک از این متغیر دسترسی دارند.- با ایجاد کپی (از طریق
m) و ارسال آن به تابع ناشناس، هر goroutine یک نسخه مستقل از مقدار را دارد.- این جداسازی تضمین میکند که مقدار هر goroutine به حلقه وابسته نیست و دیگر دچار تداخل نخواهد شد.
---
مثال عملی
قبل از اصلاح:
collections := []articleapp.NewArticle{
{Title: "A"}, {Title: "B"}, {Title: "C"},
}
for _, result := range collections {
go func() {
fmt.Println(result.Title) // ممکن است همه goroutineها مقدار "C" را چاپ کنند
}()
}#### بعد از اصلاح:
for _, result := range collections {
go func(m articleapp.NewArticle) {
fmt.Println(m.Title) // هر goroutine مقدار درست را چاپ میکند
}(result)
}---
جمعبندی
خط
(m):1. یک کپی مستقل از مقدار
result ایجاد میکند.2. این کپی را به تابع ناشناس ارسال میکند.
3. به جلوگیری از مشکلات ناشی از استفاده همزمان از متغیرهای حلقه در goroutineها کمک میکند.
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
Forwarded from DevTwitter | توییت برنامه نویسی
نسخه Vite 6 منتشر شد!
ویت 6 با معرفی API محیطی جدید، انعطافپذیری بیشتری را برای توسعهدهندگان فراهم میکند و امکان تجربه توسعه نزدیکتر به محیط تولید را میسر میسازد. همچنین، پشتیبانی از Node.js 18، 20 و 22+ حفظ شده و پشتیبانی از نسخه 21 حذف شده است.
https://code-news.com/p/vite-6-released
@DevTwitter | <Code News/>
ویت 6 با معرفی API محیطی جدید، انعطافپذیری بیشتری را برای توسعهدهندگان فراهم میکند و امکان تجربه توسعه نزدیکتر به محیط تولید را میسر میسازد. همچنین، پشتیبانی از Node.js 18، 20 و 22+ حفظ شده و پشتیبانی از نسخه 21 حذف شده است.
https://code-news.com/p/vite-6-released
@DevTwitter | <Code News/>
Forwarded from نوشتههای ترمینالی
اگه میخواین یه جایگزین بهتر از rm داشته باشید توصیه من به شما rm improved یا همون rip هست.
هم امکان recyclebin رو داره (یا به قول خودشون graveyard) هم خیلی ساده و سرراسته.
https://github.com/nivekuil/rip
هم امکان recyclebin رو داره (یا به قول خودشون graveyard) هم خیلی ساده و سرراسته.
https://github.com/nivekuil/rip
GitHub
GitHub - nivekuil/rip: A safe and ergonomic alternative to rm
A safe and ergonomic alternative to rm. Contribute to nivekuil/rip development by creating an account on GitHub.
Forwarded from نوشتههای ترمینالی
۲۰۲۵تون مبارک!
توصیه اخلاقی مرتبط هم بخوام بکنم: سال جدید چیزای بد زندگیتون رو حذف کنید :)))
توصیه اخلاقی مرتبط هم بخوام بکنم: سال جدید چیزای بد زندگیتون رو حذف کنید :)))
Forwarded from Go Casts 🚀
دوستان اگه اپلیکیشن رو بصورت مونولیت مینیوسید، کار خوبی میکنید، اما aggregation pattern رو جدی بگیرید، کمک بزرگی میکنه به حفظ loosely coupled بودن ماژول و سرویس هاتون.
یه اشتباه رایجی که باعث میشه خیلی راحت همه چیز در هم تنیده و coupled بشه نیازهای بیزینسی ای هست که دیتای aggregate شده از چند domain مختلف رو میخواد از شما. تو حالت مونولیت خیلی ساده ست که شما در هر domain به دیتابیس یه domain دیگه درخواست بزنی و یا حتی تو interactor/service دیگه یه متد جدید تعریف کنی که دیتای مد نظر رو بده. که معمولا باعث در هم تنیده شدن و چاق شدن سرویس هاتون میشه.
بهتره سرویس یا همون interactorهاتون کارهای خیلی کوچیک و well-definedی رو انجام بدن و اگه نیازمندی های aggregationطور دارید، یه سری service دیگه بسازید که وابستگی خواهد داشت به سرویس های مختلف و دیتاهای raw رو میگیره و پردازش میکنه که دیتای نهایی رو آماده کنه.
بعضی وقت ها از طریق gateway هم ممکنه بتونید aggregate کنید. بعضی وقت ها ممکنه تو همون لایه دلیوری (کنترلر) تون بتونید دو تا سرویس رو فراخوانی کنید و کار رو در بیارید، گاهی هم پیچیده تر میشه و لازمه یه سرویس(interactor) بنویسید که کار aggregation رو انجام بده
https://learn.microsoft.com/en-us/azure/architecture/patterns/gateway-aggregation
باز خود aggregate کردن حالت های مختلفی داره، اینجا میتونید بیشتر بخونید در موردش
https://medium.com/geekculture/design-patterns-for-microservices-aggregation-pattern-1b8994516fa2
@gocasts
یه اشتباه رایجی که باعث میشه خیلی راحت همه چیز در هم تنیده و coupled بشه نیازهای بیزینسی ای هست که دیتای aggregate شده از چند domain مختلف رو میخواد از شما. تو حالت مونولیت خیلی ساده ست که شما در هر domain به دیتابیس یه domain دیگه درخواست بزنی و یا حتی تو interactor/service دیگه یه متد جدید تعریف کنی که دیتای مد نظر رو بده. که معمولا باعث در هم تنیده شدن و چاق شدن سرویس هاتون میشه.
بهتره سرویس یا همون interactorهاتون کارهای خیلی کوچیک و well-definedی رو انجام بدن و اگه نیازمندی های aggregationطور دارید، یه سری service دیگه بسازید که وابستگی خواهد داشت به سرویس های مختلف و دیتاهای raw رو میگیره و پردازش میکنه که دیتای نهایی رو آماده کنه.
بعضی وقت ها از طریق gateway هم ممکنه بتونید aggregate کنید. بعضی وقت ها ممکنه تو همون لایه دلیوری (کنترلر) تون بتونید دو تا سرویس رو فراخوانی کنید و کار رو در بیارید، گاهی هم پیچیده تر میشه و لازمه یه سرویس(interactor) بنویسید که کار aggregation رو انجام بده
https://learn.microsoft.com/en-us/azure/architecture/patterns/gateway-aggregation
باز خود aggregate کردن حالت های مختلفی داره، اینجا میتونید بیشتر بخونید در موردش
https://medium.com/geekculture/design-patterns-for-microservices-aggregation-pattern-1b8994516fa2
@gocasts
Docs
Gateway Aggregation pattern - Azure Architecture Center
Learn about the Gateway Aggregation pattern, which uses a gateway to aggregate many individual requests into a single request.
Forwarded from متخصص وردپرس | پوینا
This media is not supported in your browser
VIEW IN TELEGRAM
قدرت نمایی چین با شروع سال جدید
چین هر سال با شروع سال جدید قدرت خودش رو جوری به دنیا نشون داده که نشون بده تکنولوژی برتر دنیا در آینده کیه
@poinair پوینا
چین هر سال با شروع سال جدید قدرت خودش رو جوری به دنیا نشون داده که نشون بده تکنولوژی برتر دنیا در آینده کیه
@poinair پوینا
Forwarded from متخصص وردپرس | پوینا
This media is not supported in your browser
VIEW IN TELEGRAM
قدرت نمایی چین با شروع سال جدید
چین هر سال با شروع سال جدید قدرت خودش رو جوری به دنیا نشون داده که نشون بده تکنولوژی برتر دنیا در آینده کیه
@poinair پوینا
چین هر سال با شروع سال جدید قدرت خودش رو جوری به دنیا نشون داده که نشون بده تکنولوژی برتر دنیا در آینده کیه
@poinair پوینا
Forwarded from نظریه زبانها و آتامتا - پاییز ۱۴۰۳ (Mehran)
فردا در آخرین جلسهی کلاس نظریهی زبانها و ماشینها که به صورت مجازی برگزار خواهد شد، برای گفتوگو درخصوص مطالب پیشرفتهتر و پژوهش در حوزهی روشهای صوری و ارتباط آن با دیگر حوزههای علوم کامپیوتر، میزبان خانم دکتر مرجان سیرجانی، پژوهشگر و استاد برجستهی علوم کامپیوتر دانشگاه Mälardalens سوئد خواهیم بود.
بخشی از دیگر سوابق ایشان:
- استاد دانشکدهی مهندسی برق و کامپیوتر، دانشکدهی فنی دانشگاه تهران
- پژوهشگر ارشد، پژوهشگاه دانشهای بنیادی (IPM)
- پژوهشگر مهمان، دانشگاه California, Berkeley
- پژوهشگر مهمان، دانشگاه Illinois at Urbana-Champaign
- موسس و رئیس کمیتهی راهبری کنفرانس FSEN
- رئیس کمیتهی برنامهریزی کنفرانسهای SEFM و COORDINATION
این جلسه فردا پنجشنبه ۱۳ دیماه از ساعت 10:30 صبح تا 12 در لینک زیر برگزار خواهد شد.
https://vc.sharif.edu/ch/pdl
لطفا پس از ورود به لینک، از طریق گزینهی مهمان وارد شوید و نام و نام خانوادگی خود را وارد کنید. شرکت برای عموم دانشجوها بلامانع است.
با آرزوی سلامتی و موفقیت
معینیجم
بخشی از دیگر سوابق ایشان:
- استاد دانشکدهی مهندسی برق و کامپیوتر، دانشکدهی فنی دانشگاه تهران
- پژوهشگر ارشد، پژوهشگاه دانشهای بنیادی (IPM)
- پژوهشگر مهمان، دانشگاه California, Berkeley
- پژوهشگر مهمان، دانشگاه Illinois at Urbana-Champaign
- موسس و رئیس کمیتهی راهبری کنفرانس FSEN
- رئیس کمیتهی برنامهریزی کنفرانسهای SEFM و COORDINATION
این جلسه فردا پنجشنبه ۱۳ دیماه از ساعت 10:30 صبح تا 12 در لینک زیر برگزار خواهد شد.
https://vc.sharif.edu/ch/pdl
لطفا پس از ورود به لینک، از طریق گزینهی مهمان وارد شوید و نام و نام خانوادگی خود را وارد کنید. شرکت برای عموم دانشجوها بلامانع است.
با آرزوی سلامتی و موفقیت
معینیجم
Forwarded from DevTwitter | توییت برنامه نویسی
شاید تعجب کرده باشید که چرا در خیلی از کنفرانس های JavaScript جای این عبارت از js و ecmanoscript استفاده میکنن..
دلیلش اینه که آقای oracle که sun microsystems رو خرید تریدمارک JavaScript رو هم در نتیجه ش صاحب شد.
حالا آقای ryan dahl که سازنده nodejs و deno هست چند وقتی هست گیر داده به oracle که تریدمارک JavaScript رو کنسل کنه که دیگه به عنوان یه کلمه عمومی همه بتونن ازش استفاده کنن. سفت و سخت پیگیره..
@DevTwitter | <Hossein Nazari/>
دلیلش اینه که آقای oracle که sun microsystems رو خرید تریدمارک JavaScript رو هم در نتیجه ش صاحب شد.
حالا آقای ryan dahl که سازنده nodejs و deno هست چند وقتی هست گیر داده به oracle که تریدمارک JavaScript رو کنسل کنه که دیگه به عنوان یه کلمه عمومی همه بتونن ازش استفاده کنن. سفت و سخت پیگیره..
@DevTwitter | <Hossein Nazari/>
Forwarded from Linuxor ?
یه صفحه محصول دیجی کالا رو تصور کنید، برای اینکه اون صفحه از بکند ساخته شه باید کلی Join توی دیتابیس و کلی اطلاعات از جدول های مختلف جمع آوری شه و کلی زمان بای لود صفحه گرفته میشه.
حالا بیاین یه کاری کنیم همه اطلاعات رو توی یه سطر (داکیومنت) یه جدول (کالکشن) ذخیره کنیم، حتی برای کامنت ها هم جدول جداگونه نسازیم.
سرعت لود صفحه به شدت زیاد میشه اینجا ما ریداندنسی و افزایش حافظه رو فدای CPU کردیم.
حتی کوئری های Update هم از بهینگی در اومد و اینم اصلا مهم نیست مگه چند وقت یه بار اون صفحه آپدیت میشه؟
به این حرکت میگن denormalization که توی NoSQL ها خیلی استفاده میشه.
@Linuxor
حالا بیاین یه کاری کنیم همه اطلاعات رو توی یه سطر (داکیومنت) یه جدول (کالکشن) ذخیره کنیم، حتی برای کامنت ها هم جدول جداگونه نسازیم.
سرعت لود صفحه به شدت زیاد میشه اینجا ما ریداندنسی و افزایش حافظه رو فدای CPU کردیم.
حتی کوئری های Update هم از بهینگی در اومد و اینم اصلا مهم نیست مگه چند وقت یه بار اون صفحه آپدیت میشه؟
به این حرکت میگن denormalization که توی NoSQL ها خیلی استفاده میشه.
@Linuxor
Forwarded from Linuxor ?
اگه میخواین NoSQL یاد بگیرین و نمیدونین کجا از SQL استفاده کنید یا NoSQL این ریپو اومده کلی از منابع خوب رو جمع آوری کرده باهاش میتونین به درک درستی از NoSQL برسین
https://github.com/erictleung/awesome-nosql-guides
@Linuxor
https://github.com/erictleung/awesome-nosql-guides
@Linuxor