E-Dobavki - په جاوا او پسرلي بوټ کې د خوړو اضافه کولو لټون لپاره ویب خدمت، زما د زده کونکو لخوا لیکل شوی

پېژندنه

دا داسې پیښ شوي چې د تیرو شاوخوا دوه کلونو راهیسې زه په کیف کې د معلوماتي ټیکنالوژۍ په یوه ښوونځي کې د برنامو درس ورکوم. ما دا کار یوازې د ساتیرۍ لپاره پیل کړ. ما یو ځل د برنامه کولو بلاګ لیکلی و، بیا ما پریښود. خو لیواله خلکو ته د ګټورو شیانو د ویلو لیوالتیا له منځه نه ده تللې.

زما اصلي ژبه جاوا ده. ما د ګرځنده تلیفونونو لپاره لوبې، د راډیو مخابراتو لپاره سافټویر، او په دې کې مختلف ویب خدمتونه لیکلي. او زه جاوا درس ورکوم.

دلته غواړم د خپلې وروستۍ ډلې د روزنې کیسه بیان کړم. څنګه دوی د روزنې پیل کولو څخه د کاري ویب خدمت لیکلو ته لاړل. د تغذیې تکمیلاتو موندلو لپاره ګټور ویب خدمت. وړیا، هیڅ اعلان، راجستریشن او SMS.

خدمت پخپله دلته دی - E-Dobavki.com.

E-Dobavki - په جاوا او پسرلي بوټ کې د خوړو اضافه کولو لټون لپاره ویب خدمت، زما د زده کونکو لخوا لیکل شوی

پروژه تعلیمي ده او هیڅ اعلان نلري. لکه څنګه چې زه پوهیږم دا خپرونهتاسو کولی شئ د داسې پروژو لینکونه چمتو کړئ.

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

۹ میاشتنۍ روزنه

په هغه ښوونځي کې چې زه درس ورکوم، د جاوا کورس په 2 برخو ویشل شوی. په مجموع کې، کورس نږدې 9 میاشتې وخت نیسي، د ټولو وقفو سره (د نوي کال رخصتۍ، د منځنیو پروژو لیکلو وخت).

لومړۍ برخه زده کوونکي د ژبې اساسي مفاهیمو ته معرفي کوي. متغیرات، میتودونه، د OOP اساسات او دا ټول شیان.

د کورس دویمه برخه وړاندې کوي چې زده کونکی لا دمخه په جاوا کې د لیکلو څرنګوالی پوهیږي، او هغه ته د "بالغ" ټیکنالوژۍ سټیک ورکول کیدی شي. دا ټول د SQL سره پیل کیږي، بیا JDBC، Hibernate. بیا HTTP، servlets. بل پسرلی دی، د ګیټ او میون په اړه لږ څه. او زده کونکي وروستۍ پروژې لیکي.

ټول روزنه په ماډلونو ویشل شوې ده. ما په اونۍ کې دوه ځله ټولګي ترسره کړل. د یو درس موده دوه ساعته ده.

زما د زده کړې طریقه

ما 5 ګروپونه خوشې کړل. دا د دوو کلونو لپاره ډیر ښکاري، مګر ما تقریبا تل په موازي توګه د 2 ډلو مشري کوله.

ما مختلف طریقې هڅه کړې.

لومړی اختیار دا دی چې یوه جوړه د یوې تیوري سره د پریزنټشن لپاره ځانګړې شوې. دویمه جوړه خالص تمرین دی. دا طریقه یو څه کار وکړ، مګر زما په نظر، دا خورا اغیزمنه نه وه.

دوهم انتخاب چې زه ورته راغلی یم او زه اوس کار کوم دا نه ده چې یوه ټوله جوړه تیوري ته وقف کړئ. پرځای یې، زه د تیوري لنډې برخې د 5-10 دقیقو لپاره مخلوط کړم، او سمدلاسه یې د عملي مثالونو سره پیاوړي کړم. دا طریقه ښه کار کوي.

که کافي وخت وي، زه محصلین خپل ځای ته رابولم، په لپ ټاپ کې یې کښېنوم، او دوی پخپله عملي مثالونه وړاندې کوي. دا خورا ښه کار کوي، مګر له بده مرغه دا ډیر وخت نیسي.

هرڅوک دا پای ته نه رسوي

زما لپاره یو وحی دا حقیقت و چې ټوله ډله د کورس پای ته نه رسیږي.

زما د نظرونو له مخې، یوازې نیمایي زده کونکي وروستۍ پروژه لیکي. ډیری یې د کورس په لومړۍ برخه کې له مینځه وړل کیږي. او هغه څوک چې دویمې برخې ته رسیدلي معمولا نه رالویږي.

دوی د مختلفو دلیلونو لپاره پریږدي.

لومړی پیچلتیا ده. مهمه نده چې دوی څه وايي، جاوا تر ټولو ساده ژبه نه ده. د حتی ساده برنامه لیکلو لپاره ، تاسو اړتیا لرئ د ټولګي مفهوم پوه شئ ، یوه میتود. او د پوهیدو لپاره چې تاسو ولې لیکلو ته اړتیا لرئ عامه جامد باطل اصلي (String[] arg) د پوهیدو لپاره یو څو نور مفکورې شتون لري.

دا د ټربو پاسکال سره پرتله کړئ، دا هغه څه دي چې ډیری خلکو یې پیل کړي، زما په شمول:

begin
    writeln("Первая программа");
end.

تر هغه ځایه چې زه پوهیږم، ښوونځی به دا ستونزه د اضافي ازموینې په معرفي کولو سره حل کړي. اوس هرڅوک نشي کولی جاوا مطالعه کړي. دا لاهم د مفهوم مرحله کې ده، مګر ګام په روښانه توګه سم دی.

او دوهم دلیل په لاندې عکس کې دی:

E-Dobavki - په جاوا او پسرلي بوټ کې د خوړو اضافه کولو لټون لپاره ویب خدمت، زما د زده کونکو لخوا لیکل شوی

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

حقیقت یو څه توپیر لري. ډیری معمول کوډ ، ناڅرګنده کیګونه ، د زده کړې دوامداره پروسه. دا په زړه پورې ده، مګر د هرچا لپاره نه.

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

د خدمت مفکوره

یوځل چې زده کونکو ټول کورس بشپړ کړ، دا د وروستۍ پروژې لیکلو وخت و. مختلف نظریات موجود وو. دوی د ToDo شیټونه، د پروژې مدیریت پروژې، او نور څه وړاندې کړل.

ما غوښتل یو څه ساده مګر ګټور کار وکړم. زما معیار ساده و - ایا زما ملګري او زه یې کارولی شم. د خواړو اضافه کونکو لټون لپاره ویب خدمت دا اړتیاوې پوره کړې.

نظر ساده دی. کله چې تاسو په پلورنځي کې محصول اخلئ ، تاسو په ترکیب کې یو ډول E-اضافه ګورئ. دا د کوډ څخه روښانه نده چې دا څومره خطرناک دی یا نه (او خطرناک اضافه کونکي هم شتون لري چې په ډیری هیوادونو کې منع دي).

تاسو ویب پاڼه پرانیزئ، د ضمیمه نوم دننه کړئ (نمبر، یو له بدیل نومونو څخه)، او د ضمیمه لنډیز ترلاسه کړئ:

E-Dobavki - په جاوا او پسرلي بوټ کې د خوړو اضافه کولو لټون لپاره ویب خدمت، زما د زده کونکو لخوا لیکل شوی

ورته پروژې شتون لري. تاسو کولی شئ په ساده ډول په ګوګل کې اضافه ټایپ کړئ، که څه هم دا تل معلومات په سمه توګه نه ښیې.

مګر څرنګه چې پروژه تعلیمي ده، پورته ستونزې زموږ مخه نه نیسي :)

پلي کول

هرڅوک په جاوا کې لیکلي، په ګیتوب کې د پروژې سرچینې کوډ.

زما په ګډون ۷ تنه وو. هر چا د پلې کولو غوښتنه وکړه، او ما، یا د ډلې بل کس، د پلټ غوښتنه ومنله.

د پروژې پلي کول شاوخوا یوه میاشت وخت نیسي - د نظر څرګندولو څخه تر هغه دولت پورې چې تاسو یې اوس ګورئ.

د اضافه کولو تحلیل

لومړی کار چې د زده کونکو څخه یو یې وکړ، د ډیټابیس په شاوخوا کې د بنسټیز چوکاټ رامینځته کولو سربیره (د ادارو، ذخیره کولو، او نور)، د موجوده معلوماتو سایټ څخه اضافه کول و.

دا د پاتې ټکو ازموینې لپاره اړین و. د ډیټابیس ډکولو لپاره اضافي کوډ ته اړتیا نشته. په چټکۍ سره د ډیری اضافه کولو تحلیل کولو سره، موږ کولی شو د UI، ترتیب کولو، او فلټر کولو نور ازموینه وکړو.

د پسرلي بوټ تاسو ته اجازه درکوي څو پروفایلونه جوړ کړئ. پروفایل د ترتیباتو سره یو فایل دی.

د دیو چاپیریال لپاره، موږ د محلي H2 DBMS او ډیفالټ HTTP پورټ (8080) سره پروفایل کارولی. په دې توګه، هرکله چې غوښتنلیک په لاره اچول شوی و، ډیټابیس پاک شوی و. پدې قضیه کې پارسر هغه شی و چې موږ یې وژغوره.

لټون او فلټر کول

یو مهم ټکی لټون او فلټر کول دي. په پلورنځي کې یو کس باید ژر تر ژره د ضمیمه کوډ یا یو نوم باندې کلیک وکړي او پایله ترلاسه کړي.

له همدې امله، اضافه اداره څو ساحې لري. دا اضافه کوډ، بدیل نومونه، توضیحات دي. لټون په ورته وخت کې په ټولو برخو کې د خوښې په کارولو سره ترسره کیږي. او که تاسو [123] یا [امارانت] ته ننوځئ نو تاسو به ورته پایله ترلاسه کړئ.

موږ دا ټول د مشخصاتو پراساس ترسره کړل. دا د پسرلي یوه برخه ده چې تاسو ته اجازه درکوي د لومړني لټون شرایط تشریح کړئ (لکه ځینې ساحه، د بیلګې په توګه)، او بیا دا شرایط (OR یا AND) سره یوځای کړئ.

د یو درجن مشخصاتو لیکلو سره ، تاسو کولی شئ پیچلې پوښتنې وپوښتئ لکه "ټول خطرناک رنګین اضافه کونکي چې په توضیح کې [سور] کلمه لري."

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

مګر زه دا ټکی هم په پام کې نیسم چې اړتیا نشته چې هرڅه مخکې له مخکې اصلاح کړئ. لومړۍ نسخه باید پیل شي، کار وکړي او د انفرادي برخو بدلولو ته اجازه ورکړي. او که چیرې بار وي، دا انفرادي برخې باید بیا لیکل شي.

امنیت

دا ساده ده. د ADMIN رول سره کاروونکي شتون لري - دوی کولی شي اضافې ترمیم کړي، حذف کړي، او نوي اضافه کړي.

او نور کاروونکي شتون لري (رجسټر شوي یا نه). دوی کولی شي یوازې د اضافه کولو لیست براوز کړي او د هغه چا لټون وکړي چې دوی ورته اړتیا لري.

د پسرلي امنیت د جلا حقونو لپاره کارول کیده. د کارونکي معلومات په ډیټابیس کې ساتل کیږي.

کاروونکي کولی شي نوم لیکنه وکړي. اوس هیڅ نه ورکوي. که زده کونکي خدمت ته دوام ورکړي او ځینې شخصي دندې معرفي کړي، نو نوم لیکنه به په کار وي.

ځواب ویونکی او بوټسټراپ

بل ټکی د تطبیق وړ دی. زموږ د خدماتو په حالت کې (لږترلږه هغه لاره چې موږ یې ولیدل)، د کاروونکو اکثریت به د ګرځنده تلیفونونو سره وي. او تاسو اړتیا لرئ ژر تر ژره د خپل ګرځنده تلیفون څخه ضمیمه وګورئ.

د دې لپاره چې د CSS سره زیان ونه رسوي، موږ بوټسټریپ واخیست. ارزانه، خوشحاله، او ښه ښکاري.

زه نشم کولی انٹرفیس مثالی ووایم. اصلي پاڼه حتی لږه ده، او د اضافه کولو تفصیلي توضیح لپاره پاڼه تنګ ده؛ په ګرځنده تلیفونونو کې دا باید پراخه شي.

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

د SEO اصلاح کولو یوه دقیقه

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

په حقیقت کې، ما د هر اضافې لپاره د سرلیک او توضیحاتو ټیمپلیټ نسل جوړ کړ. URL تقریبا CNC دی، که څه هم دا لنډ کیدی شي.

ما د حاضرۍ شمیرونکي هم اضافه کړل. دا سایټ د Yandex Webmaster او Google Search Console ته اضافه شوی ترڅو د لټون انجنونو څخه اخطارونه وڅاري.

دا کافي نه ده. تاسو اړتیا لرئ د بشپړ لیست کولو لپاره robots.txt او sitemap.xml اضافه کړئ. مګر بیا، دا د زده کونکي پروژه ده. زه به هغوی ته ووایم چې څه باید وشي، او که دوی وغواړي، دوی به یې وکړي.

تاسو اړتیا لرئ د SSL سند ضمیمه کړئ. وړیا لیټ انکرپټ به هم کار وکړي. ما دا د پسرلي بوټ لپاره وکړل. دا ستونزمن کار نه دی، او د PS باور زیاتیږي.

د پروژې لپاره راتلونکی څه دی؟

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

"Snickers" دننه کړئ او وګورئ چې کوم تغذیه اضافه کونکي پکې شامل دي.

حتی د پروژې په پیل کې ، زه پوهیدم چې موږ به هیڅ محصول ونه لرو :) نو له همدې امله ، موږ یوازې د اضافو سره پیل وکړ.

اوس تاسو کولی شئ محصولات اضافه کړئ او اضافي معرفي کړئ. بنس که دا یو پراخ ډیټابیس وي، نو کاروونکي به وي.

ځای پرځای کول

پروژه په VPS، اروبا کلاوډ کې ځای پرځای شوې وه. دا ترټولو ارزانه VPS دی چې موږ یې موندلی شو. زه دا چمتو کونکی زما د پروژو لپاره له یو کال څخه ډیر وخت لپاره کاروم، او زه له دې څخه خوښ یم.

د VPS ځانګړتیاوې: 1 GB رام، 1 CPU (زه د فریکونسۍ په اړه نه پوهیږم)، 20 GB SSD. زموږ د پروژې لپاره دا کافي ده.

پروژه د معمول mvn پاک کڅوړې په کارولو سره جوړه شوې. پایله د غوړ جار دی - د ټولو انحصارونو سره د اجرا وړ فایل.

د دې ټولو لږ اتومات کولو لپاره ، ما یو څو بش سکریپټونه لیکلي.

لومړی سکریپټ زاړه جار فایل حذف کوي او یو نوی جوړوي.

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

DB - MySQL په ورته VPS کې.

د پروژې بیا پیل په ټولیزه توګه شامل دي:

  • د SSH له لارې VPS ته ننوتل
  • د ګیټ وروستي بدلونونه ډاونلوډ کړئ
  • local-jar.sh چلول
  • د چلولو غوښتنلیک وژني
  • لانچ-production.sh چلول

دا کړنلاره درې دقیقې وخت نیسي. دا زما لپاره د داسې کوچنۍ پروژې لپاره د سمارټ انتخاب په څیر ښکاري.

مشکلات

د پروژې په جوړولو کې اصلي ستونزې د سازماني طبیعت درلود.

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

ما په دې ګروپ کې د مشروط ټیم مشر پیژندلی. هغه د دندو لیست سره د ګوګل ډاک ساتل ، دندې توزیع کړې ، او د دوی منل یې کنټرول کړل. هغه د وتلو غوښتنې هم ومنلې.

ما له زده کونکو څخه هم وغوښتل چې هر ماښام د پروژې په اړه د دوی د کار په اړه یو لنډ راپور ولیکي. که تاسو هیڅ نه وي کړي، سمه ده، یوازې "هیڅ نه دی کړی" ولیکئ. دا عالي تمرین دی او تاسو یو څه فشار راوړی. له بده مرغه هرڅوک دا قاعده نه تعقیبوي.

د دې ټول حرکت موخه ساده وه. یو ټیم جوړ کړئ، حتی که یوازې د لنډ وخت لپاره، یوځای کار وکړي.

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

لومړۍ یا دوه اونۍ یو جوړ شوی و. ادارې او کوچني ژمنې په سستۍ سره ترسره شوې. ورو ورو ما دوی وهڅول، او کار نور هم په زړه پورې شو. په چیٹ کې اړیکه ژوندۍ شوه، زده کونکو خپل اضافه وړاندیز وکړ.

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

موندنو

زده کړه په زړه پورې ده.

د هر ټولګي وروسته زه په احساساتي توګه بیرته راستون شوم. زه هڅه کوم چې هره جوړه ځانګړې کړم او څومره چې ممکنه پوهه وړاندې کړم.

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

که څه هم مقاله خورا پراخه وه، دا یقینا ممکنه نه وه چې ټول ټکي پوښي. له همدې امله، خپلې پوښتنې په نظرونو کې ولیکئ.

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

Add a comment