Habr からのパヌ゜ナラむズされた蚘事セレクションの Telegram ボット

「なぜ」ずいった質問に察しおは、 叀い蚘事がありたす - Natural Geektimes - 空間をよりクリヌンに.

蚘事はたくさんありたすが、䞻芳的な理由で気に入らない蚘事もあれば、逆にスキップするのが残念な蚘事もありたす。 このプロセスを最適化しお時間を節玄したいず考えおいたす。

䞊蚘の蚘事ではブラりザ内スクリプトのアプロヌチを提案したしたが、私は次の理由から (以前に䜿甚したこずはありたすが) それがあたり奜きではありたせんでした。

  • コンピュヌタ/携垯電話䞊の異なるブラりザに぀いおは、可胜であれば再床蚭定する必芁がありたす。
  • 著者による厳密なフィルタリングは必ずしも䟿利であるずは限りたせん。
  • たずえ幎に䞀床出版される蚘事であっおも、芋逃したくない著者の問題は解決されおいたせん。

蚘事の評䟡に基づいおサむトに組み蟌たれたフィルタリングは、必ずしも䟿利であるずは限りたせん。高床に専門化された蚘事は、その䟡倀にもかかわらず、かなり控えめな評䟡を受ける可胜性があるためです。

圓初、私は RSS フィヌド (たたは耇数) を生成しお、興味深いものだけをそこに残したいず考えおいたした。 しかし、最終的には、RSS を読むのはあたり䟿利ではないこずがわかりたした。いずれにせよ、蚘事にコメントしたり、蚘事に投祚したり、お気に入りに远加したりするには、ブラりザを経由する必芁がありたす。 そこで、興味深い蚘事を個人メッセヌゞで送信する電報ボットを䜜成したした。 Telegram 自䜓はそれらから矎しいプレビュヌを䜜成し、䜜成者/評䟡/ビュヌに関する情報ず組み合わせるず、非垞に有益に芋えたす。

Habr からのパヌ゜ナラむズされた蚘事セレクションの Telegram ボット

カットの䞋には、䜜品の特城、執筆プロセス、技術的゜リュヌションなどの詳现が衚瀺されたす。

ボットに぀いお簡単に説明するず、

リポゞトリ: https://github.com/Kright/habrahabr_reader

電報内のボット: https://t.me/HabraFilterBot

ナヌザヌはタグず䜜成者に察しお远加の評䟡を蚭定したす。 その埌、蚘事にフィルタが適甚されたす。ハブレに関する蚘事の評䟡、著者のナヌザヌ評䟡、タグ別のナヌザヌ評䟡の平均が合蚈されたす。 その量がナヌザヌ指定のしきい倀より倧きい堎合、蚘事はフィルタヌを通過したす。

ボットを䜜成する副次的な目暙は、楜しみず経隓を積むこずでした。 さらに、私は定期的に次のこずを自分自身に思い出させたした 私はGoogleではありたせん、したがっお、倚くのこずはできるだけ簡単に、さらには原始的に行われたす。 ただし、それでもボットの䜜成プロセスに XNUMX か月かかるこずは避けられたせんでした。

倖は倏でした

XNUMX月も終わりだったので、botを曞くこずにしたした。 それも䞀人ではなく、Scala をマスタヌしおいお、それに぀いお䜕か曞きたいず思っおいた友人ず䞀緒に。 初めは有望に芋えたした。コヌドはチヌムによっおカットされ、タスクは簡単に思えたので、数週間か XNUMX か月以内にボットが完成するだろうず考えおいたした。

私自身、ここ数幎、時々、思い぀きでコヌドを曞いおいるにもかかわらず、通垞、このコヌドを芋たり芋たりする人は誰もいたせん。ペットのプロゞェクト、いく぀かのアむデアのテスト、デヌタの前凊理、FP からのいく぀かの抂念の習埗などです。 ロック䞊のコヌドはたったく異なる方法で蚘述できるため、チヌムでコヌドを曞くこずがどのようなものなのかに非垞に興味がありたした。

䜕がなくなったかもしれない そう? ただし、物事を急がないようにしたしょう。
発生したこずはすべおコミット履歎を䜿甚しお远跡できたす。

知人が 27 月 XNUMX 日にリポゞトリを䜜成したしたが、それ以倖は䜕もしなかったので、コヌドを曞き始めたした。

30 7月

簡単に蚀うず、Habr の RSS フィヌドの解析を曞きたした。

  • com.github.pureconfig タむプセヌフな蚭定を case クラスに盎接読み取るため (非垞に䟿利であるこずが刀明したした)
  • scala-xml XML の読み取り甚: 最初は RSS フィヌド甚に独自の実装を曞きたかったのですが、RSS フィヌドは XML 圢匏なので、解析にこのラむブラリを䜿甚したした。 実はRSS解析も登堎したした。
  • scalatest テスト甚。 小さなプロゞェクトであっおも、テストを䜜成するず時間を節玄できたす。たずえば、XML 解析をデバッグする堎合、ファむルにダりンロヌドしおテストを䜜成し、゚ラヌを修正する方がはるかに簡単です。 その埌、無効な utf-8 文字を含む奇劙な html の解析でバグが発生したずき、それをファむルに入れおテストを远加する方が䟿利であるこずが刀明したした。
  • アッカ出身の俳優。 客芳的にはそれらはたったく必芁ありたせんでしたが、このプロゞェクトは楜しむために曞かれたものでしたので、詊しおみたかったのです。 結果ずしお、気に入ったず蚀えるようになりたした。 OOP のアむデアは、メッセヌゞを亀換するアクタヌがいるずいう反察偎から芋るこずができたす。 さらに興味深いのは、メッセヌゞが到着しない、たたは凊理されないようなコヌドを䜜成できる (たたそうすべきである) こずです (䞀般的に、アカりントが XNUMX 台のコンピュヌタヌで実行されおいる堎合、メッセヌゞは倱われるべきではありたせん)。 最初は頭を悩たせ、アクタヌが盞互にサブスクラむブするコヌド内にゎミが含たれおいたしたが、最終的にはかなりシンプルで゚レガントなアヌキテクチャを思い぀くこずができたした。 各アクタヌ内のコヌドはシングルスレッドであるず考えるこずができ、アクタヌがクラッシュするず、acca がアクタヌを再起動したす。その結果、かなりフォヌルト トレラントなシステムが実珟したす。

9 8月

プロゞェクトに远加したした scala-scrapper Habr からの HTML ペヌゞを解析するため (蚘事の評䟡、ブックマヌクの数などの情報を匕き出すため)。

そしお猫たち。 岩の䞭のもの。

Habr からのパヌ゜ナラむズされた蚘事セレクションの Telegram ボット

その埌、分散デヌタベヌスに関する本を読み、CRDT (競合のない耇補されたデヌタ型、 https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type, ハヌバヌ) ずいうこずで、Habré の蚘事に関する情報ずしお、可換半矀の型クラスを投皿したした。

実際、アむデアは非垞に単玔です。単調に倉化するカりンタヌがありたす。 昇進の数は埐々に増加しおおり、プラスの数も (マむナスの数も同様に) 増加しおいたす。 蚘事に関しお XNUMX ぀のバヌゞョンの情報がある堎合、それらを「XNUMX ぀にマヌゞ」するこずができたす。カりンタの状態が倧きいほど、関連性が高いず考えられたす。

セミグルヌプずは、蚘事に関する情報を含む XNUMX ぀のオブゞェクトを XNUMX ぀にマヌゞできるこずを意味したす。 可換ずは、A + B ず B + A の䞡方をマヌゞでき、結果は順序に䟝存せず、最終的には最新のバヌゞョンが残るこずを意味したす。 ちなみに、ここにも連想がありたす。

たずえば、蚈画通り、解析埌の RSS は、閲芧数などの指暙を含たず、蚘事に関する情報をわずかに匱めたした。 その埌、特別な攻撃者が蚘事に関する情報を取埗し、HTML ペヌゞにアクセスしお曎新し、叀いバヌゞョンずマヌゞしたした。

䞀般的に蚀えば、akka ず同様に、この必芁はなく、単に蚘事の updateDate を保存し、マヌゞせずに新しい蚘事を取埗するだけで枈みたしたが、冒険の道が私を導いおくれたした。

12 8月

私はより自由に感じるようになり、楜しみのために、各チャットを別のアクタヌずしお䜜成したした。 理論的には、アクタヌ自䜓の重さは玄 300 バむトであり、数癟䞇バむトで䜜成できるため、これは完党に通垞のアプロヌチです。 この解決策は非垞に興味深いこずが刀明したように思えたす。

XNUMX 人の攻撃者は、電報サヌバヌず Akka のメッセヌゞ システムの間の橋枡しをしたした。 圌はメッセヌゞを受信し、目的のチャット アクタヌに送信するだけでした。 チャットアクタヌは応答ずしお䜕かを送り返すこずができ、それが電報に送り返されるこずになりたす。 非垞に䟿利だったのは、このアクタヌが可胜な限り単玔で、メッセヌゞに応答するためのロゞックのみを含んでいるこずが刀明したこずです。 ちなみに、各チャットに新着蚘事の情報が入っおきたしたが、こちらも特に問題はありたせんでした。

䞀般的に、ボットはすでに動䜜しおおり、メッセヌゞに応答し、ナヌザヌに送信された蚘事のリストを保存しおおり、ボットの準備はほが完了しおいるず私は考えおいたした。 著者名やタグの正芏化 (「sd f」を「s_d_f」に眮き換える) など、小さな機胜を少しず぀远加しおいきたした。

䞀぀だけ残っおた 小さいけど — 状態はどこにも保存されたせんでした。

すべおがうたくいかなかった

お気づきかもしれたせんが、私はほずんど XNUMX 人でボットを䜜成したした。 そこで、XNUMX 人目の参加者が開発に参加し、コヌドに次の倉曎が加えられたした。

  • MongoDB は状態を保存するようです。 同時に、䜕らかの理由で Monga がログをスパム送信し始め、䞀郚の人々が単玔にグロヌバルにログをオフにしたため、プロゞェクトのログが砎損したした。
  • Telegram のブリッゞ アクタヌは、認識を超えお倉貌し、自らメッセヌゞを解析し始めたした。
  • チャットのアクタヌは容赊なく削枛され、代わりにすべおのチャットに関するすべおの情報を䞀床に隠すアクタヌに眮き換えられたした。 くしゃみをするたびに、この俳優はトラブルに芋舞われた。 そうです、蚘事に関する情報を曎新するずきず同様に、すべおのチャット アクタヌに情報を送信するのは困難です (私たちは Google のようなもので、䜕癟䞇ものナヌザヌがそれぞれのチャットで XNUMX 䞇件の蚘事を埅っおいたす)。しかし、チャットが曎新されるたびに、モンガに入るのが普通です。 かなり埌になっおから気づいたのですが、チャットの動䜜ロゞックも完党に切り取られ、その代わりに動䜜しないものが珟れたした。
  • 型クラスの痕跡は残りたせん。
  • 盞互にサブスクリプションを行うアクタヌに䞍健党なロゞックが発生し、競合状態が発生したした。
  • タむプのフィヌルドを含むデヌタ構造 Option[Int] -1 のような魔法のデフォルト倀を持぀ Int に倉換されたす。 埌で、mongoDB に json が保存されおいるこずに気づきたしたが、そこに保存するこずに䜕も問題はありたせん。 Option そうですね、少なくずも -1 を None ずしお解析したすが、圓時の私はこれを知らず、「そうあるべきだ」ずいう蚀葉をそのたた信じおいたした。 そのコヌドは私が曞いたものではありたせんし、圓面は倉曎する必芁もありたせんでした。
  • 私のパブリック IP アドレスは倉曎される傟向があり、そのたびに Mongo のホワむトリストに远加する必芁があるこずがわかりたした。 私はボットをロヌカルで起動したした。Monga は䌚瀟ずしお Monga のサヌバヌのどこかにありたした。
  • 突然、電報のタグずメッセヌゞ圢匏の正芏化がなくなりたした。 うヌん、それはなぜでしょうか
  • ボットの状態が倖郚デヌタベヌスに保存され、再起動するず䜕事もなかったかのように動䜜し続けるこずが気に入りたした。 ただし、これが唯䞀のプラスでした。

XNUMX 人目の人は特に急いでいたわけではなく、これらすべおの倉曎は XNUMX 月の初めにすでに XNUMX ぀の倧きな山ずしお珟れおいたした。 私は結果ずしお生じる砎壊の芏暡をすぐには理解できたせんでしたが、デヌタベヌスの働きを理解し始めたした。 私はこれたで圌らず取匕したこずがありたせん。 埌になっお初めお、どれだけの動䜜コヌドが削陀され、その代わりにどれだけのバグが远加されたかに気づきたした。

9月

最初はモンガをマスタヌしおうたくやれば圹に立぀だろうず思いたした。 その埌、デヌタベヌスずの通信を敎理するこずは、倚くのレヌスを行っおも間違いを犯す可胜性がある技術でもあるこずを埐々に理解し始めたした。 たずえば、ナヌザヌが次のような XNUMX ぀のメッセヌゞを受信した堎合、 /subscribe - そしお、それらのメッセヌゞを凊理する時点ではナヌザヌは賌読されおいないため、それぞれに応答しおテヌブルに゚ントリを䜜成したす。 珟圚の圢匏のモンガずのコミュニケヌションは最良の方法で曞かれおいないのではないかずいう疑念がありたす。 たずえば、ナヌザヌの蚭定はサむンアップした時点で䜜成されたす。 サブスクリプションを行う前に倉曎しようずした堎合、ボットは䜕も応答したせんでした。アクタヌのコヌドが蚭定のためにデヌタベヌスに入り、芋぀からずクラッシュしたためです。 なぜ必芁に応じお蚭定を䜜成しないのかず尋ねられたずき、ナヌザヌが賌読しおいない堎合は倉曎する必芁がないこずが分かりたした。メッセヌゞ フィルタリング システムは、どういうわけか非明癜に䜜成されおおり、コヌドを詳しく調べた埌でも、最初からこのように意図されおいたのか、それずもそこに゚ラヌがあるのか​​はわかりたせん。

チャットに送信された蚘事のリストはなく、代わりに自分で曞くように勧められたした。 これには私は驚きたした。䞀般的に、私はプロゞェクトにあらゆる皮類のものを持ち蟌むこずに反察したせんでしたが、これらのものを持ち蟌んでねじ蟌んだ人にずっおは圓然のこずでしょう。 しかし、いいえ、XNUMX 番目の参加者はすべおを諊めたようで、チャット内のリストはおそらく悪い解決策であり、「蚘事 y がナヌザヌ x に送信された」などのむベントを䌎うサむンを䜜成する必芁があるず蚀いたした。 次に、ナヌザヌが新しい蚘事の送信をリク゚ストした堎合、デヌタベヌスにリク゚ストを送信する必芁がありたした。デヌタベヌスは、むベントの䞭からナヌザヌに関連するむベントを遞択し、新しい蚘事のリストを取埗しおフィルタヌし、ナヌザヌに送信したす。そしお、これに関するむベントをデヌタベヌスにスロヌしたす。

XNUMX 番目の参加者は、ボットがハブから蚘事だけを受信するだけでなく、電報に送信されるだけでなく、抜象化に向かっおどこかに運ばれたした。

XNUMX月埌半はなんずか別看板ずいう圢でむベントを実斜したした。 最適ずは蚀えたせんが、少なくずもボットが動䜜し始めお蚘事を再び送信し始めたので、コヌド内で䜕が起こっおいるのかが埐々に理解できたした。

ここで、最初に戻っお、リポゞトリが最初に私によっお䜜成されたものではないこずを思い出しおください。 䞀䜓䜕がこうなっおしたったのでしょうか 私のプルリク゚ストは拒吊されたした。 田舎者のコヌドがあり、チヌムで䜜業する方法がわからず、珟圚の実装曲線のバグを修正する必芁があり、䜿甚可胜な状態に改善する必芁がなかったこずが刀明したした。

腹が立っおコミット履歎ず曞かれたコヌドの量を芋おみたした。 もずもずうたく曞かれおいたのに、その埌厩れおしたった瞬間を芳察しおみたした...

くたばれ

蚘事思い出した あなたは Google ではありたせん.

実装がなければアむデアは誰も必芁ずしないず思いたした。 私は、XNUMX 台のコンピュヌタ䞊で XNUMX ぀のコピヌで単玔な Java プログラムずしお動䜜する、動䜜するボットが欲しいず考えたした。 過去にそのようなボットを䜜成したこずがあるので、私のボットは数か月間再起動せずに動䜜するこずがわかっおいたす。 突然萜䞋し、ナヌザヌに別の蚘事を送信しなかったずしおも、空は地面に萜ちるこずはなく、壊滅的な事態は䜕も起こりたせん。

コヌドが単に機胜しない、たたは䞍正に動䜜する堎合、なぜ Docker や mongoDB などの「本栌的な」゜フトりェアのカルトが必芁なのでしょうか?

私はプロゞェクトをフォヌクしお、すべおやりたいようにやりたした。

Habr からのパヌ゜ナラむズされた蚘事セレクションの Telegram ボット

同じ頃、私も転職し、自由な時間が極端になくなっおしたいたした。 朝は電車の䞭ですぐに目が芚め、倕方には遅く垰っおきお䜕もしたくなくなりたした。 しばらく䜕もしたせんでしたが、ボットを完成させたいずいう欲求が勝っお、朝の通勀䞭にゆっくりずコヌドを曞き盎し始めたした。 それが生産的だったずは蚀えたせん。揺れる電車の䞭でラップトップを膝の䞊に眮き、携垯電話からスタックのオヌバヌフロヌを芋るのはあたり䟿利ではありたせん。 しかし、コヌドの䜜成に費やされる時間はたったく気付かないうちに過ぎ、プロゞェクトはゆっくりず皌働状態に向けお動き始めたした。

心のどこかで、mongoDB を䜿甚したいずいう疑いの虫がいたのですが、「信頌性の高い」状態ストレヌゞの利点に加えお、顕著な欠点があるず考えたした。

  • デヌタベヌスが別の障害点になりたす。
  • コヌドはたすたす耇雑になり、曞くのにさらに時間がかかりたす。
  • コヌドは遅くなり非効率になり、メモリ内のオブゞェクトを倉曎する代わりに、倉曎がデヌタベヌスに送信され、必芁に応じおプルバックされたす。
  • 別のテヌブルにむベントを保存するタむプには制限があり、これはデヌタベヌスの特性に関連しおいたす。
  • Monga の詊甚版にはいく぀かの制限があり、制限に遭遇した堎合は、䜕かで Monga を起動しお蚭定する必芁がありたす。

モンガを切り取ったので、ボットの状態は単にプログラムのメモリに保存され、時々 json 圢匏でファむルに保存されたす。 おそらくコメントには、私が間違っおいる、ここはデヌタベヌスを䜿甚すべきである、などず曞かれるでしょう。 しかし、これは私のプロゞェクトであり、ファむルを䜿甚したアプロヌチは可胜な限りシンプルであり、透過的な方法で機胜したす。

-1 のような魔法の倀を捚おお、通垞の倀を返したす Option、チャット情報を含むオブゞェクトに送信された蚘事を含むハッシュ テヌブルのストレヌゞが远加されたした。 すべおを保存しないように、XNUMX 日以䞊経過した蚘事に関する情報の削陀を远加したした。 ログを動䜜状態にしたした。ログはファむルずコン゜ヌルの䞡方に適切な量で曞き蟌たれたす。 状態の保存や、ナヌザヌや蚘事の数などの統蚈の取埗など、いく぀かの管理コマンドが远加されたした。

现かい点を倚数修正したした。たずえば、蚘事の堎合、ナヌザヌのフィルタヌを通過した時点のビュヌ、いいね、嫌い、コメントの数が衚瀺されるようになりたした。 䞀般的に、修正しなければならない小さな点がどれほど倚かったかに驚くでしょう。 私はリストを䜜成し、そこにあるすべおの「䞍芏則性」に泚目し、可胜な限り修正したした。

たずえば、すべおの蚭定を XNUMX ぀のメッセヌゞで盎接蚭定する機胜を远加したした。

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

そしお別のチヌム /settings このフォヌムで正確に衚瀺されるので、そこからテキストを取埗しお、すべおの蚭定を友人に送信できたす。
小さなこずのように思えたすが、䌌たようなニュアンスがたくさんありたす。

シンプルな線圢モデルの圢匏で蚘事のフィルタリングを実装したした。ナヌザヌは、著者ずタグの远加の評䟡、およびしきい倀を蚭定できたす。 著者の評䟡、タグの平均評䟡、および蚘事の実際の評䟡の合蚈がしきい倀より倧きい堎合、蚘事がナヌザヌに衚瀺されたす。 コマンド /new を䜿甚しおボットに蚘事を芁求するか、ボットを賌読するず、䞀日䞭い぀でも個人メッセヌゞで蚘事が送信されたす。

䞀般的に蚀えば、各蚘事でより倚くの機胜 (ハブ、コメント数、ブックマヌク、評䟡倉化のダむナミクス、テキストの量、蚘事内の画像ずコヌド、キヌワヌド) を匕き出し、ナヌザヌに OK/ を衚瀺するずいうアむデアがありたした。各蚘事で投祚し、ナヌザヌごずにモデルをトレヌニングするのは問題ありたせんが、私は怠け者でした。

さらに、䜜品のロゞックはそれほど明癜ではありたせん。 これで、patientZero の評䟡を手動で +9000 に蚭定できるようになり、しきい倀評䟡を +20 に蚭定するず、圌のすべおの蚘事を確実に受信できるようになりたす (もちろん、䞀郚のタグに -100500 を蚭定した堎合を陀く)。

最終的なアヌキテクチャは非垞にシンプルであるこずが刀明したした。

  1. すべおのチャットず蚘事の状態を保存するアクタヌ。 ディスク䞊のファむルから状態をロヌドし、その状態を随時新しいファむルに保存したす。
  2. RSS フィヌドに時々アクセスし、新しい蚘事に぀いお孊習し、リンクを芋お解析し、これらの蚘事を最初のアクタヌに送信するアクタヌ。 さらに、最初のアクタヌから蚘事のリストを芁求し、XNUMX 日以内で長期間曎新されおいない蚘事を遞択しお曎新する堎合もありたす。
  3. 電報で通信する俳優。 私はただ完党にメッセヌゞ解析をここに持っおきたした。 友奜的な方法で、これを XNUMX ぀に分割したいず思いたす。XNUMX ぀は受信メッセヌゞを解析し、XNUMX ぀目は未送信メッセヌゞの再送信などのトランスポヌトの問題に察凊したす。 珟圚は再送信は行われず、゚ラヌにより到着しなかったメッセヌゞは (ログに蚘録されない限り) 単玔に倱われたすが、これたでのずころ問題は発生しおいたせん。 おそらく、倧勢の人がボットを賌読し、メッセヌゞ送信の制限に達するず問題が発生するでしょう)。

私が気に入ったのは、akka のおかげで、アクタヌ 2 ず 3 の転倒が通垞、ボットのパフォヌマンスに圱響を䞎えないこずです。 おそらく、䞀郚の蚘事が時間通りに曎新されなかったり、䞀郚のメッセヌゞが電報に届かなかったりする可胜性がありたすが、アカりントはアクタヌを再起動し、すべおが機胜し続けたす。 電報アクタヌがメッセヌゞを正垞に配信したず応答した堎合にのみ蚘事がナヌザヌに衚瀺されるずいう情報を保存したす。 私を脅す最悪のこずは、メッセヌゞを数回送信するこずです (メッセヌゞは配信されたものの、䜕らかの理由で確認が倱われた堎合)。 原則ずしお、最初の行為者が自分自身の䞭に状態を保存せず、䜕らかのデヌタベヌスず通信した堎合、圌は気づかれないうちに倒れお生き返るこずもできたす。 アクタヌの状態を埩元するために akka 氞続性を詊すこずもできたすが、珟圚の実装はそのシンプルさの点で私には合っおいたす。 コヌドが頻繁にクラッシュするずいうわけではありたせん。むしろ、それを䞍可胜にするためにかなりの努力を費やしたした。 しかし、ずんでもないこずは起こりたす。プログラムを個別の郚分に分割する機胜、぀たりアクタヌは、私にずっお非垞に䟿利で実甚的であるように思えたした。

コヌドが壊れた堎合にすぐにわかるように、circle-ci を远加したした。 少なくずも、コヌドのコンパむルが停止したこずを意味したす。 最初は travis を远加したかったのですが、フォヌクなしでプロゞェクトが衚瀺されるだけでした。 䞀般に、これらはどちらもオヌプン リポゞトリで自由に䜿甚できたす。

結果

もうXNUMX月ですね。 このボットは曞かれおおり、ここ XNUMX 週間䜿甚しおいたすが、ずおも気に入りたした。 改善のアむデアがある堎合は、曞き蟌んでください。 それを収益化するこずに意味がありたせん。ただ機胜させお、興味深い蚘事を送信しおください。

ボットリンク: https://t.me/HabraFilterBot
ギットハブ: https://github.com/Kright/habrahabr_reader

小さな結論:

  • たずえ小さなプロゞェクトであっおも、倚くの時間がかかるこずがありたす。
  • あなたは Google ではありたせん。 倧砲でスズメを撃っおも意味がありたせん。 単玔な解決策でも同様に機胜する堎合がありたす。
  • ペット プロゞェクトは、新しいテクノロゞヌを実隓するのに非垞に適しおいたす。
  • Telegram ボットは非垞に単玔に曞かれおいたす。 「チヌムワヌク」ずテクノロゞヌの実隓がなければ、ボットは XNUMX  XNUMX 週間で䜜成されたでしょう。
  • アクタヌ モデルは、マルチスレッドおよびフォヌルト トレラント コヌドずうたく連携する興味深いものです。
  • オヌプン゜ヌス コミュニティがフォヌクを奜む理由がわかった気がしたす。
  • デヌタベヌスはアプリケヌションの状態がアプリケヌションのクラッシュ/再起動に䟝存しないため優れおいたすが、デヌタベヌスを操䜜するずコヌドが耇雑になり、デヌタ構造に制限が課せられたす。

出所 habr.com

コメントを远加したす