info 当サイトはアフィリエイト広告を利用しています
スキルアップ

NGなコーディングの進め方7選を紹介!【より良いコーディングを考える】

良いコーディングの進め方ってあるのかな?

コーディングの進め方って人によって様々ですよね。

私がまだ右も左もわからない新人コーダーの頃を思い出すと、
効率は悪いし、自分よがりなコードを書いていたし、メンテナンス性もよろしくない

今思い出すと本当に同じチームの方に申し訳なくなるやり方をしてしまっていました・・

ですが、今ではコーダー歴3年を超えてきて、
少しでも成長できたのではないかと思う部分があるので、
私なりの観点にはなりますが、NGだったなと思うコーディングの進め方について紹介していきたいと思います。

本記事を読むメリット

check_circle

  • 効率よくコーディングを進められる方法を知ることができる
  • 他の人があなたのコードを見たときに理解しやすいコードを書くことができる
  • メンテナンス性の高いコードを書くことができる

それでは早速本題に入っていきます!

NGなコーディングの進め方7選

まずは結論から先に書いておきます。

結論

check_circle

  1. すぐにコードを書き始める
  2. 変数やmixinの定義をしない
  3. PC・スマホのCSS記述場所を離して書く
  4. タグが適当(セマンティックじゃない)
  5. CSS設計が考えられていない
  6. 補足コメントが全くない
  7. ショートカットなどの早技を使わない

それでは一つずつ見ていきましょう!

NG例 1)すぐにコードを書き始める

デザインカンプをもらってすぐにコードを書き始めていませんか?

もちろんすぐにコードを書き始めてもコーディングはできるのですが、すぐにコードを書き始める前に実施しておくと良いものがあります。

check_circle すぐにコードを書き始める前にすべきこと

  1. サイトのデザインカンプ全体を確認する
  2. コンポーネント(部品)として使いまわせそうなデザインがないか確認する
  3. 実装困難な箇所や不明点があれば事前にデザイナーさんに確認しておく

これらをしておくと、後の作業が楽になります。

言われてみると当たり前のことかもしれませんが、
「とりあえず早くコーディングしてしまいたい」という思いがあるばかりに、
意外にできていない人もいらっしゃるのではないかと思います。

サイトのデザインカンプ全体を確認する

サイト構造として複数ページ(下層ページ)がある場合は全ページのデザインに目を通しておきましょう。
かつPC・スマホ両方のデザインカンプもあわせて見ておきましょう。

そうすることで、サイトのデザイン感、ページのレイアウト構造や何となくのコーディングのボリューム感などが認識できます。

ちょこすこーん

つまり先に「コーディングのゴールを確認しておく」ということです。
また次項の「コンポートネント」を見つける作業にも役立ってきます◎

コンポーネント(共通部品)として使いまわせそうなデザインがないか確認する

一般的なサイトの場合、ヘッダーやフッター・見出しなど必ず他ページに渡って同じデザインが使われているものがあります。

そういったものをコンポーネント(共通部品)と呼びます。

先にコードを書き始める前に、この「コンポーネントを探す」作業は非常に大事になってきます。

check_circle コンポーネントを探す重要性

  • 予めコンポートネントとして認識しておくことで、CSS設計やクラス命名において効率の良いコーディングができる
  • いざスタイルを当てるときに、CSSのコード記述量を少なくできる

コンポーネントについては、CSS設計を意識していないと上手く活用することは難しいかもしれません。
もしCSS設計を知らない方は、是非一度勉強してみてください!
(一段階上のコーダーになるためには必須スキルだと思います)

ちょこすこーん

CSS設計についてもう少し詳細な情報について知りたい方は後述しますので、参考にしてみてください!

実装困難な箇所や不明点があれば事前にデザイナーさんに確認しておく

コーディングを進めていく中で、都度デザイナーさんに質問・相談している方もいらっしゃるかと思います。

私も最初の頃はそうだったのですが、そうするとラリーが増えたり、回答待ちになって作業が進まなかったりと、
互いに負担が増えてしまうことが多くなってしまいました。

そのためあらかじめ、
不明点をまとめて質問しておく
相談できることはしておく

このような姿勢が大事になってくると思います。

こうすることで負担を最小限にとどめ、コーディング着手時にスムーズに作業できるようになるはずです。

ちょこすこーん

ですがコードを書いていく内に出てくる質問も当然あると思うので、事前の洗い出し作業はそこまで時間をかけ過ぎなくて良いと思います◎

このようにすぐにコーディングに着手するのではなく、デザインカンプ全体に目を通した上で、コーディング設計を考えたり、事前に不明点や課題を解決しておくと効率の良いコーディングにつながります◎

NG例 2)変数やmixinの定義をしない

前節にもあるように先に事前作業を終えたら、いよいよコードを書いていきます。

ですがここでも準備作業として、「変数」および「mixin」の定義をしておくと良いです。
※この段階では通常リセットcssなども必要になってくるかと思いますが、今回はそこまでは触れませんのでご了承ください。

変数やmixinを定義しておくと、コードの使い回しが簡単にできたり、何度も同じコードを書く必要がなくなります。

変数やmixinについては、私のこれまでの経験に基づいですが、以下のようなものを定義しておくと便利かと思います◎

check_circle 変数で定義しておくと良いもの

  • サイトでよく使いまわされる色(メインカラー・ベースカラー・アクセントカラー等)
  • サイトのレイアウトに関わる数値(インナー幅、左右padding等)
  • サイトで使われている文字フォント(日本語フォント、英語フォント等)

check_circle mixinで定義しておくと良いもの

  • メディアクエリとブレイクポイント
  • その他よく使いまわすコードや機能

/**
* 変数の定義
*/ 

// カラー
$text-color--base: #333;
$accent-color: #FFBF80;

// フォントファミリー
$font-family--en: 'Roboto', sans-serif;

// サイトインナー幅
%site-layout: {
  max-width: 100%;
  width: 1000px;
  padding: 0 20px;
  margin: 0 auto;
  
  @include mq() {
    padding: 0 15px;
  }
}
/**
* mixinの定義
*/ 

// ブレイクポイント
$breakpoints: (
  'sm': 'screen and (max-width: 640px)',
  'md': 'screen and (max-width: 767px)',
  'lg': 'screen and (min-width: 768px)',
) !default;

// メディアクエリ
@mixin mq($breakpoint: md) {
  @media #{map-get($breakpoints, $breakpoint)} {
    @content;
  }
}
ちょこすこーん

変数やmixinを定義するにはSassを使うのが前提になりますが、これらの作業をしておくと効率良くコーディングができます。
私が新規サイトをコーディングするときは欠かさずやっています!

NG例 3)PC・スマホのCSS記述場所を離して書く

私が職業訓練で初めてメディアクエリを習ったときは、
以下のような感じでPC用のCSSを書く場所、SP用のCSSを書く場所でエリアを分ける書き方をしていました。

オススメしない書き方

.test-el {
  text-align: center;
}
.test-el2 {
  font-size: 20px;
}

/* SP表示 */
@media screen and (max-width: 767px) {
  .test-el {
    text-align: left;
  }
  .test-el2 {
    font-size: 12px;
  }
}

同じような書き方をされている方はいますでしょうか?

この書き方の大きな問題点としては、
1要素に対してどのようなスタイルが当たっているかをそれぞれ別の場所を確認しにいかないとわからない点です。

これはかなり非効率で、レスポンシブ対応時や修正時にファイル内の行き来が多くなるため、かなりのストレスになりかねません。
PCとSPくらいのブレイクポイント数だとまだマシですが、更にブレイクポイントが増えたときはかなりしんどくなります。

そのため、以下例のようにメディアクエリを書くときは、1要素に対し、1箇所にまとめてスタイルを書くことをおすすめします。

オススメの書き方

.test-el {
  text-align: center;
  @media screen and (max-width: 767px) {
    text-align: left;
 }
}
.test-el2 {
  font-size: 20px;
  @media screen and (max-width: 767px) {
    font-size: 12px;
 }
}
ちょこすこーん

こちらの方がメンテナンス性もあがり、他の人がコードを読むときの負担が軽減されますよ◎

NG例 4)タグが適当(セマンティックじゃない)

セマンティックなマークアップを心がけていますか?

divタグばかり使ってはいないでしょうか?

HTMLはタグによって見た目があまり変化しないので、どのようなタグを使うかそこまで重視しない方がいるかもしれませんが、
divタグばかりだと、コードの可読性が下がってしまいます。

各要素に対し適切なタグを使うことは、一目でどのような役割を担っているコードかを理解できるので、
他の人がコードを見た際にも分かりやすいものとなります。

ちょこすこーん

セマンティックなHTMLはSEOにも関係してきますので、最適なタグ選びをするよう意識してみてください◎

NG例 5)CSS設計が考えられていない

CSS設計はコーダーであれば必ず知っておいた方が良い概念です。

CSS設計を取り入れたコーディングをするかしないかで、
その後のメンテナンス作業(サイトの運用保守)に大きく関わってきます。

check_circle CSS設計を取り入れるメリット

  • CSSの管理がしやすくなる
  • 複数人のチーム開発でも記述のブレが生じにくい
  • 複雑なCSSになりにくい

CSSは誰でも簡単にとっつきやすいものであるが故に、ルール化されていないと「オレオレCSS」がどんどん増えていってしまいます。
カオスなCSSにならないように事前に設計(規則・ルール化)しておきましょうということです。

実は、CSS設計の手法は一つだけでなく、いくつかの種類があります。

CSS設計の種類

CSS設計の種類は少なくとも下記があります。

check_circle CSS設計の種類

  1. BEM
  2. FLOCCS
  3. OOCSS
  4. SMACSS

私個人の経験上は、BEMとFLOCCSを使うことが多いです。
その他は使ったことがありません・・

「FLOCSS」はこの中で唯一、日本人の方が開発したCSS設計です。
そのため日本語ドキュメントが存在していたりと、日本人エンジニアにとってはとっつきやすいものと言えます。

下記書籍はCSS設計を勉強するにあたって、とても参考になったので載せておきます。
よければ参考にしてみてください。


FLOCCSの公式日本語ドキュメントはこちら

ちょこすこーん

CSS設計を取り入れてからは、メンテナンスしやすいコードを書けるようになってきたので本当に勉強して良かったです!

NG例 6)補足コメントが全くない

HTMLやCSS、特にJavaScript(jQuery)を書くときに、コメントが全くないと他の人が見たときに非常にわかりにくいものとなってしまいます。

なぜなら、コードは書いた本人以外が解読するのは難しいことがほとんどだからです。

補足コメントがあるかないかで、コード理解にかかる速さは全然違ってくると思います。

ちょこすこーん

是非、他の人のためにも未来の自分のためにも、コメントを書くことは怠らないようにしましょう◎

NG例 7)ショートカットなどの早技を使わない

コーディングを行う上で、ショートカットを使っていない方はかなり時間を無駄にしているかもしれません。

エディタのショートカットや小技を覚えれば、コーディングスピードはかなり上がります!
過去に以下のような記事を書いていますので、興味がある方は覗いてみてください。

コーディングの進め方は絶えずアップデートさせよう

いかがだったでしょうか?
本記事で紹介した例をまとめると、以下のように期待できる効果を分けることができます。

効率よくコーディングを進めるために・・
→すぐにコードを書き始めない
→変数やmixinの定義をしておく
→ショートカットなどの早技を使う

他の人があなたのコードを見たときに理解しやすくするために・・
→PC・スマホのCSS記述場所を1箇所にまとめる
→セマンティックなHTMLを心がける
→補足コメントを書くようにする

メンテナンス性の高いコードを書くことができるように・・
→CSS設計を取り入れる

人によってコーディングの進め方は千差万別なため、あくまでも私の過去に基づいた紹介にはなりますが、
一つでも参考になったものがあれば幸いです。

コーディングの進め方は経験を積み重ねることによって、アップデートできるものだと思うので、
今後もより良い進め方を模索していこうと思います。

何かあれば追記していきます!

最後までお読みいただきありがとうございました。

タイトルとURLをコピーしました