ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

جاوا څنګه د نورو مشهور ژبو څخه توپیر لري؟ ولې جاوا باید د زده کړې لومړۍ ژبه وي؟ راځئ چې یو پلان جوړ کړو چې تاسو سره به د سکریچ څخه او په نورو ژبو کې د پروګرام کولو مهارتونو پلي کولو سره جاوا زده کولو کې مرسته وکړي. راځئ چې په جاوا کې د تولید کوډ رامینځته کولو او په نورو ژبو کې د پراختیا ترمینځ توپیرونه لیست کړو. میخایل زاتیپیکین دا راپور د راتلونکو ګډونوالو لپاره په یوه غونډه کې ولوستل انٹرنشپونه Yandex او نور پیل کونکي پراختیا کونکي - جاوا جونیئر ملاقات.


- ټولو ته سلام، زما نوم میشا دی. زه د Yandex.Market څخه جوړونکی یم، او نن به زه تاسو ته ووایم چې ولې جاوا زده کړه او دا څنګه په مؤثره توګه ترسره کړو. تاسو ممکن یو معقول پوښتنه وپوښتئ: ولې زه به دا کیسه ووایم، او د ډیرو کلونو تجربې سره یو پیاوړی پراختیا کونکی نه؟ حقیقت دا دی چې ما پخپله جاوا شاوخوا یو نیم کال دمخه مطالعه کړې ، نو زه لاهم په یاد لرم چې دا څه ډول و او کوم زیانونه شتون لري.

یو کال دمخه ما په Yandex.Market کې انٹرنشپ ترلاسه کړ. ما د بیرو لپاره پس منظر رامینځته کړی ، پخپله د بازار لپاره ، تاسو شاید دا کارولی وي. اوس زه هلته کار ته دوام ورکوم، په بل ټیم ​​​​کې. موږ د سوداګرۍ شریکانو لپاره د Yandex.Market لپاره تحلیلي پلیټ فارم رامینځته کوو.

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

راځه چي پیل یی کړو. ولې جاوا له عملي لید څخه زده کړئ؟ حقیقت دا دی چې جاوا خورا مشهور پروګرامینګ ژبه ده. دا ډیره لویه ټولنه لري.

د مثال په توګه، دلته د TIOBE شاخص شتون لري، د پروګرام کولو ژبو د شهرت یو مشهور شاخص، او جاوا هلته لومړی ځای لري. همچنان ، د دندې سایټونو کې ، تاسو به شاید په یاد ولرئ چې ډیری خالي ځایونه د جاوا په اړه دي ، دا په جاوا کې د پراختیا په واسطه ، تاسو کولی شئ تل دنده ومومئ.

څرنګه چې ټولنه ډیره لویه ده، کومه پوښتنه چې تاسو یې لرئ ځواب به په ځینو Stack Overflow یا نورو سایټونو کې ومومئ. همچنان ، کله چې په جاوا کې وده کوئ ، تاسو واقعیا په JVM کې کوډ لیکئ ، نو تاسو کولی شئ په اسانۍ سره کوټلین ، سکالا او نورو ژبو ته لاړ شئ چې JVM کاروي.

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

د ایډیالوژیکي نقطه نظر څخه د جاوا په اړه څه ښه دي؟ د پروګرام کولو مختلفې ژبې شتون لري. دوی مختلف ستونزې حل کوي، تاسو پوهیږئ. د مثال په توګه، Python د ګړندي ستونزو حل کولو لپاره د یو لاین سکریپټونو لیکلو لپاره عالي دی.

په پلس اړخ کې ، تاسو کولی شئ په بشپړ ډول د اجرا وړ کوډ کنټرول کړئ. د مثال په توګه، موږ موټرې لرو، د Yandex بې چلوونکي موټرې، د دوی کوډ په پلس کې لیکل شوی. ولې؟ جاوا داسې شی لري - د کثافاتو راټولونکی. دا د غیر ضروري شیانو رام پاکوي. دا شی په ناڅاپي ډول پیل کیږي او د نړۍ مخه نیسي، دا د پروګرام پاتې برخه ودروي او د شیانو شمیرلو ته ځي، د شیانو پاکه حافظه. که داسې شی په ډرون کې کار وکړي، دا ښه نه ده. ستاسو ډرون به مستقیم چلوي، پدې شیبه کې خپل حافظه پاکوي او سړک ته هیڅ نه ګوري. له همدې امله، ډرون په پرو باندې لیکل کیږي.

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

جاوا کومې ستونزې حل کوي؟ دا په اصل کې د لویو پروګرامونو د جوړولو لپاره یوه ژبه ده چې د کلونو په اوږدو کې د لسګونو یا سلګونو خلکو لخوا لیکل کیږي. په ځانګړې توګه، په Yandex.Market کې ډیری شالید په جاوا کې لیکل شوي. موږ په څو ښارونو کې ویشل شوی ټیم لرو، په هر یو کې لس کسان. او کوډ ساتل اسانه دي، دا د لسو کلونو یا ډیرو لپاره ملاتړ شوی، او په ورته وخت کې نوي خلک راځي او پدې کوډ پوهیږي.

کومه ژبه باید کومه ځانګړنه ولري چې په دې کې کوډ په اسانۍ سره حمایه شي او په لویو ټیمونو کې په اسانۍ سره وده ومومي. تر ټولو لومړی، دا باید د لوستلو وړ کوډ وي، او دا باید د پیچلو معماري حلونو پلي کول اسانه وي. دا باید د لوړې کچې خلاصون لیکل اسانه وي. دا ټول هغه څه دي چې جاوا موږ ته درکوي. دا د اعتراض پر بنسټ ژبه ده. د لوړې کچې خلاصون او پیچلي معمارۍ پلي کول واقعیا اسانه دي.

د جاوا لپاره ډیری چوکاټونه او کتابتونونه هم شتون لري، ځکه چې ژبه د 15 کلونو څخه ډیره ده. د دې وخت په جریان کې ، هرڅه چې لیکل کیدی شي پدې کې لیکل شوي و ، نو دلته د هرڅه لپاره ټن کتابتونونه شتون لري چې تاسو ورته اړتیا لرئ.

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

کوم بنسټیز مهارتونه، زما په نظر، د پیل JA لوبغاړی باید ولري؟ تر ټولو لومړی، دا د جاوا اصلي ژبې پوهه ده. بل د انحصار انجیکشن چوکاټ یو ډول دی. راتلونکی سپیکر، کیریل به په دې اړه په بشپړه توګه خبرې وکړي. زه ډیر ژور نه ځم. بل د معمارۍ او ډیزاین نمونې دي. موږ اړتیا لرو د لوی غوښتنلیکونو لیکلو لپاره د معماري پلوه ښکلي کوډ لیکلو وړتیا ولرو. او دا د ډیټابیس سره د کار کولو دندو لپاره یو ډول SQL یا ORM دی. او دا په پس منظر کې ډیر پلي کیږي.

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

لاړ شه! جاوا کور. زه به دلته واقعیا امریکا ونه موند - تاسو اړتیا لرئ پخپله ژبه پوه شئ. هغه څه چې تاسو باید پاملرنه وکړئ. لومړی، جاوا په وروستیو کلونو کې ډیری نسخې خپرې کړې، دا چې په 2014-2015 کې اووم خپور شو، بیا اتم، نهم، لسم، ډیری نوي نسخې، او ډیر نوي نوي شیان معرفي شول. ، د مثال په توګه ، د جاوا سټریم API ، لامبډا ، او داسې نور ډیر ښه ، تازه ، په زړه پوري شیان چې د تولید کوډ کې کارول کیږي ، دوی په مرکو کې د څه په اړه پوښتنه کوي او کوم چې تاسو اړتیا لرئ پوه شئ. له همدې امله، تاسو باید د جاوا-4 کتابتون کې له شیلف څخه کتاب ونه اخلئ او زده کړئ. دا زموږ پلان دی: موږ Java-8 یا لوړ زده کوو.

موږ نوښتونو ته ډیره پاملرنه کوو لکه سټریم API، var، او داسې نور. دوی د مرکو په جریان کې پوښتل کیږي او په دوامداره توګه په تولید کې کارول کیږي. دا دی ، د سټریم API د لوپونو په پرتله خورا یخ دی ، په عموم کې ، یو خورا ښه شی. ډاډه اوسئ چې پام وکړئ.

او دلته ټول ډولونه شتون لري لکه تکرارونکي، استثناوې او داسې نور. هغه شیان چې تاسو ته مهم نه ښکاري تر هغه چې تاسو پخپله یو کوچنی کوډ ولیکئ. تاسو دې استثناوو ته اړتیا نلرئ، په هرصورت څوک ورته اړتیا لري؟ مګر دوی به خامخا په مرکو کې وپوښتل شي، دوی به یقینا ستاسو لپاره په تولید کې ګټور وي. په عموم کې، تاسو باید استثناء، تکرارونکي او نورو شیانو ته پام وکړئ.

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

د معلوماتو جوړښتونه. تاسو نشئ کولی د جوړښتونو پرته لاړ شئ، مګر دا به خورا ښه وي که تاسو یوازې نه پوهیږئ چې سیټونه، لغتونه او پاڼې شتون لري. او همدارنګه د جوړښتونو مختلف تطبیق. د مثال په توګه، په جاوا کې ورته لغت ډیری تطبیقونه لري، پشمول د HashMap او TreeMap. دوی مختلف اسیمپټوټیکونه لري، دوی دننه په مختلف ډول جوړښت لري. تاسو اړتیا لرئ پوه شئ چې دوی څنګه توپیر لري او کله چې کوم یو وکاروئ.

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

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

هرڅومره ژر چې تاسو کوم لوی کوډ لیکل پیل کړئ ، پیچلي ، د کتابتونونو کارول ، څو ټولګي کوډ ، تاسو به پوه شئ چې دا ستاسو لپاره د سیسټمونو رامینځته کولو او انحصارونو حل کولو پرته سخت دی. دا په عمده توګه ماون او ګرډل دي. دوی تاسو ته اجازه درکوي په یوه لیکه کې ستاسو پروژې ته کتابتونونه وارد کړئ. دا دی، تاسو یو کرښه xml ولیکئ او په پروژه کې کتابتونونه وارد کړئ. لوی سیسټمونه. دوی تقریبا ورته دي، یو یې وکاروئ - ماون یا ګرډل.

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

او یو ډول پرمختیایی چاپیریال. زه د IntelliJ Idea وړاندیز کوم. دا د پراختیا پروسه خورا ګړندۍ کوي ، تاسو سره ډیره مرسته کوي ، ستاسو لپاره ټول بویلر پلیټ کوډ لیکي ، په عموم کې ، دا ښه دی.

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

له سلایډ څخه لینکونه: SQLZOO, habrapost

SQL. د ملاتړ کونکو په اړه لږ څه. دلته واقعیا یوه مسخره قضیه وه. زما د دوهم انټرنشپ مرکې څخه دوه ورځې دمخه، د بشري حقونو یوې نجلۍ ما ته زنګ وواهه او ویې ویل چې دوی به په دوو ورځو کې له ما څخه د SQL او HTTP په اړه پوښتنه وکړي، زه اړتیا لرم چې دا زده کړم. او زه د SQL یا HTTP په اړه تقریبا هیڅ نه پوهیږم. او ما دا ښایسته سایټ وموندل - SQLZOO. ما په 12 ساعتونو کې په دې باندې SQL زده کړ، زما مطلب دی، د SQL نحو، د SELECT پوښتنو لیکلو څرنګوالی، یوځای کیدل، او داسې نور. ډیر ښه سایټ، زه یې ډیره سپارښتنه کوم. په حقیقت کې، په 12 ساعتونو کې ما د هغه څه 90٪ زده کړل چې زه اوس پوهیږم.

او دا د ډیټابیس جوړښت پوهیدل هم خورا ښه دي. دا ټول ډوله کیلي، شاخصونه، نورمال کول دي. په هابري کې پدې اړه یو لړ پوسټونه شتون لري.

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

په جاوا کې، د SQL برسیره، د اعتراض-اړیکو نقشه کولو سیسټمونو ټول ډولونه شتون لري لکه JPA. یو څه کوډ شتون لري. په لومړي میتود کې یو څه SQL کوډ شتون لري - د info.users څخه د id نوم غوره کړئ WHERE id in userIds. د کاروونکو ډیټابیس څخه، د میز څخه، د دوی ID او نومونه ترلاسه کیږي.

بیا، یو مشخص نقشه شتون لري چې یو شی د بیس څخه په جاوا څیز بدلوي. او لاندې دریم میتود شتون لري چې واقعیا دا کوډ اجرا کوي. دا ټول د JPA په کارولو سره د یوې کرښې سره بدل کیدی شي، کوم چې لاندې لیکل شوی. دا ورته کار کوي - ټول ByIdIn ومومئ. دا د میتود نوم پراساس دی ، دا ستاسو لپاره د SQL پوښتنه رامینځته کوي.

ډیر خوندور شی. زه پخپله، کله چې زه SQL نه پوهیږم، JPA کارولی. په عموم کې، پاملرنه وکړئ. که تاسو د SQL زده کولو لپاره ډیر سست یاست، دا یو ناورین دی. او، په عموم کې، اور!

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

پسرلی. چا د پسرلي چوکاټ په څیر د داسې شی په اړه اوریدلي دي؟ ایا تاسو ګورئ چې ستاسو څخه څو تنه دي؟ بې دلیله نه. پسرلی د هرې ثانیې جاوا پس منظر خالي کولو اړتیاو کې شامل دی. پرته له دې، واقعیا په لوی پرمختګ کې هیڅ ځای نشته. پسرلی څه شی دی؟ تر ټولو لومړی، دا د انحصار انجکشن چوکاټ دی. په دې اړه هم به ووايي راتلونکی سپیکر مګر په لنډه توګه ، دا یو شی دی چې تاسو ته اجازه درکوي په نورو باندې د ځینې ټولګیو انحصار واردول اسانه کړي. دا، د انحصار پوهه ساده ده.

د پسرلي بوټ د پسرلي یوه ټوټه ده چې تاسو ته اجازه درکوي د یو تڼۍ سره ستاسو د سرور غوښتنلیک چل کړئ. تاسو THID ته لاړ شئ، یو څو تڼۍ فشار کړئ، او اوس تاسو د خپل سرور غوښتنلیک په لوکل هوسټ 8080 کې پرمخ وړئ. دا دی، تاسو تر اوسه د کوډ یوه کرښه نه ده لیکلې، مګر دا دمخه کار کوي. ډیر خوندور شی. که تاسو خپل څه لیکئ، اور!

پسرلی یو ډیر لوی چوکاټ دی. دا نه یوازې ستاسو د سرور غوښتنلیک غوره کوي او د انحصار انجیکشن حل کوي. دا تاسو ته اجازه درکوي یو شمیر شیان ترسره کړئ ، پشمول د REST API میتودونو رامینځته کول. دا دی، تاسو یو څه میتود لیکلی او د نقشې ترلاسه کولو تشریح یې ورسره ضمیمه کړی. او اوس تاسو دمخه په لوکل هوسټ کې یو څه میتود لرئ چې تاسو ته سلام نړۍ لیکي. د کوډ دوه کرښې او دا کار کوي. ښایسته توکي.

پسرلی د لیکلو ازموینې هم اسانه کوي. په لوی پرمختګ کې د ازموینې پرته هیڅ لاره نشته. کوډ باید معاینه شي. د دې هدف لپاره، جاوا یو ښه کتابتون لري JUnit 5. او په عمومي توګه JUnit، مګر وروستۍ نسخه پنځمه ده. دلته د ازموینې لپاره هرڅه شتون لري ، هر ډول ادعاګانې او نور شیان.

او یو په زړه پوری Mockito چوکاټ شتون لري. تصور وکړئ چې تاسو یو څه فعالیت لرئ چې تاسو یې ازموینه غواړئ. فعالیت ډیری شیان ترسره کوي ، پشمول په مینځ کې ، دا ستاسو د ID سره VKontakte ته ننوځي ، د مثال په توګه ، او د ID څخه د VKontakte کارونکي لومړی او وروستی نوم ترلاسه کوي. تاسو شاید په ازموینو کې VKontakte شامل نه کړئ ، دا عجیب دی. مګر تاسو اړتیا لرئ د فعالیت ازموینه وکړئ ، نو تاسو دا ټولګی جوړ کړی ، د موکیټو په کارولو سره ، دا موک کړئ ، تقلید یې کړئ.

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

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

له سلایډ څخه لینک

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

دلته یوه ویب پاڼه شتون لري چې خورا مشهور نمونې لري - refactoring.guru، تاسو یې لوستلی شئ، ومومئ چې کوم نمونې شتون لري، د تیوري یوه ډله ولولئ. ستونزه دا ده چې دا په عملي توګه بې ګټې ده. په حقیقت کې، د تمرین پرته نمونې په ځانګړې توګه ګټورې ندي.

تاسو به د ځینې نمونو په اړه واورئ لکه Singleton یا Builder. دا خبرې چا اورېدلې؟ ډیری خلک. داسې ساده نمونې شتون لري چې تاسو کولی شئ خپل ځان پلي کړئ. مګر ډیری نمونې: ستراتیژي، فابریکه، مخ - دا روښانه نده چې چیرته یې پلي کړئ.

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

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

ولې نمونې ته اړتیا ده؟ راځئ چې ووایو تاسو یو ځانګړی کارن ټولګي لرئ. دا یو شناخت او نوم لري. هر کارن باید یو ID او نوم دواړه ولري. پورته کیڼ لور ته ټولګي ده.

د کارونکي پیل کولو لارې کومې دي؟ دوه اختیارونه شتون لري - یا یو جوړونکی یا سیټر. د دواړو طریقو زیانونه څه دي؟

جوړونکی. نوی کارن (7، "بانډ")، سمه ده. اوس راځئ چې ووایو چې موږ د کارن ټولګي نه لرو، مګر یو بل یو، د اوو شمیرو ساحو سره. تاسو به یو جوړونکی ولرئ چې اوه پرله پسې شمیرې ولري. دا څرګنده نه ده چې دا شمېرې څه دي او د کومو ملکیتونو پورې اړه لري. ډیزاینر عالي ندی.

دوهم اختیار سیټر دی. تاسو په واضح ډول ولیکئ: setId(7)، د نوم نوم ("بانډ"). تاسو پوهیږئ چې کوم ملکیت په کوم ساحه پورې اړه لري. مګر سیټر ستونزه لري. لومړی، تاسو ممکن هیر کړئ چې یو څه وټاکئ، او دویم، ستاسو اعتراض د بدلون وړ وي. دا تار خوندي ندی او یو څه د کوډ لوستلو وړتیا کموي. له همدې امله خلک د ښه نمونې سره راغلل - جوړونکی.

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

دا د څه په اړه ده؟ راځئ هڅه وکړو چې د دواړو طریقو ګټې - سیټر او جوړونکي - په یو کې یوځای کړو. موږ یو ځانګړی شی جوړوو، جوړونکی، چې به د ID او نوم ساحې هم ولري، کوم چې پخپله به د سیټر پر بنسټ جوړ شي، او کوم چې به د جوړونې طریقه ولري چې تاسو ته د ټولو پیرامیټونو سره یو نوی کاروونکي بیرته راولي. موږ یو نه بدلیدونکی څیز او سیټر ترلاسه کوو. ارام!

ستونزې څه دي؟ دلته موږ کلاسیک جوړونکی لرو. ستونزه دا ده چې موږ لاهم کولی شو په ځینې ساحه کې چک کول هیر کړو. او که موږ د ID لیدنه هیره کړه، په دې حالت کې په بلډر کې دا صفر ته ابتدايي کیږي، ځکه چې د int ډول د رد وړ نه دی. او که موږ نوم "بانډ" جوړ کړو او د ID دفتر ته تلل هیر کړو، نو موږ به یو نوی کاروونکي ولرو چې id "0" او د "بانډ" نوم وي. ښه نه.

راځئ هڅه وکړو چې دا مبارزه وکړو. په جوړونکي کې موږ به int ته په int بدل کړو ترڅو دا ناپاک وي. اوس هرڅه عالي دي.

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

که موږ هڅه وکړو چې د "بانډ" نوم سره یو کارن جوړ کړو، په هغې کې د ID ایښودل هیر شوي، موږ به د یو نلی پوائنټر استثنا ترلاسه کړو، ځکه چې ID د رد وړ نه دی، مګر جوړونکی یو ناپاک، په ځانګړې توګه د پوائنټر استثناء لري.

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

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

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

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

تاسو اړتیا لرئ چې د کارن رامینځته کولو په وخت کې نه یوه تېروتنه وغورځوئ ، مګر کله چې تاسو ID ته null تنظیم کړئ. له همدې امله، په بلډر کې به موږ سیټر انټیجر په int بدل کړو، او هغه به سمدلاسه قسم وکړي چې دوی null ایستل کړي.

په لنډه توګه، ټکی څه دی؟ د جوړونکي ساده نمونه شتون لري، مګر حتی د هغې پلي کول یو څه فرعي ټکي لري، نو د نمونو مختلف تطبیقونو ته د کتلو لپاره خورا ښه دی. هره نمونه په لسګونو تطبیقونه لري. دا ټول خورا په زړه پورې دي.

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

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

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

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

نمونې کیدای شي معماري وي - نه یوازې په یوه ټولګي پورې اړه لري، بلکې په ټولیز ډول سیسټم پورې اړه لري. د سیسټم په ډیزاین کې داسې ښه اصول شتون لري: د مسؤلیت واحد اصول. هغه د څه په اړه خبرې کوي؟ حقیقت دا دی چې هر ټولګي باید د خپل ځینې فعالیت لپاره مسؤل وي. پدې حالت کې، موږ یو کنټرولر لرو چې د کاروونکو، JSON شیانو سره اړیکه نیسي. دلته Facade شتون لري، کوم چې د JSON توکي په ماډلونو بدلوي چې د جاوا غوښتنلیک به بیا ورسره کار وکړي. یو خدمت شتون لري چې پیچلي منطق لري چې د دې ماډلونو سره کار کوي. د ډیټا لاسرسي څیز شتون لري چې دا ماډلونه ډیټابیس ته اچوي او له ډیټابیس څخه یې بیرته ترلاسه کوي. او پخپله ډیټابیس شتون لري. په بل عبارت، دا ټول په یوه ټولګي کې ندي، مګر موږ پنځه مختلف ټولګي جوړوو، او دا یو بل ډول دی.

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

یوځل چې تاسو ډیر یا لږ جاوا زده کړل ، نو دا خورا ښه ده چې خپله پروژه ولیکئ چې ډیټابیس ولري ، د نورو APIs سره کار وکړي ، او ستاسو د سرور غوښتنلیک REST API پیرودونکو ته افشا کړئ. دا به ستاسو په بیا پیل کې اضافه کولو لپاره عالي شی وي ، دا به ستاسو د زده کړې ښه پای وي. په دې سره تاسو کولی شئ لاړ شئ او دنده ترلاسه کړئ.

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

دلته زما د سرور غوښتنلیک یوه بیلګه ده. زما په دوهم کال کې، ما د هلکانو سره یو اصطلاح کاغذ ولیکه. دوی د پیښو تنظیم کولو لپاره ګرځنده غوښتنلیک لیکلی و. هلته، کاروونکي کولی شي د VKontakte له لارې ننوتل، په نقشه کې ټکي ځای په ځای کړي، پیښې رامینځته کړي، خپل ملګري دوی ته بلنه ورکړي، د پیښو انځورونه خوندي کړي، او داسې نور.

ما په پروژه کې څه وکړل؟ د SQL کارولو پرته په پسرلي بوټ کې د سرور غوښتنلیک لیکلی. زه هغه نه پیژنم، ما JPA کارولی. دا څه کولی شي؟ د OAuth-2 له لارې VK ته ننوتل. د کارونکي نښه واخلئ، د دې سره VK ته لاړ شئ، وګورئ چې دا یو ریښتینی کارونکی دی. د VKontakte له لارې د کاروونکو په اړه معلومات ترلاسه کړئ. دا د دې توان درلود چې معلومات په ډیټابیس کې خوندي کړي، د JPA له لارې هم. په مهارت سره د کمپیوټر په حافظه کې عکسونه او نور فایلونه خوندي کړئ او په ډیټابیس کې یې لینکونه خوندي کړئ. په هغه وخت کې زه نه پوهیدم چې په ډیټابیس کې د CLOB توکي شتون لري، نو ما دا کار وکړ. د کاروونکو، مراجعینو غوښتنلیکونو لپاره یو REST API شتون درلود. او د بنسټیز فعالیت لپاره د واحد ازموینې شتون درلود.

د جاوا زما د بریالۍ زده کړې یوه کوچنۍ بیلګه. په پوهنتون کې زما په لومړي کال کې، ما ته C# درس ورکړل شو او د OOP پروګرامونو په اړه پوهه راکړل شوه - کوم ټولګي، انٹرفیسونه، خلاصون دي، او ولې ورته اړتیا ده. دا زما سره ډیره مرسته وکړه. له دې پرته، د جاوا زده کول خورا ستونزمن دي؛ دا روښانه نده چې ولې ټولګیو ته اړتیا ده.

ولې جاوا زده کړئ او دا څنګه په مؤثره توګه ترسره کړئ. د Yandex راپور

په پوهنتون کې زما په دوهم کال کې، دوی بیا د جاوا کور درس ورکړ، مګر زه هلته پاتې نه شوم، زه پخپله د پسرلي زده کړې ته لاړم او د کورس کاغذ، زما پروژه، کوم چې ما پورته یادونه وکړه. او د دې ټولو سره، زه په Yandex کې د انټرنشپ لپاره لاړم، یوه مرکه تیره کړه، او Yandex.Market ته لاړم. هلته ما د بیرو لپاره پس منظر لیکلي، دا زموږ بازار دی، او پخپله د Yandex.Market لپاره.

له هغې وروسته، شپږ میاشتې مخکې، ما په ورته مارکیټ کې بل ټیم ​​ته لیږدول. موږ د سوداګرۍ شریکانو لپاره تحلیلونه کوو. موږ په تحلیلي پلیټ فارم کې یو ، موږ درې په شاته کې یو ، نو زه په پروژه کې د نفوذ خورا لوی برخه لرم. دا واقعیا خورا په زړه پوري ده. دا دی، موږ واقعیا په بازار کې ډاټا چمتو کوو - څه پلور دي، په کوم کټګوریو کې، په کوم ماډلونو کې، د سوداګریزو شریکانو لپاره، لوی مشهور شرکتونه. او موږ یوازې درې یو، موږ دا کوډ لیکو، او دا خورا ښه دی.

له تاسو مننه! ګټورې اړیکې:
- "جاوا 8. د پیل کونکي لارښود".
- د معلوماتو جوړښتونه.
- SQLZOO.
- د ډیټابیس نورمال کول.
- ډیزاین نمونې.
- د ډیزاین بternې.
- پاک کوډ.
- اغیزمن جاوا.

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

Add a comment