لاگ بیرجند

گروه کاربران گنو/لینوکس بیرجند

چالش ۱۲

۱۴۰۳-۱۰-۳۰

این چالش شما رو با جنبه‌های مختلف یک پروژه واقعی مثل استفاده از ابزارهای بیلد و دیپلوی، کار تیمی، بهینه‌سازی‌های IO و شبکه، استفاده از داده‌ساختارهای مناسب و … آشنا می‌کنه. تا حد زیادی هم دست‌تون بازه که از چه زبان و کتابخونه و فریمورک‌هایی استفاده کنید.

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

همه کدها به صورت پابلیک در دسترسه، پس می‌تونید کد بقیه شرکت‌کننده‌ها رو هم پیدا و review کنید.

شرکت در چالش نیاز به دانش فنی خاصی داره؟

بطور کلی:

چطوری جوابم رو submit کنم؟

کافیه لینک پروژه‌تون روی گیت‌هاب رو با فرمت زیر به این فایل اضافه کنید و پول‌ریکوئست بفرستین:

- nickname: my-nickname
  profile: https://github.com/birlug
  repository: https://github.com/birlug/soallpeach

چالش

هدف اصلی این چالش آشنا کردن شرکت‌کننده‌ها با مفاهیم پایه http و همینطور مقایسه ویژگی زبان‌ها و فریمورک‌های مختلف برا حل کردن یه مساله به نظر پیش پا افتاده است.

کاری که برای شرکت در این چالش نیازه انجام بدید پیاده‌سازی دو http endpoint ساده است. یکی از این endpoint ها وظیفه‌اش دریافت عدد و جمع اون با اعدادیه که تا به حال دریافت کرده و وظیفه endpoint دیگه برگردوندون مجموع کلی اعدادی است که تا به حال این سرویس دریافت کرده.

اندپوینت /

این endpoint درخواست‌ها رو با متد POST دریافت می‌کنه و مسیر اون هم / است. مثال زیر نمایش نحوه صدا زدن این endpoint ئه:

$ curl -XPOST -d 6 localhost:80/

در این مثال عدد ۶ برای سرویس ارسال می‌شه و انتظار ما اینه که مقدار ۶ به مجموع اعدادی که تا به حال به سرویس ارسال شده اضافه بشه.

اندپوینت /count

این endpoint درخواست‌ها رو با متد GET دریافت می‌کنه و مسیرش /count هست. مثال زیر نمایش نحوه صدا زدن این endpoint ئه:

$ curl localhost:80/count

اگه فرض کنیم که مثال قبلی، یعنی ارسال عدد ۶ به / ۱۰ بار انجام شده باشه، مقدار خروجی مثال بالا باید 60 باشه.

ساختار پروژه

پروژه شما باید داخل یه دایرکتوری با اسم countme باشه و حتما یک Dockerfile برای بیلد و اجراش نوشته باشید. مثلا:

-> countme/
        |
        -> Dockerfile
        -> main.py
        -> requirements.txt

از این لینک می‌تونید پیاده‌سازی ساده این برنامه، ساختار دایرکتوری‌های پروژه و همینطور Dockerfileش رو ببینید.

جدول نتایج

Nickname99thState