タグ

ブックマーク / qiita.com/masakielastic (11)

  • Bluebird で Promise を学ぶ - Qiita

    概要 Bluebird は Promise を扱うためのライブラリです。チュートリアルや stackoverflow の回答が充実しており、初心者が学びやすいライブラリです。TC39 で提案されている機能があるので、将来の先取り学習ができます。 Bluebird は Observable を学ぶための準備教材としても評価できます。Observable は Promise、EventEmitter、ストリームなどの複数の概念を統合する概念です。Observable を扱うためのライブラリとして RxJS や xstream が挙げられます。Observable は TC39 で提案されており、将来の標準機能になる可能性があります。 Bluebird をブラウザー版アプリで採用するときの課題はライブラリのファイルの大きさです。より小さなサイズのライブラリに切り換えるか、個別の機能に特化したライ

    Bluebird で Promise を学ぶ - Qiita
  • ECMAScript 2017、2018 の時代の開発環境 - Qiita

    概要 ECMAScript 2017、2018 で導入が予定されている機能および開発ツールについて調べました。 ES モジュール 主要ブラウザー、モジュールバンドラー (Webpack、Rollup) でサポートされています。Node.js は v8.5 で実験的な機能として利用できます (--experimental-modules)。古いバージョンの Node.js のサポートのために @std/esm が公開されています。 ES モジュールを利用するメリットは従来よりも読み込む必要のあるコードを減らすことができることです。必要なクラスや関数だけをインポートできます。RxJS の場合、どれだけ変わるのかはこちらの記事をご参照ください。 import {Observable} from 'rxjs/Observable'; import 'rxjs/add/observable/inte

    ECMAScript 2017、2018 の時代の開発環境 - Qiita
  • Node.js の開発版で http2 標準モジュールを試す - Qiita

    概要 Node.js v8.4 から http2 モジュールが実験的な機能として利用できるようになりました (プルリクエスト)。スクリプトの実行時にフラグを指定する必要があります。 nghttp2 の採用 http2 モジュールの実装には nghttp2 が採用されています。nghttp2 は curl、Apache HTTP Server (mod_http2) で採用されています。 HTTP/2 の普及状況 W3Techs の統計によれば、2017年8月1日時点でHTTP/2 に対応したウェブサイトは全体の15%を超えるとのことです。同じく W3techs のサーバーシェア統計によれば Node.js は全体の0.3%を占めます。 日国内において大手ホスティングサービスのロリポップが HTTP/2 に対応し、Let's Encrypt を利用することで独自ドメインの SSL/TLS

    Node.js の開発版で http2 標準モジュールを試す - Qiita
  • Babel、Browserify のクイックスタート2017年夏版 - Qiita

    Babel と Browserify の周辺ツールが2015年と比べてだいぶ変わってきたので、ドキュメントにまとめました。 NVS (Node Version Switcher) 複数の Node.js のバージョンを管理できるツールです。ChakraCore やナイトリービルドもインストールできます。MacLinux 版だけでなく Windows 版のインストーラーも配布されています。 Mac にインストールする場合、次のコマンドを実行しました。 export NVS_HOME="$HOME/.nvs" git clone https://github.com/jasongin/nvs "$NVS_HOME" . "$NVS_HOME/nvs.sh" install

    Babel、Browserify のクイックスタート2017年夏版 - Qiita
  • Caddy で HTTP/2 と php-fpm を利用する - Qiita

    概要 Caddy は HTTP/2 対応のウェブサーバーです。Let's Encrypt に対応しているだけでなく、自己証明書を自動生成する機能もあるので、開発用途に便利です。php-fpm に対応しており、PHP アプリの開発に使うことができます。2018年に仕様が発行される予定の QUIC プロトコルへの実験的な取り組みも進められています。 開発環境で TLS を使う動機 TLS に接する機会を増やすことで TLS の知識を深めるためです。また運用環境に近い環境にすることで、よりより検証ができます。 インストール macOS の場合、homebrew でインストールすることができます。

    Caddy で HTTP/2 と php-fpm を利用する - Qiita
  • TLS 1.3 に備えて PHP 7.1 にアップグレードする

    概要 2017年前半に TLS 1.3 の仕様が発行されます。TLS 1.3 では仕様の簡略化が進められ、速度が改善されるとともにプライバシーの保護の強化が図られています。Google が提唱する次世代プロトコルの QUIC は TLS 1.3 に対応し、2018年に仕様が発行される予定です。curl の開発者は QUIC 対応を表明しています。 2016年にリリースされた OpenSSL v1.1.1 は TLS 1.3 に部分的に対応し、2017年にリリース予定の v1.1.1 で完全に対応します。 OpenSSL 1.1 系には 1.0 系に対して後方互換性がない変更が多く含まれているため、PHP 7.1 は OpenSSL 1.1 系に対応しますが、PHP 5.6、7.0 は対応しない予定です。 今後5年10年後にTLS 1.3 を必須とするプロトコルが必要になったとき、もしくはブ

    TLS 1.3 に備えて PHP 7.1 にアップグレードする
  • HHVM に組み込みの Proxygen で SSL/TLS や HTTP/2 を利用する - Qiita

    概要 HHVM には HTTP サーバーライブラリの Proxygen が組み込まれており、コマンドラインから起動できます。Proxygen は TLS/SSL および HTTP/2 に対応しています。 PHP のビルトインサーバーは SSL/TLS、HTTP/2 に対応していないので、運用環境でHHVM を使わなくてもテスト環境での選択肢の1つとして考えることができます。HHVM のプロジェクトが配布している Docker イメージを利用することで、導入の敷居が下がります。 テスト環境のために SSL/TLS を利用するほかの選択肢として、Swoole や Event エクステンションを挙げます。コードの例はこちらの記事をご参照ください。 コマンドツールで Proxygen を起動させる HHVM のコマンドツールから Proxygen を直接させる場合、オプションに -v Server

    HHVM に組み込みの Proxygen で SSL/TLS や HTTP/2 を利用する - Qiita
  • PHP 7.2 の開発版で導入された mb_chr、mb_ord、mb_scrub を試す - Qiita

    概要 PHP 7.2 の開発版 (2016年9月時点で master ブランチ)に mb_chr、mb_ord、mb_scrub が導入されました。これらの関数は私 (masakielastic) が実装を提案し、yohgaki さんが検証と導入をしました。 PHP のソースコードの NEWS ファイルには次のような記載があります。 Mbstring Implemented request #66024 (mb_chr() and mb_ord()) (Masakielastic, Yasuo) Implemented request #65081 (mb_scrub()) (Masakielastic, Yasuo) polyfill-mbstring を利用する mbstring がインストールされていない環境もしくは PHP 7.2 以前のバージョンで mb_chr、mb_ord、m

    PHP 7.2 の開発版で導入された mb_chr、mb_ord、mb_scrub を試す - Qiita
  • Koa 2.0.0 の開発版で Async を使う - Qiita

    Koa 2.0.0 の開発版でミドルウェアの戻り値に ES6 (ES2015) の Promise が使われるようになりました。ES7 (ES2016) で提案されている Async を使えば、ロジックを把握しやすくなります。 Babel のセットアップ まずコマンドラインツールを導入します。 node v5 で導入されていない ES6 の機能を使うために babel-preset-es2015-node5 を導入します。Async/Await の構文のためのプラグインも別に導入します。ブラウザーでの Async 対応に関しては「Async/Await を使って HTTP リクエストを送信する」の記事をご参照ください。 npm install --save \ node-fetch babel-preset-es2015-node5 \ babel-plugin-syntax-async-

    Koa 2.0.0 の開発版で Async を使う - Qiita
  • Silex で SPA (Single Page Application) の開発 - Qiita

    ホームページビルダーでつくられた小規模なサイトをリニューアルして SPA (Single Page Application) をつくる際に検討したことをまとめました。 対象読者 小規模のコンテンツ提供と更新、ユーザー管理機能をもつサイトを題材に Silex の機能をどのように使うのかを学ぶことを主軸とします。結果として SPA に特徴的な話しはあまりありません。 フレームワークの選択肢 Silex と同じマイクロフレームワークを比較検討したいのであれば、 「PHP、Node.js、Go のミドルウェアに関する調査」の記事 をご参照ください。速度を大幅に改善できるという点で、著者は Phalcon Micro に興味をもっています。 Web API に特化したプロジェクトであれば、BEAR.Sunday や API Platform を挙げます。BEAR.Sunday 開発者の koriym

    Silex で SPA (Single Page Application) の開発 - Qiita
  • Docker Compose で PHP 7.0 の開発環境を構築する - Qiita

    PHP 7.0 の開発環境を構築するために書いた Docker Compose の設定ファイルをまとめました。 Docker について Docker はコンテナと呼ばれる単位でアプリケーションを管理するソフトウェアです。 コンテナはサーバー OS にインストールされているソフトウェアと独立しているので、サーバーの環境を壊すことなく、PHP のバージョンアップや HTTP サーバーの切り替えを手軽に試すことができます。 Linux ディストリビューションのパッケージ管理ツールの apt-get や yum をより使いやすくしたものとして見ることができるでしょう。 オーバーヘッドが少ないので、さくら VPS、DigitalOcean や Vultr などの格安の VPS ホスティングサービスで使うことができます。 DigitalOcean と Vultr はコンテナの運用に特化した CoreO

    Docker Compose で PHP 7.0 の開発環境を構築する - Qiita
  • 1