🎯قسمت نه کار با Gin Web Framework🎯
🔷 فهرست بخش نه از این مقاله
🔸Run multiple service using Gin
🔸Graceful shutdown or restart
🔸Build a single binary with templates
🔸Bind form-data request with custom struct
🔸Try to bind body into different structs
🔸http2 server push
🔸Define format for the log of routes
🔸Set and get a cookie
.
🔴 https://vrgl.ir/L7KBD
.
❌پایان سری آموزشی فرم ورک gin سوال نظری داشتید برامون بفرستید❌
🔸admin: @mrbardia72
.
#gin
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔷 فهرست بخش نه از این مقاله
🔸Run multiple service using Gin
🔸Graceful shutdown or restart
🔸Build a single binary with templates
🔸Bind form-data request with custom struct
🔸Try to bind body into different structs
🔸http2 server push
🔸Define format for the log of routes
🔸Set and get a cookie
.
🔴 https://vrgl.ir/L7KBD
.
❌پایان سری آموزشی فرم ورک gin سوال نظری داشتید برامون بفرستید❌
🔸admin: @mrbardia72
.
#gin
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯داکرفایل چند مرحله ای برای ایمیج سبک و سریع در گولنگ🎯
.
🔴 https://vrgl.ir/gFl3o
.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
.
🔴 https://vrgl.ir/gFl3o
.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯پیامرسان NATS با هسته قوی و به شکلی باورنکردنی سریع!🎯
.
🔴 https://vrgl.ir/0Theu
.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
.
🔴 https://vrgl.ir/0Theu
.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
نظرتون در مورد سری آموزشی gin web framework
Final Results
32%
خوب
10%
متوسط
6%
ضعیف
52%
وقت نشد مطالعه کنم
🔴Go (programming Language) Interview Questions And Answers🔴
.
🔹 https://www.wisdomjobs.com/e-university/go-programming-language-interview-questions.html
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
.
🔹 https://www.wisdomjobs.com/e-university/go-programming-language-interview-questions.html
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴MongoDB Interview Questions And Answers🔴
.
🔹 https://www.wisdomjobs.com/e-university/mongodb-interview-questions.html
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
.
🔹 https://www.wisdomjobs.com/e-university/mongodb-interview-questions.html
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴Linux Interview Questions And Answers🔴
.
https://www.wisdomjobs.com/e-university/linux-interview-questions.html
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
.
https://www.wisdomjobs.com/e-university/linux-interview-questions.html
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴Blockchain Interview Questions And Answers🔴
.
🔹 https://www.wisdomjobs.com/e-university/blockchain-interview-questions.html
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
.
🔹 https://www.wisdomjobs.com/e-university/blockchain-interview-questions.html
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴Amazon Web Services (AWS) Interview Questions And Answers🔴
.
🔹 https://www.wisdomjobs.com/e-university/amazon-web-services-aws-interview-questions-answers.html
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
.
🔹 https://www.wisdomjobs.com/e-university/amazon-web-services-aws-interview-questions-answers.html
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯مدیریت حافظه توسط برنامهنویس:🎯
🔹ز معروفترین زبانهای برنامهنویسی که کنترل حافظه را به خود برنامهنویسها سپردهاند، میتوان به c و ++c اشاره کرد. برنامهنویسهای این زبانها باید دائما حواسشون به حافظه و اینکه کِی حافظه را اختصاص و کِی حافظهای را آزاد کنند، باشد.
🔹مزایا:
🔹سرعت بیشتر: شی بیمصرف در لحظه و بدون ایجاد وفقهی خاصی ازبین رفته و فضای اختصاص داده شده به حافظه برمیگردد.
🔹سادگی: هیچگونه پیچیدگیای ندارد و پیادهسازی آن راحت میباشد(در واقع پیادهسازیای ندارد).
🔹رفتار قابل پیشبینی: با توجه به اینکه همه چیز به عهده خود برنامهنویس میباشد در نتیجه رفتار غیرقابل پیشبینی رخ نمیدهد. به عنوان مثال یک مرتبه روند اجرای برنامه متوقف و garbage collector شروع به اجرا بکند.
🔹معایب:
🔹معروفترین مورد: memory leaks. البته این مورد ممکن است با garbage collector هم اتفاق بیوفتد، اما در حالتی که حافظه توسط برنامهنویس کنترل میشود، معمولا بیشتر اتفاق میافتد.
🔹افزایش زمان توسعه(سردرد شدید): برنامهنویس باید حواسش به اشیا مختلف باشد. کِی حافظه را آزاد کنه و کِی نه و این سردرد به حساب میاد. نتیجهی این بررسی دائم نتیجهی کندتر شدن سرعت توسعه میباشد(توجه گردد که به هنگام بحث ما باید همه برنامهنویسها را مدنظر داشته باشیم نه فقط برنامهنویسهای senior).
🔹استفاده از حافظه خالی شده: بنا به دلایل مختلف ممکن است یک حافظه خالی شده، توسط خود برنامهنویس یا یک برنامهنویس دیگر دوباره مورد استفاده قرار میگیرد.
🔹خالی کردن حافظه خالی: برنامهنویس یک خانه از حافظه را که قبلا خالی شده، دوباره خالی میکند!
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹ز معروفترین زبانهای برنامهنویسی که کنترل حافظه را به خود برنامهنویسها سپردهاند، میتوان به c و ++c اشاره کرد. برنامهنویسهای این زبانها باید دائما حواسشون به حافظه و اینکه کِی حافظه را اختصاص و کِی حافظهای را آزاد کنند، باشد.
🔹مزایا:
🔹سرعت بیشتر: شی بیمصرف در لحظه و بدون ایجاد وفقهی خاصی ازبین رفته و فضای اختصاص داده شده به حافظه برمیگردد.
🔹سادگی: هیچگونه پیچیدگیای ندارد و پیادهسازی آن راحت میباشد(در واقع پیادهسازیای ندارد).
🔹رفتار قابل پیشبینی: با توجه به اینکه همه چیز به عهده خود برنامهنویس میباشد در نتیجه رفتار غیرقابل پیشبینی رخ نمیدهد. به عنوان مثال یک مرتبه روند اجرای برنامه متوقف و garbage collector شروع به اجرا بکند.
🔹معایب:
🔹معروفترین مورد: memory leaks. البته این مورد ممکن است با garbage collector هم اتفاق بیوفتد، اما در حالتی که حافظه توسط برنامهنویس کنترل میشود، معمولا بیشتر اتفاق میافتد.
🔹افزایش زمان توسعه(سردرد شدید): برنامهنویس باید حواسش به اشیا مختلف باشد. کِی حافظه را آزاد کنه و کِی نه و این سردرد به حساب میاد. نتیجهی این بررسی دائم نتیجهی کندتر شدن سرعت توسعه میباشد(توجه گردد که به هنگام بحث ما باید همه برنامهنویسها را مدنظر داشته باشیم نه فقط برنامهنویسهای senior).
🔹استفاده از حافظه خالی شده: بنا به دلایل مختلف ممکن است یک حافظه خالی شده، توسط خود برنامهنویس یا یک برنامهنویس دیگر دوباره مورد استفاده قرار میگیرد.
🔹خالی کردن حافظه خالی: برنامهنویس یک خانه از حافظه را که قبلا خالی شده، دوباره خالی میکند!
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯مدیریت حافظه توسط زبان برنامهنویسی:🎯
🔹تقریبا اکثر زبانهای برنامهنویسی سطح بالا این قابلیت را دارند، زبانهایی مثل جاوا، پایتون، سیشارپ و... . از آنجایی که این فرآیند توسط خود زبان برنامهنویسی مدیریت میشود، پس باید یک الگوریتم آن را انجام دهد. اینکه این الگوریتم چطوری باشد و کی شروع به کار کند و ... بحثهایی هستند که ما بهشون علاقهمند هستیم. اما این خودکارسازی(Automation) مزایا و معایبی را به همراه دارد:
🔹مزایا:
🔹افزایش سرعت توسعه و برنامهنویسی راحت: برنامهنویس به حافظه و اینکه حافظه کی خالی یا پر میشود، توجهی نمیکند. طبیعتا تو پروژههای حساس و یا چالشی که حجم حافظه کمه، ممکن است برنامهنویس مجبور باشد به این مورد اهمیت بدهد ولی به طور کلی در اکثر موارد مهم نمیباشد.
🔹کمتر شدن مشکلات امنیتی ناشی از مدیریت حافظه: در طی سالیان با کشف باگها و افزایش تجربه طراحان زبانهای برنامهنویسی این روند رفته رفته بهتر شده است.
🔹رفع بعضی از معایب روش مدیریت دستی.
🔹معایب:
🔹مصرف منابع: برای اجرای دستورات خود garbage collector به cpu نیاز داریم. از سوی دیگر برای نگهداری اطلاعات موردنیاز GC(گاها به جای Garbage Colletor از GC استفاده خواهد شد) به حافظه نیاز داریم که به طبع اینها منابع را مصرف و هزینه دارند.
🔹کاهش performance: اول از همه بگم که اینطوری نیست که یهو performance را خیلی کم کند، نه، اما طبیعتا باعث کاهش هرچند خیلی خیلی جزئیای خواهد شد. طبیعتا در اکثر برنامههای موجود در جهان این میزان کاهش اصلا، اصلا، اصلا مطرح و مهم نیستند، چون کار performanceی خاصی انجام نمیدهند. اما این کاهش چرا رخ میدهد؟ GC نیاز به بررسی حافظه دارد، که این بررسی به زمان نیاز دارد و این زمان یک زمان مفید نمیباشد. توجه گردد که در مورد قبل ما درباره استفاده از cpu و حافظه حرف زدیم، اما اینجا درباره خود زمان لازم برای بررسی حرف میزنیم(البته طبق ادعای یک مقاله، درمواردی ممکن است، در مجموع نه تنها باعث کاهش performance نگردد بلکه باعث افزایش آن نیز شود).
🔹غیرقابل پیشبینی بودن: اینکه garbage collector کی و کجای برنامه شروع به کار میکند، برای ما مشخص نیست و این ممکن است در شرایط خیلی خیلی خاصی مشکلاتی را به وجود بیارد. به عنوان مثال این اتفاق شاید شاید در یک سفینه فضایی یا راکتور هستهای باعث مشکلاتی گردد!
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹تقریبا اکثر زبانهای برنامهنویسی سطح بالا این قابلیت را دارند، زبانهایی مثل جاوا، پایتون، سیشارپ و... . از آنجایی که این فرآیند توسط خود زبان برنامهنویسی مدیریت میشود، پس باید یک الگوریتم آن را انجام دهد. اینکه این الگوریتم چطوری باشد و کی شروع به کار کند و ... بحثهایی هستند که ما بهشون علاقهمند هستیم. اما این خودکارسازی(Automation) مزایا و معایبی را به همراه دارد:
🔹مزایا:
🔹افزایش سرعت توسعه و برنامهنویسی راحت: برنامهنویس به حافظه و اینکه حافظه کی خالی یا پر میشود، توجهی نمیکند. طبیعتا تو پروژههای حساس و یا چالشی که حجم حافظه کمه، ممکن است برنامهنویس مجبور باشد به این مورد اهمیت بدهد ولی به طور کلی در اکثر موارد مهم نمیباشد.
🔹کمتر شدن مشکلات امنیتی ناشی از مدیریت حافظه: در طی سالیان با کشف باگها و افزایش تجربه طراحان زبانهای برنامهنویسی این روند رفته رفته بهتر شده است.
🔹رفع بعضی از معایب روش مدیریت دستی.
🔹معایب:
🔹مصرف منابع: برای اجرای دستورات خود garbage collector به cpu نیاز داریم. از سوی دیگر برای نگهداری اطلاعات موردنیاز GC(گاها به جای Garbage Colletor از GC استفاده خواهد شد) به حافظه نیاز داریم که به طبع اینها منابع را مصرف و هزینه دارند.
🔹کاهش performance: اول از همه بگم که اینطوری نیست که یهو performance را خیلی کم کند، نه، اما طبیعتا باعث کاهش هرچند خیلی خیلی جزئیای خواهد شد. طبیعتا در اکثر برنامههای موجود در جهان این میزان کاهش اصلا، اصلا، اصلا مطرح و مهم نیستند، چون کار performanceی خاصی انجام نمیدهند. اما این کاهش چرا رخ میدهد؟ GC نیاز به بررسی حافظه دارد، که این بررسی به زمان نیاز دارد و این زمان یک زمان مفید نمیباشد. توجه گردد که در مورد قبل ما درباره استفاده از cpu و حافظه حرف زدیم، اما اینجا درباره خود زمان لازم برای بررسی حرف میزنیم(البته طبق ادعای یک مقاله، درمواردی ممکن است، در مجموع نه تنها باعث کاهش performance نگردد بلکه باعث افزایش آن نیز شود).
🔹غیرقابل پیشبینی بودن: اینکه garbage collector کی و کجای برنامه شروع به کار میکند، برای ما مشخص نیست و این ممکن است در شرایط خیلی خیلی خاصی مشکلاتی را به وجود بیارد. به عنوان مثال این اتفاق شاید شاید در یک سفینه فضایی یا راکتور هستهای باعث مشکلاتی گردد!
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯سه نکته اساسی را باید به هنگام بحث از garbage collectorها در نظر داشته باشیم. این سه عبارتاند از:🎯
🔹حافظه: میزان حافظه heap که برای برنامه اختصاص داده میشود.
🔹توان عملیاتی(Throughput): مقدار زمان اجرای کد برنامه نسبت به مدت زمانی که garbage collector اجرا میگردد. به عنوان مثال اگر بگیم Throughput برابر %99 میباشد یعنی در ۹۹ درصد مواقع کد اصلی(برنامه) اجرا شده و ۱ درصد هم برای garbage collector صرف شده است. طبیعتا هرچقدر این عدد به ۱۰۰ نزدیکتر باشد، به معنی بهتر بودن garbage collector خواهد بود.
🔹تاخیر: مدت زمانی که اجرای برنامه اصلی به خاطر garbage collector با تاخیر مواجه شده است.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹حافظه: میزان حافظه heap که برای برنامه اختصاص داده میشود.
🔹توان عملیاتی(Throughput): مقدار زمان اجرای کد برنامه نسبت به مدت زمانی که garbage collector اجرا میگردد. به عنوان مثال اگر بگیم Throughput برابر %99 میباشد یعنی در ۹۹ درصد مواقع کد اصلی(برنامه) اجرا شده و ۱ درصد هم برای garbage collector صرف شده است. طبیعتا هرچقدر این عدد به ۱۰۰ نزدیکتر باشد، به معنی بهتر بودن garbage collector خواهد بود.
🔹تاخیر: مدت زمانی که اجرای برنامه اصلی به خاطر garbage collector با تاخیر مواجه شده است.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌ بخش اول ❌
🎯اضافه کردن Context به یک پروژه آزاد🎯
.
🔹 https://www.youtube.com/watch?v=O7aaLb3_eGU
.
🔴 مدرس Forud Ghafouri
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯اضافه کردن Context به یک پروژه آزاد🎯
.
🔹 https://www.youtube.com/watch?v=O7aaLb3_eGU
.
🔴 مدرس Forud Ghafouri
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy