کوډیم پیزا

سلام، حبر. موږ په ناڅاپي ډول زموږ لومړی داخلي هیکاتون ترسره کړ. ما پریکړه وکړه چې تاسو سره په 2 اونیو کې د دې لپاره چمتو کولو په اړه خپل دردونه او پایلې شریکې کړم، او همدارنګه هغه پروژې چې پای ته رسیدلي.

کوډیم پیزا

د بازار موندنې سره علاقه لرونکو لپاره ستړیا برخه

زه به په یوه کوچنۍ کیسه پیل وکړم.

د اپریل په پیل کې. لومړی د MskDotNet ټولنې هیکاتون زموږ په دفتر کې ترسره کیږي. دا وخت زموږ په کهکشان کې د ټاټوین جګړه په بشپړ ډول روانه ده. شنبه. 20 ټیمونه. پیزا. هر څه ډیر مخلص دي (ثبوتونه). د انفلات وړ R2-D2 د تالار شاوخوا تیریږي. ټیمونه په نقشه کې ترټولو خطرناک ریس تیرولو لپاره خورا سم الګوریتمونه لیکي. موږ د لومړیو سیالیو پیل ته حرکت کوو. کوکیز او کافي د ژوند ژغورونکي دي. تنظیم کونکي او ما تمه درلوده چې ډیری خلک به د شنبې په ورځ د غرمې وروسته ووځي. مګر نه. د کوډ کولو 12 ساعته شاته. وروستی. یو څه راټیټیږي، یو څه پیل نه کوي. مګر هرڅوک خوشحاله دي. زموږ ټیم وګټي. موږ دوه چنده خوشحاله یو.

زه خپله خوښي په سلیک کې شریکوم او دا نظر ذهن ته راځي: "موږ اړتیا لرو خپل هیکاتون ترسره کړو." زه زموږ د خدماتو سټیشن ساشا ته لیکم. چوپتیا.

سهار. زه په دفتر کې قهوه څښم. زه ګورم چې ساشا له شا څخه نږدې کیږي. "لیزا، دا خورا ښه دی! موږ د اپریل په 21 نیټه یوه مهمه نیټه لرو. راځئ چې دا وکړو!" WTF!؟ دومره چټک؟ الف؟ څه؟ زه اړتیا لرم چې د اپریل په نیمایي کې د انٹرنشپ لپاره سیکټیوکر ته الوتنه وکړم. او په دې سره جهنم ته! راځئ.

2 اونۍ پاتې دي. زه هیڅکله د هیکاتون یوازینی تنظیم کونکی نه یم. اجازه راکړئ چې داخلي وي. ما په دې موضوع مقالې لوستل. سخت. دا څو میاشتې وخت نیسي. څو کسانو ته اړتیا ده. تاسو اړتیا لرئ د سوداګرۍ، انعامونو، شرایطو، مهال ویش، ګټو، هدف، بودیجې په اړه فکر وکړئ. یا شاید حتی د ژوند معنی معلومه کړي. زه به حتما دا په وخت ونه کړم. او په داسې حال کې چې تاسو لوستل او چمتو کول، یوه اونۍ دمخه تیره شوې وه. دا وخت دی چې د مقالو په اړه هیر کړئ او یو څه پیل کړئ.

په 1 اونۍ کې د داخلي هیکاتون ترسره کولو لپاره زموږ چک لیست ونیسئ

  • پلان: تاسو په آرامۍ سره کښیناست او د هیکاتون لپاره د څه کولو اړتیاو لیست ولیکئ. د 30 دقیقې.
  • موخه: برخه اخیستونکي هغه پروژې وړاندیز کوي او غوره کوي چې دوی غواړي په ګوګل شیټونو کې رامینځته کړي. د پس منظر دنده، 2 ساعته.
  • مهال ویش: په خپل زنګون کې تاسو د وخت لنډ ماتول ولیکئ، د 3 وقفې او وروستي په پام کې نیولو سره. د 20 دقیقې.
  • کنوانډیټ: په Slack/mail/etc کې د IT چینلونو کې د خدماتو سټیشن څخه د مهال ویش سره د هیکاتون په اړه پیغام خپور کړئ او د هیکاتون لپاره جلا چینل جوړ کړئ. پدې کې، هرڅوک په ټیمونو ویشل شوي، او هغه څوک چې پریکړه نه کوي دا د هیکاتون په لومړیو 5 دقیقو کې ترسره کوي. د پس منظر دنده، 2 ساعته.
  • بنس: تاسو د دوو پراختیا کونکو سره د سوداګرۍ سره راشئ، ډیزاینر ته یې د وړاندې کولو لپاره ورکړئ، او چمتو یې ترلاسه کړئ. د پس منظر دنده، 3 ورځې.
  • هیکاتون: تاسو دفتر ته راشئ، په پیل کې هرڅوک همغږي کړئ، د خپلې سوداګرۍ په اړه لاړ شئ، Reddit ولولئ، مهم د تازه پیزا په اړه هره وقفه اعلان کړئ، د لمر انځورونه واخلئ، فاینل اعلان کړئ، یوځای رایه ورکړئ او ګټونکي وټاکئ. د 1 ورځ.
  • د ستوري لاندې: البته، تاسو په دوامداره توګه د هر څه په اړه فکر کوئ. البته، هرڅوک به ستاسو پیغام ونه ګوري او دا به غوره وي چې له ځینو سره په شخصي توګه خبرې وکړئ. البته، که یو څوک ستاسو سره مرسته وکړي، هر څه به 2 ځله اسانه شي (په زړه پورې الینا زما سره مرسته وکړه).

د هیکاتون نیټې په اړه لږ ستړی کوونکی برخه

ولې د اپریل 21؟ دا ورځ زموږ لپاره د پام وړ ده. دقیقا یو کال دمخه ، د اپریل په 21 ، موږ د فدرالي اعلاناتو کمپاین پیل کیدو وروسته د لومړۍ اونۍ پای کې د بار لاندې راغلو. بله ورځ، یکشنبه، زموږ ټیم د سهار له 8 بجو څخه په کار کې و. بیا موږ په Trello کې د sundayhackathon بورډ رامینځته کړ او د یوې اونۍ شفټ کار پیل شو، په ورځ کې 12 ساعته. وضعیت دومره نازک و چې موږ حتی د خوړلو وخت نه درلود او موږ د نورو ټیمونو هلکانو لخوا تغذیه شوي وو.

کوډیم پیزا

تاسو کولی شئ په دې اړه نور تفصیلي کیسه ولولئ د فیودور اووچینکوف پاڼه (زموږ اجراییه رییس). له هغه وخت راهیسې، موږ ډیر بدلون موندلی، مګر اوس به موږ حتما تاریخ هیر نکړو.

سږکال، موږ پریکړه وکړه چې دا پیښه د نسلونو په یاد کې د دوام وړ وه او په غوره دودونو کې، موږ د ډوډو په تاریخ کې لومړی داخلي هیکاتون تنظیم کړ، چې 10 ساعته یې دوام وکړ.

د هیکاتون پروژو په اړه خورا ستړي برخه

اعلان: ټول توضیحات پخپله د هلکانو لخوا لیکل شوي، نو د متن لیکوال زما نه دی.

اولیګ زده کړه (د ماشین زده کړه)

دیما کوچینیف، ساشا اندرونوف (@ الیکساندرونوف)

دوی غوښتل چې یو عصبي شبکه جوړه کړي چې دا معلومه کړي چې کوم ډول پیزا په عکس کې پرته له دې چې پوه شي. د پایلې په توګه، موږ یو ډیر ساده او د لوبو یو جوړ کړ - دا 10 پیزا پیژني، موږ په اندازې سره معلومه کړه چې هر څه څنګه کار کوي، څومره چې امکان ولري په ورځ کې (~ 10 ساعته).

کوډیم پیزا

په ځانګړې توګه، موږ پوهیږو چې صنعت داسې کچې ته رسیدلی چې یو عادي پرمخ وړونکی کولی شي چمتو شوي کتابتونونه واخلي، اسناد ولولي او د موضوع ژورې پوهې پرته خپل عصبي شبکه وروزي. او دا به د حقیقي ستونزو د حل لپاره کافي کار وکړي.

کارول شوي وسایل:

  • imageai - د ماشین زده کړې او کمپیوټر لید سره کار کولو لپاره یو اسانه او ساده کتابتون.
  • موږ دوه ماډلونه هڅه وکړه - ResNet50، Yolo.
  • کوډ لیکل شوی و، البته، په پایتون کې.

موږ 11000 عکسونه درلودل، مګر نږدې 3/4 یې کثافات وو، او پاتې یې مختلف، نامناسب زاویې درلودې. د پایلې په توګه، موږ یو چمتو شوی ماډل واخیست (کوم چې په ساده ډول پوهیږي چې څنګه پیزا پیدا کړي) او د هغې په مرسته موږ کثافات جلا کړل. بیا، د عکس سرلیک کې د پیزا نوم شامل و - نو موږ یې په فولډرونو کې ترتیب کړ، مګر دا معلومه شوه چې نومونه د واقعیت سره سمون نه لري او موږ باید دا په خپلو لاسونو پاک کړو. په پای کې، شاوخوا 500-600 عکسونه پاتې وو، دا روښانه ده چې دا یو مهم مقدار دی، مګر سره له دې، دا کافي وه چې 10 پیزا له یو بل څخه جلا کړي.

د ګریډ روزلو لپاره، موږ په Azure کې ترټولو ارزانه مجازی ماشین په NVIDIA Tesla K80 کې واخیست. دوی د 100 دورو لپاره په دې باندې روزل شوي، مګر دا روښانه وه چې شبکه د 50 دورې وروسته ډیره شوې وه، د دې حقیقت له امله چې یو کوچنی ډیټاسایټ شتون درلود.

په حقیقت کې، ټوله ستونزه د ښه معلوماتو نشتوالی دی.

کوډیم پیزا

موږ ممکن شرایط یو څه ګډوډ کړي وي، مګر موږ باید په پام کې ونیسو چې موږ د دې ټولو مسلو سره د کار کولو تجربه نه لرو.

د NOOBS لپاره GUI (د پیزا امر کولو لپاره کنسول)

میشا کوماچیف (سیریډن)، ژینیا بیکینین، ژینیا واسیلیف

موږ د ګیکس لپاره د کنسول غوښتنلیک یو پروټوټایپ یوځای کړی دی، د کوم څخه مننه چې تاسو کولی شئ د ټرمینل یا کمانډ لاین له لارې پیزا امر کړئ، یا حتی دا د ځای پرځای کولو پایپ لاین کې مدغم کړئ او په بریالي خوشې کیدو سره، دفتر ته پیزا وړاندې کړئ.

کوډیم پیزا

کار په څو برخو ویشل شوی و: موږ معلومه کړه چې د ګرځنده غوښتنلیکونو لپاره زموږ API څنګه کار کوي، زموږ د CLI په کارولو سره راټول شوي oclif او د هغه کڅوړې خپرونه یې تنظیم کړه چې موږ یې راټول کړل. وروستۍ دنده د هیکاتون پای ته رسیدو لپاره یو څو ناخوښه دقیقې شاملې وې. هر څه زموږ لپاره په محلي توګه کار کاوه، او حتی د کڅوړې پخوانۍ خپرې شوې نسخې کار کاوه، مګر نوي (کوم چې ډیر ښه ځانګړتیاوې او احساسات اضافه کړي) د کار کولو څخه انکار وکړ. موږ شاوخوا 40 دقیقې تیرې کړې ترڅو معلومه کړو چې څه غلط شوي ، مګر په پای کې هرڅه په جادویی توګه په خپله کار کوي).

د هیکاتون لپاره زموږ اعظمي برنامه زموږ د CLI له لارې دفتر ته د پیزا ریښتیني امر و. موږ هر څه په لسګونو ځله د ټیسټ بنچ کې وګرځول ، مګر زما لاسونه لاهم لړزیدل کله چې ما په تولید کې امرونو ته ننوتل.

کوډیم پیزا

د پایلې په توګه، موږ په پای کې دا وکړل!

کوډیم پیزا

CourierGo

انتون بروزمیلیف (لیکوال)، وانیا ژویریف، ګلیب لیسنیکوف (انډولاندری سرافاانوف

موږ د "کوریر لپاره ایپ" نظریه واخیسته.

د چمتووالي په اړه پس منظر.په پیل کې، ما حیران شو چې په غوښتنلیک کې څه ډول ځانګړتیاوې کیدی شي؟ د فعالیت لاندې لیست راڅرګند شو:

  • غوښتنلیک د کوډ په کارولو سره د تحویلي نغدو راجستر ته ننوځي.
  • غوښتنلیک سمدلاسه موجود سپارښتنې او امرونه ښیې چې باید اخیستل کیږي.
  • کوریر امر یادداشت کوي او په سفر کې یې اخلي.
  • هغه اټکل شوی وخت ښودل شوی او ایا هغه په ​​خپل وخت دی یا نه.
  • پیرودونکي ته ښیې چې کوریر یې پریښود.
  • پیرودونکي ته په نقشه کې د کوریر نقطه او اټکل شوی وخت ښودل کیږي.
  • کوریر کولی شي پیرودونکي ته د غوښتنلیک څخه په چیٹ کې ولیکي.
  • پیرودونکی کولی شي د غوښتنلیک څخه د چیٹ له لارې کورئیر ته ولیکي.
  • د رسیدو څخه پنځه دقیقې دمخه، پیرودونکي یو پیغام ترلاسه کوي چې کوریر نږدې دی، چمتو اوسئ.
  • کوریر په غوښتنلیک کې یادونه کوي چې هغه راغلی او انتظار کوي.
  • کوریر په یو کلیک سره د غوښتنلیک څخه زنګ وهي او راپور ورکوي چې (ډیریږي ، رارسیدلی ، او داسې نور)
  • پیرودونکی امر مني او د سپارلو تصدیق کولو لپاره د غوښتنلیک یا SMS څخه یو PIN کوډ داخلوي (د لاسلیک په توګه) ترڅو کوریر نشي کولی تحویلي دمخه بشپړ کړي که چیرې هغه ناوخته وي.
  • امر په سیسټم کې د سپارلو په توګه په نښه شوی.

سربیره پردې یو څو بدیل سناریوګانې:

  • کوریر کولی شي امر د نه سپارل شوي په توګه په نښه کړي او دلیل یې وټاکي.
  • که تاسو ناوخته یاست، کوریر کولی شي د یوې تڼۍ سره د SMS له لارې بریښنایی سند صادر کړي. یا سند په اوتومات ډول راځي که چیرې د تحویل وروستۍ نیټه نه وي پوره شوې.

د دې پروژې د ژمنې او اړتیا احساس، البته، ځواکمن و.

بله ورځ موږ د ټیم سره د غرمې ډوډۍ ته لاړو او بحث یې وکړ چې د غوښتنلیک لږترلږه فعالیت به څه ډول ښکاري.

د پایلې په توګه، د هغه څه لیست چې باید په هیکاتون کې ترسره شي جوړ شو:

  • د تحویلي نغدو راجستر ته ننوتل.
  • اوسنی موقعیت ښکاره کړئ.
  • یو بهرني API ته ډاټا واستوئ (همغږي، امر ترلاسه کړی، امر سپارل شوی).
  • د بهرني API څخه ډاټا ترلاسه کړئ (اوسني کوریر فرمایشونه).
  • یوه پیښه واستوئ چې دا په ګوته کوي چې تاسو د تحویلۍ / تحویلۍ لپاره امر اخیستی دی.
  • په ویب پاڼه کې په نقشه کې د کوریر اوسنی موقعیت ښکاره کړئ.

اصلي کار، لکه څنګه چې ښکاري، د بیک انډ په جوړولو کې پروت دی، پخپله غوښتنلیک (د بحثونو وروسته، موږ د غوښتنلیک پراختیا لپاره ReactNative غوره کړه، یا د هغې لپاره چوکاټ - expo.io، کوم چې تاسو ته اجازه درکوي چې اصلي کوډ ونه لیکئ). د شالید په شرایطو کې، په پیل کې په وینیا ژیریف کې هیله وه، ځکه چې هغه زموږ د خدماتو ټیمپلیټ او k8s سره کار کولو تجربه درلوده (کومه دنده چې هغه په ​​غاړه اخیستې). اندری سرافاانوف او ما د سپن لپاره ReactNative واخیست.

ما پریکړه وکړه چې سمدلاسه هڅه وکړم چې پخپله د پروژې لپاره کاري ذخیره جوړه کړم. د شپې په 12 بجو زه د دې حقیقت سره مخ شوم چې په شالید کې جغرافیه په ReactNative کې ښه کار نه کوي ، که تاسو اصلي کوډ ونه لیکئ ، زه یو څه مایوسه وم. بیا ما پریږده کله چې زه پوه شوم چې زه د expo.io چوکاټ نه ، بلکه د ReactNative اسناد لولم. د پایلې په توګه ، د ماښام په جریان کې زه دمخه پوهیدم چې څنګه په expo.io کې اوسنی موقعیت ترلاسه کړم او جلا سکرینونه رسم کړم (د ننوتلو لپاره ، امر ښودلو او داسې نور).

کوډیم پیزا

د سهار په هیکاتون کې، دوی ګلیب د دوی عالي ژمنې پروژې ته راجع کړ. دوی په چټکۍ سره د هغه پلان سره راغلل چې باید ترسره شي.

کوډیم پیزا

موږ یوه تېروتنه وکړه کله چې د پروژې ټیمپلیټ سره سم، موږ هڅه وکړه چې د HTTP له لارې اړیکه ونیسو، مګر د GRPC له لارې، ځکه چې هیڅوک نه پوهیدل چې څنګه د جاوا سکریپټ لپاره د GRPC پیرودونکي جوړ کړي. په پای کې، په دې اړه د یو نیم ساعت تیرولو وروسته، موږ دا نظر پریښود. د دې له امله ، په شاته کې هلکانو له GRPC څخه WebApi ته بشپړ شوي سرور ریمیک کول پیل کړل. د نیم ساعت وروسته، موږ په پای کې وتوانیدو چې د غوښتنلیک او پس منظر ترمنځ اړیکه جوړه کړو، لو او وګورئ. مګر په ورته وخت کې ، ګلیب نږدې k8s ته ګمارل پای ته رسولي او همدارنګه ماسټر ته د ژمنې اتومات پلي کول. 🙂

موږ MySQL د ذخیره کولو په توګه غوره کړی ترڅو لږترلږه د ډیټابیس سره خطرونه ونلري (موږ د CosmosDb په اړه فکرونه درلودل).

کوډیم پیزا

په لنډیز کې:

  • د غوښتنلیک څخه ډیټابیس ته د کوریر اوسني همغږي خوندي کول پلي شوي.
  • موږ RabbitMQ نصب کړ او د کورئیر په اړه پیغامونو ته یې ګډون وکړ ترڅو په غوښتنلیک کې د کورئیر څخه امر سمدلاسه ښکاره کړي.
  • موږ زموږ ډیټابیس کې د سپارلو وخت خوندي کول پیل کړل وروسته له هغه چې کوریر په غوښتنلیک کې تڼۍ فشار کړه. موږ وخت نه درلود چې ریبیټ ته د پیښې لیږلو اضافه کړو چې امر تحویل شوی و.
  • ما د کورئیر اوسني موقعیت سره په ویب پا onه کې د اوسني آرډر پا pageه کې نقشه ښودلې. مګر دا فعالیت یو څه نیمګړی پاتې شو، ځکه چې دا ممکنه نه وه چې زموږ د نوي خدمت څخه همغږي ترلاسه کولو لپاره په چاپیریال کې CORS تنظیم کړي.

M87

روما بوکین، ګوشا پولوی (georgepolevoy, Artyom Trofimushkin

موږ غوښتل چې د OpenID Connect چمتو کونکي پلي کړو، ځکه چې اوس مهال موږ د خپل ډیزاین یو تصدیق پروتوکول کاروو، او دا یو شمیر ستونزې رامینځته کوي: د مشتریانو دودیز کتابتونونه، د بهرنیو شریکانو په برخه کې ناشونی کار، احتمالي امنیتي ستونزې (په ټوله کې. ، OAuth2.0 او OpenID Connect د حوالې پلي کولو کې خوندي ګڼل کیدی شي، مګر زه زموږ د حل په اړه ډاډه نه یم).

کوډیم پیزا

موږ د شخصي معلوماتو ذخیره کولو لپاره یو جلا خدمت رامینځته کړی ترڅو د تصدیق چمتو کونکي کوچني هیواد - اګنوسټیک ماډل رامینځته کړي چې د شخصي معلوماتو لپاره جلا خدمت ته لاړ شي (دا به په راتلونکي کې دا امکان رامینځته کړي چې یو خدمت ولري. کوم چې یو څوک کولی شي په کوم هیواد کې د حساب راجسټریشن سره لاګ ان شي ، او په ورته وخت کې د GDPR او نورو فدرالي قوانینو سره مطابقت ولري). موږ دا برخه ترسره کړه، لکه څنګه چې چمتو کونکي ترسره کړل، او په بریالیتوب سره یې له یو بل سره وصل کړل. بیا ، دا اړینه وه چې یو API رامینځته کړي چې د چمتو کونکي لخوا صادر شوي توکیو لخوا خوندي شي ، د چمتو کونکي له لارې د دوی د تفتیش ملاتړ وکړي او خوندي شوي ډیټا بیرته راستانه کړي که چیرې غوښتنه د اجازې تګلارې پوره کړي (موږ ګورو چې کارونکي د بییرر سکیم سره سم تصدیق شوي. ، د هغه نښه یو ټاکلی دائره لري + y کارونکي پخپله اجازه لري چې تلیفون ته اجازه ورکوي). دا برخه هم بشپړه شوه. وروستنۍ برخه د جاواسکریپټ پیرودونکی و، کوم چې به یو نښه ورکړل شي، د کوم په مرسته چې دا به یو خوندي API بولي. موږ د دې برخې د ترسره کولو لپاره وخت نه درلود. يعنې، ټوله فعاله برخه چمتو وه، مګر د مخکنۍ پای برخه د ټول سیسټم د فعالیت ښودلو لپاره چمتو نه وه.

E-E-E (لوبې)

دیما افونچینکو، ساشا کونوالوف

موږ په یونکا کې یو کوچنی ټای جوړ کړ چیرې چې لاسونه په پیزا کې ساسیج اچوي. که تاسو ساسیج په غلط ډول واچوئ ، په سکرین کې یو غمجن "رد شوی" پیغام څرګندیږي ، او که ټول ساسیج په سمه توګه ایښودل شوي وي ، د پیزا په اړه تصادفي حقیقت څرګندیږي.

کوډیم پیزا

موږ غوښتل د روميانو په غورځولو سره دوهمه کچه جوړه کړو، مګر موږ وخت نه درلود.

کوډیم پیزا

لنډ دوام: چا وګټله؟

د هیکاتون څخه دمخه، موږ د هلکانو سره خبرې وکړې او ما وپوښتل چې دوی به څه جایزه ترلاسه کړي که دوی وګټي. دا معلومه شوه چې ترټولو ارزښتناکه جایزه به "خوراکي لاره" وي.

کوډیم پیزا

له همدې امله، موږ تمه لرو چې د لاسونو سره یوه لوبه اعلان کړو چې په پیزا کې مرچونه واچوي.

لکه څنګه چې د پام وړ لوستونکي شاید پام کړی وي، ټیم "E-E-E (لوان)" وګټله. مبارک شه ملګرو!

یوازې راجستر شوي کاروونکي کولی شي په سروې کې برخه واخلي. ننوزئمهرباني وکړئ

کومه پروژه مو ډېره خوښه شوه؟

  • اولیګ زده کړه (د ماشین زده کړه)

  • د NOOBS لپاره GUI

  • CourierGo

  • M87

  • ای-ای

5 کاروونکو رایه ورکړه. 3 کاروونکي منع شوي.

سرچینه: www.habr.com

Add a comment