Forwarded from Gopher Academy
Concurrency in Go-226.pdf
1.7 MB
🔴آشنایی با Benchmark Test در گولنگ و نحوه تست آن🔴
❌در ادامه آموزش خواهیم داد
🔵introduction to Benchmark
🟡 https://t.me/gopher_academy/729
🔵 A Simple Benchmark Test
🟡 https://t.me/gopher_academy/730
🟡 https://t.me/gopher_academy/731
🟡 https://t.me/gopher_academy/732
🔵 The -run Flag
🟡 https://t.me/gopher_academy/733
🔵 Increasing the Complexity.
🟡 https://t.me/gopher_academy/734
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌در ادامه آموزش خواهیم داد
🔵introduction to Benchmark
🟡 https://t.me/gopher_academy/729
🔵 A Simple Benchmark Test
🟡 https://t.me/gopher_academy/730
🟡 https://t.me/gopher_academy/731
🟡 https://t.me/gopher_academy/732
🔵 The -run Flag
🟡 https://t.me/gopher_academy/733
🔵 Increasing the Complexity.
🟡 https://t.me/gopher_academy/734
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔵introduction to Benchmark🔵
🟢 بنچمارک (Benchmark) به زبانی ساده، به معنای استاندارد و یا مجموعهای از استانداردها است که میتواند معیاری برای اندازه گیری و سنجش عملکرد یک قطعه، یک ویژگی، یک برنامه و یا یک قابلیت در حوزههای مختلف، قرار گیرد.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🟢 بنچمارک (Benchmark) به زبانی ساده، به معنای استاندارد و یا مجموعهای از استانداردها است که میتواند معیاری برای اندازه گیری و سنجش عملکرد یک قطعه، یک ویژگی، یک برنامه و یا یک قابلیت در حوزههای مختلف، قرار گیرد.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🔴آشنایی با Benchmark Test در گولنگ و نحوه تست آن🔴 ❌در ادامه آموزش خواهیم داد 🔵introduction to Benchmark 🟡 https://t.me/gopher_academy/729 🔵 A Simple Benchmark Test 🟡 https://t.me/gopher_academy/730 🟡 https://t.me/gopher_academy/731 🟡 https://t.me/gopher_academy/732…
🔵 A Simple Benchmark Test🔵
🟢 در Go ، تست های Benchmark را می توان همراه با unit test نوشت.
🟢 توابع Benchmark باید با پیشوند "Benchmark" نوشته شود و به دنبال آن نام تابع ، به همان روشی که برای unit test استفاده می کنیم
🟢 اما اجرا آنها متقاوت هست
👇🏻❌👇🏻به تکه کد زیر توجه کنید👇🏻❌👇🏻
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🟢 در Go ، تست های Benchmark را می توان همراه با unit test نوشت.
🟢 توابع Benchmark باید با پیشوند "Benchmark" نوشته شود و به دنبال آن نام تابع ، به همان روشی که برای unit test استفاده می کنیم
🟢 اما اجرا آنها متقاوت هست
👇🏻❌👇🏻به تکه کد زیر توجه کنید👇🏻❌👇🏻
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🔴آشنایی با Benchmark Test در گولنگ و نحوه تست آن🔴 ❌در ادامه آموزش خواهیم داد 🔵introduction to Benchmark 🟡 https://t.me/gopher_academy/729 🔵 A Simple Benchmark Test 🟡 https://t.me/gopher_academy/730 🟡 https://t.me/gopher_academy/731 🟡 https://t.me/gopher_academy/732…
🟢 این توابع با نام Benchmark شروع می شوند
🟢 ازکتابخانه testing برای اجرا استفاده می کند
🟢 مقدار b.N هر بار افزایش می یابد تا زمانی که معیاری از stability برسد.
🟢 هر Benchmark باید کد را تحت آزمایش b.N بار اجرا کند.
👇🏻👇🏻❌نحوه اجرا❌👇🏻👇🏻
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🟢 ازکتابخانه testing برای اجرا استفاده می کند
🟢 مقدار b.N هر بار افزایش می یابد تا زمانی که معیاری از stability برسد.
🟢 هر Benchmark باید کد را تحت آزمایش b.N بار اجرا کند.
👇🏻👇🏻❌نحوه اجرا❌👇🏻👇🏻
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🔴آشنایی با Benchmark Test در گولنگ و نحوه تست آن🔴 ❌در ادامه آموزش خواهیم داد 🔵introduction to Benchmark 🟡 https://t.me/gopher_academy/729 🔵 A Simple Benchmark Test 🟡 https://t.me/gopher_academy/730 🟡 https://t.me/gopher_academy/731 🟡 https://t.me/gopher_academy/732…
🟢 اجرای کد فوق به صورت عکس فوق
❌ go test -bench=.
کامند فوق تمام متد Benchmark ها رو اجرا می کنه
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌ go test -bench=.
کامند فوق تمام متد Benchmark ها رو اجرا می کنه
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🔴آشنایی با Benchmark Test در گولنگ و نحوه تست آن🔴 ❌در ادامه آموزش خواهیم داد 🔵introduction to Benchmark 🟡 https://t.me/gopher_academy/729 🔵 A Simple Benchmark Test 🟡 https://t.me/gopher_academy/730 🟡 https://t.me/gopher_academy/731 🟡 https://t.me/gopher_academy/732…
🔵 The -run Flag🔵
❌کد فوق رو درنظر بگیرید
🟢برای اجرای متد TestCalculate به صورت زیر عمل می کنیم
❌ go test -run=Calculate -bench=.
🟢برای اجرای متد BenchmarkCalculate به صورت زیر عمل می کنیم
❌ go test -run=Bench -bench=.
🟢برای اجرای جداگانه تست هامون از -run Flag استفاده می کنیم
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌کد فوق رو درنظر بگیرید
🟢برای اجرای متد TestCalculate به صورت زیر عمل می کنیم
❌ go test -run=Calculate -bench=.
🟢برای اجرای متد BenchmarkCalculate به صورت زیر عمل می کنیم
❌ go test -run=Bench -bench=.
🟢برای اجرای جداگانه تست هامون از -run Flag استفاده می کنیم
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🔴آشنایی با Benchmark Test در گولنگ و نحوه تست آن🔴 ❌در ادامه آموزش خواهیم داد 🔵introduction to Benchmark 🟡 https://t.me/gopher_academy/729 🔵 A Simple Benchmark Test 🟡 https://t.me/gopher_academy/730 🟡 https://t.me/gopher_academy/731 🟡 https://t.me/gopher_academy/732…
🔵 Increasing the Complexity. 🔵
🟢 به طور معمول ، شما می خواهید برنامه های خود را با انواع ورودی های مشخص محک بزنید. شما می خواهید ویژگی های performance برنامه خود را تحت تعدادی سناریوی مجزا و واقعی اندازه گیری کنید.
🟢ما از تابع محاسبه مثال قبلی خود استفاده خواهیم کرد و این بار مجموعه ای از benchmarks های مختلف را اضافه خواهیم کرد که ورودی های مختلف را آزمایش کنند
🟢 بنابراین ، در اینجا ما 3 عملکرد مشخص Benchmark را ایجاد کرده ایم که با انواع مختلف ورودی ، فراخوانی Benchmark را می خوانند.
🟢این به ما اجازه می دهد که بین عملکردهای مختلف تفاوت عملکردی داشته باشیم
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🟢 به طور معمول ، شما می خواهید برنامه های خود را با انواع ورودی های مشخص محک بزنید. شما می خواهید ویژگی های performance برنامه خود را تحت تعدادی سناریوی مجزا و واقعی اندازه گیری کنید.
🟢ما از تابع محاسبه مثال قبلی خود استفاده خواهیم کرد و این بار مجموعه ای از benchmarks های مختلف را اضافه خواهیم کرد که ورودی های مختلف را آزمایش کنند
🟢 بنابراین ، در اینجا ما 3 عملکرد مشخص Benchmark را ایجاد کرده ایم که با انواع مختلف ورودی ، فراخوانی Benchmark را می خوانند.
🟢این به ما اجازه می دهد که بین عملکردهای مختلف تفاوت عملکردی داشته باشیم
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Final Results
67%
خوب
33%
متوسط
0%
ضعیف
Final Results
60%
خوب
40%
متوسط
0%
بد
✅ مجموعه سری آموزشی تست نویسی و اجرا آن
🔴آشنایی با Benchmark Test
🟡 https://t.me/gopher_academy/728
🔴آشنایی با Test Coverage
🟡 https://t.me/gopher_academy/717
🔴آشنایی با unitTest
🟡 https://t.me/gopher_academy/684
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴آشنایی با Benchmark Test
🟡 https://t.me/gopher_academy/728
🔴آشنایی با Test Coverage
🟡 https://t.me/gopher_academy/717
🔴آشنایی با unitTest
🟡 https://t.me/gopher_academy/684
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
کانال ما چهارشنبه ۸ مرداد سال ۹۹ شروع به فعالیت توی زمینه زبان برنامه نویسی گولنگ کرده و هدفش آموزش این زبان و نکات کلیدی بود نظرتون در مورد محتوا کانال چیه؟نظر سنجی آخر سال
Final Results
26%
عالی
32%
خوب
20%
متوسط
22%
ضعیف
✅تلگرام با قابلیت چت صوتی در کانالها به روز شد؛ رقابت تنگاتنگ با کلابهاوس
🔴تلگرام سه ماه قبل از قابلیت چت صوتی برای گروهها رونمایی کرد و حالا با ارائه نسخه جدید آن با عنوان Voice Chat 2.0 مهیای رقابت گستردهتر با اپلیکیشن کلابهاوس میشود که این روزها سر و صدای زیادی به پا کرده است.
🔴درواقع Voice Chat 2.0 که ساعاتی قبل در تلگرام ۷.۶ ارائه شد، امکان چت صوتی در گروهها و کانالها را بدون محدودیت در شمار اعضا فراهم میکند. تلگرام به میزبان چتهای صوتی اجازه میدهد تا میلیون ها نفر را پذیرا باشند و به همین دلیل از این ویژگی به عنوان رادیوی قرن ۲۱ یاد کرده است.
🌐مرجع تخصصی برنامه نویسان
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴تلگرام سه ماه قبل از قابلیت چت صوتی برای گروهها رونمایی کرد و حالا با ارائه نسخه جدید آن با عنوان Voice Chat 2.0 مهیای رقابت گستردهتر با اپلیکیشن کلابهاوس میشود که این روزها سر و صدای زیادی به پا کرده است.
🔴درواقع Voice Chat 2.0 که ساعاتی قبل در تلگرام ۷.۶ ارائه شد، امکان چت صوتی در گروهها و کانالها را بدون محدودیت در شمار اعضا فراهم میکند. تلگرام به میزبان چتهای صوتی اجازه میدهد تا میلیون ها نفر را پذیرا باشند و به همین دلیل از این ویژگی به عنوان رادیوی قرن ۲۱ یاد کرده است.
🌐مرجع تخصصی برنامه نویسان
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅نحوه استفاده از JSON با Go✅
❌در ادامه آموزش خواهیم داد
🔴Default types
🟡 https://t.me/gopher_academy/743
🔴Encode (marshal) struct to JSON
🟡 https://t.me/gopher_academy/744
🔴Pretty print
🟡 https://t.me/gopher_academy/745
🔴Decode (unmarshal) JSON to struct
🟡 https://t.me/gopher_academy/746
🔴Arbitrary objects and arrays
🟡 https://t.me/gopher_academy/747
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌در ادامه آموزش خواهیم داد
🔴Default types
🟡 https://t.me/gopher_academy/743
🔴Encode (marshal) struct to JSON
🟡 https://t.me/gopher_academy/744
🔴Pretty print
🟡 https://t.me/gopher_academy/745
🔴Decode (unmarshal) JSON to struct
🟡 https://t.me/gopher_academy/746
🔴Arbitrary objects and arrays
🟡 https://t.me/gopher_academy/747
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
✅نحوه استفاده از JSON با Go✅ ❌در ادامه آموزش خواهیم داد 🔴Default types 🟡 https://t.me/gopher_academy/743 🔴Encode (marshal) struct to JSON 🟡 https://t.me/gopher_academy/744 🔴Pretty print 🟡 https://t.me/gopher_academy/745 🔴Decode (unmarshal) JSON to struct…
🔴Default types
🔵انواع پیش فرض برای رمزگشایی و رمزگذاری در JSON عبارتند:
🟢bool for JSON booleans,
🟢float64 for JSON numbers,
🟢string for JSON strings, and
🟢nil for JSON null.
🔵علاوه بر این ، time.Time و انواع عددی موجود در بسته math / big را می توان بصورت خودکار به رشته های JSON کدگذاری کرد.
🔵توجه داشته باشید که JSON از انواع صحیح پشتیبانی نمی کند. آنها را اغلب می توان با اعداد نقطه شناور floating-point numbers. تقریب زد.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔵انواع پیش فرض برای رمزگشایی و رمزگذاری در JSON عبارتند:
🟢bool for JSON booleans,
🟢float64 for JSON numbers,
🟢string for JSON strings, and
🟢nil for JSON null.
🔵علاوه بر این ، time.Time و انواع عددی موجود در بسته math / big را می توان بصورت خودکار به رشته های JSON کدگذاری کرد.
🔵توجه داشته باشید که JSON از انواع صحیح پشتیبانی نمی کند. آنها را اغلب می توان با اعداد نقطه شناور floating-point numbers. تقریب زد.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
✅نحوه استفاده از JSON با Go✅ ❌در ادامه آموزش خواهیم داد 🔴Default types 🟡 https://t.me/gopher_academy/743 🔴Encode (marshal) struct to JSON 🟡 https://t.me/gopher_academy/744 🔴Pretty print 🟡 https://t.me/gopher_academy/745 🔴Decode (unmarshal) JSON to struct…
🔴 Encode (marshal) struct to JSON
🔵 خوب این کد یه نمونه ساده از decode کردن json هست نمونه کد فوق خیلی واضح هست
🔵ما اومدیم یه استراکچر تغریف کردیم
🔵توی خط ۹ تا ۱۵ اومدیم بهش مقدار دادیم
🔵اگه دقت کنید توی خط ۴ ما اومدیم یه تگ بهش ادیم این تگ توی خروجی واسه ما نمایش داده میشه بعنی بجای id به ما ref رو نشون میده
🔵و توی خط ۵ ما اومدیم فیلد رو با حروف کوچیک نوشتم که دفت کنید توی دیکد کردن اون فیلد رو نادیده میگیره
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔵 خوب این کد یه نمونه ساده از decode کردن json هست نمونه کد فوق خیلی واضح هست
🔵ما اومدیم یه استراکچر تغریف کردیم
🔵توی خط ۹ تا ۱۵ اومدیم بهش مقدار دادیم
🔵اگه دقت کنید توی خط ۴ ما اومدیم یه تگ بهش ادیم این تگ توی خروجی واسه ما نمایش داده میشه بعنی بجای id به ما ref رو نشون میده
🔵و توی خط ۵ ما اومدیم فیلد رو با حروف کوچیک نوشتم که دفت کنید توی دیکد کردن اون فیلد رو نادیده میگیره
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❤1
Gopher Academy
✅نحوه استفاده از JSON با Go✅ ❌در ادامه آموزش خواهیم داد 🔴Default types 🟡 https://t.me/gopher_academy/743 🔴Encode (marshal) struct to JSON 🟡 https://t.me/gopher_academy/744 🔴Pretty print 🟡 https://t.me/gopher_academy/745 🔴Decode (unmarshal) JSON to struct…
🔴Pretty print
🔵برای اینکه خروجی رو بهتر بتونیم نشون بدیم توی خروجی از متد MarshalIndent استفاده می کنیم
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔵برای اینکه خروجی رو بهتر بتونیم نشون بدیم توی خروجی از متد MarshalIndent استفاده می کنیم
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
✅نحوه استفاده از JSON با Go✅ ❌در ادامه آموزش خواهیم داد 🔴Default types 🟡 https://t.me/gopher_academy/743 🔴Encode (marshal) struct to JSON 🟡 https://t.me/gopher_academy/744 🔴Pretty print 🟡 https://t.me/gopher_academy/745 🔴Decode (unmarshal) JSON to struct…
🔴Decode (unmarshal) JSON to struct
🔵 برای اینکه بخوایم jsonخود را decodeکنیم و توی خروجی نمایش بدیم یه سری از عناصر داخل فرم json رو مطابق کد فوق از تابع Unmarshal توی خط ۲۱ استفاده می کنیم
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔵 برای اینکه بخوایم jsonخود را decodeکنیم و توی خروجی نمایش بدیم یه سری از عناصر داخل فرم json رو مطابق کد فوق از تابع Unmarshal توی خط ۲۱ استفاده می کنیم
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
✅نحوه استفاده از JSON با Go✅ ❌در ادامه آموزش خواهیم داد 🔴Default types 🟡 https://t.me/gopher_academy/743 🔴Encode (marshal) struct to JSON 🟡 https://t.me/gopher_academy/744 🔴Pretty print 🟡 https://t.me/gopher_academy/745 🔴Decode (unmarshal) JSON to struct…
🔴Arbitrary objects and arrays
🔵 کد فوق را در نظر بگیرید ما میخوایم توی خروجی type هر value رو بدونیم چیه
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔵 کد فوق را در نظر بگیرید ما میخوایم توی خروجی type هر value رو بدونیم چیه
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy