برنامه‌نویسان در شرکت اسنپ عادت دارند برای تشخیص اینکه ارور برگردانده‌شده از متد چیست، کدهایی مثل کد زیر می‌نویسند:

n, err := f.Read(data)
if err != nil {
      if errors.Is(err, io.EOF) {
          break
      }
      fmt.Println(err)
      return
}
Go

در نتیجه انتظار دارند پکیج مربوطه، همه ارور‌هایی که ممکن است برگردانده شوند را به شکل فیلد در خود داشته باشد.

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

حالا برنامه‌نویسان اسنپ می‌خواهند برخلاف عادت خود عمل نکنند، بنابراین نیاز به یک پکیج کمکی برای پکیج اصلی دارند که ارور‌ها را در خودش داشته باشد.

خوشبختانه این کتاب‌خانه، سورس‌کد قابل خواندن (و نه تغییر) دارد و می‌توان از آن به منظور توسعه‌ی پکیج کمکی استفاده کرد.

جزئیات پروژه

  • سورس‌کد فعلی شرکت را از این لینک دانلود کنید.
  • فایل helper.go در پکیج helper را به گونه‌ای تغییر دهید تا فیلد‌های ارورها در آن مقداردهی شوند.
  • باید با تغییرات جزئی در کتاب‌خانه، برنامه شما دچار مشکل نشود. مثلا متن ارورها ممکن است تغییرات جزئی بکند.
  • در پکیج helper می‌توانید به صورت زیر از کتابخانه‌ی the_lib استفاده کنید.
package helper
import (
	"snapp/the_lib"
)
// the_lib.LoadData()

Go

آن‌چه باید آپلود کنید

فایل helper.go تغییریافته‌ی خود را آپلود کنید.


ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.