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

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

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

ادمین:
@mrbardia72
Download Telegram
🎯معماری سنتی در مقابل Serverless

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

🔰 @gopher_academy
🎯مزایای استفاده از معماری Serverless
۱- هزینه‌ای که شما بابت زیرساخت می‌دهید تنها به ازای مقداری خواهد بود که استفاده می‌کنید.

۲- روند دیپلوی سریع به شما این اجازه را می‌دهد تا در یک معماری Serverless در کوتاه‌ترین زمان ممکن یک اپلیکیشن را روی سرور اجرا نمایید.

۳- نیازی به هزینه برای استخدام یک فرد در جهت نگه‌داری از زیرساخت‌ها نیست. جدای از هزینه این موضوع باعث می‌شود که مسئولیت شما در قبال اجرای برنامه کم شود.

۴- مقیاس‌پذیری به شما این امکان را می‌دهد تا بدون نگرانی از منابع سرور استفاده کنید.

🎯معایب استفاده از معماری Serverless
۱- نبود کنترل کامل روی سرور

۲- پیچیدگی ساختاری

۳- تست در حالت محلی (Local) می‌تواند سخت باشد

۴- نامعلوم بودن هزینه‌ها در برخی اوقات

۵- نبود ابزارهای مدیریتی کامل

🔰 @gopher_academy
🎯مفهوم Branch Coverage و Path Coverage در تست نرم‌افزار 🎯
.
🔹مفهومBranch Coverage: آیا هر شاخه (branch) موجود در هر ساختار کنترلی (control structure)، مانند if، در مجموعه آزمون مورد نظر، اجرا شده است یا خیر؟ یعنی اگر عبارت if ای داشته باشیم، باید با اجرای مجموعه آزمون مورد نظر، هر یک از حالتهای (شاخه) true و false آن، حداقل یک بار، اجرا شوند.

🔹مفهوم Path Coverage: آیا تمام مسیرهای ممکن در برنامه اجرا شده است یا خیر؟ تمام مسیرهای ممکن در برنامه: تمام شاخه های موجود در تمام ساختارهای کنترلی، فراخوانی ها (call) و بازگشت های (return) توابع و ... . بدیهتا Path Coverage ِ کامل برای یک ماژول نسبتا بزرگ، غیرعملی است (مثلا در صورت داشتن حلقه، تعداد مسیرها ممکن است بی نهایت شود؛ و با افزایش تعداد دستورات کنترلی موجود، تعداد مسیرهای ممکن با مرتبه نمایی رشد میکند). (راه حل: استفاده از Prime Path Coverage)

🔹بنابراین در Branch Coverage فقط به دستورهای کنترلی کار داریم ولی در Path Coverage به تمام مسیرهای ممکن (Branch Coverage زیرمجموعه ای از Path Coverage است؛ یعنی مجموعه آزمونی که Path Coverage کنند، حتما Branch Coverage نیز خواهند کرد).

🔰 @gopher_academy
🎯Code Coverage vs Test Coverage 🎯

🔹گفتن تفاوت این دو مفهوم خیلی سخته ولی میشه گفت Code coverage مقیاسی است که مشخص می کند چه مقدار از خطوط کد توسط test case ها پوشش داده شده و مورد تست قرار گرفته است و Test coverage مقیاسی است که مشخص می کند چه تعداد test case وجود دارد و آیا این test case ها تمام functionality سیستم را مورد تست قرار می دهند به عبارت دیگر چند درصد از functionality سیستم توسط test case ها مورد تست قرار گرفته است.

🔰 @gopher_academy
🎯آشنایی با تفاوت های Code Coverage و Test Coverage🎯
در ادامه به چهار مورد از مهم ترین تفاوت های Code Coverage و Test Coverage پرداخته ایم.


🔹درواقع Code Coverage میزان اجرای کد برنامه هنگام اجرای برنامه را توضیح می دهد اما Test coverage موارد آزمون را که در هر مدرک نوشته و ذکر شده است ، توصیف می کند.


🔹درواقعCode coverage بخشی از آزمایش white-box است که در آن کد مورد آزمایش قرار می گیرد در حالی که Test coverage بخشی از آزمایش black-box است که در آن عملکرد مطابق اسناد مورد نیاز آزمایش می شود. اندازه گیری Code coverage دقیقاً روی کد برنامه مورد استفاده قرار می گیرد.


🔹درواقعTest coverage بیشتر موارد تست را که با ساختن سند مورد نیاز به عنوان پایه ایجاد می شوند ، پوشش می دهد و هنگام Test coverage نیازی ندارید که کد را بررسی کنید.


🔹درواقعCode coverage یک فرایند ساده است که به دنبال بهبود پوشش کدهای مورد آزمایش و یافتن نقایص آن است؛ از طرف دیگر ، Code coverage یک روش آزمایش black-box است که روش آزمایش باید مطابق با الزامات مشخص شده تراز شود.


🔹درواقعTest coverage به راحتی تنظیم می شود و به پیدا کردن اشکالات در جریان برنامه کمک می کند اما Test coverage عملکردها را آزمایش کرده و ویژگیهای نرم افزار را آزمایش می کند.


🔹درواقعCode Coverage و Test Coverage هر دو برای اندازه گیری کیفیت برنامه کاربردی ساخته شده اند اما یکی جنبه کد نویسی را پوشش می دهد و دیگری جنبه الزامات را.
را Code Coverage توصیف می کند که کد برنامه کاربردی اجرا شده است و Test Coverage توصیف می کند که چه مواردی تحت پوشش قرار گرفته است. در هنگام آزمایش یک برنامه، هر دو به روش های خاص خود دارای اهمیت هستند و به ارائه محصول با کیفیت کمک می کنند.

🔰 @gopher_academy
در حال حاضر کدوم برنامه رو برای کد زدن گو انتخاب می کنید؟
Anonymous Poll
58%
jetbrains goland
45%
VS Code
🎯قسمت هفتم کار با Gin Web Framework🎯
🔷 فهرست بخش هفتم از این مقاله
🔸Serving static files
🔸Serving data from file
🔸Serving data from reader
🔸HTML rendering
🔸Custom Template renderer
🔸Custom Template Funcs
.

🔴 https://vrgl.ir/x0UTP
.
#gin

🔰 @gopher_academy
محفل آریاییتان طلایی ، دلهایتان دریایی ، شادیهایتان یلدایی ، پیشاپیش مبارک باد این شب اهورایی
روی گل شما به سرخی انار

+ یلداتون مبارک

🔰 @gopher_academy
🎯تست های دو گزینه ای مربوط به مفاهیم test نویسی در مهندسی نرم افزار🎯
🔹 https://t.me/gopher_academy/375
🔹 https://t.me/gopher_academy/376
🔹 https://t.me/gopher_academy/377
🔹 https://t.me/gopher_academy/378
.
#quiz

🔰 @gopher_academy
توجه توجه توجه

⚠️دوستانی که مقاله ای توی ویرگول یا در هر سایتی دیگه در مورد گولنگ منتشر کردن لینک رو برامون بفرستن و ما داخل کانل بزاریم
⚠️سورس کدی اگه توی گیت هاب دارید برامون بفرستید
⚠️اگه ویدیویی دارید رو هم برامون بفستید
تمام موارد بالا با نام نویسنده مقاله یا توسعه دهند کد یا مدرس ویدیوی در کانال درج می شود (فیلم + مقاله + سورس کد )
🔸admin: @mrbardia72

🔰 @gopher_academy
🎯 zero values: 🎯

🔹 0 for all integer types,
🔹 0.0 for floating point numbers,
🔹 false for booleans,
🔹 "" for strings,
🔹 nil for interfaces, slices, channels, maps, pointers and functions.

🔰 @gopher_academy
🎯قسمت هشتم کار با Gin Web Framework🎯
🔷 فهرست بخش هشتم از این مقاله
🔸Multitemplate
🔸Redirects
🔸Custom Middleware
🔸Using BasicAuth() middleware
🔸Goroutines inside a middleware
🔸Custom HTTP configuration
🔸Support Let's Encrypt
.

🔴 https://vrgl.ir/pTeDF
.
#gin

🔰 @gopher_academy
🎯 Data Types in Go 🎯

🔸Basic type:
🔹Numbers, strings, and booleans come under this category.

🔸Aggregate type:
🔹Array and structs come under this category.

🔸Reference type:
🔹Pointers, slices, maps, functions, and channels come under this category.

🔸Interface type
.

🔰 @gopher_academy
Integers

🔰 @gopher_academy
Floating-Point Numbers

🔰 @gopher_academy
Complex Numbers

🔰 @gopher_academy
Forwarded from آکادمی دوآپس با سعید (Saeid Bostandoust)
💯 کارگاه تخصصی 🐳 Docker
داکر عمیق تر از شیرجه عمیق 1⃣

در این کارگاه به عمق داکر میریم و با کارایی که داکر برای ایجاد کانتینرها میکنه کامل آشنا میشیم، راه اندازی کانتینرها بدون داکر رو بررسی میکنیم و با روش های حرفه ای خطایابی داکر و کانتینر آشنا میشیم و نکات امنیت و اجرای کانتینرها در محیط Production رو یاد میگیرید.

پیشنیاز کارگاه:
دانش لینوکس حداقل در حد LPIC1
آشنایی با Docker و توانایی کار با داکر

توجه: این کارگاه برای افراد مبتدی مناسب نیست!

تاریخ برگزاری کارگاه: 1399/11/20
مدت زمان: 10ساعت - 3روز

این کارگاه به صورت آنلاین و برای راحتی حضور شما در تایم شب ساعت 8 و 9 شب برگزار می شود.

لینک ثبت نام: zarinp.al/350029

مشاوره و اطلاعات بیشتر به @ssbostan پیام دهید.

@shirazcloud
🎯توی گو تایپ time.Time یک استراکچره.........☝️🎯

🔰 @gopher_academy