🎯توضیحات ورژن 1.14.7 گولنگ🎯
🔰شامل fixes امنیتی پکیج زیر
1️⃣ encoding/binary
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔰شامل fixes امنیتی پکیج زیر
1️⃣ encoding/binary
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
ترجمه عبارات فرنگی:
Junior developer: زود یاد بگیر
Senior developer: خیلی بلد
Full-stack developer: همه چی بلد
Dev-ops: سیاه چاله کار
Product Owner: صاحاب بچه
CTO: گنده برنامه نویس شرکت
CEO: جناب خان
Co-founder: بابا بزرگ شرکت
HR: نیرو بگیر شرکت
Freelancer: نوکر و آقای خود
web developer: تار دوزک
به همین سادگی (کپی شده از هیچ جا)
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Junior developer: زود یاد بگیر
Senior developer: خیلی بلد
Full-stack developer: همه چی بلد
Dev-ops: سیاه چاله کار
Product Owner: صاحاب بچه
CTO: گنده برنامه نویس شرکت
CEO: جناب خان
Co-founder: بابا بزرگ شرکت
HR: نیرو بگیر شرکت
Freelancer: نوکر و آقای خود
web developer: تار دوزک
به همین سادگی (کپی شده از هیچ جا)
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯سری آموزش بلاکچین در گولنگ🎯
🔰part 1
https://t.me/gopher_academy/51
🔰part 2
https://t.me/gopher_academy/52
🔰part 3
https://t.me/gopher_academy/53
🔰part 4
https://t.me/gopher_academy/54
🔰part 5
https://t.me/gopher_academy/55
🔰part 6
https://t.me/gopher_academy/56
💙زبان آموزش فارسی💙
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔰part 1
https://t.me/gopher_academy/51
🔰part 2
https://t.me/gopher_academy/52
🔰part 3
https://t.me/gopher_academy/53
🔰part 4
https://t.me/gopher_academy/54
🔰part 5
https://t.me/gopher_academy/55
🔰part 6
https://t.me/gopher_academy/56
💙زبان آموزش فارسی💙
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯مزایای Goroutine نسبت به thread ها🎯
🔰 1-ا Goroutine ها بسیار سریعتر از thread شروع به کار میکنند.
🔰2-ا Goroutine یه ویژگی built-in زبان go است که توسط channel ها با یکدیگر ارتباط برقرار می کنند.
🔰 3-ا Goroutine ها بسیار کم مصرف تر از thread ها هستند. تنها چند کیلوبایت در هر بسته اشغال می کنند که بسته به اپلیکیشن این مقدار افزایش پیدا می کند در مقابل thread ها که این فضای اشغالی مشخص و ثابت است.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔰 1-ا Goroutine ها بسیار سریعتر از thread شروع به کار میکنند.
🔰2-ا Goroutine یه ویژگی built-in زبان go است که توسط channel ها با یکدیگر ارتباط برقرار می کنند.
🔰 3-ا Goroutine ها بسیار کم مصرف تر از thread ها هستند. تنها چند کیلوبایت در هر بسته اشغال می کنند که بسته به اپلیکیشن این مقدار افزایش پیدا می کند در مقابل thread ها که این فضای اشغالی مشخص و ثابت است.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯تجزیه و تحلیل قفل ها یا lock ها در mutex ها🎯
🔰 توی این قسمت می خواهیم به قول معروف دل و جیگر این رویکرد رو بریزیم ببینیم چجوری عمل می کند.
📍سرفصلش📍
1 Introduction
2. Mutex data structure
2.1 Mutex structure
2.2 Mutex method
3. Add and unlock process
3.1 Simple lock
3.2 Locking is blocked
3.3 Simple unlock
3.4 Unlock and wake up the coroutine
4. Spin process
4.1 What is spin
4.1 Spin conditions
4.2 Advantages of spin
4.3 The problem of spin
5. Mutex mode
4.1 normal mode
4.2 starvation mode
5. Woken status
6. Why do you need to panic for repeated unlocking
7. Programming Tips
7.1 Use defer to avoid deadlock
7.2 Locking and unlocking should app
❌این قسمت ها رو فردا براتون منتشر می کنم
#lock #mutex
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔰 توی این قسمت می خواهیم به قول معروف دل و جیگر این رویکرد رو بریزیم ببینیم چجوری عمل می کند.
📍سرفصلش📍
1 Introduction
2. Mutex data structure
2.1 Mutex structure
2.2 Mutex method
3. Add and unlock process
3.1 Simple lock
3.2 Locking is blocked
3.3 Simple unlock
3.4 Unlock and wake up the coroutine
4. Spin process
4.1 What is spin
4.1 Spin conditions
4.2 Advantages of spin
4.3 The problem of spin
5. Mutex mode
4.1 normal mode
4.2 starvation mode
5. Woken status
6. Why do you need to panic for repeated unlocking
7. Programming Tips
7.1 Use defer to avoid deadlock
7.2 Locking and unlocking should app
❌این قسمت ها رو فردا براتون منتشر می کنم
#lock #mutex
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯تجزیه و تحلیل قفل ها یا lock ها در mutex ها🎯 🔰 توی این قسمت می خواهیم به قول معروف دل و جیگر این رویکرد رو بریزیم ببینیم چجوری عمل می کند. 📍سرفصلش📍 1 Introduction 2. Mutex data structure 2.1 Mutex structure 2.2 Mutex method 3. Add and unlock process 3.1…
📍1 Introduction Mutex📍
در واقع Mutex روش اصلی برای کنترل دسترسی به منابع اشتراکی در برنامه های همزمان است.
زبان Go یک Mutex بسیار ساده و کاربردی را ارائه می دهد.
که این Mutex نوعی ساختار است که به ترتیب دو روش Lock () و Unlock () را در معرض دید شما قرار می دهد. برای قفل کردن و باز کردن قفل استفاده می شود.
درواقعه Mutex برای استفاده بسیار راحت است ، اما اجرای داخلی آن بسیار پیچیده تر است . که ما در ادامه خواهیم توضیح داد این اجزا و نحوه کارکردشون رو
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
در واقع Mutex روش اصلی برای کنترل دسترسی به منابع اشتراکی در برنامه های همزمان است.
زبان Go یک Mutex بسیار ساده و کاربردی را ارائه می دهد.
که این Mutex نوعی ساختار است که به ترتیب دو روش Lock () و Unlock () را در معرض دید شما قرار می دهد. برای قفل کردن و باز کردن قفل استفاده می شود.
درواقعه Mutex برای استفاده بسیار راحت است ، اما اجرای داخلی آن بسیار پیچیده تر است . که ما در ادامه خواهیم توضیح داد این اجزا و نحوه کارکردشون رو
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯تجزیه و تحلیل قفل ها یا lock ها در mutex ها🎯 🔰 توی این قسمت می خواهیم به قول معروف دل و جیگر این رویکرد رو بریزیم ببینیم چجوری عمل می کند. 📍سرفصلش📍 1 Introduction 2. Mutex data structure 2.1 Mutex structure 2.2 Mutex method 3. Add and unlock process 3.1…
📍2. Mutex data structure📍
📍2.1 Mutex structure📍
نمونه کد struct زیر یک نمونه از نحوه قفل کردن روی منابع می باشد
type Mutex struct {
state int32
sema uint32
}
برای دسترسی به این قسمت از کد به مسیر زیر برید
src/sync/mutex.go
خوب بریم ببینیم این ساختار در واقع چه بلایی رو منابع ما میاره 😁
❇️گزینه اول state به معنی قفل بودن یا نبودن رو مشخص می کنه
❇️گزینه دوم نماینگر semaphore ها هستن این semaphore ها در واقع یک نوع داده متغیر یا انتزاعی است که برای کنترل دسترسی به یک منبع مشترک توسط چندین فرآیند در یک سیستم همزمان مانند یک سیستم عامل چند وظیفه ای استفاده می شود. که توسظ Coroutines ها مدیریت می شود این Coroutines ها در واقعه وظیفه اجرا یا از سرگیری مولفه های سیستم می باشند
❌در واقع Mutex.state یک بلوک ۳۲ بیت هست که شامل چهار قسمت هست در شکل زیر توضیح میدیم👇👇
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
📍2.1 Mutex structure📍
نمونه کد struct زیر یک نمونه از نحوه قفل کردن روی منابع می باشد
type Mutex struct {
state int32
sema uint32
}
برای دسترسی به این قسمت از کد به مسیر زیر برید
src/sync/mutex.go
خوب بریم ببینیم این ساختار در واقع چه بلایی رو منابع ما میاره 😁
❇️گزینه اول state به معنی قفل بودن یا نبودن رو مشخص می کنه
❇️گزینه دوم نماینگر semaphore ها هستن این semaphore ها در واقع یک نوع داده متغیر یا انتزاعی است که برای کنترل دسترسی به یک منبع مشترک توسط چندین فرآیند در یک سیستم همزمان مانند یک سیستم عامل چند وظیفه ای استفاده می شود. که توسظ Coroutines ها مدیریت می شود این Coroutines ها در واقعه وظیفه اجرا یا از سرگیری مولفه های سیستم می باشند
❌در واقع Mutex.state یک بلوک ۳۲ بیت هست که شامل چهار قسمت هست در شکل زیر توضیح میدیم👇👇
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
📍توضیحات شکل بالا📍
❇️Locked
نشان دهنده ففل بودن رو نشون میده اگر صفر بود یعنی قفل نیست اگر یک بود بعنی قفل هست
❇️Woken
سازوکار coroutine هاست یعنی اگر صفر بود هیج coroutine از خواب بیدار نشده و اگر یک بود یعنی coroutine مدنظر از خواب بیدار شده و در مرحله قفل شده هست
❇️Starving
نشان می دهد که آیا Mutex حالت گرسنگی را پردازش می کند. اگر صفر بود در حالت گرسنگی نیست و اگر یک بود بعنی اون coroutine بیش از یک میلی ثانبه قفل شده هست
❇️Waiter
تعداد coroutine های مسدود شده رو نشون میده و هتگامی که این coroutine ها از حالت قفل بیرون بیان میشه از اون semaphore ها استفاده کرد
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❇️Locked
نشان دهنده ففل بودن رو نشون میده اگر صفر بود یعنی قفل نیست اگر یک بود بعنی قفل هست
❇️Woken
سازوکار coroutine هاست یعنی اگر صفر بود هیج coroutine از خواب بیدار نشده و اگر یک بود یعنی coroutine مدنظر از خواب بیدار شده و در مرحله قفل شده هست
❇️Starving
نشان می دهد که آیا Mutex حالت گرسنگی را پردازش می کند. اگر صفر بود در حالت گرسنگی نیست و اگر یک بود بعنی اون coroutine بیش از یک میلی ثانبه قفل شده هست
❇️Waiter
تعداد coroutine های مسدود شده رو نشون میده و هتگامی که این coroutine ها از حالت قفل بیرون بیان میشه از اون semaphore ها استفاده کرد
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
the following syntax error is
Final Results
11%
func f(a, b int) (value int, err error)
41%
func f(a int, b int) (value int, err error) )
32%
func f(a, b int) (value int, error)
16%
func f(a int, b int) (int, int, error)
the following syntax is correct
Final Results
12%
str :='abc' + '123'
84%
str := "abc" + "123"
4%
str : = '123' + "abc"
Gopher Academy
🎯تجزیه و تحلیل قفل ها یا lock ها در mutex ها🎯 🔰 توی این قسمت می خواهیم به قول معروف دل و جیگر این رویکرد رو بریزیم ببینیم چجوری عمل می کند. 📍سرفصلش📍 1 Introduction 2. Mutex data structure 2.1 Mutex structure 2.2 Mutex method 3. Add and unlock process 3.1…
📍2.2 Mutex method📍
🔰درواقع Mutext دو روش را ارائه می دهد:
❇️قفل locked (): روش قفل کردن
❇️باز کردنunlocked (): روش باز کردن
🧐بیایید روند قفل کردن و باز کردن قفل را تحلیل کنیم.
❌قفل کردن را می توان به دو حالت تقسیم کرد:
موفقیت و شکست. یا همون success and failure
در صورت موفقیت ، قفل مستقیماً به دست می آید. اما در شرابط پس از خرابی ، coroutine فعلی مسدود می شود.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔰درواقع Mutext دو روش را ارائه می دهد:
❇️قفل locked (): روش قفل کردن
❇️باز کردنunlocked (): روش باز کردن
🧐بیایید روند قفل کردن و باز کردن قفل را تحلیل کنیم.
❌قفل کردن را می توان به دو حالت تقسیم کرد:
موفقیت و شکست. یا همون success and failure
در صورت موفقیت ، قفل مستقیماً به دست می آید. اما در شرابط پس از خرابی ، coroutine فعلی مسدود می شود.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
📍3.1 Simple lock📍 👇توضیحات 👇 ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
🔰 در شکل فوق با فرض اینکه در حال حاضر فقط یک کوروتین قفل شده است و هیچ دخالتی از سایر کورینتین ها وجود ندارد
فرآیند قفل تعیین می کند که آیا Locked 0 است اگر 0 باشد ، بیت Locked روی 1 تنظیم می شود ، به این معنی که قفل موفقیت آمیز است. از شکل بالا مشخص می شود که پس از قفل کردن فقط موقعیت Locked 1 است و سایر بیت های وضعیت تغییر نکرده اند.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
فرآیند قفل تعیین می کند که آیا Locked 0 است اگر 0 باشد ، بیت Locked روی 1 تنظیم می شود ، به این معنی که قفل موفقیت آمیز است. از شکل بالا مشخص می شود که پس از قفل کردن فقط موقعیت Locked 1 است و سایر بیت های وضعیت تغییر نکرده اند.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
https://www.youtube.com/watch?v=NCUyV9kMAvU
❌مهاجرت کاری برنامه نویسان | بکاند - golang❌
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌مهاجرت کاری برنامه نویسان | بکاند - golang❌
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
YouTube
مهاجرت کاری برنامه نویسان | بکاند - golang
دراین ویدیو من، احسان، به همراه فرود درباره چگونگی فرایند مهاجرت کاری برای برنامهنویسان و همچنین نکات مهم پیشنیاز قبل از مصاحبه و خود مصاحبه صحبت میکنیم. تمرکزمون در این قسمت روی بکاند و زبان گولنگ هست.