1. TOP
  2. BLOG
  3. EVENT
  4. アルカナに入社しました/アレを大きくした話/共変性と反変性の話 // 第57回社内勉強会 #sa_study

アルカナに入社しました/アレを大きくした話/共変性と反変性の話 // 第57回社内勉強会 #sa_study

2020.02.04


こんにちは。
エンジニアの古橋です。

今回は12/23に行われた、第57回社内勉強会の内容を書いていきたいと思います。今回は外部の方にも参加していただきました。ありがとうございます!!
発表内容は2019年10月に入社された稲葉さんの自己紹介と吉田(遼)さんの「アレを大きくした話」と私の「共変性と反変性の話」の三本立てでお送りします。

 

あ!そういえば前回からブログの書き方を変えたのですが、気付いた方いらっしゃいますか?

以前はブログ執筆担当が毎回ランダムに一人抽選され、その人が当日の勉強会の発表をまとめてブログに書いていたのですが、
前回からは勉強会で発表した人が自分で発表をまとめて、それをブログ執筆担当が取りまとめてブログを公開するようにしました。

こうすることで、資料だけでは伝えきれなかった部分を補足する機会が生まれるし、第三者に執筆を委譲するよりも発表内容に関しては理解がある分、記事の質が向上するのではないかという目論見があります。

 

最初に稲葉さんの自己紹介です!

 

10月に入社して、きちんと自分の経歴も話すことなく、ズルズルとプロジェクト開発へ…
そうなってしまうのもアルカナの思想とは異なってしまいそうなので、自己紹介をテーマとして発表させてもらいました。最年長であるため、ちょっとした昔話でもおもしろいかなと、自分がPCを触り始めたきっかけやPC環境、現在のPCスペックがどれほど劇的に進化したのかを感じてもらいました。その後ざっくりと自分の経験してきたこと、アルカナ入社後に感じたことをまとめさせてもらってます。

 

次に吉田(遼)さんの発表です!

 

はい、どーも!吉田(遼)です。
小ネタ枠ということで、自分が普段行っていて便利なモノを紹介してみました。

Slackを利用していると絵文字をよく利用しますよね?
でも、アレって小さくないですか?小さい文字が埋め込まれていたりすると、おじさんは見えなくてギブアップです・・・。
そんなわけで、アレ(絵文字)を大きくして見やすくさせる、という小ネタを勉強会で発表しました。

Slackのネイティブアプリですが、これはElectronで作られています。
Electron自体は、Node.js + JavaScript + CSSというWebアプリではお馴染みの技術で構成されています。
ここでポイントとなるのでCSSで、Slackのネイティブアプリの画面構成もこのCSSで作られています。
なので、CSSを弄ってしまえば、自分で好きなようにカスタマイズができてしまいます。

ただ、Slackアプリの中身を弄るのは簡単ではなんく、asarという形式(tarみたいなもの)でパッケージング化されているため、まずはそれを開いてあげなければなりません。
修正を行う流れとしては以下のようになります。

1. asarを展開
2. 該当のJSファイルを修正
3. 再度asarでパッケージング化
4. 3で作成したasarを上書き
5. Slackアプリを起動

1番重要となるのが、上記の2の作業となります。このJSファイルの中にDOMを読み込んだあとに、修正を行うCSSを読み込んで書き換えるイベントを追加してあげる形となります。
仕組み自体は簡単ですが問題となるのが、修正を行ったJSファイルを再度asarにして、書き換えて・・・という処理が発生してしまうことです。
それだと、トライアンドエラーが大変ですし、修正を行う都度に上記の手順が発生しています。

そこで、2のJS修正の際に、CSSを埋め込むのでは泣く、外部に外だし(今回の例では、GitHubにCSSファイルを配置)して、Slackアプリの起動の都度に読み込ませるようにしました。
これによって、外だしCSSを修正するだけで動的に編集を行う事ができます(便利!)

発表では絵文字を大きくするデモしかやりませんでしたが、この方法を応用すれば、自分でSlackアプリを自由にカスタマイズして、オレオレSlackアプリが作れちゃいます。

ただし、気をつけなければいけないのは、そうやってカスタマイズしても自分の画面でしかそのように見えていないのをお忘れ無く・・・。
なので、みなさんほどほどにしておきましょう(・ω・*)ネッ♪

 

最後は私の発表で「共変性と反変性の話」です。

 

事の発端はPHP7.4から「返り値の型を狭めたり、引数の型を広げたりする」ことができるようになり、そういったことについて自身がよく理解できていなかったということでした。

普段の開発では型の共変性と反変性を意識してプログラミングをすることがあまりなかったので、勉強するいい機会だと思い、調査し勉強会で共有するに至りました。

ちなみにPHP7.4をプロダクションで使用しているチームはまだありませんでした(・ω・*)

 

次回は1/30辺りを予定しています
ではでは、また次回をお楽しみに~!