LoginSignup
19
15

More than 1 year has passed since last update.

Qiitaの記事の”勢い”を調べる ~もしかしたらまだ見ぬ掘り出し記事が見つかるかも~

Posted at

配信者勢いランキング、5ちゃんねる勢いランキングなど、インターネットをうろうろしているとよく"勢い"という言葉を目にしますよね。
というわけでQiita記事の勢いを調べてみました。(QiitaAPIを使って)
参考になる記事をストックすることがスキルアップの近道のはず、"勢い"のある記事はきっと参考になる記事だと思うのです。

前調べ

5ちゃんねるの勢いの計算方法は次の通りだということを調べました。
勢い=レス数/(現在のunix時間-スレッド内の1番目の投稿のunix時間)÷86400

なるほど、これを参考に今回は、
■レス数=いいねの数
■現在の時間=現在の時間
■1番目の投稿時間=記事の投稿時間
と定義してやってみます

結果

単月部門

集計期間:2021/9/13~2021/10/2

順位 いいね 投稿日 期間(日) 勢い URL
1 893 2021-09-29 15 61 エンジニア200人に聞いて、業務委託単価表を作りました
2 1090 2021-09-15 28 39 「あれ、プログラミングが楽しくない…」【すべてのエンジニアへ】
3 364 2021-10-03 10 35 仕事で使う技術以外はさっぱりわからないけど この先大丈夫かな……という方にオススメのLTイベントご紹介
4 41 2021-10-12 2 27 5,000円/時間以上で働く方法を考えてみた
5 226 2021-10-04 9 24 VueもReactもやったことないのでVanilla JSでやってみたSPA
6 577 2021-09-20 24 24 クリーンなReactプロジェクトの21のベストプラクティス
7 189 2021-10-05 9 22 プロダクトを作ってから登録ユーザー400名、月間売上100万円を達成するまでにエンジニアががむしゃらに行った営業方法のメモ書き
8 146 2021-10-06 7 21 過去にPLから言われた心に刻んでおきたい5つの言葉【要件定義編】
9 472 2021-09-18 25 19 【2021】モダンなPython開発環境の紹介
10 445 2021-09-19 25 18 Bash Scriptの作法

1位の記事は1日で61いいねを獲得したということになります。
この期間では突出した結果となりました。
記事を読んでみましたが、大変興味深くこの結果も納得のものでした。
続いて、期間指定なしの結果です

無差別級

集計期間:なし

順位 いいね数 投稿日 期間(日) 勢い URL
1 2537 2021-02-23 233 10.9 【2021 最新版】ノンデザイナーだからこそ知っておきたかった10のイラストサイト
2 4333 2021-05-24 507 8.5 Google社のテクニカルライティングの基礎教育資料がとても良かったので紹介したい
3 4687 2020-01-11 641 7.3 要件定義~システム設計ができる人材になれる記事
4 4363 2020-01-21 631 6.9 良いコードの書き方
5 3770 2020-03-08 584 6.5 プロジェクトリーダーというお仕事
6 2853 2020-04-16 545 5.2 VSCode に必ず入れておきたい拡張機能
7 3647 2019-11-11 702 5.2 2020年のフロントエンドマスターになりたければこの9プロジェクトを作れ
8 9757 2016-05-16 1976 4.9 ロシアの天才ハッカーによる【新人エンジニアサバイバルガイド】
9 5435 2018-09-30 1109 4.9 VSCodeのオススメ拡張機能 24 選 (とTipsをいくつか)
10 6241 2018-03-13 1310 4.8 AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~

やはり、期間が延びると勢いも衰えていく結果となっています。
しかしながら1日10いいねは単月部門でもTOP20に入る勢いで、投稿後半年以上経過している中でいまだ衰えを知らないといっても過言ではないと思います。
とりあえずすべてストックに入れたのは言うまでもありません。

やった後に気づいたのですが、Qiitaのトレンドも似たようなものなので、結果は近しい内容になるかと思いましたがそうでもなかったです。
この記事だと、トレンドは打率で判断しているようでした。
Qiitaのトレンド表示機能についての考察
違う切り口で記事を拾ってみると、思わぬ掘り出し物が見つかるかもしれないですね。

ソースコードと開発のあれこれ

開発環境

Node v16.10.0
axios 0.22.0

最終的に出来上がったソースコードは次の通り。

qiita.rb
const axios = require('axios');
var day = new Date();  
var tday = new Date();                                       //今日
var bday = new Date(tday.setMonth(tday.getMonth()-1));

async function main() {
  let response = await axios.get(
    'https://qiita.com/api/v2/items?page=1&per_page=100&query=stocks:>3000')
   //'https://qiita.com/api/v2/items?page=1&per_page=100&query=created:>2021-09-13+stocks:>30')
  for (let i = 0; i < response.data.length; i++) {   //response.data.length
      var xday = new Date(response.data[i].created_at);
      //86400000は1日、*24で時間、*60で分
      var termDay = (day - xday) / 86400000;
      //1時間で1いいねを1勢いで計算
      var ikioi = response.data[i].likes_count / termDay;
      console.log(i,response.data[i].likes_count,response.data[i].created_at,termDay,ikioi,response.data[i].url);
    }
}
main();

↓便宜上、記事の取得はストック数で制限をかけています
これにたどり着くまでが長かった。。。
検索時に利用できるオプション

qiita.rb
  let response = await axios.get(
    'https://qiita.com/api/v2/items?page=1&per_page=100&query=stocks:>3000')
   //'https://qiita.com/api/v2/items?page=1&per_page=100&query=created:>2021-09-13+stocks:>30')

感想

手探りでのはじめてのjavascriptでしたが、思った以上に大変でした。
困ったらGoogle先生に聞く、Qiitaの先人たちの記事を見る等、解決策はあるのでしょうが、目当ての情報を得るまでに時間がかかる。調べる力も実力のうちだということを思い知った次第です。
ひとまずはエンジニアとして再出発です。(もう40手前ですが。。)

19
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
15