マークアップエンジニアがフロンエンドエンジニアになるために、学ぶべきこと・活かせること
静的なWebサイトを作るマークアップから、動的なWebアプリを作るフロントエンドに仕事が変わって、今までのスキルでは足りなかったところや、逆に使えた部分等をまとめてみました。
マークアップからフロンエンドの領域へ来られる方の参考になれば幸いです。
マークアップエンジニア時代に身に着けたこと
ざっくりと、マークアップエンジニア時代に、身に着けたことをリストアップします。
- セマンティックなHTMLのマークアップ
- Pug、EJSよる効率的な開発
- WAI-ARIAによるアクセシビリティ対応
- デザインカンプになるべく近づけていくCSSの表現力
- SCSSによる効率的な開発
- アニメーションや動的な部分をJavaScriptで実装
- ECMAScript2015+をbabelでトランスパイル
- Gitによるバージョン管理
- Gulpやwebpackでのタスク管理
細かいところは、以下を御覧ください。
学ぶ必要があったこと
- React(Next.js)
- TypeScript
- Atomic Design
- 3階層システム
React
現場によっては他のフレームワークかもしれませんが、私がアサインされたプロジェクトではReactを採用していました。JSX
やProps
、Hooks
あたりを押さえると、とりあえずですがReactが触れるようになるかと思います。
今でも、公式ドキュメントをとにかくずっと開いています。
Next.jsはチュートリアルを、ひととおりやりました。
TypeScript
たとえば、Props
にinterface
で型をつければ、以下のようなコンポーネントで受け取る値を間違えづらくなります。
import React from 'react'
interface FooProps {
text: string;
}
const Foo: React.FC<FooProps> = ({ text }) => <p>{text}</p>
export default Foo
上記ように書けば、Fooコンポーネントのtext
プロップスは文字列以外を受け取ることができなくなります。
基本的な型の書き方や、React.FCあたりが意味するところはこちらで学びました。
実践TypeScript ~ BFFとNext.js&Nuxt.jsの型定義 ~
こちらも、macOS用のKindleで基本開きっぱなしです。
Atomic Design
静的なWebサイトでは、ページのデザインカンプから共通部分を見出してコンポーネントを作ることが多いと思いますが、私がアサインされたWebアプリケーションのプロジェクトでは、Atomic Design的なアプローチでパーツから作っていき、その組み合わせでページを作っていきました。
Atomic DesignではAtoms
、Molecules
、Organisms
、Templates
、Pages
とどんどんスケールが大きくなっていきます。たとえば、最小のAtoms
の段階でdiv
のようなフローコンテンツの要素を使ってしまうと、それより上位のレイヤーでHTML的にNGなマークアップになってしまうことがあります。
<!-- button要素の中にdivを入れてはいけない -->
<!-- Molecules -->
<button>
<!-- Atoms -->
<div>テキスト</div>
</button>
このような場合は、Atoms
のような最小単位のコンポーネントでは、記述コンテンツをメインにマークアップをしたほうが、後々楽になるでしょう。
ページとして組まれるときに、セマンティックなマークアップになるよう、意識して作っていくことが大切です。
ReactでAtomic Designとなると、こちらの書籍が役に立ちました。
Atomic Design ~堅牢で使いやすいUIを効率良く設計する
3階層システム
静的なWebサイト制作ではあまり気にすることがなかった、3階層システムへの理解にとても苦労しました(していますw)。
今までごっちゃになんとなく書いていましたが、見た目(View)とビジネスロジックを分ける
という考え方を身につける必要がありました。
(そもそも、ビジネスロジックってなに?レベルからのスタートだったので苦労しました。。。)
経験を活かせたこと
- セマンティックなHTMLのマークアップ
- WAI-ARIAによるアクセシビリティ対応
- デザインカンプになるべく近づけていくCSSの表現力
- SCSSによる効率的な開発
ほぼすべての経験が活きていますが、これらがとくに自分の強みとして前に出せた部分でした。プログラマー側の方は苦手な人が多いようです。
Emotionという、CSS in JSのライブラリを使っています。SCSSの記法も使えたりするので、そこまで苦労せずに使えました。
逆に、SCSSの@function
を使わずにJavaScriptで書けますし、スタイルがスコープされるので正直SCSSより書きやすいです。BEMみたいな命名規則を使うこともなくなりました。
まあ、定数や変数の名前を考えないといけないので、命名規則の悩みは終わりませんが。
これ以外にも、学ばなければいけないことがたくさんあります。
一緒に頑張りましょう!!
以上でございます。
Author And Source
この問題について(マークアップエンジニアがフロンエンドエンジニアになるために、学ぶべきこと・活かせること), 我々は、より多くの情報をここで見つけました https://qiita.com/otsukayuhi/items/7a7423c0717f869d7525著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .