配信者勢いランキング、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
最終的に出来上がったソースコードは次の通り。
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();
↓便宜上、記事の取得はストック数で制限をかけています
これにたどり着くまでが長かった。。。
検索時に利用できるオプション
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手前ですが。。)