<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://organizeseries.com/"
	>

<channel>
	<title>WebComponents &#8211; HTML5Experts.jp</title>
	<atom:link href="/tag/webcomponents/feed/" rel="self" type="application/rss+xml" />
	<link>https://html5experts.jp</link>
	<description>日本に、もっとエキスパートを。</description>
	<lastBuildDate>Sat, 07 Jul 2018 03:14:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.19</generator>
	<item>
		<title>「Web Componentsが来る！CSS設計はどうなる？」―CSSのエキスパートに聞いてみた！</title>
		<link>/shumpei-shiraishi/22820/</link>
		<pubDate>Mon, 17 Apr 2017 01:30:36 +0000</pubDate>
		<dc:creator><![CDATA[白石 俊平]]></dc:creator>
				<category><![CDATA[デザイン]]></category>
		<category><![CDATA[Bootstrap]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Compass]]></category>
		<category><![CDATA[WebComponents]]></category>

		<guid isPermaLink="false">/?p=22820</guid>
		<description><![CDATA[こんにちは、編集長の白石です。 Safari 10.1からCustom Elementsが使えるようになったり、Microsoft EdgeもWeb Componentsの実装を約束していたりと、Web Componen...]]></description>
				<content:encoded><![CDATA[<p>こんにちは、編集長の白石です。<br>
<a href="https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_1.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Safari 10.1からCustom Elementsが使える</a>ようになったり、<a href="https://blogs.msdn.microsoft.com/msedgedev_japan/2016/04/19/microsoft-edge-and-web-components/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Microsoft EdgeもWeb Componentsの実装を約束していたり</a>と、Web Componentsの足音は刻一刻と迫ってきています。</p>

<p>そんな時代に、Web開発はどう変わるのか？まずはCSS設計というところに着目して聞いてみたいと思い、先日「Web Components時代のCSS設計」という座談会を開催し、エキスパートの方々にお話を伺ってみました。</p>

<p><img src="/wp-content/uploads/2017/04/DSC00139.jpg" alt="" width="640" height="405" class="alignnone size-full wp-image-22884" srcset="/wp-content/uploads/2017/04/DSC00139.jpg 640w, /wp-content/uploads/2017/04/DSC00139-300x190.jpg 300w, /wp-content/uploads/2017/04/DSC00139-207x131.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<h2>ゲストのエキスパート紹介</h2>

<h3>高津戸 壮さん</h3>

<p><img src="/wp-content/uploads/2017/04/6ec41b91e4d4403fc55b20ee707032df.jpg" alt="" width="300" height="240" class="alignleft size-full wp-image-22890" srcset="/wp-content/uploads/2017/04/6ec41b91e4d4403fc55b20ee707032df.jpg 300w, /wp-content/uploads/2017/04/6ec41b91e4d4403fc55b20ee707032df-207x166.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /><strong>株式会社ピクセルグリッド フロントエンドエンジニア</strong><br><br><span style="font-size: 90%;">Web制作会社、フリーランスを経て、株式会社ピクセルグリッドに入社。スケーラビリティを考慮したHTMLテンプレート設計・実装、JavaScriptを使った込み入ったUIの設計・実装を得意分野とする。著書に『改訂版 Webデザイナーのための jQuery入門』がある。CSS Nite 2011ベストセッションにおいて、全170セッションの中から、ベスト10セッションに、CSS Nite 2013ベストセッションでは、全278セッション中、ベスト20セッションに選出。</span></p>

<p><br></p>

<h3>小原 司さん</h3>

<p><img src="/wp-content/uploads/2017/04/076096f5cfa6bb724d6363f2fd4e7000.jpg" alt="" width="300" height="240" class="alignleft size-full wp-image-22891" srcset="/wp-content/uploads/2017/04/076096f5cfa6bb724d6363f2fd4e7000.jpg 300w, /wp-content/uploads/2017/04/076096f5cfa6bb724d6363f2fd4e7000-207x166.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /><strong>株式会社ピクセルグリッド UIデザイナー</strong><br><br><span style="font-size: 90%;">デザイン事務所で広告デザインの基礎を学び、2000年に独立。2007年頃からWebデザインにも取り組み、クロスプラットフォームアプリのデザイン、画面設計、実装に携わる。現在はその媒体の特長を活かしたグラフィックデザインに励む。マンセル色相環とムーン＆スペンサー配色理論を採用した配色アプリ『HUE360』の開発を行っている。著書に『改訂版 Webデザイナーのための jQuery入門』、『ノンデザイナーズ・デザインブック[第4版]』。</span></p>

<p><br></p>

<h3>榊原 昌彦さん</h3>

<p><img src="/wp-content/uploads/2017/04/DSC00022.jpg" alt="" width="300" height="240" class="alignleft size-full wp-image-22892" srcset="/wp-content/uploads/2017/04/DSC00022.jpg 300w, /wp-content/uploads/2017/04/DSC00022-207x166.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /><strong><strong>一般社団法人リレーションデザイン研究所 代表理事</strong></strong><br><br><span style="font-size: 90%;">大学院卒業後、一般社団法人リレーションデザイン研究所立ち上げ。その後、まちづくりの産業化を目指す一般社団法人エリア・イノベーション・アライアンスにも参画し、全国の様々なまちづくりの現場に携わる。事業の構造的転換を図り、Webを導入。事業で用いるWebアプリやシステムの開発を行っている。関西フロントエンドユーザーズグループを中心に活動し、CodeIgniter、Ionic2、Onsen UI 2についてもSlackやTwitterを通じて関わる。</span></p>

<p><br></p>

<h2>CSS設計の遍歴を探る…3年前、どうしてましたか？</h2>

<p><strong>白石</strong>: 今回の座談会は「Web Components時代のCSS設計」と題し、Web Componentsが一般的に普及した未来の話を主眼として、そこに至るまでの流れも重視したいと思っています。</p>

<p>過去のCSS設計から現在の皆さんのベストプラクティスの話をもとに、未来に向けた話も聞いていきます。 まずは3年前くらいから振り返っていきたいのですが、当時のCSS設計はどんなふうにしていましたか？</p>

<p><img src="/wp-content/uploads/2017/04/d76a6c32875387d7e4434ff5f8e4e993.jpg" alt="" width="640" height="427" class="aligncenter size-full wp-image-22901" srcset="/wp-content/uploads/2017/04/d76a6c32875387d7e4434ff5f8e4e993.jpg 640w, /wp-content/uploads/2017/04/d76a6c32875387d7e4434ff5f8e4e993-300x200.jpg 300w, /wp-content/uploads/2017/04/d76a6c32875387d7e4434ff5f8e4e993-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><strong>榊原</strong>: ちょっと調べてみたのですが、3年前というとiOS7がフラットデザインを採用した年なんですよね。</p>

<p><strong>白石</strong>: おお！そう聞くとずい分昔な気がしますね。</p>

<p><strong>榊原</strong>: そう、そしてCSSまわりの話でいうと、Bootstrapがフラットデザインを採用しました。UIデザインの潮流が大きく変わった年でもあります。</p>

<p><strong>白石</strong>: なるほど。そういう状況下で、榊原さんはどのようにデザインを行っていましたか？ UIのビジュアルデザインも、設計という意味でのCSS設計も含めてお聞かせください。</p>

<p><strong>榊原</strong>:その頃は、デザイナーがPhotoshopなどで作ったデザインカンプを元に、「ピクセルパーフェクト」で書き起こしていました。 最近は、レスポンシブなWebサイトもわりと当たり前になったおかげで、ピクセルパーフェクトってあまり聞かなくなりましたよね。</p>

<p><strong>白石</strong>: なるほど。高津戸さんはいかがですか？</p>

<p><strong>高津戸</strong>: 実は私と小原は3年前も今も、やっている案件自体は変わらないので、やり方自体もそれほど変わっていないんです。どういうふうにCSS設計を行っているかというと、デザインを様々な単位に分割してCSSのクラスにまとめ、そうしたパーツを組み合わせたり再利用したりしながらサイトを構築していく。レゴブロックを組み立てるような要領です。</p>

<h2>やはり話題に上がります、OOCSS</h2>

<p><strong>白石</strong>: それは、OOCSS (オブジェクト指向CSS)の考え方と関係しているのでしょうか？</p>

<p><strong>高津戸</strong>: そうですね…。OOCSSについて話すと長くなるので、詳細は割愛します(笑)。OOCSSはヤフーのエンジニアだったニコール・サリバンが提唱した手法で、サイトを構成するパーツを、レゴのような小さい単位のモジュールの集まりで考えるというものです。その中で、オブジェクト指向プログラミングの考え方を応用して、似通ったモジュールをクラスの継承のような実装で実現するというものです。</p>

<p><strong>白石</strong>: なるほど。以前から誰かに聞きたかったのですが、例えば「テキストを右寄せにする」ための「align-right」というクラス、もっというと「8pxのマージン」をつけるための「margin-8」みたいなクラスを作って組み合わせる、というのもOOCSSと言えるんでしょうか？ 正直、あまり好みではないのですが…。</p>

<p><strong>高津戸</strong>: それがOOCSSかどうか、でいえば「そうだ」と言えるとは思います。ただ、OOCSSがCSSを構造的に扱おうという考え方が広く広まっていなかった時は、そういうUIパーツをモジュール化して効率的に設計しようとした点が重要なところでした。</p>

<p>その頃はそれを実現する手段として、複数のクラスを一つの要素に指定し、スタイルを当てるという方法を採用していたんです。なので、そういう複数クラスを利用することがOOCSSなのかと聞かれたら、否定することはできないですけれども、複数クラスの利用＝OOCSSというわけででもないですね。</p>

<p><img src="/wp-content/uploads/2017/04/98abd82c9eed3987bd54bee5e67b67cd.jpg" alt="" width="640" height="417" class="aligncenter size-full wp-image-22904" srcset="/wp-content/uploads/2017/04/98abd82c9eed3987bd54bee5e67b67cd.jpg 640w, /wp-content/uploads/2017/04/98abd82c9eed3987bd54bee5e67b67cd-300x195.jpg 300w, /wp-content/uploads/2017/04/98abd82c9eed3987bd54bee5e67b67cd-207x135.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><strong>榊原</strong>: Bootstrapは、OOCSSの一つのかたちだとは思います。ただ、BootstrapなどのCSSフレームワークを使いはじめたばかりの頃に思ったのは、フレームワークの流儀に合わせるためにdivを追加していくのはどうなのかな、と。 本来不要なはずのdivじゃないですか。結果、HTMLの見通しが悪くなったりするので、こういう不満を解決するのも（後で論じる）Web Componentsの役割なのかなと思います。</p>

<p><strong>白石</strong>: 小原さんは、UIデザイナーの立場でいうと、3年前はどのようなかたちでデザインやワークフローを行っていましたか？ 例えばPhotoshopでカンプを作ったりするのでしょうか？</p>

<p><strong>小原</strong>: いえ、ぼくはそもそもPhotoshopは使っているわけではなくて、Illustratorを使ってます。Illustratorはキャンバスを広大に使えるので、状態違いを横に置いたり、引出線でメモを入れたりしていますね。Illustratorでデザインしたあと、そこにエンジニアにお願いすることもいろいろと書き込んだりします。</p>

<p><strong>高津戸</strong>: 小原のデザインは「エンジニアフレンドリー」と言いますか(笑)、指示が細かくて適切なんです。パディングの幅とかまで書いてあることもありますし、時にはCSSのコードが書かれたJSFiddleのURLが貼られていることもあります(笑)。</p>

<p><strong>小原</strong>: アニメーションなどは、実際に自分で試してみないとデザインできませんから。試してみた結果を参考として伝えるわけですが、そのまま（そのコードを）使ってくれという意味ではありません。同じような結果になる、より良いコードに書き換えてもらう前提ではあります。</p>

<h2>デザインのコンポーネント化、そして共通化</h2>

<p><strong>白石</strong>: 先ほど高津戸さんが言っていた「レゴブロックを組み立てるような」構築の仕方についてお聞きしたいのですが、そういう共通化や部品化、いわば「コンポーネント化」はUIデザインの段階から考えているものなのでしょうか？</p>

<p><strong>小原</strong>: いえ、UIデザインの段階では考えていませんね。その段階では全体で見ることが重要だと思っているので、パーツ単体でデザインするわけではありません。</p>

<p><img src="/wp-content/uploads/2017/04/afe58b3b7d24ed975e22ca24d862ab30.jpg" alt="" width="640" height="421" class="aligncenter size-full wp-image-22905" srcset="/wp-content/uploads/2017/04/afe58b3b7d24ed975e22ca24d862ab30.jpg 640w, /wp-content/uploads/2017/04/afe58b3b7d24ed975e22ca24d862ab30-300x197.jpg 300w, /wp-content/uploads/2017/04/afe58b3b7d24ed975e22ca24d862ab30-207x136.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><strong>白石</strong>: なるほどー。UIデザインの段階で共通化が可能だと判明することも多々あるんじゃないかな、と思ってお聞きしたんですよね。ボタンのパディングだとかもそうでしょうし、色なども。</p>

<p><strong>高津戸</strong>: ああ、色はかなり重要ですね。色をSassの変数とかにして、共通化できるんじゃないか…というのは私たちも何度も検討しています。ただ、今はそうしていないですね。</p>

<p><strong>白石</strong>: プリプロセッサはSassを使ってらっしゃるんですね？LessやStylusなどもありますが。</p>

<p><strong>高津戸</strong>: はい、Sass一色ですね。</p>

<p><strong>榊原</strong>: <a href="https://github.com/Compass/compass" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Compass</a>とかも懐かしいですよね。</p>

<p><strong>高津戸</strong>: ああ、懐かしいですね。昔、ブラウザごとのベンダープレフィックスを付けていくのにCompassの関数を利用したりしていましたが、今はPostCSSにautoprefixerというプラグインがあって、それが自動的にベンダープレフィックスを付与してくれるので、めっきり使わなくなりました。CompassってRuby Sassを前提にしていましたが、今はぼくらはより高速なnode-sassを使っています。</p>

<p><strong>榊原</strong>: そうですね、そもそもCompass自体もうメンテナンスされていませんしね。</p>

<p><strong>白石</strong>: で、先ほどの話に戻りますが、色をSassの変数などで管理しようとしたけどまだやっていない、と。</p>

<p><strong>小原</strong>: そうですね、やっていないです。様々な場面で同じ印象を与えようとすると、色って一元的なものじゃなくなるんです。例えば同じ色のボタンでも、背景が暗い場合と明るい場合では、明るさが大きく違って見えてしまう場合があります。</p>

<p>そういうふうに、状況に応じて色合いの微調整を行うことを考えると、Sassの変数で一元管理するというやり方はうまく管理し続けられたことがありません。</p>

<p><strong>高津戸</strong>: エンジニア的な考え方でいくと色は常に同じに思えてしまうし、一元管理が望ましいとも思えるのですが、現実と照らし合わせると難しいところもあって、今はそうしていないということです。 ただ、Sassのlighten()やdarken()などの関数を使えば、ベースカラーを派生させた色合いの微調整が可能なので、それを活用して色を一元管理できるかも…とは考えています。</p>

<p><strong>白石</strong>: 最近、<a href="http://scg.ar-ch.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Sass Color Generator</a>という便利なものがあるのを発見して、重宝してます。</p>

<p><strong>高津戸</strong>: 色については、調整のための関数がCSSの標準でも提案されていますね（著者注: <a href="https://drafts.csswg.org/css-color/#modifying-colors" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Color Module Level4</a>）。</p>

<p><strong>白石</strong>: おお、そうなんですね。変数とかも、<a href="https://developer.mozilla.org/ja/docs/Web/CSS/Using_CSS_variables" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Variables</a>などの標準でサポートされつつありますし、CSS標準にも引き続き注目ですね。</p>

<p>では、過去の話はこれくらいにして、現在皆さんが行っているCSSデザインという話に移行しましょうか。</p>

<h2>CSSフレームワーク使う？インブラウザデザインする？</h2>

<p><strong>白石</strong>: 皆さんは、現在はどのようなワークフローでUIデザインからCSS設計まで行っていますか？ 榊原さんいかがでしょう。</p>

<p><strong>榊原</strong>: ぼくは手書きでワイヤー書いちゃったら、あとは直接ブラウザ上で確認してしまいますね。 そういう流れなので、CSSフレームワークは必須です。ざっとコードを組んでしまって、ブラウザ上で確認と修正を繰り返して調整していく感じです。</p>

<p>SketchとかAdobe XDとか、Webやアプリに特化したプロトタイピングツールも試して便利だとは思いましたが、まだ本格的に使ってはいません。</p>

<p><strong>白石</strong>: なるほど。榊原さんはインブラウザデザインが主だと。ちなみにCSSフレームワークは何を使うことが多いんでしょうか？</p>

<p><strong>榊原</strong>: ぼくは<a href="http://foundation.zurb.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Foundation</a>を使うことが多いですね。</p>

<p><strong>白石</strong>: ピクセルグリッドのお二人は、3年前とほぼ変わらない、ということでしたね。</p>

<p><strong>小原</strong>: そうですね。今のところSketchは使っていません。</p>

<p>インブラウザデザインは、最終的な成果物を確認しながらできるというのはとても良いのですが、デザインをより良くするという視点で考えると、確認と改善をするためにコードを書かないといけないので、その分時間がかかってしまうと感じています。</p>

<p>ある程度出来上がってからの調整を行うにはいい方法だと思いますが、UIデザインの初期段階だとやはりツールを使ったほうがデザインを素早く行えるかなと。使い分けが大事だと思います。</p>

<p><img src="/wp-content/uploads/2017/04/e47684ae098fd27a22bcf770a9381fc9.jpg" alt="" width="640" height="411" class="aligncenter size-full wp-image-22906" srcset="/wp-content/uploads/2017/04/e47684ae098fd27a22bcf770a9381fc9.jpg 640w, /wp-content/uploads/2017/04/e47684ae098fd27a22bcf770a9381fc9-300x193.jpg 300w, /wp-content/uploads/2017/04/e47684ae098fd27a22bcf770a9381fc9-207x133.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><strong>高津戸</strong>: ぼくらは受託のお仕事が中心だから、というのもあると思います。お客様からの要望を聞いて、UIデザインを提案して…っていうフローが重要なので、可能な限り素早くUIデザインを改善できる形に落ち着くんだと思います。</p>

<p>あと、<strong>お客様からのニーズに細かく対応していくとなると、CSSフレームワークとかは邪魔になってしまうことが多い</strong>。</p>

<p><strong>小原</strong>: そうですね。CSSフレームワークはあるレベルまでは便利なのですが、そこを超えて「カスタマイズ」の域に達してしまうと、途端に作業が大変なものになってしまいます。</p>

<p><strong>白石</strong>: それはわかる。ぼくらが作っているTechFeedというサービスでも、現在IonicというUIフレームワークを使っているのですが、<strong>「<code>ionic-hack.scss</code>」っていうファイルに闇のようなコードを詰め込んでいます(笑)</strong>。</p>

<p><strong>榊原</strong>: 私もBootstrap使ってた時、「<code>bootstrap-override.scss</code>」ってファイルを作ってましたよ(笑)。</p>

<p><strong>白石</strong>: フレームワークを使うか使わないか、って話、些細なことのように思われがちですが、結構大事な話ですよね。</p>

<p><strong>高津戸</strong>: ぼくらも、社内だったりプロジェクト単位だったりでフレームワークのようなものを持ってはいるんです。先程申し上げたように、レゴブロックを組み合わせて作る要領で構築を行えるように、ですね。</p>

<p>一般的なCSSフレームワークを使うとなると、まずいらないコードが大量についてきて、そういうコードを捨てるところから始めたくなってしまいます。 不要なコードがたくさんある、というのはプロジェクト全体の見通しの点でも、コードのメンテナンスの上でもよくないですしね。</p>

<p><strong>白石</strong>: なるほど、プロジェクト内で再利用できる部分などについては、きちんとフレームワーク化、もっというとコンポーネント化しているという話ですね。 では、いよいよ最後のお題として、今日の主題である「Web Components時代のCSS設計」について話しましょうか。</p>

<h2>Web Componentsって…なに？</h2>

<p><strong>白石</strong>: ではまず、コンポーネント指向とWeb Componentsについて、榊原さんに簡単に説明をお願いしたいと思います。</p>

<p><img src="/wp-content/uploads/2017/04/d0d9a042ba8bbe43936118751edaeda4.jpg" alt="" width="640" height="427" class="aligncenter size-full wp-image-22900" srcset="/wp-content/uploads/2017/04/d0d9a042ba8bbe43936118751edaeda4.jpg 640w, /wp-content/uploads/2017/04/d0d9a042ba8bbe43936118751edaeda4-300x200.jpg 300w, /wp-content/uploads/2017/04/d0d9a042ba8bbe43936118751edaeda4-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><strong>榊原</strong>: はい、では<a href="https://speakerdeck.com/rdlabo/web-components-css-design" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">こちらのスライド（Webコンポーネント時代のCSSデザイン）</a>をご覧ください。</p>

<p>これはHTML5 ExpertsのWebサイトなのですが、よくみると同じようなデザインパーツが使いまわされていますよね。そういったデザインパーツを共通規格化するのがコンポーネント指向です。使い回し、というとちょっと表現悪いので、「再利用性を高める」といったりしています。</p>

<p><img src="/wp-content/uploads/2017/04/webComponents-02.jpg" alt="" width="600" height="450" class="aligncenter size-full wp-image-22894" srcset="/wp-content/uploads/2017/04/webComponents-02.jpg 600w, /wp-content/uploads/2017/04/webComponents-02-300x225.jpg 300w, /wp-content/uploads/2017/04/webComponents-02-207x155.jpg 207w" sizes="(max-width: 600px) 100vw, 600px" /></p>

<p>例えば、そういう思想を理論化したものとして<a href="http://bradfrost.com/blog/post/atomic-web-design/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Atomic Design</a>があります。</p>

<p>デザインのパーツを原子、分子、生体、テンプレート、ページという粒度で構成していく。 コンポーネントの再利用については、こういったアイデアが提案されて、試行錯誤されてきました。</p>

<p>（榊原補足：厳密には、Atomic Designは粒度毎のコミュニケーションとワークフローデザイン論ですので、「コンポーネント指向の理論」という見方は一側面となります）</p>

<p><img src="/wp-content/uploads/2017/04/slide-3-640x480.png" alt="" width="600" height="450" class="aligncenter size-large wp-image-22824" srcset="/wp-content/uploads/2017/04/slide-3.png 640w, /wp-content/uploads/2017/04/slide-3-300x225.png 300w, /wp-content/uploads/2017/04/slide-3-207x155.png 207w" sizes="(max-width: 600px) 100vw, 600px" /></p>

<p>しかし、実際にコンポーネントの再利用を実践するにあたっては、これまではフレームワークや、CSSのクラス名などをやりくりして乗り切っていたわけです。</p>

<p><img src="/wp-content/uploads/2017/04/webComponents-03.jpg" alt="" width="600" height="369" class="aligncenter size-full wp-image-22895" srcset="/wp-content/uploads/2017/04/webComponents-03.jpg 600w, /wp-content/uploads/2017/04/webComponents-03-300x185.jpg 300w, /wp-content/uploads/2017/04/webComponents-03-207x127.jpg 207w" sizes="(max-width: 600px) 100vw, 600px" /></p>

<p>こうした問題を抜本的に解決すべく、標準技術として提案されているのがWeb Componentsです。 Web Componentsは、端的にいうと自作のタグを作れる技術です。</p>

<p><img src="/wp-content/uploads/2017/04/slide-5-640x480.png" alt="" width="600" height="450" class="aligncenter size-large wp-image-22826" srcset="/wp-content/uploads/2017/04/slide-5.png 640w, /wp-content/uploads/2017/04/slide-5-300x225.png 300w, /wp-content/uploads/2017/04/slide-5-207x155.png 207w" sizes="(max-width: 600px) 100vw, 600px" /></p>

<p>Web Componentsは、Custom Elements、Templates、HTML Imports、Shadow DOMと言った要素技術から成り立っています。</p>

<p><img src="/wp-content/uploads/2017/04/slide-6-640x480.png" alt="" width="600" height="450"class="aligncenter size-large wp-image-22827" srcset="/wp-content/uploads/2017/04/slide-6.png 640w, /wp-content/uploads/2017/04/slide-6-300x225.png 300w, /wp-content/uploads/2017/04/slide-6-207x155.png 207w" sizes="(max-width: 600px) 100vw, 600px" /></p>

<p>ブラウザによっても、要素技術によっても対応状況には差がありますが、着実に実装は進んでいますし、Polyfillを使うとほとんどの環境下で利用することができます。近い将来、あらゆる環境でWeb Componentsが利用できるようになるのは間違いないでしょう。</p>

<p><img src="/wp-content/uploads/2017/04/webComponents-04-1.jpg" alt="" width="600" height="432" class="aligncenter size-full wp-image-22898" srcset="/wp-content/uploads/2017/04/webComponents-04-1.jpg 600w, /wp-content/uploads/2017/04/webComponents-04-1-300x216.jpg 300w, /wp-content/uploads/2017/04/webComponents-04-1-207x149.jpg 207w" sizes="(max-width: 600px) 100vw, 600px" />
<img src="/wp-content/uploads/2017/04/webComponents05.jpg" alt="" width="600" height="322" class="aligncenter size-full wp-image-22899" srcset="/wp-content/uploads/2017/04/webComponents05.jpg 600w, /wp-content/uploads/2017/04/webComponents05-300x161.jpg 300w, /wp-content/uploads/2017/04/webComponents05-207x111.jpg 207w" sizes="(max-width: 600px) 100vw, 600px" /></p>

<h2>Web Components時代のCSS設計</h2>

<p><strong>白石</strong>: 榊原さん、簡潔なご説明、ありがとうございました。さて、こうして近い将来Web Componentsの普及が見込めるという状況において、CSS設計などにどう影響するかをお聞きしたいのですが…そもそもWeb Componentsってどう使われるんでしょうね。</p>

<p><strong>榊原</strong>: いきなり世界がすべてWeb Componentsになることはないと思うんです。例えば昔はやった「ブログパーツ」みたいなもの、以前はiframeで作られていましたが、そういうものがWeb Componentsという形で流通して使われるようになるとか、そういうところから使われ始めるんじゃないかと。</p>

<p><strong>白石</strong>: 広く再利用可能なパーツが、Web Componentsによって流通しやすくなるんじゃないかということですね。</p>

<p><strong>榊原</strong>: そうですね、例えば<a href="https://www.webcomponents.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WEBCOMPONENTS.ORG</a>というサイトでは、そういうコンポーネントが共有されていますので、これをサイト制作やアプリ開発に一部利用していくとか、そういうあたりから使われていくんじゃないかと。</p>

<p><img src="/wp-content/uploads/2017/04/985160f44912dcf9d52d8a3b71ee9a2e.jpg" alt="" width="640" height="423" class="aligncenter size-full wp-image-22907" srcset="/wp-content/uploads/2017/04/985160f44912dcf9d52d8a3b71ee9a2e.jpg 640w, /wp-content/uploads/2017/04/985160f44912dcf9d52d8a3b71ee9a2e-300x198.jpg 300w, /wp-content/uploads/2017/04/985160f44912dcf9d52d8a3b71ee9a2e-207x137.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><strong>白石</strong>: では、Web ComponentsはCSS設計にどう影響を与えるでしょう？</p>

<p><strong>高津戸</strong>: Web Componentsになったからいきなり変わるということでもなくて、すでに変化は始まっているとは思うんですよね。</p>

<p>例えば<a href="http://getbem.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">BEM</a>や<a href="https://smacss.com/ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">SMACSS</a>などは、クラスの命名規則やカテゴライズによって、スタイルの再利用性や独立性を高めています。こういう手法を採用してWebアプリを構築している場合、すでにそれはコンポーネント指向的なCSS設計を始めていると言ってもいいんじゃないかな、と思います。</p>

<p><strong>白石</strong>: HTML5Experts.jpに寄稿してくださった<a href="https://html5experts.jp/takazudo/21946/" data-wpel-link="internal">Enduring CSS</a>などもそうでしょうか？</p>

<p><strong>高津戸</strong>: そうですね。Enduring CSSは、NamespaceやModuleという考え方を取り入れており、Namespaceごとにアセットを分離するよう設計していくのが特徴です。</p>

<p>そうすることで、例えばあるページが不要になった場合、Namespaceに対応するディレクトリごとバッサリと削除してしまえる。そのように分離して管理するということがECSSの目指す設計です。</p>

<p><strong>白石</strong>: なるほど。ほかには、コンポーネント指向に関連して、どのようなアプローチが取られていると思いますか？</p>

<p><strong>高津戸</strong>: 私自身はまだあまり触っていないのですが、やはり、Reactなどのコンポーネント指向のJSフレームワークの存在を抜きにしては語れないと考えています。</p>

<p>例えば、<a href="https://speakerdeck.com/vjeux/react-css-in-js" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS in JS</a>や<a href="https://github.com/css-modules/css-modules" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Modules</a>は、CSSのルールを全体に当てるのではなく、コンポーネント内だけに当てるのが第一であるという思想を実装に落としこんだ一つの形であると言っていいかなと。</p>

<p>現時点でも、こういった技術を取り入れることで、コンポーネントを意識した設計が行えるだろうとは思います。これらを例えばReactと合わせて使うことで、CSSが従来抱えていた問題を解決し、コンポーネント指向な開発と相性のいいCSS設計を進められるんじゃないかな、と期待しています。</p>

<p><img src="/wp-content/uploads/2017/04/d4da1a3c6453ef13a3cb52b9db93d971.jpg" alt="" width="640" height="397" class="aligncenter size-full wp-image-22909" srcset="/wp-content/uploads/2017/04/d4da1a3c6453ef13a3cb52b9db93d971.jpg 640w, /wp-content/uploads/2017/04/d4da1a3c6453ef13a3cb52b9db93d971-300x186.jpg 300w, /wp-content/uploads/2017/04/d4da1a3c6453ef13a3cb52b9db93d971-207x128.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><strong>白石</strong>: Angularなんかも、フレームワークの機能として、コンポーネントごとにCSSを分離してくれますよね。私も使っていますが、BEMみたいに命名規約に頼らずにスタイルをカプセル化できるので、クラス名が短いままでも他の部分との衝突を考えなくてすむので気楽です。</p>

<p><strong>榊原</strong>: はい、Angularを普通に使うと、CSSがコンポーネントごとにカプセル化されますね。Shadow DOMと似たような分離の仕組みをフレームワークで実現していますね（筆者注: AngularはShadow DOMを直接扱うことも可能）。</p>

<p><strong>白石</strong>: 榊原さんは、<a href="http://ionicframework.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Ionic2</a> (AngularをベースとしたUIフレームワーク。解説記事は<a href="https://html5experts.jp/rdlabo/22296/" data-wpel-link="internal">こちら</a>)や<a href="https://ja.onsen.io/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Onsen UI2</a>（ReactやAngularなど様々なフレームワークと合わせて使えるUIフレームワーク。解説記事は<a href="https://html5experts.jp/n_matagawa/20766/" data-wpel-link="internal">こちら</a>）などの、コンポーネント指向のUIフレームワークも活用されてらっしゃいますよね。</p>

<p><strong>榊原</strong>: はい、そうですね。Ionicなどで素早くUIを構築してしまって、あとはブラウザ上でデザインしていく…というフローで最近はデザインと開発を行っています。</p>

<p><strong>白石</strong>: BootstrapやFoundationなどのCSSフレームワークをベースに素早くUIを作って、あとはブラウザ上でいじる…というのと同様の手法でアプリケーションのデザインを行っているわけですね。</p>

<p>となると結局また、「CSSフレームワークを使うか否か」という先ほどの話と同様に「汎用的なコンポーネントライブラリを使うか否か」という話も出てきそうです。</p>

<p>とはいえ、「外部のコンポーネントを全く使わない」という選択肢もないと思うんですよね。例えばピクセルグリッドさんでも、jQuery UIのDatepicker（日付選択ダイアログ）なんかは使ってたんじゃないかと思うんですが、結局そのデザインカスタマイズなどはどうしてらっしゃったんでしょう？</p>

<p><strong>小原</strong>: 実はDatepickerについても、ぼくら自作していたので…(笑)。</p>

<p><strong>白石</strong>: ええっ！それはすごい。</p>

<p><strong>小原</strong>: もちろん、外部のUIパーツとか、全く使わないわけじゃないですよ。お客様のニーズを満たせるもの、自分たちが求めるクオリティを満たすものがあるかどうかまずは探してみて、なければ自分たちで作るって感じですね。</p>

<p>&#8230;</p>

<h2>編集後記</h2>

<p>というかんじで、イベントは盛況のうちに終了いたしました。その後の懇親会にもかなりの人数の方々が参加され、Webエンジニア同士の交流も大いに盛り上がりました。HTML5Experts.jpは、今後もこうしたイベントを開催していきますので、ご期待ください。</p>

<p><img src="/wp-content/uploads/2017/04/05fb7057bc4d7315b6d7d47155d2989c.jpg" alt="" width="640" height="407" class="aligncenter size-full wp-image-22902" srcset="/wp-content/uploads/2017/04/05fb7057bc4d7315b6d7d47155d2989c.jpg 640w, /wp-content/uploads/2017/04/05fb7057bc4d7315b6d7d47155d2989c-300x191.jpg 300w, /wp-content/uploads/2017/04/05fb7057bc4d7315b6d7d47155d2989c-207x132.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>最後に、イベントの様子を書き起こしつつぼくが感じた、今回の結論めいたものを最後に記したいと思います。</p>

<p>そもそもなぜWebにコンポーネント化が求められているのかというと、その理由の一つに「<strong>再利用性</strong>」があります。そしてその再利用性は、「プロジェクトを横断した、汎用的な再利用性」と「プロジェクト内における再利用性」の2種類が考えられます。</p>

<p>Web Componentsが普及することのメリットの一つは、<strong>汎用的な再利用性を持つコンポーネントの流通が活発になる</strong>ことでしょう。</p>

<p><a href="http://webcomponents.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WEBCOMPONENTS.ORG</a>に見られるコンポーネントのリポジトリはこれからも増えてくることでしょうし、コンポーネントを有料で販売するというビジネスも早晩現れることでしょう。</p>

<p>そうしたコンポーネントを組み合わせて素早くアプリケーションを開発する、というアプローチは、今後より一般的になると思われます。</p>

<p>ただし、そうした外部ライブラリやフレームワークを使用する際に厄介なのが、<strong>カスタマイズが面倒</strong>という問題です。特に、Shadow DOMはCSSを強くカプセル化しますので、カスタマイズがより困難になる印象もあるかもしれません。</p>

<p>しかし、Web Components (Shadow DOM)には<a href="https://www.html5rocks.com/ja/tutorials/webcomponents/shadowdom-201/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">コンポーネント内部をスタイリングする様々な手段があります</a>。それらを使って「汎用的で、スタイリングも容易なコンポーネント」を開発する手法は、今後ベストプラクティスが模索されていくことと思います。</p>

<p>一方で受託開発のように、先にデザインを綿密に擦り合わせた後に開発に入るようなワークフローの場合、外部のコンポーネントをカスタマイズするコストや、コンポーネント内部の構造を把握するためのコスト（そして多くの場合、完全に把握し切ることはないでしょう）が大きく、<strong>外部ライブラリを利用するメリットを上回ってしまう</strong>ことも考えられます。</p>

<p>その場合は外部ライブラリやフレームワークを使用せず、できるだけプロジェクト内や社内で完結するよう、開発用のアセットを積み上げていく方が優れたアプローチでしょう。その場合でも、Web Componentsの「モジュラリティ」や「カプセル化」、「拡張性」といったメリットは非常に大きいのではないでしょうか。</p>

<p>そして今回の主題である「Web Components」は、まだまだこれからの技術なのは間違いありませんが、一方現場ではとっくにコンポーネント化は必要とされ、実践もされています。</p>

<p>それをより良くWeb標準でサポートするための技術がWeb Componentsであり、多くの人に待ち望まれている重要な技術であることが再確認できたかな、と思いました。</p>

<p><img src="/wp-content/uploads/2017/04/2066ff983ef8c9b69d7cae140a4b0f5d.jpg" alt="" width="640" height="428" class="aligncenter size-full wp-image-22903" srcset="/wp-content/uploads/2017/04/2066ff983ef8c9b69d7cae140a4b0f5d.jpg 640w, /wp-content/uploads/2017/04/2066ff983ef8c9b69d7cae140a4b0f5d-300x201.jpg 300w, /wp-content/uploads/2017/04/2066ff983ef8c9b69d7cae140a4b0f5d-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>
]]></content:encoded>
			</item>
		<item>
		<title>Web Componentsベストプラクティス、 誰のためのWebなのか、どうコードレビューをするかなど海外WEBテク20本を一挙公開</title>
		<link>/cssradar/6360/</link>
		<pubDate>Mon, 12 May 2014 01:00:28 +0000</pubDate>
		<dc:creator><![CDATA[斉藤 祐也]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[WebComponents]]></category>
		<category><![CDATA[海外]]></category>

		<guid isPermaLink="false">/?p=6360</guid>
		<description><![CDATA[連載： 海外WEBテク最新動向 (12)斉藤祐也の海外WEBテク定点観測＜Issue.13: 2014/04/01-2014/04/30＞ 今月の定点観測はWeb Componentsベストプラクティス、誰のためのWeb...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/web-tech/" class="series-151" title="海外WEBテク最新動向" data-wpel-link="internal">海外WEBテク最新動向</a> (12)</div><p><strong>斉藤祐也の海外WEBテク定点観測＜Issue.13: 2014/04/01-2014/04/30＞</strong></p>

<p>今月の定点観測はWeb Componentsベストプラクティス、誰のためのWebなのかについて、そしてソースコード・レビューをどう行うかなどを紹介します。</p>

<h2>注目ニュースピックアップ</h2>

<h3><a href="http://webcomponents.github.io/articles/web-components-best-practices/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Web Components ベストプラクティス &#8211; WebComponents.org</a></h3>

<p><img src="/wp-content/uploads/2014/05/web-component-best-practices.png" alt="web-component-best-practices" width="625" height="386" class="aligncenter size-full wp-image-6364" srcset="/wp-content/uploads/2014/05/web-component-best-practices.png 625w, /wp-content/uploads/2014/05/web-component-best-practices-300x185.png 300w, /wp-content/uploads/2014/05/web-component-best-practices-207x127.png 207w" sizes="(max-width: 625px) 100vw, 625px" /></p>

<p>原題: Web Components Best Practices</p>

<p>Web Componentsはまだこれからの技術であることを念頭に、この記事では現時点でのベストプラクティスを紹介しています。</p>

<ol>
<li>名前空間: 名前空間が他のWeb Componentと重複しないよう、また3文字以内に止めることが望ましい。</li>
<li>すでに存在している要素を可能な限りまねる: ブラウザ側で実装している要素と同じように実装すること。</li>
<li>エラーを出さずに失敗する: ブラウザ側で実装している要素と同じようにDOMとのインタラクションはJSのエラーを出さないように。</li>
<li>属性の使い方: Boolean値の属性は selected=“true” ではなく、selected のように指定する。 </li>
<li>イベントを使ってデータを渡す: データが大きいか、頻度が多くない限りはカスタムイベントを利用してコンポーネント間のデータのやりとりを行う。</li>
</ol>

<p>上記に加えて、11のリスト、合計16個のベストプラクティスが現時点で上げられています。</p>

<p>関連リンク:</p>

<ul>
<li><a href="http://www.polymer-project.org/articles/accessible-web-components.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Accessible Web Components &#8211; Part 1 &#8211; Polymer</a></li>
<li><a href="http://addyosmani.com/blog/the-webs-declarative-composable-future/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">The Web’s Declarative, Composable Future. &#8211; Addy Osmani</a></li>
<li><a href="http://www.polymer-project.org/articles/polymer-xtag-vanilla.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Custom Element Interoperability &#8211; Polymer</a></li>
</ul>

<h3><a href="http://paulbakaus.com/2014/04/16/winning-for-users/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"> 開発者のためではなく、ユーザのために &#8211; The Sea of Ideas</a></h3>

<p><img src="/wp-content/uploads/2014/05/winning-for-users.png" alt="winning-for-users" width="625" height="386" class="aligncenter size-full wp-image-6365" srcset="/wp-content/uploads/2014/05/winning-for-users.png 625w, /wp-content/uploads/2014/05/winning-for-users-300x185.png 300w, /wp-content/uploads/2014/05/winning-for-users-207x127.png 207w" sizes="(max-width: 625px) 100vw, 625px" /></p>

<p>原題: Winning for users, not developers</p>

<p>iOSやAndroidなどのネイティブアプリとWebアプリは様々な観点で比較されてきています。記事の筆者であるPaul Bakaus氏はその議論の多くで大切なポイントを見失っているとしています。<br />
例えばURLの存在がWebの優れた点としてあげられますが、URLそのものが優れているのではなく、URLはユーザにとって共有するのに、またアクセスしやすいものであるからこそ優れているのだとしています。<br />
議論が開発者視点のものになってしまっていて、ユーザの視点を見失ってしまっているのではないかという主張。</p>

<h3><a href="http://www.nczonline.net/blog/2014/04/15/a-framework-for-thinking-about-work/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">タスクにかかるコストと得られる価値について &#8211; NCZOnline</a></h3>

<p><img src="/wp-content/uploads/2014/05/a-framework-for-thinking-about-work.png" alt="a-framework-for-thinking-about-work" width="625" height="386" class="aligncenter size-full wp-image-6361" srcset="/wp-content/uploads/2014/05/a-framework-for-thinking-about-work.png 625w, /wp-content/uploads/2014/05/a-framework-for-thinking-about-work-300x185.png 300w, /wp-content/uploads/2014/05/a-framework-for-thinking-about-work-207x127.png 207w" sizes="(max-width: 625px) 100vw, 625px" /></p>

<p>原題: A framework for thinking about work</p>

<p>あるタスクにかかるコストが高すぎるという感覚値は、開発者として経験を積んでいけば、ある程度は得られるものです。しかし、単純にリクエストに対して『コストがかかりすぎる』というだけでは、『大切な機能なんだ』と言われると議論が終わってしまいます。Nicholas Zakas氏は、この記事でタスクにかかるコストと得られる価値について、どのように考えるべきかのフレームワークを紹介しています。</p>

<h3><a href="https://shanetomlinson.com/2014/code-review-how-do-you-do-it/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ソースコード・レビュー。どうやってますか? &#8211; Shane Tomlinson</a></h3>

<p><img src="/wp-content/uploads/2014/05/code-review-how-do-you-do-it.png" alt="code-review-how-do-you-do-it" width="625" height="386" class="aligncenter size-full wp-image-6362" srcset="/wp-content/uploads/2014/05/code-review-how-do-you-do-it.png 625w, /wp-content/uploads/2014/05/code-review-how-do-you-do-it-300x185.png 300w, /wp-content/uploads/2014/05/code-review-how-do-you-do-it-207x127.png 207w" sizes="(max-width: 625px) 100vw, 625px" /></p>

<p>原題:  How Do You Do Code Review?</p>

<p>複数人での開発が当たり前になるにつれ、ソースコードのレビューを行うことも増えてきています。しかし、そのソースコードのレビューをどうやるのかについての情報は、決して多くありません。Shane Tomlinson氏はこの記事で彼が実際に気をつけている点について共有しています。<br />
記事では、どのレベルの精査が必要なのかをどう決めているのか。そして、複雑なパッチに対してどう理解度を深めているのか、小さな変更で副作用を発生させないために、何をするべきか。最後に、どのようにフィードバックを返しているのか。<br />
ソースコードをレビューする人も、レビューを受ける人も参考になる点が多いはずです。</p>

<h3><a href="https://guides.github.com/activities/contributing-to-open-source/index.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">GitHubでオープンソースに貢献する方法 &#8211; GitHub Guides</a></h3>

<p><img src="/wp-content/uploads/2014/05/contributing-to-open-source.png" alt="contributing-to-open-source" width="625" height="386" class="aligncenter size-full wp-image-6363" srcset="/wp-content/uploads/2014/05/contributing-to-open-source.png 625w, /wp-content/uploads/2014/05/contributing-to-open-source-300x185.png 300w, /wp-content/uploads/2014/05/contributing-to-open-source-207x127.png 207w" sizes="(max-width: 625px) 100vw, 625px" /></p>

<p>原題: Contributing to Open Source on GitHub</p>

<p>すでにご存じの通り、GitHubはオープンソースへ貢献する場としては最大のサイトとなっています。そのGitHubから、これからオープンソースに貢献したいと考えている人に対してのアドバイスがこちらの記事。<br />
すでにオープンソースに貢献している方であれば、当たり前のことばかりかもしれません。しかし、反対に自らオープンソースとしてるプロジェクトを持っているのであれば、ここで紹介している事柄を揃えておくとオープンソースへの貢献者が増えるとも言えるはずですので、ぜひ。</p>

<h2>海外トレンドコラム</h2>

<h3><a href="http://insideintercom.io/how-we-design-at-intercom/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Intercomではどうやってデザインをしているか? &#8211; Inside Intercom</a></h3>

<p>原題: How we design at Intercom</p>

<p>デザインに関する非常に有用な記事を多く提供しているIntercomのPaul Adams氏による、Intercomではどうデザインをとらえ、そしてデザインしているかの記事。実際のメールとは異なる部分もあるでしょうが、この記事ではPaul Adams氏がIntercomのメンバーに送ったデザインについてのメールを掲載してます。</p>

<p>関連リンク:</p>

<ul>
<li><a href="http://cognition.happycog.com/article/and-they-all-look-just-the-same" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">And They All Look Just the Same &#8211; Cognition</a></li>
</ul>

<h3><a href="http://developer.telerik.com/featured/a-concise-guide-to-remote-debugging-on-ios-android-and-windows-phone/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">モバイル・デバイスにおけるリモートデバッグガイド &#8211; Telerik Developer Network</a></h3>

<p>原題: A Concise Guide to Remote Debugging on iOS, Android, and Windows Phone</p>

<p>モバイル開発における頭痛のタネの一つであるデバッグ。この記事は実際のモバイル端末でデバッグを行うための手法である、リモート・デバッグに対するガイドをわかりやすく紹介しています。</p>

<h3><a href="http://www.sitepoint.com/introduction-web-notifications-api/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Web Notifications API 事始め</a></h3>

<p>原題: An Introduction to the Web Notifications API</p>

<p>ネイティブアプリだけではなく、Webアプリでもユーザに対してプッシュ型のお知らせ、いわゆるノーティフィケーションという手法はごく当たり前になっています。この手法に対する実装はサービスごとにさまざまですが、W3Cは<a href="http://www.w3.org/TR/notifications/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Web Notifications</a>という仕様を発表し、標準化に向けての一歩を進めました。この記事ではその仕様を利用したノーティフィケーションについて紹介しています。</p>

<h3><a href="https://medium.com/p/3d1b0a9b810e" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">アニメーションを使って支払いに関するユーザー体験を改善する方法 &#8211; Michaël Villar</a></h3>

<p>原題: Improve the payment experience with animations</p>

<p>Stripeというサービスで、どのように支払いに関するユーザ体験を改善したのか。5つのアニメーション手法を、実際のアニメーションを見ながら紹介。アニメーションは「間」のデザインであり、支払いのようなフォーム要素で大きな影響を持つ手法ですので、参考にどうぞ。</p>

<p>関連リンク:</p>

<ul>
<li><a href="http://www.smashingmagazine.com/2014/04/15/understanding-css-timing-functions/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Understanding CSS Timing Functions &#8211; Smashing Magazine</a></li>
</ul>

<h3><a href="http://mts.io/2014/04/02/sass-unit-testing/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Sassを使ったユニットテスト &#8211; mts.io</a></h3>

<p>原題: Sass Unit Testing</p>

<p>フロントエンド開発において、JavaScriptのテストは当たり前と言えるほど一般化してきました。しかし、同じくらい複雑なはずのCSSプリプロセッサのテストはどうでしょうか?<br />
この記事では、Sassにおいてのロジック部分についてのテストをどう行うかについて紹介しています。</p>

<h3><a href="http://blog.teamtreehouse.com/tips-for-writing-better-code" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">よりよいコード書くために知っておきたいコツ &#8211; Treehouse Blog</a></h3>

<p>原題: Tips for Writing Better Code</p>

<p>より優れたコードを書くために、知っておきたいコツを5つ紹介。中級者くらいの経験者にとってはごく当たり前の5つですが、考えずにやっている事柄こそ、言語化するのは難しいものですので、初級者だけではなく、中級者、あるいは上級者の方にも読んでおいてほしい記事です。</p>

<h2>パフォーマンス最適化 &#35;perfmatters</h2>

<h3><a href="http://www.quirksmode.org/blog/archives/2014/04/suppressing_the.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">300msのクリック遅延を抑制するための調査 &#8211; QuirksBlog</a></h3>

<p>原題: Suppressing the 300ms click delay</p>

<p>タッチデバイスにおける300msのクリック遅延問題には多くの問題が潜んでいます。Chromeは最近この300msをmetaタグに「width=device-width」と設定することで無くし始めています。この記事でPeter Paul Koch氏は例によって事細かに「width=device-width」と300msの抑制について、実際のデバイスを使ってテストした結果を共有しています。</p>

<h3><a href="http://mrale.ph/v8/resources.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">V8に関する資料まとめ</a></h3>

<p>原題: V8 Resources</p>

<p>V8エンジンは言わずもがな、ChromeでもNode.jsにも利用されている非常に優れたJavaScriptエンジンです。V8エンジンのもう1つの特徴はこの種類のツールとしては多くの情報が公開されている点です。<br />
このページではそれら情報を1箇所にまとめて紹介しています。</p>

<h2>クローズアップ“ビデオ/スライド/ツール”</h2>

<h3>スライド/ビデオ</h3>

<h4><a href="http://daniel.haxx.se/http2/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTTP2.0について</a></h4>

<p>原題: http2 explained</p>

<p>HTTP2.0をプロダクションで利用しているというサービスはまだないかも知れませんが、今後はそれも変わっていくことでしょう。このページでは、そのHTTP2.0をプロトコルレベルから説明しているPDFそしてスライドを紹介しています。</p>

<h4><a href="http://sydcss-grid.appspot.com/#1" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Grid Layout  &#8211; Alex Danilo</a></h4>

<p>Flexboxの利用が増えてきた、というタイミングですが、このスライドはCSSでグリッド・レイアウトを実装するための仕様である、CSS Grid Layoutについて紹介しています。<br />
なかなか複雑な仕様なので、ビジュアルで解説してくれているこのスライドは非常にわかりやすくオススメです。</p>

<h4><a href="http://ericleads.com/2014/04/static-types-are-overrated-dynamic-duo-loose-types-and-object-extension/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">静的型付けは過大評価されている!? &#8211; Eric Elliott</a></h4>

<p>原題: Static Types are Overrated: Dynamic Duo – Loose Types and Object Extension</p>

<p>ニューヨークで開催されたVelocityにて、Eric Elliot氏による『静的型付けは過大評価されている!?』と題した発表。<br />
型の正しさだけでは、プログラムの正しさを補償するものではないとしています。彼はこの発表で、JavaScriptが持つ動的型付けの性質がアプリケーションを開発する上で、大きな武器になる点について触れています。</p>

<h3>ツール</h3>

<h4><a href="http://status.modern.ie/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Internet Explorer Web Platform Status and Roadmap &#8211; status.modern.IE</a></h4>

<p>Internet ExplorerにおけるHTML5、CSS3などの仕様の実装状況とロードマップを一覧できるサイト。<br />
ちなみに、Chromeにも同様のサイトがあるので併せてどうぞ: <a href="http://www.chromestatus.com/features" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chromium Dashboard</a></p>

<h4><a href="http://sizersoze.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">SIZER SOZE</a></h4>

<p>レスポンシブ・デザインにおいて、頭を悩ます問題の一つである画像の取り扱い。この扱いをおざなりにしてしまうと、単にパフォーマンスのよくないページが生まれてしまいます。このツールは、サイトのURLから画像をどれくらい無駄遣いしているのかをチェックしてくれます。</p>

<p>関連リンク:  <a href="http://filamentgroup.com/lab/picturefill_2_a.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Picturefill 2.0: Use the picture element today &#8211; Filament Group, Inc.,</a> / Picture要素のPolyfillが最新の仕様に併せてリニューアルしていますので、上のツールの結果が気になるものであれば、導入を検討してみては?</p>

<h4><a href="http://pumpula.net/p/apps/css-vocabulary/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Vocabulary</a></h4>

<p>CSSの用語をインタラクティブに実際のソースと照らし合わせて教えてくれるツールです。チームでの開発における共通認識は非常に大切ですから、しっかり覚えておきましょう。</p>

<h4><a href="http://www.jasondavies.com/animated-bezier/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Animated Bézier Curves &#8211; Jason Davies</a></h4>

<p>ベジェ曲線について。アニメーションを使ってベジェ曲線がどのように描かれるかについて解説。アニメーションはD3.jsを利用して作成されているそう。</p>

<p>★次回の「斉藤祐也の海外WEBテク定点観測」は2014年6月2日にお届け予定です。★</p>
]]></content:encoded>
		
		<series:name><![CDATA[海外WEBテク最新動向]]></series:name>
	</item>
	</channel>
</rss>
