Gopher Academy
3.34K subscribers
920 photos
40 videos
280 files
2K links
🕸 Gopher Academy

🔷interview golang
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
در دسته بندی تست ها در مهندسی نرم افزار، unit test جزء تست های White-box حساب می شود یا black-box؟
Anonymous Quiz
94%
White-box
6%
black-box
در دسته بندی تست ها در مهندسی نرم افزار، Integration test جزء تست های White-box حساب می شود یا black-box؟
Anonymous Quiz
43%
White-box
57%
black-box
در دسته بندی تست ها در مهندسی نرم افزار، Code coverageجزء تست های White-box حساب می شود یا black-box؟
Anonymous Quiz
75%
White-box
25%
black-bo؟
در دسته بندی تست ها در مهندسی نرم افزار، Test coverage جزء تست های White-box حساب می شود یا black-box؟
Anonymous Quiz
48%
White-box
52%
black-box
🔷اگه چنین query برای ارتباط با postgresql دارید
🔺SELECT name FROM users WHERE id=?
🔷و خطای زیر رو در خروجی دارید
🔺“Operator does not exist: integer =?” when using Postgres
🔷پرس جوی فوق رو ویرایش کنید به صورت زیر
🔺SELECT name FROM users WHERE id = $1

#note

🔰 @gopher_academy
This media is not supported in your browser
VIEW IN TELEGRAM
🔴 Working Effectively with Legacy Code
.
#book
.

🔰 @gopher_academy
.
👇🏻👇🏻👇🏻PDF👇🏻👇🏻👇🏻
Working_Effectively_with_Legacy_Code_by_Michael_C_Feathers_z_lib.pdf
4.1 MB
🔴 Working Effectively with Legacy Code
.
#book
.

🔰 @gopher_academy
🎯Concurrency vs Parallelism 🎯
.
🔺یکی از مباحثی که باعث گیج شدن برنامه نویسان go میشه تفاوت بین Concurrency و Parallelism هست.
🔺در زبان ساده Concurrency (همزمانی) یعنی برخورد با چند کار در یک لحظه و Parallelism (موازی سازی) اجرای چند کار به صورت همزمان است.

🧐به نظر خیلی واضح نیست بذارید بیشتر توضیح بدم.

🔺درواقع Concurrency یک ویژگی یک برنامه ست که دو یا چند کار همزمان می توانند در حال انجام باشند و Parallelism یک خاصیت run-time است که در آن دو یا چند کار به طور همزمان انجام می شود.

🔺دروافع Concurrency می تواند از Parallelism برای انجام کارهای خود استفاده کند ولی لزوما موازی سازی هدف همزمانی نیست.

🔰 @gopher_academy
🔰redis🔰

🔵تفاوت عمده بین Redis و دیگر سیستمهای پایگاه ذخیره سازی داده ها این است که Redis نه تنها مقدار رشته را می پذیرد بلکه مقادیر داده ای زیر را نیز پشتیبانی می کند :👇👇

🔴لیستی از رشته ها (Lists)
🔴مجموعه ای از رشته ها (Sets)
🔴جداول Hash که مقادیر Key,Value آنها رشته می باشد (Hash Tables)
🔴وHyperLogLogs ها که برای تخمین زدن و برآورد تقریبی کاردینالیتی به کار میرود


🔰برخی از موارد استفاده از Redis 🔰

🔴 Session Cache :‌

یکی از رایج ترین موارد استفاده از ردیس , سیستم کش است . یکی از مزایای خوبه ردیس در کش نسب به سایر سیستم های کشینگ مانند Memcached , ماندگاری بالای اطلاعات است



🔴Full Page Cache (FPC)

شما می توانید برای جلوگیری از تعداد مکرر دفعات مراجعه به دیتابیس و یا دیسک, صفحه ی مورد نظر خود را به صورت کامل در ردیس ذخیره نمایید . همچنین کاربران وردپرس هم می توانند با استفاده از پلاگین عالی wp-redis در سایت خود از ردیس استفاده کنند .



🔴Queues

با استفاده از ردیس می توانید لیستی از مقادیر و یا تسک ها تعریف نمایید و یکی یکی آنها را پردازش و اجرا نمایید .

🔰 @gopher_academy
✳️ What is CI/CD ?

🔹 CI
🔸 مفهوم Continuous integration یا به اختصار CI، سبک یا روشی از کدنویسی است که تیم های توسعه را به سمت اعمال تغییرات کوچک و ثبت مکرر آنها در سورس کنترل میبرد.
هدف تکنیکال CI برقراریه روشی برای BUILD , Package , Test خودکار اپلیکیشن میباشد.
به عنوان مثال فرض کنید در یک تیم پنج نفره کار می کنید و از github به عنوان کد ریپازیتوری خود استفاده میکنید. هر یک از اعضای تیم کدهای و تغییرات خود را هروز به ریپازیتوری مربوطه در گیتهاب push میکنند و ممکن است مواردی پیش آید که یک نفر کدی را push کند که دارای باگ باشد و این مورد منجر به درست کار نکردن و از کار افتادن اپلیکشن میشود.
در اینجاست که CI برای جلوگیری از این اتفاق به کمکتان می آید.
🔹 Benefit of using CI

🔸 از مزیت های CI تنظیم ریپازیتوری به گونه ای است که هر زمانی که کسی کد جدیدی را در ریپازیتوری push میکند، CI به صورت خودکار BUILd ای برای کدهایتارن اجرا میکند و اگر اروری در کدها باشد build نخواهد شد و اعضای تیم از آن مطلع میشوند علاوه بر این میتوانید با نوشتن test case های خودکار، بعد از هر build آن هارا اجرا کنید بدین ترتیب اگر موردی درست کار نکند و fail شود بقیه از ان مطلع خواهند شد.

🔹 CD
🔸 مفهوم continuous delivery و continuous deployment و یا به اختصار CD را میتوان به فرایند خودکاری گفت که از تغییرات اعمال شده برنامه نویسان بروی کدها در ریپازیتوری، یک release برای production انجام میشود تا به وسیله مشتریان اپلیکیشن مورد استفاده قرار گیرد.
برای مثال فرض کنین که اپلیکیشن خود را بروی هاست میزبانی کرده اید و میخواهید فرایند توسعه اپلیکیشن را automate کنید. برای این منظور می توانید CD را طوری پیاده کنید ک وقتی تغییرات را روی branch مستر push کردید به صورت خودکار کدهایتارن رو روی AWS دیپلوی (Deploy) کند

🔰 @gopher_academy
🔺دوستانی که میخوان کتاب های (PDF)داخل کانال رو به صورت کتابی داشته باشن به یکی از آی دی های زیر پیام بدن 🔺
@Skybooks_ir
@Rezacisco2007
👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻
🔰لیستی از بهنرین و مهمترین کتاب های گولنگ🔰
.
🔴 Working Effectively with Legacy Code
🔹 https://t.me/gopher_academy/383
.
🔴 Go design patterns
🔹 https://t.me/gopher_academy/370
.
🔴 mastering in go
🔹 https://t.me/gopher_academy/368
.
🔴 building restful web services with go
🔹 https://t.me/gopher_academy/366
.
🔴 concurrency in go
🔹 https://t.me/gopher_academy/363
.
🔴 learn data structure and algorithms with go
🔹 https://t.me/gopher_academy/361
.
🔴 grpc up and running
🔹 https://t.me/gopher_academy/359
.
🔴 go standard library
🔹 https://t.me/gopher_academy/357
.
🔴 software architecture with go
🔹 https://t.me/gopher_academy/355
.
#book

🔰 @gopher_academy
🔸استخدام برنامه‌نویس Golang در شرکت کارخانه نوآوری #تهران
🔹حقوق تا ۸ میلیون تومان

🔗 https://quera.ir/r/JCKN9o

🔰 @gopher_academy
🎯DevOps Guide from basic to advanced with Interview Questions and Notes🎯
🎯مجموعه‌ای از نکات و موارد مصاحبه‌ای برای شغل DevOps از سطح‌بندی مقدماتی تا پیشرفته🎯

#devops #guide #cheatsheet #interview #question #questions #note

🔺 github.com/Tikam02/DevOps-Guide

🔰 @gopher_academy
🎯 Multitasking vs Multithreading🎯

🔻آیا تا به حال مدت ها منتظر کسی یا کاری بوده اید ، در حالی که هیچ کاری انجام نمی دهید و فکر می کنید که می توانستید کار دیگری انجام دهید؟ این زمانی است که اهمیت multithreading را درک می کنید. انتظار وقتی آسانتر می شود که بتوانید کارهای دیگری را انجام دهید در حالی که منتظر کسی یا چیز دیگری هستید. برای روشن تر شدن مفهوم چند وظیفه ای ، مادر خود را در نظر بگیرید. از زمان به دنیا آمدن ، من مادرم را دیده ام که همزمان چندین کار را انجام می دهد و همیشه تعجب می کنم که او چگونه این کار را انجام می دهد؟ او خانه را تمیز می کند ، لباس های می شوید و همزمان غذا را آماده می کند.

▪️در برنامه نویسی ، شما با وضعیت های بسیاری روبرو میشوید که مجبور می شوید از multithreading و multitasking استفاده کنید.

به عنوان مثال ، هنگام خواندن یک file بزرگ ، بهتر است به کاربر اجازه دهید کارهای دیگری انجام دهد. از این رو ، چه تفاوتی بین multithreading و multitasking وجود دارد؟ آیا آنها یکسان هستند؟

🔸Multitasking

به این معنی است که به کاربر اجازه می دهد چندین task را همزمان انجام دهد. کاربر می تواند ضمن نوشتن یک وبلاگ ، به موسیقی در حال اجرا در پس زمینه گوش دهد. بنابراین کامپیوتر چندین کار را برای کاربر انجام می دهد. هر task به منابع نیاز دارد. از آنجا که کامپیوتر از منابع محدودی برخوردار است ، تعداد کارهای انجام شده در همان زمان نیز محدود است.

🔹Multithreading

ترد ها مربوط به بالاترین سطح کد اجرا شده توسط یک پردازنده هستند ، بنابراین با بسیاری از تردها، سی پی یو شما می تواند همزمان چندین کار را انجام دهد. تمام CPU ها تردهای فعال دارند و هر فرایندی که در رایانه شما انجام می شود حداقل یک ترد واحد دارد.
ترد برای انجام task های متعدد استفاده می شود. هر task می تواند چندین thread داشته باشد. در یک برنامه multithreaded کاربر می تواند در مدت زمان کوتاتر نسبت به یک برنامه single thread کارهای بیشتری انجام دهد. امروزه تقریباً در هر برنامه
از multiple threading استفاده شده است. یک برنامه یا یک process می تواند یک user interface thread داشته باشد که در تعامل با کاربر باشد
و background worker threads که کارهای دیگری را انجام می دهند.
#multithread
#multitask
#thread
#task
#async

🔰 @gopher_academy
🎯Serverless 🎯چیست؟
درواقع Serverless یک مدل اجرایی از محاسبات ابری است که در آن سرویس‌دهنده ابری به صورت پویا سرویس‌های تخصیص داده شده به یک پروژه را مدیریت می‌کند. در چنین حالتی تمام هزینه‌ها براساس میزان مصرفی خواهد بود که شما از سیستم می‌کنید. بنابراین دیگر خبری از مدل‌های پرداختی قدیمی که در آن شما قبل از استفاده از سیستم هزینه‌ای پرداخت می‌کردید نیست. به نظر می‌رسد که خیلی ایده‌آل است!

بسیاری از سرویس‌دهندگان ابری در دنیا روی این تکنولوژی سرمایه‌گذاری کرده‌اند. به نظر نیز می‌رسد که استفاده از این ساختار روز به روز در حال افزایش بوده و همین موضوع بالا رفتن تعداد سرویس‌دهندگان را نیز توجیه می‌کند.

🔰 @gopher_academy
🎯معماری سنتی در مقابل Serverless

🔰 @gopher_academy
🎯اپلیکیشن Serverless

🔰 @gopher_academy