プログラマーあるある、なにかと独自のミニ言語を作りがち。どうも、かわしんです。
昨日、11 月 16 日に開催された WEBエンジニア勉強会 #15 の LT 10 分枠で「ネストした JSON を CSV に自動変換する Python ライブラリを作った」というタイトルで登壇してきました。
スライドは以下です。
ネストした JSON を CSV に自動変換する Pythonライブラリを作った - Google スライド
発表の内容自体は、以前の記事の中身をわかりやすく解説しました。
個人的には、この発表では Step 1 ~ 6 に分けて段階的に JSON から CSV へ変換する文法を育てていくところが見どころです。
他の方の発表では、javascript の HTTP クライアント axios を Typescript の世界で型安全にするために、規約づけされた型定義ファイルから axios ラッパーを生成するツール「aspida」が面白いなと思いました。
VS Code での補完が効くことで開発効率が上がりそうです。また、ただのツールにはとどまらず、型定義ファイルとそのラッパーを npm パッケージとして @aspida/<domain>
などのように公開することで Typescript での @types/<domain>
のような世界を作り上げる野望をぶち上げており、その世界観に感動しました。
発表スライドが公開されていないのが残念ですが(スライドを見ないとあの感動は伝わらないと思う)、Github リポジトリは以下です。某大手の内部で採用されているらしいので乗っかってみるのもいいと思います。
あと、独自のフルスクラッチ javascript View ライブラリ「Ma_gician(仮)」の発表も面白かったです。Yet Another Vue.js なのかなという印象を受けましたが、とにかくコーディング量を減らすための独自構文を HTML タグに埋め込むことで少量のコードで Vue.js と同じことができるらしいです。
また、他のライブラリからの乗り換えも最小限でコストでできるような工夫もされているらしく、ひしひしと野心を感じました。まだ、リリースはされておらず絶賛開発中で、正式名称やコードは公開されてませんが、今後に期待です。
作者の方 の記事を読むと、外部依存なし、パフォーマンスを妥協しないなど、僕の好きな感じだったので注目していきたいと思います。
最後に発表中のツイートを引用して筆をおきたいと思います。
4人目。「ネストした JSON を CSV に自動変換する Python ライブラリを作った」 #WEM15
— Motohashi Tsuyoshi (@t_mozza) 2019年11月15日
アリの飼育! 子供の頃やったなぁ〜 #WEM15
— OSCA (@engineer_osca) 2019年11月15日
つづいてかわしんさん。つよつよの学生さんだ…! #WEM15
— いわしまん@AWS入門中 (@iwasiman) 2019年11月15日
おっさんもそれなりにいる勉強会なのに、勇気出して大学生が登壇してくれてる、嬉しい、ありがたい。 #WEM15
— OSCA (@engineer_osca) 2019年11月15日
データサイエンス業界ではJSONよりCSVが好まれるそうです #WEM15
— Motohashi Tsuyoshi (@t_mozza) 2019年11月15日
csvとjsonの変換って汎用的なもの考えるとほんと難しいよね。。。 #WEM15
— the.arc (@arc_candy) 2019年11月15日
CSVはエンプラ開発だとよく出てきますw あーたしかに長さの違う配列のJSONは大変そう...😇 #WEM15
— いわしまん@AWS入門中 (@iwasiman) 2019年11月15日
長さの異なる配列を含むJSONは読み取る側が不便なので、配列を展開する #WEM15
— Motohashi Tsuyoshi (@t_mozza) 2019年11月15日
どんどん複雑化してきて見てて面白いww #WEM15
— the.arc (@arc_candy) 2019年11月15日
すごい、僕だったら「いやいや、データ構造違いすぎるから、無理にCSVにすんのやめましょう」とか言っちゃいそうw #WEM15
— OSCA (@engineer_osca) 2019年11月15日
複雑化しすぎて、CSV諦めてJSONつかいたくなる・・・
— ih6190@長岡 (@ihirhs) 2019年11月15日
これがJSONの良さですよとか言って#WEM15
長さの異なる配列を複数含むJSONは穴を空ける。
— Motohashi Tsuyoshi (@t_mozza) 2019年11月15日
ネストした長さの異なる配列を含むJSONはインデックス番号を付ける。
汎用的に対応するのって大変だなあ #WEM15
カンマ以外のセパレータを使って無理やり配列を詰め込みたくなるw #WEM15
— つの (@wasi_wasimaru) 2019年11月15日
csvを構造的なjsonに変換するのも辛いよなぁ
— the.arc (@arc_candy) 2019年11月15日
#WEM15
サンプルからメタデータ生成するの良いですね。DBスキーマを生成する仕組みもたまに見かけるし、こういうの開発者は欲してると思う #WEM15
— Motohashi Tsuyoshi (@t_mozza) 2019年11月15日
サンプルを食わせるとメタデータを生成してくれる関数も作ったという、実利的な仕組み紹介でした。 #WEM15
— いわしまん@AWS入門中 (@iwasiman) 2019年11月15日
JSON を CSV に変換する考え方が新鮮でした! アイディアのストックにします。あざっしたー
— 悉生 游漩 (@StewEucen) 2019年11月15日