「Githubでプルリクにいいねしたい」願望を叶えるUserScriptを開発しました
JavaScript - Client Side - Advent Calendar 2013 12/07分の記事です。
JavaScript 超初心者による、初心者向けのエントリーです。
プルリクエストをレビューしているとたびたび、
レビューコメントやプログラムの diff に「いいね」したくてたまらなくなりますよね。
皆さんのそんな願望を叶えるべく、
Github/Github enterprise 用 UserScript「StealthLike」を開発しました。
自分で言うのもあれですが、 これがまた、どうしてなかなか超絶便利です。
スクリプトは、下記の通り Github にて公開しています。
本日は、この「SealthLike」を紹介しつつ、 作成する中で学んだ事をかんたんにまとめておきます。
■StealthLikeとは
プルリクや issue にいいねするための UserScript です。
いいねされた部分は、ハイライトなり引用なりで、いい感じに表示されます。
また、「いいね」した内容は、該当プルリクエストのコメントとして保存されるため、
大切なプログラムが外部に漏れてしまう事はありません。
■StealthLikeの開発を通して学んだ事
JavaScriptの文法すら知らない状態からの開発でしたので、多くのエンジニアにコードレビューのご協力をいただいた結果、
2プルリクで 200コメントもつくという、大変ツラく長い戦いになりました。
作者の死闘っぷりと、 とても勉強になる200のコメントは、下記プルリクでご覧いただけます。
- はじめてのぷるりく by nezumi650 · Pull Request #2 · nezumi650/StealthPosting
- StealthLike Develop by nezumi650 · Pull Request #1 · nezumi650/StealthLike
以下、その中でもとくに勉強になった事をまとめます。
JavaScript書く時は、とりあえず "use strict" って書く
use script
?- 色々なチェックが厳しく(strictモードに)なり、コンソールにエラーが出まくったり、何もかも動かなくなったりするおまじない
- Strict mode - JavaScript | MDN
- nezumi650/StealthPosting/pull/2#discussion_r3752105
JavaScriptをグローバルに書くのはイクナイ
strictモードだと、if文内に関数宣言を書けない
- strict モードでは、関数宣言文は、トップレベルか他の関数の直下にしか書けない
- nezumi650/StealthLike/pull/1#discussion_r6788476
replacedHtml と textContent を使い分けるべし
関数式は、おしりに「;」
- 関数式のときは、後述の処理とひとつながりとして判断されてしまう事があるため、
;
で「終わり」を明示してあげる - nezumi650/StealthLike/pull/1#discussion_r6715251
関数式よりも、関数宣言または名前付き関数式
- 関数式だと無名関数として扱われ、Chromeのデバッガで扱いづらい(らしい)
- nezumi650/StealthLike/pull/1#discussion_r6714757
シールを作る時は、発注前にmacに貼れるか確認する
- 拡散ツールとしてロゴのシールを作ったが、素材の相性に難があり、macに貼れなかった
- シールを作成する際は、発注前に mac に貼れるか確認する事
以上です。
皆さん、StealthLike、気になりますよね。わかります。
ぜひインストールして、プルリクにいいねしてみてください。
そして、素敵なソーシャルコーディングライフを!
■おまけ
いいねのテストはPlaygroundでできますよ〜。
JavaScript - Client Side - Advent Calendar 2013、明日はArcCosine@githubさんです!