STUDY

模写コーディングでスキルアップしよう!

こんにちは!昨年9月に入社をしたエンジニアのハットリです。       

勉強方法の1つとして模写コーディングをしたので、その手順などを紹介したいと思います。

模写コーディングとは

模写コーディングとは、「既存のサイトの見た目を真似てコーディングすること」です。
すでに世の中にあるサイトをコーディングできるので、実務に近いレベルでコーディングができます。実際に手を動かしながら勉強することができ、アウトプットにはもってこいの勉強方法です。

模写コーディングの手順

  1. 模写するオリジナルサイトを選ぶ
  2. 選んだサイトのキャプチャを取る&画像をダウンロードする
  3. 実際にコーディングする
  4. コーディング後のチェック

1. 模写するサイトを選ぶ

模写するサイトは自分自身の目的に合うサイトを選ぶべきです。
つまり、模写コーディングをしてどんなことを勉強したいか、が大切です。
たとえば、複雑なレイアウトのサイトで、レスポンシブでも崩れないコーディングを勉強したい時と、ECサイトのようなレイアウトのコーディングを勉強したい時は、選ぶサイトが違ってくると思います。

模写コーディングをする時は目的に合うサイトを選んだ方が、ある程度ゴールがわかり、取り組みやすいです。

模写コーディングの目的とルール

模写コーディングは目的が大切ということで、今回の僕の目的は「文章構造を意識したセマンティックなhtmlとムダのないscss記述」でした。

その際にルールも決めて行いました。

<今回の作業時のルール>

  • コーディング時はデベロッパーツールを使わない
  • わからないことは調べて解決する
  • レスポンシブ時の可変を同じ動きにする

ちなみに、今回は弊社の実績にあるページを選び、コーディングをしました。
弊社の実績はこちら

2. 選んだサイトのキャプチャと画像をダウンロード

模写するサイトが決まったら、サイトのキャプチャを取ります。そして、画像もダウンロードします(模写コーディングの目的やルールによります)。
※cssで背景画像として表示されている画像は一括でダウンロードできないので、個別にダウンロードする必要があります。

キャプチャを撮る方がいい理由は、実際の案件の流れに沿って模写コーディングができるからです。
実際の案件では、完成されたデザインデータから、margin、paddingなどの情報を確認して作業をします。
模写コーディングの時も、キャプチャをPhotoshopなどで開き、デザインの情報を確認しながら作業を進めるといいと思います!

3. 実際にコーディングする

それでは実際にコーディングをします。コーディングをするときは、前述したこと(模写コーディングの目的)をもう一度思い出してから作業しましょう!

そして、その目的に応じてルールも作りましょう。

<ルールの例>

  • コーディング時はデベロッパーツールを使わない
  • ピクセルパーフェクトで作成する
  • ページの情報を調べるときはできるだけ拡張機能を使う

etc…

ルールの内容は人それぞれだと思いますが、ルールを作ることによって、効率的に模写コーディングを進めることができます。
たとえば、「文章構造を意識してセマンティックなコーディングを勉強したい」という目的のみであれば、フォントや画像をまったく同じにコーディングするよりも、その時間で別なサイトを同じルールでコーディングした方が目的に沿っているのではないでしょうか。

4. コーディング後のチェック

実際に作業が終わったら、答え合わせをします。デベロッパーツールを使って、ソースコードを確認します。
htmlにはどんなタグが使われているか、cssはどんなプロパティが使われているかを確認しましょう。確認&修正を繰り返して、完成形に近づけていきます!

こちらは、実際に模写コーディングしたページとオリジナルページを並べたものです。

また会社の先輩や同じチームの方にソースレビューをしていただくのもいいですね。レビューに関しての質問や悩んだ部分なども直接聞くことができるので、とても勉強になると思います。
(僕はまだソースレビューを出していませんが、今後レビューいただきたいと思っています。エンジニアチームのみなさん、よろしくお願いいたします!!)

模写コーディングで使った便利なgoogle chrome拡張機能

ここで、模写コーディングをする時に使える便利な機能を紹介したいと思います。

キャプチャを取る時
→Awesome screenshot
画像をダウンロードする時
→Image Downloader
要素の幅や高さを測る時
→Page Ruler
→Dimensions
レスポンシブ表示を確認する時
→Responsive Viewer
ピクセルパーフェクトで作成するとき時
→Perfect Pixel

まとめ

実際に模写したコードとオリジナルサイトのコードを比べると多くの気づきがありました。見た目は同じでもまったく違うコードで実装されている部分やcssプロパティの使い方など、「こんな方法もあったのか」と、とても勉強になります。

たとえば、今回の目的である「セマンティックなhtml」に関しては、

僕の記述

index.html<span class="news-list__contents-date">2019/09/20</span>

オリジナルサイトの記述

index.html<time class="tile__time" datetime="2019-09-20">2019/09/20</time>

上記2つは日付部分のhtmlです。オリジナルサイトの方は<time>タグで記述されています。
<time>タグはhtml5から追加されたタグで、コンピューターやブラウザが理解できるように日時を示す役割を担っています。
必ず使用しなければいけない訳ではないですが、<span>を使うよりも<time>を使った方がよりセマンティックなhtmlですね。

このように1つ1つの知識を積みあげて、ただコーディングするだけではなく、「ムダのない、わかりやすいコード」を記述できるように日々精進したいと思います!

それではまた!