Bidh an luchd-cleachdaidh againn aâ sgrĂŹobhadh teachdaireachdan gu chèile gun fhios aca sgĂŹths.

Tha sin gu math tòrr. Ma chuir thu a-mach a h-uile teachdaireachd bhon luchd-cleachdaidh gu lèir a leughadh, bheireadh e còrr air 150 mĂŹle bliadhna. Cho fad âs gur e leughadair meadhanach adhartach a thâ annad agus nach caith thu barrachd air diog air gach teachdaireachd.
Le uiread de dhĂ ta, tha e deatamach gun tèid an loidsig airson a stòradh agus faighinn thuige a thogail mar as fheĂ rr. Rud eile, ann an aon mhionaid nach eil cho iongantach, is dòcha gum bi e soilleir gun tèid a h-uile cĂ il ceĂ rr a dhâ aithghearr.
Dhuinne, thà inig am mionaid seo bliadhna gu leth air ais. Mar a thà inig sinn gu seo agus dè thachair aig a 'cheann thall - bidh sinn ag innse dhut ann an òrdugh.
CĂšl-fhiosrachadh
Anns a 'chiad bhuileachadh, bha teachdaireachdan VKontakte ag obair air measgachadh de PHP backend agus MySQL. Is e fuasgladh gu tur à bhaisteach a tha seo airson là rach-lÏn oileanach beag. Ach, dh'fhàs an là rach seo gu neo-riaghlaidh agus thòisich e ag iarraidh optimachadh structaran dà ta dha fhèin.
Aig deireadh 2009, chaidh aâ chiad stòr einnsean-teacsa a sgrĂŹobhadh, agus ann an 2010 chaidh teachdaireachdan a ghluasad thuige.
Anns an einnsean teacsa, chaidh teachdaireachdan a stòradh ann an liostaichean - seòrsa de âbhogsaichean puistâ. Tha gach liosta den leithid air a dhearbhadh le uid - an neach-cleachdaidh leis a bheil na teachdaireachdan sin uile. Tha seata de bhuadhan aig teachdaireachd: aithnichear interlocutor, teacsa, ceanglachan is mar sin air adhart. Is e local_id an aithnichear teachdaireachd taobh a-staigh aâ âbhogsaâ, cha atharraich e gu brĂ th agus thèid a shònrachadh ann an òrdugh airson teachdaireachdan Ăšra. Tha na âbogsaicheanâ neo-eisimeileach agus chan eil iad air an sioncronadh le chèile taobh a-staigh an einnsean; tha conaltradh eatarra aâ tachairt aig ĂŹre PHP. Faodaidh tu coimhead air structar dĂ ta agus comasan einnsean teacsa bhon taobh a-staigh .

Bha seo ceart gu leòr airson conaltradh eadar dithis luchd-cleachdaidh. Tomhais dè thachair an ath rud?
Anns a 'Chèitean 2011, thug VKontakte a-steach còmhraidhean le grunn chom-pĂ irtichean - ioma-chòmhradh. Gus obrachadh còmhla riutha, thog sinn dĂ bhuidheann Ăšr â cabadaich agus buill-còmhraidh. Bidh aâ chiad fhear aâ stòradh dĂ ta mu chòmhraidhean le luchd-cleachdaidh, bidh an dĂ rna fear aâ stòradh dĂ ta mu luchd-cleachdaidh le cabadaich. A bharrachd air na liostaichean fhèin, tha seo aâ toirt a-steach, mar eisimpleir, an neach-cleachdaidh cuireadh agus an Ăšine a chaidh an cur ris aâ chat.
âPHP, leig dhuinn teachdaireachd a chuir chun chat,â tha an neach-cleachdaidh ag rĂ dh.
âThig air adhart, {ainm-cleachdaidh},â arsa PHP.

Tha eas-bhuannachdan aig an sgeama seo. Tha sioncronadh fhathast an urra ri PHP. Is e sgeulachd cunnartach a thâ ann an còmhraidhean mòra agus luchd-cleachdaidh a bhios aâ cur teachdaireachdan thuca aig an aon Ă m. Leis gu bheil eisimpleir an einnsean teacsa an urra ris an uid, gheibh com-pĂ irtichean cabadaich an aon teachdaireachd aig amannan eadar-dhealaichte. Dhâ fhaodadh duine a bhith beò le seo nan seasadh adhartas. Ach cha tachair sin.
Aig deireadh 2015, chuir sinn air bhog teachdaireachdan coimhearsnachd, agus aig toiseach 2016, chuir sinn API air bhog dhaibh. Le teachd chatbots mòra ann an coimhearsnachdan, bha e comasach dÏochuimhneachadh mu eadhon cuairteachadh luchdan.
Bidh bot math aâ gineadh grunn mhilleanan teachdaireachdan gach latha - chan urrainn eadhon an luchd-cleachdaidh as labhairteach bòstadh Ă s seo. Tha seo a 'ciallachadh gun do thòisich cuid de shuidheachaidhean einnsean-teacsa, air an robh na botaichean sin a' fuireach, a 'fulang chun na h-ĂŹre as Ă irde.
Tha einnseanan teachdaireachd ann an 2016 mar 100 eisimpleir de bhuill-còmhraidh agus luchd-còmhraidh bhall, agus 8000 einnsean teacsa. Bha iad air an cumail air mĂŹle frithealaiche, gach fear le 64 GB de chuimhne. Mar chiad cheum èiginneach, mheudaich sinn aâ chuimhne le 32 GB eile. Rinn sinn tuairmse air na ro-innsean. Ăs aonais atharrachaidhean mòra, bhiodh seo gu leòr airson timcheall air bliadhna eile. Feumaidh tu an dĂ rna cuid grèim fhaighinn air bathar-cruaidh no na stòran-dĂ ta a mheudachadh iad fhèin.
Air sgĂ th nĂ dar na h-ailtireachd, chan eil e ciallach ach bathar-cruaidh Ă rdachadh ann an iomadan. Is e sin, co-dhiĂš dĂšblachadh an Ă ireamh de chĂ raichean - gu follaiseach, is e slighe caran daor a tha seo. NĂŹ sinn an fheum as fheĂ rr.
Bun-bheachd Ăšr
Is e prÏomh adhbhar an dòigh-obrach Úr cabadaich. Tha liosta de theachdaireachdan aig cabadaich a tha co-cheangailte ris. Tha liosta de chòmhraidhean aig an neach-cleachdaidh.
Is e an Ïre as Ïsle a tha a dhÏth dà stòr-dà ta Úr:
- inneal-còmhraidh. Is e seo stòr de vectaran cabadaich. Tha vectar de theachdaireachdan aig gach cabadaich a tha co-cheangailte ris. Tha teacsa agus aithnichear teachdaireachd sònraichte aig gach teachdaireachd taobh a-staigh aâ chat - chat_local_id.
- einnsean-cleachdaidh. Seo stòradh vectaran luchd-cleachdaidh - ceanglaichean gu luchd-cleachdaidh. Tha vectar de peer_id aig gach neach-cleachdaidh (eadar-luchd-cleachdaidh - luchd-cleachdaidh eile, ioma-chòmhradh no coimhearsnachdan) agus vectar de theachdaireachdan. Tha vectar de theachdaireachdan aig gach peer_id co-cheangailte ris. Tha chat_local_id aig gach teachdaireachd agus ID teachdaireachd sònraichte airson aâ chleachdaiche sin - user_local_id.

Bidh cruinneachaidhean Ăšra aâ conaltradh ri chèile aâ cleachdadh TCP - bidh seo aâ dèanamh cinnteach nach atharraich òrdugh nan iarrtasan. Tha na h-iarrtasan iad fhèin agus dearbhaidhean air an clĂ radh air a 'chlĂ r-chruaidh - gus an urrainn dhuinn staid a' chiudha a thoirt air ais aig Ă m sam bith an dèidh fĂ illigeadh no ath-thòiseachadh an einnsean. Leis gu bheil an einnsean-cleachdaidh agus an einnsean cabadaich 4 mĂŹle gach fear, thèid an ciudha iarrtas eadar na cruinneachaidhean a sgaoileadh gu cothromach (ach ann an da-rĂŹribh chan eil gin ann - agus bidh e ag obair gu math luath).
Tha a bhith ag obair le diosc anns na stòran-dĂ ta againn sa mhòr-chuid stèidhichte air measgachadh de log atharrachaidhean dĂ -chĂ nanach (binlog), dealbhan statach agus pĂ irt de dhâ ĂŹomhaigh mar chuimhneachan. Tha atharrachaidhean tron ââââlatha air an sgrĂŹobhadh gu binlog, agus tha dealbh den t-suidheachadh lĂ ithreach air a chruthachadh bho Ă m gu Ă m. Is e dealbh-dhealbh cruinneachadh de structaran dĂ ta air an Ăšrachadh airson ar n-adhbharan. Tha e air a dhèanamh suas de cheann-cinn (metaindex na h-ĂŹomhaigh) agus seata de metafiles. Tha an bann-cinn air a stòradh gu maireannach ann an RAM agus aâ comharrachadh far am bu chòir dhut coimhead airson dĂ ta bhon dealbh. Tha gach metafile aâ toirt a-steach dĂ ta a dhâ fhaodadh a bhith a dhĂŹth aig amannan dlĂšth - mar eisimpleir, co-cheangailte ri aon neach-cleachdaidh. Nuair a chuireas tu ceist air an stòr-dĂ ta aâ cleachdadh bann-cinn nan dealbh, thèid am faidhle meta a tha a dhĂŹth a leughadh, agus an uairsin thathas aâ toirt aire do atharrachaidhean anns aâ bhiona a thachair Ă s deidh an dealbh a chruthachadh. Faodaidh tu barrachd a leughadh mu na buannachdan bhon dòigh-obrach seo .
Aig an aon Ă m, bidh an dĂ ta air a 'chlĂ r-chruaidh fhèin ag atharrachadh dĂŹreach aon uair san latha - anmoch air an oidhche ann am Moscow, nuair a tha an luchd cho beag. Taing dha seo (le fios gu bheil an structar air an diosg seasmhach tron ââââlatha), is urrainn dhuinn arrays de mheud stèidhichte a chuir an Ă ite vectaran - agus air sgĂ th seo, buannachd ann an cuimhne.
Tha coltas mar seo air a bhith aâ cur teachdaireachd san sgeama Ăšr:
- Bidh an backend PHP aâ cur fios chun einnsean neach-cleachdaidh le iarrtas airson teachdaireachd a chuir.
- bidh einnsean-cleachdaiche aâ progsaidh an iarrtais chun an t-eisimpleir chat-engine a tha thu ag iarraidh, a thilleas gu inneal-cleachdaidh chat_local_id - aithnichear sònraichte airson teachdaireachd Ăšr taobh a-staigh aâ chat seo. Bidh an chat_engine an uairsin aâ craoladh an teachdaireachd gu gach neach a gheibh e sa chat.
- Bidh user-engine aâ faighinn chat_local_id o chat-engine agus aâ tilleadh user_local_id gu PHP - aithnichear teachdaireachd sònraichte airson aâ chleachdaiche seo. Tha an aithnichear seo an uairsin air a chleachdadh, mar eisimpleir, gus obrachadh le teachdaireachdan tron ââââAPI.

Ach a bharrachd air a bhith aâ cur teachdaireachdan, feumaidh tu beagan rudan nas cudromaiche a chuir an gnĂŹomh:
- Is e fo-liostaichean, mar eisimpleir, na teachdaireachdan as Ăšire a chĂŹ thu nuair a dhâ fhosglas tu an liosta còmhraidh. Teachdaireachdan gun leughadh, teachdaireachdan le tagaichean (âCudthromachâ, âSpamâ, msaa).
- Aâ teannachadh teachdaireachdan ann an einnsean-còmhraidh
- Aâ tasgadh teachdaireachdan ann an einnsean neach-cleachdaidh
- Rannsaich (tro gach còmhradh agus taobh a-staigh fear sònraichte).
- Ărachadh fĂŹor-Ăšine (Longpolling).
- Aâ sĂ bhaladh eachdraidh gus caching a chuir an gnĂŹomh air teachdaichean gluasadach.
Tha na fo-liostaichean uile nan structaran ag atharrachadh gu luath. Airson obrachadh còmhla riutha bidh sinn a 'cleachdadh . Tha an roghainn seo air a mhĂŹneachadh leis gu bheil sinn uaireannan a 'stòradh earrann slĂ n de theachdaireachdan bho gheĂ rr-chunntas aig mullach na craoibhe - mar eisimpleir, an dèidh ath-sgrĂŹobhadh oidhche, tha aon mhullach air a' chraobh, anns a bheil a h-uile teachdaireachd bhon fho-liosta. Tha craobh Splay ga dhèanamh furasta a chuir a-steach ann am meadhan a leithid de vertex gun a bhith aâ smaoineachadh air cothromachadh. A bharrachd air an sin, chan eil Splay aâ stòradh dĂ ta neo-riatanach, a shĂ bhaileas cuimhne dhuinn.
Bidh teachdaireachdan aâ toirt a-steach tòrr fiosrachaidh, teacsa sa mhòr-chuid, a tha feumail airson a bhith comasach air teannachadh. Tha e cudromach gun urrainn dhuinn eadhon aon teachdaireachd fa leth a dhĂŹ-chlĂ radh gu ceart. Air a chleachdadh airson teachdaireachdan a dhlĂšthadh le ar heuristics fhèin - mar eisimpleir, tha fios againn gu bheil ann am faclan teachdaireachdan mu seach le âneo-fhaclanâ - beĂ rnan, comharran puingeachaidh - agus tha sinn cuideachd aâ cuimhneachadh air cuid de fheartan cleachdadh shamhlaidhean airson cĂ nan na Ruis.
Leis gu bheil tòrr nas lugha de luchd-cleachdaidh ann na cabadaich, gus iarrtasan diosc air thuaiream a shĂ bhaladh ann an chat-engine, bidh sinn aâ tasgadh teachdaireachdan ann an einnsean-cleachdaidh.
Tha rannsachadh teachdaireachd ga chur an gnĂŹomh mar cheist trastain bho einnsean neach-cleachdaidh gu gach suidheachadh einnsean-còmhraidh anns a bheil cabadaich leis aâ chleachdaiche seo. Tha na toraidhean air an cur còmhla anns an einnsean-cleachdaidh fhèin.
Uill, chaidh aire a thoirt don fhiosrachadh gu lèir, chan eil air fhà gail ach gluasad gu sgeama Úr - agus mas fheà rr gun luchd-cleachdaidh a bhith mothachail air.
Imrich dĂ ta
Mar sin, tha einnsean-teacsa againn a bhios aâ stòradh teachdaireachdan a rèir neach-cleachdaidh, agus dĂ bhuidheann de bhuill-còmhraidh agus luchd-còmhraidh bhall a bhios aâ stòradh dĂ ta mu sheòmraichean ioma-chòmhraidh agus an luchd-cleachdaidh a tha annta. Mar a ghluaiseas tu bho seo chun an einnsean-cleachdaidh agus an einnsean-còmhraidh Ăšr?
chaidh cabadaich bhall san t-seann sgeama a chleachdadh gu sònraichte airson optimization. Ghluais sinn gu sgiobalta an dà ta riatanach bhuaithe gu buill còmhraidh, agus an uairsin cha do ghabh e pà irt tuilleadh sa phròiseas imrich.
Ciudha airson buill còmhraidh. Tha e aâ toirt a-steach 100 cĂšis, agus tha 4 mĂŹle aig chat-engine. Gus an dĂ ta a ghluasad, feumaidh tu a thoirt gu gèilleadh - airson seo, chaidh buill cabadaich a roinn anns na h-aon 4 mĂŹle leth-bhreac, agus an uairsin chaidh leughadh binlog buill-còmhdhail a chomasachadh anns an einnsean cabadaich.

A-nis tha eòlas aig chat-engine air ioma-chat bho luchd-còmhraidh, ach chan eil fios aige fhathast mu chòmhraidhean le dithis eadar-obraiche. Tha còmhraidhean mar seo suidhichte anns an einnsean teacsa a thaobh luchd-cleachdaidh. An seo ghabh sinn an dĂ ta âceann air adhartâ: dhâ fhaighnich gach eisimpleir einnsean-còmhraidh a h-uile suidheachadh einnsean-teacsa an robh an conaltradh a bha a dhĂŹth orra.
Sgoinneil - tha fios aig chat-engine dè na cabadaich ioma-chòmhraidh a thâ ann agus tha fios aige dè na còmhraidhean a thâ ann.
Feumaidh tu teachdaireachdan a chur còmhla ann an còmhraidhean ioma-chòmhraidh gus am bi liosta de theachdaireachdan agad anns gach cabadaich. An toiseach, bidh inneal-còmhraidh aâ faighinn air ais bho einnsean teacsa a h-uile teachdaireachd cleachdaiche bhon chat seo. Ann an cuid de chĂšisean tha tòrr dhiubh ann (suas ri ceudan de mhilleanan), ach le eisgeachdan glè ainneamh bidh an còmhradh gu tur aâ freagairt air RAM. Tha teachdaireachdan gun òrdugh againn, gach fear ann an grunn leth-bhreacan - Ă s deidh a h-uile cĂ il, tha iad uile air an tarraing bho dhiofar shuidheachaidhean einnsean-teacsa a tha co-chosmhail ri luchd-cleachdaidh. Is e an t-amas teachdaireachdan a sheòrsachadh agus faighinn cuidhteas lethbhric a bhios aâ gabhail Ă ite neo-riatanach.
Tha clĂ r-ama aig gach teachdaireachd anns a bheil an Ăšine a chaidh a chur agus an teacsa. Bidh sinn aâ cleachdadh Ăšine airson a bhith aâ rèiteach - bidh sinn aâ cur chomharran air na teachdaireachdan as sine bho chom-pĂ irtichean ioma-chat agus aâ dèanamh coimeas eadar hashes bho theacsa nan lethbhric a tha san amharc, aâ gluasad a dhâ ionnsaigh an clĂ r-ama Ă rdachadh. Tha e loidsigeach gum bi an aon hash agus stampa-ama aig na leth-bhreacan, ach ann an cleachdadh chan eil seo an-còmhnaidh fĂŹor. Mar a chuimhnicheas tu, chaidh sioncronadh san t-seann sgeama a dhèanamh le PHP - agus ann an cĂšisean ainneamh, bha an Ăšine airson an aon teachdaireachd a chuir eadar-dhealaichte am measg luchd-cleachdaidh eadar-dhealaichte. Anns na cĂšisean sin, leig sinn leinn fhĂŹn an clĂ r-ama a dheasachadh - mar as trice taobh a-staigh diog. Is e an dĂ rna duilgheadas an òrdugh eadar-dhealaichte de theachdaireachdan airson luchd-faighinn eadar-dhealaichte. Ann an leithid de chĂšisean, leig sinn le leth-bhreac a bharrachd a chruthachadh, le diofar roghainnean òrdachaidh airson diofar luchd-cleachdaidh.
Ăs deidh seo, thèid dĂ ta mu theachdaireachdan ann an multichat a chuir chun einnsean neach-cleachdaidh. Agus an seo thig feart mĂŹ-thlachdmhor de theachdaireachdan a chaidh a thoirt a-steach. Ann an obrachadh Ă bhaisteach, bidh teachdaireachdan a thig chun einnsean air an òrdachadh gu teann ann an òrdugh dĂŹreadh le user_local_id. Chaill teachdaireachdan a chaidh a thoirt a-steach bhon t-seann einnsean a-steach don einnsean-cleachdaidh an t-seilbh fheumail seo. Aig an aon Ă m, airson goireasachd deuchainn, feumaidh tu a bhith comasach air faighinn thuca gu sgiobalta, coimhead airson rudeigin annta agus cuir feadhainn Ăšra ris.
Cleachdaidh sinn structar dà ta sònraichte airson teachdaireachdan a chaidh a thoirt a-steach a stòradh.
Tha e aâ riochdachadh meud vector
far a bheil a h-uile duine
- tha iad eadar-dhealaichte agus air an òrdachadh ann an òrdugh teà rnaidh, le òrdugh sònraichte de eileamaidean. Anns gach roinn le clà ran-amais
eileamaidean air an rèiteachadh. Bheir e Ăšine a bhith aâ lorg eileamaid ann an structar mar sin
ŃĐľŃоС
rannsachaidhean binary. Tha cur-ris eileamaid air a choimeasgadh thairis
.
Mar sin, dh'obraich sinn a-mach mar a ghluaiseas dĂ ta bho sheann einnseanan gu feadhainn Ăšra. Ach bheir am pròiseas seo grunn lĂ ithean - agus chan eil e coltach gum bi ar luchd-cleachdaidh anns na lĂ ithean sin a âtoirt seachad an cleachdadh a bhith aâ sgrĂŹobhadh gu chèile. Gus nach caill sinn teachdaireachdan san Ăšine seo, gluaisidh sinn gu sgeama obrach a bhios aâ cleachdadh an dĂ chuid cruinneachaidhean sean is Ăšr.
Tha dĂ ta air a sgrĂŹobhadh gu buill-còmhraidh agus einnsean-cleachdaidh (agus chan ann gu einnsean teacsa, mar ann an obrachadh Ă bhaisteach a rèir an t-seann sgeama). neach-ionaid inneal-cleachdaidh an iarrtas gu chat-engine - agus an seo tha an giĂšlan an urra ri co-dhiĂš a chaidh an còmhradh seo a chur còmhla mu thrĂ th no nach deach. Mura h-eil an cabadaich air a chur còmhla fhathast, cha bhith an einnsean-còmhraidh aâ sgrĂŹobhadh na teachdaireachd thuige fhèin, agus cha bhithear ga ghiullachd ach anns an einnsean teacsa. Ma chaidh an cabadaich a chur còmhla ri chat-engine mu thrĂ th, tillidh e chat_local_id gu einnsean-cleachdaidh agus cuiridh e am brath chun a h-uile neach a gheibh e. inneal-cleachdaidh proxies a h-uile dĂ ta gu teacsa-einnsean - gus ma thachras rudeigin, is urrainn dhuinn an-còmhnaidh a thoirt air ais, leis a h-uile dĂ ta lĂ ithreach san t-seann einnsean. bidh einnsean-teacs aâ tilleadh user_local_id, a bhios einnsean-cleachdaidh aâ stòradh agus aâ tilleadh chun backend.

Mar thoradh air an sin, tha coltas mar seo air aâ phròiseas gluasaid: bidh sinn aâ ceangal einnseanan cleachdaiche falamh agus cruinneachaidhean einnsean-còmhraidh. Bidh chat-engine aâ leughadh am binlog chat-members gu lèir, agus an uairsin bidh neach-ionaid aâ tòiseachadh a rèir an sgeama a chaidh a mhĂŹneachadh gu h-Ă rd. Bidh sinn aâ gluasad an t-seann dĂ ta agus aâ faighinn dĂ chlĂ r sioncronaich (sean is Ăšr). Chan eil air fhĂ gail ach leughadh a thionndadh bho einnsean teacsa gu einnsean neach-cleachdaidh agus progsaidh a chuir Ă comas.
Toraidhean
Taing don dòigh-obrach Ăšr, chaidh a h-uile tomhas coileanaidh de na h-einnseanan a leasachadh agus chaidh duilgheadasan le cunbhalachd dĂ ta fhuasgladh. A-nis is urrainn dhuinn feartan Ăšra a chuir an gnĂŹomh gu sgiobalta ann am teachdaireachdan (agus tha sinn air tòiseachadh air seo a dhèanamh mu thrĂ th - mheudaich sinn an Ă ireamh as motha de chom-pĂ irtichean cabadaich, chuir sinn an gnĂŹomh sgrĂšdadh airson teachdaireachdan a chaidh a chuir air adhart, chuir sinn teachdaireachdan pinn air bhog agus thog sinn aâ chrĂŹoch air an Ă ireamh iomlan de theachdaireachdan gach neach-cleachdaidh) .
Tha na h-atharrachaidhean ann an loidsig dha-rĂŹribh fĂŹor mhòr. Agus bu mhath leam a thoirt fa-near nach eil seo an-còmhnaidh aâ ciallachadh bliadhnaichean slĂ n de leasachadh le sgioba mòr agus grunn loidhnichean còd. einnsean-còmhraidh agus einnsean neach-cleachdaidh còmhla ris na sgeulachdan a bharrachd mar Huffman airson teannachadh teachdaireachd, craobhan splay agus structar airson teachdaireachdan a chaidh a thoirt a-steach nas lugha na 20 mĂŹle loidhne de chòd. Agus chaidh an sgrĂŹobhadh le 3 luchd-leasachaidh ann an dĂŹreach 10 mĂŹosan (ge-tĂ , is fhiach cuimhneachadh air sin - gaisgich na cruinne ).
A bharrachd air an sin, an Ă ite a bhith aâ dĂšblachadh an Ă ireamh de luchd-frithealaidh, lughdaich sinn an Ă ireamh aca le leth - a-nis tha an einnsean-cleachdaidh agus an einnsean cabadaich beò air 500 inneal corporra, fhad âs a tha rĂšm mòr aig an sgeama Ăšr airson luchdan. ShĂ bhail sinn tòrr airgid air uidheamachd - timcheall air $5 millean + $750 mĂŹle sa bhliadhna ann an cosgaisean obrachaidh.
Bidh sinn aâ feuchainn ri na fuasglaidhean as fheĂ rr a lorg airson na duilgheadasan as iom-fhillte agus as mòr-sgèile. Tha gu leòr dhiubh againn - agus sin as coireach gu bheil sinn aâ coimhead airson luchd-leasachaidh tĂ lantach ann an roinn an stòr-dĂ ta. Ma tha thu dèidheil air agus eòlach air mar a dh âfhuasglas tu na duilgheadasan sin, gu bheil eòlas fĂŹor mhath agad air algorithms agus structaran dĂ ta, tha sinn aâ toirt cuireadh dhut a dhol a-steach don sgioba. Cuir fios thugainn airson mion-fhiosrachadh.
FiĂš mura h-eil an sgeulachd seo mu do dheidhinn, thoir an aire gu bheil sinn aâ cur luach air molaidhean. Innis do charaid mu dheidhinn , agus ma choileanas e an Ăšine dearbhaidh gu soirbheachail, gheibh thu bònas de 100 mĂŹle rubles.
Source: www.habr.com
