🔴Go🔴
✅Typing discipline:
🔸Inferred🔸static, 🔸strong, 🔸structural
✅Paradigm: Multi-paradigm:
🔸concurrent, 🔸functional, 🔸imperative, 🔸object-oriented
✅Implementation language:
🔸Go, 🔸Assembly language (gc); 🔸C++ (gccgo)
✅Designed by:
🔸Robert Griesemer, 🔸Rob Pike, 🔸Ken Thompson
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅Typing discipline:
🔸Inferred🔸static, 🔸strong, 🔸structural
✅Paradigm: Multi-paradigm:
🔸concurrent, 🔸functional, 🔸imperative, 🔸object-oriented
✅Implementation language:
🔸Go, 🔸Assembly language (gc); 🔸C++ (gccgo)
✅Designed by:
🔸Robert Griesemer, 🔸Rob Pike, 🔸Ken Thompson
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯نماد های که داخل sprintf مورد استفاده قرار میگیره برای نمایش اعداد در خروجی با حالت های مختلف 🎯
فرض کنید عدد ما عدد 15 باشد
🔹%d
خود عدد رو نشون میده بر مبنای ۱۰
🔹%+d
همانند نماد فوق هست اما علامت بعلاوه رو پشت عدد نمایش میده
🔹%4d
طول عدد رو حساب میکنه که در اینجا عدد ۱۵ طولش میشه دو یعنی دو عدد تشکیل یه عدد رو دادن پس دوتا فاصله خالی از سمت راست میده مثل نمونه زیر
~~۱۵
اون علامت پشت ۱۵ فضا خالی هست
🔹%-4d
همانند نماد فوق منتها در سمت چپ
🔹%04d
همانند نماد فوق اما بجای فضای خالی صفر نشون میده مثل نمونه زیر
0015
🔹%b
عدد ۱۵ در باینری رو نشون میده
🔹%o
عدد رو در نماد ۸ نمایش میده
🔹%X
نماد ۱۶ حروف بزرگ
🔹%x
نماد ۱۶ حروف کوچک
🔹%#x
همانند نماد کوچیک ۱۶ هست اما یه 0xاولش اضافه میکنه
🔰@gopher_academy
فرض کنید عدد ما عدد 15 باشد
🔹%d
خود عدد رو نشون میده بر مبنای ۱۰
🔹%+d
همانند نماد فوق هست اما علامت بعلاوه رو پشت عدد نمایش میده
🔹%4d
طول عدد رو حساب میکنه که در اینجا عدد ۱۵ طولش میشه دو یعنی دو عدد تشکیل یه عدد رو دادن پس دوتا فاصله خالی از سمت راست میده مثل نمونه زیر
~~۱۵
اون علامت پشت ۱۵ فضا خالی هست
🔹%-4d
همانند نماد فوق منتها در سمت چپ
🔹%04d
همانند نماد فوق اما بجای فضای خالی صفر نشون میده مثل نمونه زیر
0015
🔹%b
عدد ۱۵ در باینری رو نشون میده
🔹%o
عدد رو در نماد ۸ نمایش میده
🔹%X
نماد ۱۶ حروف بزرگ
🔹%x
نماد ۱۶ حروف کوچک
🔹%#x
همانند نماد کوچیک ۱۶ هست اما یه 0xاولش اضافه میکنه
🔰@gopher_academy
🔴 اینم درگاه پرداخت زرین پال با گولنگ و مانگو🔴
https://github.com/mrbardia72/dark-zarinpal
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
https://github.com/mrbardia72/dark-zarinpal
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🔴 اینم درگاه پرداخت زرین پال با گولنگ و مانگو🔴 https://github.com/mrbardia72/dark-zarinpal ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
👆🏻👆🏻👆🏻👆🏻
این ریپو رو خودم دورس کردم
دوستان اگه پیشنهادی برای بهتر شدن یا آبشنی که بخواد اضافه بشه میتونن مشارکت کنن pull requestبزنن
این ریپو رو خودم دورس کردم
دوستان اگه پیشنهادی برای بهتر شدن یا آبشنی که بخواد اضافه بشه میتونن مشارکت کنن pull requestبزنن
🔴چطوری تست بنویسیم و چطور اجرا کنیم🔴
❌در ادامه آموزش خواهیم داد
🔵About Golang Testing Package
🟡 https://t.me/gopher_academy/685
🔵How to write Unit test cases with a single input
🟡 https://t.me/gopher_academy/686
🔵How to write Unit test cases with multiple inputs.
🟡 https://t.me/gopher_academy/687
🔵Different Commands to run test cases with example
🟡 https://t.me/gopher_academy/688
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌در ادامه آموزش خواهیم داد
🔵About Golang Testing Package
🟡 https://t.me/gopher_academy/685
🔵How to write Unit test cases with a single input
🟡 https://t.me/gopher_academy/686
🔵How to write Unit test cases with multiple inputs.
🟡 https://t.me/gopher_academy/687
🔵Different Commands to run test cases with example
🟡 https://t.me/gopher_academy/688
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🔴چطوری تست بنویسیم و چطور اجرا کنیم🔴 ❌در ادامه آموزش خواهیم داد 🔵About Golang Testing Package 🟡 https://t.me/gopher_academy/685 🔵How to write Unit test cases with a single input 🟡 https://t.me/gopher_academy/686 🔵How to write Unit test cases with multiple…
🔴About Golang Testing Package🔴
🟡برای اینکه شروع کنیم به تست نویسی باید موارد زیر رو انجام بدیم
🔵اضافه کردن پکیج “testing” به فایل تستی که میخوایم بنویسیم
🔵سعی کنید نام فایل به صورت الگوی زیر باشد
🔵eg : filename_test.go
🔵متد مربوطه برای تست به صورت الگوی زیر باشد
🔵TestFunctionName()
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🟡برای اینکه شروع کنیم به تست نویسی باید موارد زیر رو انجام بدیم
🔵اضافه کردن پکیج “testing” به فایل تستی که میخوایم بنویسیم
🔵سعی کنید نام فایل به صورت الگوی زیر باشد
🔵eg : filename_test.go
🔵متد مربوطه برای تست به صورت الگوی زیر باشد
🔵TestFunctionName()
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🔴چطوری تست بنویسیم و چطور اجرا کنیم🔴 ❌در ادامه آموزش خواهیم داد 🔵About Golang Testing Package 🟡 https://t.me/gopher_academy/685 🔵How to write Unit test cases with a single input 🟡 https://t.me/gopher_academy/686 🔵How to write Unit test cases with multiple…
🔴How to write Unit test cases with a single input🔴
🔵 خوب توی این روش ما یه کدی نوشتیم که مجموع یه آرایه از اعداد صحیح رو محاسبه می کنه توی خط ۲ تا ۱۰ مشخص هست
🔵 توی خط ۱۳ تا ۳۹ تست نوشتیم برای کد بالا
به این صورت که دو حالت Success و Failed رو براش پیاده سازی کردیم
🔵توی خط ۱۸ و ۱۹ لیست اعدادی که جمعشون میشه ۱۰ رو قرار دادیم که جواب تست دورسته
🔵توی خط ۲۹ و ۳۰ لیست اعدادی که جمعشون میشه ۱۰ رو قرار دادیم که جواب تست اشتباه هست یعنی جمع اعداد با لیست مجموعه اعداد برابر نیست
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔵 خوب توی این روش ما یه کدی نوشتیم که مجموع یه آرایه از اعداد صحیح رو محاسبه می کنه توی خط ۲ تا ۱۰ مشخص هست
🔵 توی خط ۱۳ تا ۳۹ تست نوشتیم برای کد بالا
به این صورت که دو حالت Success و Failed رو براش پیاده سازی کردیم
🔵توی خط ۱۸ و ۱۹ لیست اعدادی که جمعشون میشه ۱۰ رو قرار دادیم که جواب تست دورسته
🔵توی خط ۲۹ و ۳۰ لیست اعدادی که جمعشون میشه ۱۰ رو قرار دادیم که جواب تست اشتباه هست یعنی جمع اعداد با لیست مجموعه اعداد برابر نیست
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🔴چطوری تست بنویسیم و چطور اجرا کنیم🔴 ❌در ادامه آموزش خواهیم داد 🔵About Golang Testing Package 🟡 https://t.me/gopher_academy/685 🔵How to write Unit test cases with a single input 🟡 https://t.me/gopher_academy/686 🔵How to write Unit test cases with multiple…
🔴How to write Unit test cases with multiple inputs AKA Table Driven tests🔴
🔵 فرض کنید میخواید مجموعه ای از حالت رو روی متد خود تست کنید که میاد از حالت aka tdd استفاده می کنید
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔵 فرض کنید میخواید مجموعه ای از حالت رو روی متد خود تست کنید که میاد از حالت aka tdd استفاده می کنید
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🔴چطوری تست بنویسیم و چطور اجرا کنیم🔴 ❌در ادامه آموزش خواهیم داد 🔵About Golang Testing Package 🟡 https://t.me/gopher_academy/685 🔵How to write Unit test cases with a single input 🟡 https://t.me/gopher_academy/686 🔵How to write Unit test cases with multiple…
🔴Different Commands to run test cases with example🔴
🔵حالت های مختلف اجرای تست
🟢 اجرای کل تست
🟡go test
🟢 اجرای کل تست داخل فایل مربوطه
🟡go test filename_test.go
🟢 اجرای کل تست به همراه نتیجه
🟡go test -v
🟢 اجرای بک متد تست خاص از یک فایل تست
🟡go test -run TestFunctionName
🟢 اجرای یک متد به همراه ورودی و نمایش نتیجه
🟡go test -run TestFunctionName/Inputvalue=4 -v
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔵حالت های مختلف اجرای تست
🟢 اجرای کل تست
🟡go test
🟢 اجرای کل تست داخل فایل مربوطه
🟡go test filename_test.go
🟢 اجرای کل تست به همراه نتیجه
🟡go test -v
🟢 اجرای بک متد تست خاص از یک فایل تست
🟡go test -run TestFunctionName
🟢 اجرای یک متد به همراه ورودی و نمایش نتیجه
🟡go test -run TestFunctionName/Inputvalue=4 -v
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔰موضوع ارائه: مروری بر ریزهکاریهای اینترفیس error در زبان Go🔰
در این دورهمی مروری نسبتا عمیق روی اینترفیس error در زبان Go خواهیم داشت و با هم سعی میکنیم با ماهیت، ریزهکاریها و روشهای متنوع استفاده از این اینترفیس آشنا بشیم.
در انتها نیز زمانی رو برای پرسش و پاسخ و گپ و گفت اختصاص میدیم.
🔹تاریخ و ساعت ارائه:
🔺یکشنبه ۱۷ اسفند
🔺 ساعت ۱۹:۳۰ به وقت ایران
🔹ارائهدهنده: حامد مومنی (https://twitter.com/2hamed)
🔹لینک شرکت در دورهمی: https://meet.google.com/fpw-azih-cvf
🔰 @gopher_academy
در این دورهمی مروری نسبتا عمیق روی اینترفیس error در زبان Go خواهیم داشت و با هم سعی میکنیم با ماهیت، ریزهکاریها و روشهای متنوع استفاده از این اینترفیس آشنا بشیم.
در انتها نیز زمانی رو برای پرسش و پاسخ و گپ و گفت اختصاص میدیم.
🔹تاریخ و ساعت ارائه:
🔺یکشنبه ۱۷ اسفند
🔺 ساعت ۱۹:۳۰ به وقت ایران
🔹ارائهدهنده: حامد مومنی (https://twitter.com/2hamed)
🔹لینک شرکت در دورهمی: https://meet.google.com/fpw-azih-cvf
🔰 @gopher_academy
🔴 اینم درگاه پرداخت idpay با گولنگ و مانگو🔴
🟡 https://github.com/mrbardia72/dark-idpay
🔵این ریپو رو خودم دورس کردم - دوستان اگه پیشنهادی برای بهتر شدن یا آبشنی که بخواد اضافه بشه میتونن مشارکت کنن pull request بزنن
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🟡 https://github.com/mrbardia72/dark-idpay
🔵این ریپو رو خودم دورس کردم - دوستان اگه پیشنهادی برای بهتر شدن یا آبشنی که بخواد اضافه بشه میتونن مشارکت کنن pull request بزنن
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴استاتیک تایپ و داینامیک تایپ در زبان های برنامه نویسی و بیشتر🔴
🟡 https://vrgl.ir/5nP0q
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🟡 https://vrgl.ir/5nP0q
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴۴ دلیل برای اینکه از GraphQL بیشتر از REST API استفاده کنید🔴
🟡 https://roocket.ir/articles/stop-using-rest-for-apis
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🟡 https://roocket.ir/articles/stop-using-rest-for-apis
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴پشت صحنه garbage collector در زبانهای برنامهنویسی🔴
🟡 https://vrgl.ir/1y8Wd
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🟡 https://vrgl.ir/1y8Wd
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴 سناریو استفاده از پکیج context در گولنگ 🔴
❌آموزش در ادامه این مطلب
🟡 introduction
🟢 https://t.me/gopher_academy/697
🟡 RPC call
🟢 https://t.me/gopher_academy/698
🟢 https://t.me/gopher_academy/699
🟡 PipeLine
🟢 https://t.me/gopher_academy/700
🟡 Timeout request
🟢 https://t.me/gopher_academy/701
🟢 https://t.me/gopher_academy/702
🟢 https://t.me/gopher_academy/703
🟢 https://t.me/gopher_academy/704
🟡 HTTP server requests transfer data
🟢 https://t.me/gopher_academy/705
🟢 https://t.me/gopher_academy/706
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌آموزش در ادامه این مطلب
🟡 introduction
🟢 https://t.me/gopher_academy/697
🟡 RPC call
🟢 https://t.me/gopher_academy/698
🟢 https://t.me/gopher_academy/699
🟡 PipeLine
🟢 https://t.me/gopher_academy/700
🟡 Timeout request
🟢 https://t.me/gopher_academy/701
🟢 https://t.me/gopher_academy/702
🟢 https://t.me/gopher_academy/703
🟢 https://t.me/gopher_academy/704
🟡 HTTP server requests transfer data
🟢 https://t.me/gopher_academy/705
🟢 https://t.me/gopher_academy/706
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🔴 سناریو استفاده از پکیج context در گولنگ 🔴 ❌آموزش در ادامه این مطلب 🟡 introduction 🟢 https://t.me/gopher_academy/697 🟡 RPC call 🟢 https://t.me/gopher_academy/698 🟢 https://t.me/gopher_academy/699 🟡 PipeLine 🟢 https://t.me/gopher_academy/700 🟡 Timeout request…
🟡 introduction🟡
در مورد پکیج context
🔵این کتابخانه از ورژن Go1.7 وارد شد
🔵 کاربرد اصلی آن ، در یک جمله ، کنترل چرخه گوروتین ها می یاشد.
🔵هنگامی که یک کار محاسباتی به دست یک goroutine منتقل می شود ، به دلایلی (وقفه زمانی یا خروج اجباری) ، ما می خواهیم کار محاسباتی این goroutine را به حالت تعلیق درآوریم.. پس برای این سناریور های از این قبیل از context استفاده می کنیم
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
در مورد پکیج context
🔵این کتابخانه از ورژن Go1.7 وارد شد
🔵 کاربرد اصلی آن ، در یک جمله ، کنترل چرخه گوروتین ها می یاشد.
🔵هنگامی که یک کار محاسباتی به دست یک goroutine منتقل می شود ، به دلایلی (وقفه زمانی یا خروج اجباری) ، ما می خواهیم کار محاسباتی این goroutine را به حالت تعلیق درآوریم.. پس برای این سناریور های از این قبیل از context استفاده می کنیم
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🔴 سناریو استفاده از پکیج context در گولنگ 🔴 ❌آموزش در ادامه این مطلب 🟡 introduction 🟢 https://t.me/gopher_academy/697 🟡 RPC call 🟢 https://t.me/gopher_academy/698 🟢 https://t.me/gopher_academy/699 🟡 PipeLine 🟢 https://t.me/gopher_academy/700 🟡 Timeout request…
🟡 RPC call 🟡
🟣پروتکل rpc چیست و چه کاربردی دارد؟
🔵پروتکل RPC که مخفف عبارت Remote Procedure Call است یک پروتکل است که یک برنامه می تواند برای درخواست یک سرویس از یک برنامه در یک کامپیوتر دیگر در یک شبکه بدون نیاز به درک جزئیات شبکه استفاده کند. درواقع RPC از مدل client-server استفاده می کند. پروتکل rpc یک نوع پروتکل درخواست است که از سمت کلاینت به یک سرور شناخته شده در محل دیگر ارسال میشود تا یک فرآیند مشخص را با پارامترهای ارایه شده اجرا کند.اگر سرور هم پاسخی به مشتری ارسال کند، برنامه همچنان روند خود را ادامه می دهد.
🟣سرویسهای مهمی که از پروتکل rpc استفاده میکنند:
🔵سرویس NFS (Network File System) یکی از مهمترین کاربران RPC است.
🔵بXML-RPC یک پروتکل RPC است که از XML برای رمزگذاری تماس ها و HTTP به عنوان یک مکانیسم حمل و نقل استفاده می کند.
🔵بJSON-RPC یک پروتکل RPC است که از پیام های کد شده JSON استفاده می کند.
🔵بGoogle Toolkit از یک asynchronous RPC برای برقراری ارتباط با سرور استفاده میکند.
🔵بGoogle Protocol Buffers Buffers شامل یک زبان تعریف رابط استفاده شده برای پروتکل های RPC [12] است از سال 2015 به عنوان gRPC عرضه می شود.
🔵ب Microsoft .NET Remoting امکانات RPC را برای سیستم های توزیع شده در پلت فرم ویندوز ارائه می دهد. این توسط WCF جایگزین شده است.
🔵بMicrosoft DCOM از MSRPC استفاده می کند که بر اساس DCE / RPC است.
🔵بOpen Software Foundation که از DCE / RPC استفاده میکند.
🔵ب(Directory Service Remote Procedure Call (DS-RPC پروتکل پیشفرض، برای intersite replication است.
🔻🔻🔻🔻🔻🔻🔻
در گورتین اصلی 4 RPC وجود دارد.
در واقع RPC 2 / 3 /4 به طور موازی درخواست می شوند.
در اینجا امیدواریم که پس از عدم موفقیت RPC2 خطایی را مستقیماً برگردانیم و RPC3 / 4 محاسبه را متوقف کند.
👇🏻👇🏻code👇🏻👇🏻
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🟣پروتکل rpc چیست و چه کاربردی دارد؟
🔵پروتکل RPC که مخفف عبارت Remote Procedure Call است یک پروتکل است که یک برنامه می تواند برای درخواست یک سرویس از یک برنامه در یک کامپیوتر دیگر در یک شبکه بدون نیاز به درک جزئیات شبکه استفاده کند. درواقع RPC از مدل client-server استفاده می کند. پروتکل rpc یک نوع پروتکل درخواست است که از سمت کلاینت به یک سرور شناخته شده در محل دیگر ارسال میشود تا یک فرآیند مشخص را با پارامترهای ارایه شده اجرا کند.اگر سرور هم پاسخی به مشتری ارسال کند، برنامه همچنان روند خود را ادامه می دهد.
🟣سرویسهای مهمی که از پروتکل rpc استفاده میکنند:
🔵سرویس NFS (Network File System) یکی از مهمترین کاربران RPC است.
🔵بXML-RPC یک پروتکل RPC است که از XML برای رمزگذاری تماس ها و HTTP به عنوان یک مکانیسم حمل و نقل استفاده می کند.
🔵بJSON-RPC یک پروتکل RPC است که از پیام های کد شده JSON استفاده می کند.
🔵بGoogle Toolkit از یک asynchronous RPC برای برقراری ارتباط با سرور استفاده میکند.
🔵بGoogle Protocol Buffers Buffers شامل یک زبان تعریف رابط استفاده شده برای پروتکل های RPC [12] است از سال 2015 به عنوان gRPC عرضه می شود.
🔵ب Microsoft .NET Remoting امکانات RPC را برای سیستم های توزیع شده در پلت فرم ویندوز ارائه می دهد. این توسط WCF جایگزین شده است.
🔵بMicrosoft DCOM از MSRPC استفاده می کند که بر اساس DCE / RPC است.
🔵بOpen Software Foundation که از DCE / RPC استفاده میکند.
🔵ب(Directory Service Remote Procedure Call (DS-RPC پروتکل پیشفرض، برای intersite replication است.
🔻🔻🔻🔻🔻🔻🔻
در گورتین اصلی 4 RPC وجود دارد.
در واقع RPC 2 / 3 /4 به طور موازی درخواست می شوند.
در اینجا امیدواریم که پس از عدم موفقیت RPC2 خطایی را مستقیماً برگردانیم و RPC3 / 4 محاسبه را متوقف کند.
👇🏻👇🏻code👇🏻👇🏻
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy