クソ雑魚エンジニアのメモ帳

学んだことを書くところ

関西Node学園 1限目

概要

nodejs.connpass.com

内容個人的まとめ&所感

春からはじめる新しいNode.js - Node.js v10

  • ecmascriptとは?ってレベルから詳しく掘り下げて話してくれていた。
  • 時期バージョンのリリースタイミングや、策定に関するあれこれなど技術的ではないが興味を引かれた
  • stageは0から4まである
  • 新規プロポーサルを出すには.mdに追加するだけでよい
  • javascriptを実行するエンジンでメジャーなのがGoogleが作ったOSSv8engine。他のエンジンと違い、中間コードを挟まないので早い。
  • 最新版は6.2.XX

nodejs

  • stableは偶数バージョン(4,6,8,10..)
  • 最新版は奇数バージョン(5,7,9..)
  • 現在のstableは8
  • 今月末にNodejs10がリリースされる

https://raw.githubusercontent.com/nodejs/Release/master/schedule.pngこちらより拝借

nodejsの新機能

こちらから確認できる▼ Node.js ES2015/ES6, ES2016 and ES2017 support

Typescript + Express

環境構築に関してはexpressのeの字も知らなかったが、だいぶ勉強になった

vue-cliとかtypescript-starterとかでjs周り簡単に複雑な環境が簡単に手に入るのでそれに甘んじていたがその反面一つ一つの役割・機能がわからなくなりがちなのでこのレベルでやってくれるのはわかりやすかった。

やっていたことは

  1. express-generatorを使ってscaffold作成
  2. typescriptとかlintとかtsconfigとかの設定
  3. jsの拡張子をtsに変更
  4. jsの中身をtsに簡単に変更
  5. tsconfigのoutputDirをオリジナルDirに修正
  6. tscでts=>jsにコンパイル
  7. サーバー起動

家に帰って試したが、非常に簡単だった。

手順はこちら

疑問

backendをexpressで、frontendもjsでがっつりやっている場合、npmとかそういうライブラリ管理って分離したほうがいいのかなあ 🤔

babel入門

babelは全く無知だったので理解が進まなかった。反省

Javascirptユニットテスト入門

ユニットテストのやり方云々ではなく、それにいたるまでのステップアップの方法を解説していた

テストをやる基準

  • コスパに優れているか
  • UIと分離させれるか
  • モジュールに切り出せるか

mocha

mochaというNodejsのテストツールがあるらしい。 https://mochajs.org/

テストは誰がする?

質疑のときに飛んできた質問。 コードを書いた人がテストコードを書くべきと明言していたが、コードを書いた人は必然的に視野が狭くなる(コードを書いているから、それに引っ張られたテストコードになるような)ので他人がテストコードを書くことも有用だと思った。

Flowtype入門

全く聞いたことなかった。Facebookが作ったjsの型定義ができるコンパイラ?のようだ

jsの変数・関数にアノテーションをつけてFlowTypeにチェックさせるとエラーが出て来るという仕組みみたい。 エラーがなかった場合はアノテーションが削除されて出力される??ちょっと未確認だ。

はじめは無理に細かく型付けをしない 感動した。既存コードをリファクタリングする事例ではTSだとJS/TSが混在すると管理が大変そうだが、FlowTypeはわかる型から書いていけばいいのでシンプルで有効に使えそう

弱点はTSの方定義ライブラリ(@types)と比べるとFlowTypeの型定義ライブラリ(flow-typed)が貧弱であるということですね(約1/6だったはず) また、FaceBookなので、React以外だと微妙なことがちょいちょいあるみたい。

typescriptとflowtypeの差が書いてあった面白い記事を紹介していた。読んだけどなんとなくわかったような気持ちになった qiita.com