Bot Telegram pikeun pilihan tulisan pribadi tina Habr

Pikeun patarosan sapertos "naha?" aya artikel heubeul - Geektimes Alami - ngajantenkeun rohangan langkung bersih.

Aya loba artikel, alesan subjektif sababaraha di antarana kuring teu resep, sarta sababaraha, sabalikna, karunya mun skip. Abdi hoyong ngaoptimalkeun prosés ieu sareng ngahémat waktos.

Tulisan di luhur nyarankeun pendekatan skrip dina-browser, tapi kuring henteu resep pisan (sanaos kuring parantos dianggo sateuacanna) kusabab alesan ieu:

  • Pikeun panyungsi béda dina komputer anjeun / telepon, anjeun kudu ngonpigurasikeun deui, lamun sagala mungkin.
  • Nyaring ketat ku pangarang henteu salawasna merenah.
  • Masalah jeung pangarang nu artikel anjeun teu hayang sono, sanajan aranjeunna diterbitkeun sataun sakali, teu direngsekeun.

Nyaring diwangun kana situs dumasar kana ratings artikel teu salawasna merenah, saprak artikel kacida husus, sanajan nilai maranéhanana, bisa nampa rating rada modest.

Mimitina, kuring hayang ngahasilkeun RSS feed (atawa malah sababaraha), ngan nyésakeun hal metot di dinya. Tapi tungtungna, tétéla yén maca RSS sigana teu merenah: dina sagala hal, mun mairan / milih hiji artikel / nambahkeun kana paporit Anjeun, Anjeun kudu ngaliwatan browser nu. Éta sababna kuring nyerat bot telegram anu ngirim tulisan anu pikaresepeun pikeun kuring dina pesen pribadi. Telegram sorangan ngadamel sawangan anu saé ti aranjeunna, anu, digabungkeun sareng inpormasi ngeunaan panulis / rating / pandangan, katingalina cukup informatif.

Bot Telegram pikeun pilihan tulisan pribadi tina Habr

Di handap potongan aya detil sapertos fitur karya, prosés tulisan sareng solusi téknis.

Sakeudeung ngeunaan bot

Repository: https://github.com/Kright/habrahabr_reader

Bot dina telegram: https://t.me/HabraFilterBot

Pamaké nyetél rating tambahan pikeun tag sareng pangarang. Saatos éta, saringan diterapkeun kana artikel - rating artikel dina Habré, rating pangguna panulis sareng rata-rata rating pangguna ku tag ditambah. Upami jumlahna langkung ageung tibatan ambang anu dikhususkeun ku pangguna, maka tulisanna ngalangkungan saringan.

Tujuan samping nulis bot nyaéta pikeun meunangkeun kasenangan sareng pangalaman. Sajaba ti éta, kuring rutin ngingetkeun sorangan éta Abdi sanés Google, sarta ku kituna loba hal anu dipigawé sakumaha basajan tur malah primitively jéntré. Nanging, ieu henteu nyegah prosés nyerat bot nyandak tilu bulan.

Éta usum panas di luar

Juli ieu tungtung, sarta kuring mutuskeun pikeun nulis bot a. Sareng henteu nyalira, tapi sareng réréncangan anu ngawasaan skala sareng hoyong nyerat hal éta. Awalna katingalina ngajangjikeun - kodeu bakal dipotong ku tim, tugasna sigana gampang sareng kuring ngira yén dina sababaraha minggu atanapi sabulan bot bakal siap.

Najan kanyataan yén kuring sorangan geus nulis kode dina batu ti jaman ka jaman pikeun sawatara warsih pamungkas, teu saurang ogé biasana ningali atawa nempo kode ieu: proyék piaraan, nguji sababaraha gagasan, preprocessing data, mastering sababaraha konsep ti FP. Kuring bener-bener kabetot dina kumaha carana nyerat kode dina tim, sabab kode dina batu tiasa ditulis ku cara anu béda pisan.

Naon bisa geus indit janten? Nanging, hayu urang buru-buru.
Sadayana anu kajantenan tiasa dilacak nganggo sajarah komitmen.

Hiji kenalan dijieun Repository on July 27, tapi teu nanaon sejenna, jadi kuring mimiti nulis kode.

Juli 30

Sakeudeung: Kuring nulis parsing tina feed rss Habr.

  • com.github.pureconfig pikeun maca configs typesafe langsung kana kelas kasus (tétéla pohara merenah)
  • scala-xml pikeun xml bacaan: saprak mimitina kuring hayang nulis palaksanaan sorangan pikeun feed rss, sarta feed rss aya dina format XML, I dipaké perpustakaan ieu parsing. Sabenerna, RSS parsing ogé mucunghul.
  • scalatest pikeun tés. Malah pikeun proyék-proyék leutik, tés nulis ngahémat waktos - contona, nalika nga-debug parsing xml, langkung gampang ngaunduh kana file, nyerat tés sareng ngabenerkeun kasalahan. Nalika bug engké muncul kalawan parsing sababaraha html aneh kalawan utf-8 karakter teu valid, tétéla leuwih merenah pikeun nempatkeun eta dina file tur nambahkeun test a.
  • aktor ti Akka. Obyektif, maranéhna teu diperlukeun pisan, tapi proyék ieu ditulis keur senang, abdi hoyong nyobian aranjeunna. Hasilna, Abdi siap nyebutkeun yén kuring resep eta. Gagasan OOP tiasa ditingali ti sisi sanés - aya aktor anu tukeur pesen. Anu langkung pikaresepeun nyaéta anjeun tiasa (sareng kedah) nyerat kode ku cara anu pesenna henteu sumping atanapi henteu tiasa diolah (umumna nyarios, nalika akun dijalankeun dina hiji komputer, pesen henteu kedah leungit). Mimitina mah scratching sirah kuring jeung aya sampah dina kode jeung aktor subscribing ka silih, tapi tungtungna kuring junun datang nepi ka arsitéktur rada basajan tur elegan. Kodeu di jero unggal aktor tiasa dianggap single-threaded; nalika aktor nabrak, acca ngamimitian deui - hasilna mangrupikeun sistem anu cukup toleran.

9 Agustus

Kuring ditambahkeun kana proyék scala-scrapper pikeun parsing kaca html ti Habr (pikeun narik kaluar informasi kayaning rating artikel, jumlah tetengger, jsb).

Jeung Ucing. Anu aya dina batu.

Bot Telegram pikeun pilihan tulisan pribadi tina Habr

Kuring teras maca buku ngeunaan basis data anu disebarkeun, kuring resep ideu CRDT (tipe data réplika bebas konflik, https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type, warta), janten kuring masangkeun kelas jinis semigroup komutatif pikeun inpormasi ngeunaan tulisan ngeunaan Habré.

Nyatana, ideu saderhana pisan - urang gaduh konter anu robih sacara monoton. Jumlah promosi laun-laun tumuwuh, kitu ogé jumlah pluses (sareng jumlah minuses). Upami kuring gaduh dua vérsi inpormasi ngeunaan hiji tulisan, maka kuring tiasa "ngahijikeun kana hiji" - kaayaan loket anu langkung ageung dianggap langkung relevan.

A semigroup hartina dua objék kalawan informasi ngeunaan hiji artikel bisa dihijikeun jadi hiji. Commutative hartina anjeun bisa ngagabungkeun duanana A + B jeung B + A, hasilna henteu gumantung kana urutan, sarta dina tungtungna versi newest bakal tetep. Ku jalan kitu, aya ogé associativity di dieu.

Contona, sakumaha rencanana, rss sanggeus parsing nyadiakeun informasi rada lemah ngeunaan artikel - tanpa metrics kayaning jumlah pintonan. A aktor husus lajeng nyandak informasi ngeunaan artikel na lumpat ka kaca html pikeun ngapdet eta sarta ngagabungkeun deui jeung versi heubeul.

Sacara umum, sakumaha dina akka, teu perlu ieu, anjeun ngan saukur bisa nyimpen updateDate pikeun artikel tur nyandak nu anyar tanpa merges, tapi jalan petualangan dipingpin kuring.

12 Agustus

Kuring mimiti ngarasa bébas tur, ngan keur senang, Kuring nyieun unggal obrolan aktor misah. Sacara téoritis, aktor sorangan beuratna kira-kira 300 bait sareng aranjeunna tiasa didamel jutaan, janten ieu mangrupikeun pendekatan anu normal. Sigana mah yén solusi tétéla cukup metot:

Hiji aktor éta sasak antara server telegram jeung sistem pesen di Akka. Anjeunna ngan ukur nampi pesen sareng dikirim ka aktor obrolan anu dipikahoyong. Aktor obrolan bisa ngirim hiji hal deui dina respon - sarta eta bakal dikirim deui ka telegram. Naon anu pohara merenah nyaéta yén aktor ieu tétéla jadi basajan sabisa na ngandung ukur logika pikeun ngabales pesen. Ngomong-ngomong, inpormasi ngeunaan tulisan anyar sumping ka unggal obrolan, tapi deui kuring henteu ningali masalah dina ieu.

Sacara umum, bot éta parantos damel, ngaréspon pesen, nyimpen daptar tulisan anu dikirim ka pangguna, sareng kuring parantos mikir yén bot éta ampir siap. Kuring lalaunan nambihan sakedik fitur sapertos normalisasi nami panulis sareng tag (ngaganti "sd f" sareng "s_d_f").

Aya ngan hiji hal ditinggalkeun leutik tapi - kaayaan teu disimpen di mana waé.

Sagalana salah

Anjeun meureun geus noticed nu kuring nulis bot lolobana nyalira. Janten, pamilon kadua aub dina pamekaran, sareng parobihan di handap ieu muncul dina kode:

  • MongoDB mucunghul pikeun nyimpen kaayaan. Dina waktos anu sami, log dina proyék éta rusak, sabab kusabab sababaraha alesan Monga ngamimitian spamming aranjeunna sareng sababaraha urang ngan saukur mareuman aranjeunna sacara global.
  • Aktor sasak di Telegram dirobih saluareun pangakuan sareng mimiti nga-parsing pesen nyalira.
  • Aktor keur obrolan anu mercilessly motong kaluar, sarta gantina maranéhanana diganti ku aktor anu nyumputkeun sagala informasi ngeunaan sagala obrolan sakaligus. Pikeun unggal beresin, aktor ieu kasulitan. Nya, enya, sapertos nalika ngamutahirkeun inpormasi ngeunaan hiji artikel, sesah ngirimkeun ka sadaya aktor obrolan (kami sapertos Google, jutaan pangguna ngantosan sajuta artikel dina obrolan masing-masing), tapi unggal waktos obrolan diénggalan, éta normal lebet kana Monga. Nalika kuring sadar engké, logika kerja tina obrolan ogé parantos dipotong sareng dina tempatna aya anu henteu hasil.
  • Henteu aya jejak anu tinggaleun tina kelas jinis.
  • Sababaraha logika anu teu séhat parantos muncul dina aktor kalayan langganan masing-masing, ngarah kana kaayaan balapan.
  • Struktur data jeung widang tipe Option[Int] tos janten Int kalayan nilai standar magis sapertos -1. Teras kuring sadar yén mongoDB nyimpen json sareng teu aya anu lepat sareng nyimpen éta di dinya Option sumur, atawa sahenteuna parse -1 salaku Euweuh, tapi dina waktu éta kuring teu nyaho ieu sareng nyandak kecap kuring pikeun eta "éta kumaha sakuduna." Kuring henteu nyerat kodeu éta, sareng kuring henteu ganggu ngarobihna pikeun waktos ayeuna.
  • Kuring mendakan yén alamat IP umum kuring condong robih, sareng unggal waktos kuring kedah nambihan kana daptar bodas Mongo. Kuring ngaluncurkeun bot sacara lokal, Monga aya dimana waé dina server Monga salaku perusahaan.
  • Ujug-ujug, normalisasi tag sareng pormat pesen pikeun telegram ngaleungit. (Hmm, naha éta?)
  • Kuring resep yén kaayaan bot urang disimpen dina database éksternal, sarta lamun restarted terus dianggo saolah-olah euweuh kajadian. Sanajan kitu, ieu hijina tambah.

Jalma kadua teu puguh husus, sarta sakabeh parobahan ieu mucunghul dina hiji tumpukan badag geus di awal September. Kuring teu langsung ngahargaan skala karuksakan anu dihasilkeun sarta mimiti ngarti karya database, sabab ... Kuring geus pernah diurus aranjeunna sateuacan. Ngan engké kuring sadar sabaraha kode gawé ieu motong na sabaraha bug ditambahkeun dina tempatna.

September

Tadina mah panginten bakal mangpaat pikeun ngawasaan Monga sareng ngalakukeunana saé. Teras kuring lalaunan mimiti ngartos yén ngatur komunikasi sareng pangkalan data ogé mangrupikeun seni dimana anjeun tiasa ngadamel seueur balapan sareng ngan ukur ngalakukeun kasalahan. Contona, upami pamaké narima dua pesen kawas /subscribe - sareng pikeun ngaréspon masing-masing kami bakal nyiptakeun éntri dina tabél, sabab dina waktos ngolah pesen éta pangguna henteu ngalanggan. Kuring boga kacurigaan yén komunikasi sareng Monga dina bentuk ayeuna henteu ditulis dina cara anu pangsaéna. Contona, setélan pamaké dijieun dina momen anjeunna ngadaptarkeun. Upami anjeunna nyobian ngarobih aranjeunna sateuacan kanyataan langganan ... bot teu ngabales nanaon, sabab kodeu dina aktor angkat kana database pikeun setélan, henteu mendakanana sareng nabrak. Waktu ditanya naha teu nyieun setélan sakumaha diperlukeun, abdi diajar yén aya teu kudu ngarobah éta lamun pamaké teu ngalanggan ... Sistim nyaring pesen dijieun kumaha bae non-écés, komo sanggeus katingal nutup dina kode kuring bisa. teu ngartos naha éta dimaksudkeun cara ieu mimitina atanapi aya kasalahan di dinya.

Henteu aya daptar tulisan anu dikintunkeun ka obrolan; tibatan, disarankeun yén kuring nyerat nyalira. Ieu kaget kuring - sacara umum, kuring teu ngalawan nyered sagala sorts hal kana proyék, tapi bakal logis pikeun hiji anu mawa hal ieu di na ngaco aranjeunna dina. Tapi henteu, pamilon kadua sigana nyerah kana sagala hal, tapi nyarios yén daptar di jero obrolan sigana mangrupikeun solusi anu goréng, sareng peryogi ngadamel tanda sareng acara sapertos "artikel y dikirim ka pangguna x." Lajeng, lamun pamaké dipénta pikeun ngirim artikel anyar, éta diperlukeun pikeun ngirim pamundut ka database, nu bakal milih acara nu patali jeung pamaké ti acara, ogé meunang daptar artikel anyar, nyaring aranjeunna, ngirim ka pamaké. sarta buang acara ngeunaan ieu deui kana database.

Pamilon kadua dibawa ka mana waé nuju abstraksi, nalika bot bakal nampi henteu ngan ukur tulisan ti Habr sareng dikirim henteu ngan ukur ka telegram.

Kuring kumaha bae ngalaksanakeun acara dina bentuk tanda misah pikeun satengah kadua September. Ieu teu optimal, tapi sahenteuna bot mimiti digawé tur mimitian ngirim kuring artikel deui, sarta kuring lalaunan ilahar kaluar naon anu lumangsung dina kode.

Ayeuna anjeun tiasa uih deui ka awal sareng émut yén gudangna henteu didamel ku kuring. Naon anu tiasa sapertos kieu? Paménta tarik kuring ditolak. Tétéla yén kuring kungsi kode redneck, yén kuring henteu weruh kumaha carana dianggo dina tim, sarta kuring kungsi ngalereskeun bug dina kurva palaksanaan ayeuna, sarta teu nyaring kana kaayaan usable.

Kuring kesel sareng ningali sajarah komitmen sareng jumlah kode anu ditulis. Kuring nempo momen anu asalna ditulis ogé, lajeng dipegatkeun deui ...

F*rk éta

Abdi émut kana tulisan éta Anjeun sanés Google.

Teu sangka teu saurang ogé bener butuh hiji gagasan tanpa palaksanaan. Teu sangka yen Abdi hoyong gaduh bot digawé, nu bakal dianggo dina hiji salinan tunggal dina hiji komputer tunggal salaku program java basajan. Kuring terang yén bot kuring bakal tiasa dianggo salami sababaraha bulan tanpa dibalikan deui, sabab kuring parantos nyerat bot sapertos kitu. Lamun ujug-ujug ragrag na teu ngirim pamaké artikel sejen, langit moal ragrag kana taneuh jeung euweuh catastrophic bakal kajadian.

Naha kuring peryogi Docker, mongoDB sareng kultus kargo séjén tina parangkat lunak "serius" upami kodeu ngan saukur henteu jalan atanapi jalanna bengkok?

Kuring forked proyék jeung ngalakukeun sagalana sakumaha Abdi hoyong.

Bot Telegram pikeun pilihan tulisan pribadi tina Habr

Dina waktos anu sami, kuring ngarobih padamelan sareng waktos bébas janten kakurangan pisan. Isuk-isuk kuring hudang pas dina karéta, sonten kuring balik telat sareng teu hoyong nanaon. Kuring teu nanaon bari, lajeng kahayang pikeun ngabéréskeun bot overpowered kuring, sarta kuring mimiti lalaunan nulis balik kode bari kuring nyetir ka pagawean isuk-isuk. Kuring moal nyebutkeun yén éta produktif: linggih dina karéta oyag sareng laptop dina pangkonan anjeun sarta nempo tumpukan mudal tina telepon anjeun teu pisan merenah. Sanajan kitu, waktos spent nulis kode flew ku sagemblengna unnoticed, sarta proyék mimiti lalaunan pindah ka arah kaayaan gawé.

Di mana waé di tukangeun pikiran kuring aya cacing ragu anu hoyong nganggo mongoDB, tapi kuring ngira yén salian kauntungan tina panyimpen kaayaan "dipercaya", aya kalemahan anu nyata:

  • Pangkalan data janten titik gagalna sanés.
  • Kodeu janten langkung kompleks, sareng kuring bakal langkung lami nyeratna.
  • Kodeu janten laun sareng teu episien; tibatan ngarobih obyék dina mémori, parobihan dikirim ka pangkalan data sareng, upami diperyogikeun, ditarik deui.
  • Aya larangan dina jinis panyimpen kajadian dina tabel anu misah, anu aya hubunganana sareng peculiarities database.
  • Versi percobaan tina Monga boga sababaraha watesan, sarta lamun ngajalankeun kana eta, anjeun kudu ngajalankeun sarta ngonpigurasikeun Monga on hal.

Kuring motong kaluar monga, ayeuna kaayaan bot urang ngan disimpen dina mémori program sarta ti jaman ka jaman disimpen kana file dina bentuk json. Panginten dina koméntar aranjeunna bakal nyerat yén kuring salah, yén ieu mangrupikeun pangkalan data kedah dianggo, jsb. Tapi ieu mangrupikeun proyék kuring, pendekatan sareng file sasederhana mungkin sareng jalanna dina cara anu transparan.

Ngalungkeun nilai sihir sapertos -1 sareng ngabalikeun nilai normal Option, ditambahkeun gudang tabel Hash kalawan artikel dikirim deui ka objék kalawan informasi obrolan. Ditambahkeun ngahapus inpormasi ngeunaan tulisan anu langkung lami ti lima dinten, supados henteu nyimpen sadayana. Kuring mawa logging kana kaayaan kerja - log ditulis dina jumlah anu lumrah pikeun file sareng konsol. Ditambahkeun sababaraha paréntah admin sapertos nyimpen kaayaan atanapi kéngingkeun statistik sapertos jumlah pangguna sareng artikel.

Ngalereskeun sakumpulan hal-hal sakedik: contona, pikeun tulisan, jumlah tampilan, resep, henteu resep sareng koméntar dina waktos ngalangkungan saringan pangguna ayeuna dituduhkeun. Sacara umum, éta héran sabaraha hal saeutik kudu dilereskeun. Kuring tetep daptar, nyatet sagala "irregularities" aya na dilereskeun aranjeunna sajauh mungkin.

Salaku conto, kuring nambihan kamampuan pikeun nyetél sadaya setélan langsung dina hiji pesen:

/subscribe
/rating +20
/author a -30
/author s -20
/author p +9000
/tag scala 20
/tag akka 50

Jeung tim séjén /settings nembongkeun aranjeunna persis dina formulir ieu, anjeun tiasa nyandak téks ti dinya tur ngirim sagala setelan ka babaturan.
Sigana mah hal leutik, tapi aya puluhan nuances sarupa.

Dilaksanakeun nyaring artikel dina bentuk model linier basajan - pamaké bisa nyetél rating tambahan pikeun pangarang jeung tag, kitu ogé nilai bangbarung. Lamun jumlah rating pangarang, rating rata-rata pikeun tag jeung rating sabenerna artikel leuwih gede ti nilai bangbarung, mangka artikel ditémbongkeun ka pamaké. Anjeun tiasa naroskeun ka bot pikeun tulisan anu nganggo paréntah / anyar, atanapi ngalanggan bot sareng éta bakal ngirim tulisan dina pesen pribadi iraha waé dina sapoe.

Sacara umum, kuring ngagaduhan ide pikeun unggal tulisan pikeun narik langkung seueur fitur (hub, jumlah koméntar, téténggér, dinamika parobahan rating, jumlah téks, gambar sareng kode dina tulisan, kecap konci), sareng nunjukkeun ka pangguna ok / moal sora ok handapeun tiap artikel na ngalatih model pikeun tiap pamaké, tapi teuing puguh.

Sajaba ti éta, logika karya moal jadi atra. Ayeuna kuring sacara manual tiasa nyetél rating +9000 pikeun pasienZero sareng kalayan rating bangbarung +20 kuring bakal dijamin nampi sadaya tulisanna (kecuali, tangtosna, kuring nyetél -100500 pikeun sababaraha tag).

Arsitéktur ahir tétéla cukup basajan:

  1. Aktor anu nyimpen kaayaan sadaya obrolan sareng artikel. Éta ngamuat kaayaanana tina file dina disk sareng nyimpen deui ti waktos ka waktos, unggal waktos ka file énggal.
  2. Hiji aktor anu nganjang ka RSS feed ti jaman ka jaman, learns ngeunaan artikel anyar, kasampak di Tumbu, parses, sarta ngirimkeun artikel ieu ka aktor munggaran. Sajaba ti éta, kadang requests daptar artikel ti aktor munggaran, milih jalma anu teu heubeul ti tilu poé, tapi teu diropéa keur lila, sarta ngamutahirkeun aranjeunna.
  3. Aktor anu komunikasi sareng telegram. Kuring masih mawa pesen parsing lengkep di dieu. Dina cara anu ramah, abdi hoyong ngabagi kana dua - supados hiji nga-parses pesen anu asup, sareng anu kadua ngurus masalah transportasi sapertos ngirim deui pesen anu henteu dikirim. Ayeuna teu aya deui ngirim, sarta pesen nu teu datang alatan kasalahan ngan bakal leungit (iwal mun dicatet dina log), tapi sajauh ieu teu ngabalukarkeun masalah nanaon. Panginten masalah bakal timbul upami sakumpulan jalma ngalanggan bot sareng kuring ngahontal wates pikeun ngirim pesen).

Anu kuring resep nyaéta berkat akka, ragrag aktor 2 sareng 3 umumna henteu mangaruhan kinerja bot. Panginten sababaraha tulisan henteu diropéa dina waktosna atanapi sababaraha pesen henteu dugi ka telegram, tapi akun nga-restart aktor sareng sadayana teras jalan. Kuring ngahemat inpormasi yén tulisan éta dipidangkeun ka pangguna ngan ukur nalika aktor telegram ngaréspon yén anjeunna parantos suksés ngirim pesen. Hal awon anu ngancam kuring nyaéta ngirim pesen sababaraha kali (upami dikirimkeun, tapi konfirmasina leungit kumaha waé). Sacara prinsip, lamun aktor munggaran teu nyimpen kaayaan dina dirina, tapi komunkasi kalawan sababaraha database, éta ogé bisa digolongkeun imperceptibly tur hirup deui. Kuring ogé bisa coba kegigihan akka mulangkeun kaayaan aktor, tapi palaksanaan ayeuna cocog kuring jeung kesederhanaan na. Ieu sanés yén kode kuring sering nabrak - sabalikna, kuring parantos usaha pikeun ngajantenkeun éta teu mungkin. Tapi shit kajadian, sarta kamampuhan pikeun megatkeun program kana potongan-aktor terasing seemed bener merenah tur praktis pikeun kuring.

Kuring ditambahkeun bunderan-ci ambéh lamun kode nu ngarecah, anjeun bakal geuwat manggihan ngeunaan eta. Sahenteuna, éta hartosna kodeu parantos lirén nyusun. Mimitina kuring hoyong nambihan travis, tapi éta ngan ukur nunjukkeun proyék kuring tanpa garpu. Sacara umum, duanana hal ieu bisa kalawan bébas dipaké dina repositories kabuka.

hasil

Ayeuna geus Nopémber. Botna ditulis, kuring parantos dianggo dua minggu ka pengker sareng kuring resep. Upami Anjeun gaduh gagasan pikeun perbaikan, nulis. Kuring teu ningali titik dina monetizing eta - hayu eta ngan dianggo tur ngirim artikel metot.

Tautan bot: https://t.me/HabraFilterBot
Github: https://github.com/Kright/habrahabr_reader

Kasimpulan leutik:

  • Malah hiji proyék leutik bisa nyandak loba waktu.
  • Anjeun sanés Google. Teu aya gunana némbak manuk pipit tina mariem. Solusi saderhana tiasa dianggo ogé.
  • Proyék piaraan saé pisan pikeun ékspérimén sareng téknologi anyar.
  • Bot Telegram ditulis cukup basajan. Mun teu keur "kerja tim" jeung percobaan kalawan téhnologi, bot bakal geus ditulis dina atawa dua minggu.
  • Modél aktor mangrupa hal metot nu mana ogé kalawan multi-threading jeung kode lepat-toleran.
  • Jigana kuring ngagaduhan rasa naha komunitas open source resep garpu.
  • Basis data anu saé kusabab kaayaan aplikasi henteu deui gumantung kana aplikasi ngadat / restart, tapi damel sareng database nyusahkeun kode sareng maksakeun larangan dina struktur data.

sumber: www.habr.com

Tambahkeun komentar