Fork me on GitHub

2017-07-25のJS: Node.js 8.2.0、TypeScriptへの漸進的移行、リファクタリングJavaScript

Edit on GitHub 編集履歴を見る

JSer.info #341 - Node v8.2.0がリリースされました。

async_hooksのPromise対応改善、npmが5.3.0へアップデートされnpxが同梱されるようになっています。

また、まだマージはされていませんが、Node.jsのコアモジュールにHTTP/2をサポートするhttp2モジュールを追加するPRが出ています。


がんばらないTypeScriptのはじめ方 - 角待ちは対空という記事では、TypeScriptを<any>を許容するような形でゆるく導入する話やJavaScript(CoffeeScript)からの移行について書かれています。

ゆるく使う場合でもコンパイルオプションstrictNullChecksを有効にしておくことで間違いを防げることが多い点などについて書かれています。
またJavaScriptからTypeScriptへ徐々に移行する際のcheckJsallowJsを使ったアプローチについても書かれています。

JavaScriptのライブラリを徐々にTypeScriptに移行する | Web Scratchという記事でもTypeScriptへの移行のパターンを2種類紹介しています。

  • まとめてTypeScriptに移行するパターン
  • allowJsを使って一時的に混在した状態で徐々に移行するパターン

についてそれぞれ具体的なPRを見ながら解説しています。


Oreiilyから出ているRefactoring JavaScriptのプレビュー版が公開されています。

PDF版は無料で公開されていて、プレビュー版のレイアウトですが本文は最後まで書かれています。

ES2015+な構文を使ったリファクタリング、テストの仕方、OOPやFPのアプローチを使ったリファクタリングなどについて解説されています。ES5で書かれたコードをES2015の構文を使ってもっと意図を分かりやすく書くリファクタリングなども多いため、ES2015について学ぶのにも良さそうです。またOOPだけではなく、ramdaなどを使ったFPなアプローチについて書かれているのも特徴的です。


JSer.infoをサポートするには

JSer.info Sponsors

JSer.info SponsorsGitHub SponsorsとしてJSer.infoを支援してくれている方々です。


ヘッドライン


Node v8.2.0 (Current) | Node.js

nodejs.org/en/blog/release/v8.2.0/

node.js ReleaseNote

Node v8.2.0リリース。
async_hooksのPromise対応改善、npmが5.3.0へアップデート(npxが同梱される)など。


Roadmap · Microsoft/ChakraCore Wiki

github.com/Microsoft/ChakraCore/wiki/Roadmap#v160

ChakraCore ReleaseNote WebAssembly

ChakraCore 1.6.0リリース。
WebAssembly/SharedArrayBuffer/Dynamic module importがデフォルトで有効に。
SIMDサポートを削除など。


Release Quantum Time · fuse-box/fuse-box

github.com/fuse-box/fuse-box/releases/tag/v2.2.1

JavaScript Tools ReleaseNote

FuseBox 2.2.1リリース。
fuse.jsを変更した際にキャッシュを削除するように、writeBundlesオプションでin-memoryビルドができるようになるなど。


Angular: Angular 4.3 Now Available

angularjs.blogspot.com/2017/07/angular-43-now-available.html

Angular ReleaseNote

Angular 4.3リリース。
HttpClientの追加、routerのライフサイクルイベントの追加。
また、Shadow-Piercing descendant combinatorは非推奨であるため、 Angularの中の/deep/>>>::ng-deepも非推奨となった。
::ng-deepはツール側で優先して扱うように。


ESLint v4.3.0 released - ESLint - Pluggable JavaScript linter

eslint.org/blog/2017/07/eslint-v4.3.0-released

ESLint ReleaseNote

ESLint v4.3.0リリース。
eslint --initした際にeslintのバージョンを利用してる場合に対話的にバージョン変更できるように。
prefer-destructuringにオプションの追加、ルールの修正など。


Say hello to HTTP/2 for Node.js Core – Node.js Collection – Medium

medium.com/the-node-js-collection/say-hello-to-http-2-for-node-js-core-261ba493846e

node.js HTTP2 library

Nodeのhttp2対応について。
初期実装のPull Requestが出された。


Release Almin 0.13.10 - transaction on application layer · almin/almin

github.com/almin/almin/releases/tag/almin%400.13.10

JavaScript CQRS library ReleaseNote

Almin 0.13.10リリース。
IE9/10のサポート終了、Store#onDispatchが受け取れるpayloadを制限、Strict mode、トランザクションのサポート、executorの追加など。


アーティクル


JavaScriptのライブラリを徐々にTypeScriptに移行する | Web Scratch

efcl.info/2017/07/17/JavaScript-to-TypeScript/

JavaScript TypeScript

JavaScriptで書かれた既存のコードをTypeScriptへ移行する際の方法について。
JavaScriptとTypeScriptを混在した状態で移行について。


Automated testing with Headless Chrome | Web | Google Developers

developers.google.com/web/updates/2017/06/headless-karma-mocha-chai

Chrome testing

Headless Chromeを使った自動テストについて。


Extracting Logic from React Components

javascriptplayground.com/blog/2017/07/react-extracting-logic/

React リファクタリング JavaScript

Reactコンポーネントに内蔵されてしまったロジックをコンポーネントから分離するリファクタリングについて。


がんばらないTypeScriptのはじめ方 - 角待ちは対空

blog.yux3.net/entry/2017/07/18/110000

JavaScript TypeScript article

TypeSriptを緩く使う/JavaScriptからTypeScriptへの移行について。
ゆるく使う場合でもnoImplicitAnystrictNullChecksを有効化することで防げるエラーがあることについて。


NgRx: Patterns and Techniques – nrwl

blog.nrwl.io/ngrx-patterns-and-techniques-f46126e2b1e5

Angular Rx article

NgRxを使ったパターンやTipsについての記事。


Rekit 2.0: new way of React development – Nate Wang – Medium

medium.com/@nate_wang/rekit-2-0-next-generation-react-development-ce8bbba51e94

React redux Tools article

React/Redux/React Routerをベースにしたウェブアプリ開発環境のRekit 2.0について。
Rekit PortalというComponent/Router/Actionの関係を可視化できるダッシュボードを持っている。


サイト、サービス、ドキュメント


Learn Next.js - Create SSR Enabled React Apps Easily

learnnextjs.com/

React tutorial

Next.jsについてのチュートリアルサイト。


create-react-app/README.md at master · facebookincubator/create-react-app

github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md

React document

create-react-appのユーザーガイド。
典型的なウェブアプリケーションのクライアントにおける開発についてよくまとまっている。
パッケージ管理方法、VCS、テスト、環境変数、エディタ、静的サーバ、デプロイ、SSR、パフォーマンス改善、分析など。


ソフトウェア、ツール、ライブラリ関係


Enclose.IO: Compiling your application into a single executable

enclose.io/

node.js ruby Tools

Node.jsやRubyのコードを実行可能なバイナリにパッケージング、自動更新できるようにするするウェブサービス。


tsuyoshiwada/react-drip-form: HoC based React forms state manager, Support for validation and normalization.

github.com/tsuyoshiwada/react-drip-form

React JavaScript library

High Order ComponentベースのReact Form/バリデーションライブラリ。


書籍関係


Results of the Ultimate CSS Survey 2017 — SitePoint

www.sitepoint.com/results-ultimate-css-survey-2017/

CSS アンケート

CSSについての開発者アンケート結果が公開された。 AltCSS、フレームワークの利用率、minify、reset/normalize、期待する機能、サポートしてるブラウザ、バグを見つけたことがあるかなど。


Refactoring JavaScript

refactoringjs.com/

JavaScript book リファクタリング

JavaScriptのリファクタリングについての書籍。PDF版が無料で公開されている。
ES2015+な文法を使ったリファクタリング、テストの仕方、OOPやFPのアプローチを使ったリファクタリングなどについて解説されている。


azat-co/practicalnode: Practical Node.js, 1st and 2nd Editions [Apress]

github.com/azat-co/practicalnode

node.js book

Practical Node.jsの原稿(ドラフト)が公開された。
Kickstarterでキャンペーンをやっている。


Practical Modern JavaScript: Dive into ES6 and the Future of JavaScript: Nicolas Bevacqua: 9781491943533: Amazon.com: Books

www.amazon.com/Practical-Modern-JavaScript-Dive-Future/dp/149194353X

JavaScript book

ES2015+についての書籍。


この記事へ修正リクエストをする
JSer.info Slackに参加する