ソフトウェア設計をしているとUMLで表現する必要がしばしばあります。オブジェクト指向の設計であったり、さまざまなモジュールが連動して動作するシステムであったり、状態の変化を説明するとき、UMLは非常に良い表現方法です。 ダイアグラムはその名のとおり図です。コンピュータを用いて画像を描画するには…
2017.07.13
1,788
Gitでソースを管理し、GitHubでコードレビューを行っている方も多いでしょう。 しかし、Gitを使って開発してみると、何かをミスしたり、予想に反する動作をすることが多いようです。 この記事では、実際に使用されているGit環境をサンプルに、よく発生する状況で使用できるGitコマンドを紹介し…
2017.07.11
1,263
前回の記事につながるWebコンポーネントの主要標準の1つであるカスタム要素について紹介します。 TL;DR <div>の代わりに<current-time>のように、適切な名前のタグを使用できる HTML要素とJavaScriptクラスを一度に作る IE11…
2017.06.22
1,656
React、Redux生態系のソケットのような外部イベント処理は、開発に多くの悩みを抱かせます。同じ外部イベントが発生してもアプリの状態によって、異なる方法で処理したり、無視したり、アプリの状態に関係なく常に処理したいこともあります。特に外部イベントがReduxのアクションと接続する場合、Redux…
2017.06.13
1,530
Webコンポーネント:Keep calm and #UseThePlatform このポスター(Keep Calm and Carry On, 平静を保ち、普段の生活を続けよ)は、英国政府が第二次世界大戦の直前、大規模空爆が予告された中で、国民にパニックや混乱に備え、平静を維持するようにと配布…
2017.06.12
419
ReduxはEvent SourcingパターンとFunctional programmingを組み合わせて、ライブラリ形式で実装したコンテナです。このコンテナは、アプリケーションの状態を保存し、簡単に予測できるようにして、一貫性のある実装を維持しつつ、テスト、メンテナンス、デバッグなどを簡単に処理…
2017.05.02
955
はじめに Socket.IO ウェブ環境では、クライアントであるブラウザとサーバー間でプッシュやリアルタイムデータを処理する際、複数の方法を利用しています。その中で、Ajaxを利用したpolling、Long pollingとストリーミングの特徴は、下図のように比較できます。 出典…
2017.06.08
2,950
Reactはシンプルでありながら十分に速い。しかし、大まかに作っても速いことはなく、うまく作ってこそ速くなります。Reactの動作原理を理解し、アプリケーションが遅くなる状況を探して修正することが重要です。幸いなことにReactはシンプルで理解しやすいライブラリです。 Reactのパフォーマンス最…
1,217
JavaScriptの開発において、AOPは聞きなれないテーマです。通常、AOPの概念を説明するとき、よくcross cutting concerns(横断的関心事)という言葉を使います。もう少し簡単にいうと、「ログを残すところはここ、そこ、あそこである」「ユーザーが入力したデータを関連する部分でも…
2017.04.12
1,221
データモデリングDBMSに関連するトピックを技術的な深さ・レベルに関係なく、これから継続的に共有していこうと思います。 最初のテーマは、相互作用のデータモデリングです。 今更ではありますが、これからもたくさん悩んだり検討したりする機会があると思うので、取り上げてみたいと思います。 まず例として…
2017.04.10
430