111
カジュアルな フロントエンドで この先生 きのこ るには Ayumu Sato Oct 18, 2014 Frontrend In Kanazawa photo https://www.flickr.com/photos/44534236@N00/11785665944

カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

カジュアルな フロントエンドで この先生きのこるにはAyumu Sato Oct 18, 2014 Frontrend In Kanazawa

photo https://www.flickr.com/photos/44534236@N00/11785665944

Page 2: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

佐藤 歩さとう あゆむ

Page 3: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

ハンドルネーム

ahomu@

Page 4: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

http://aho.mu年間維持費 ¥8,480

Page 5: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア
Page 6: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Profile株式会社サイバーエージェント

アメーバ事業本部

Webフロントエンドエンジニア

Frontend + Node + Android + AWS

HTML5 Experts.jp 半幽霊部員

Page 7: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

フロントエンドの中でも テクニカルな面に 偏ったお話です

Page 8: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Agendaフロントエンドの流行り廃りと距離感

現在のトレンドと選定の視点

フロントエンダの取捨選択

Page 9: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

フロントエンドの 流行り廃りと距離感

photo https://www.flickr.com/photos/kitkaphotogirl/1607221467

Page 10: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

フロントエンド界隈の プロダクト

Page 11: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Grunt? Gulp? Yeoman? broccoli?

Page 12: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

styledocco? KSS? hologram?

Page 13: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Sass? LESS? Stylus? Rework?

Page 14: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Backbone.js? KnockoutJS? Ember.js? AngularJS? React?

Page 15: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

3年くらい前から 急速に増加して

入れ替わり続けている

※個人の感想です

Page 16: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

入れ替わりが 早すぎないか!?

Page 17: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア
Page 18: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア
Page 19: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

枯れる前に次の技術へ 乗り換えていく今までの経験を全て捨てるわけではないが

いくらかの学習コストは必要になる

Page 20: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

なぜ?

「枯れた技術」のメリットをあまり活かそうとしないのか?

Page 21: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

実行環境の多様化 デバイスの性能向上

高性能になれば表現が広がり、作る物が変われば作り方も変わる

Page 22: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

流行り廃りと 上手に付き合いたい

Page 23: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

現在のトレンドと 選定の視点

photo https://www.flickr.com/photos/gnilenkov/6234301745

Page 24: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

1. タスクランナー

2. CSSプロセッサ

3. JavaScriptライブラリ

4. パッケージ管理

5. 標準仕様 (HTML/CSS/JavaScript)

Page 25: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

!最も重要なのは 視点

どんなメリットを享受するために、どんなアプローチを選ぶのか 視点さえおさえれば、自分で判断できる

Page 26: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

タスクランナー 界隈

Page 27: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア
Page 28: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

- エコシステムの発展具合

- 設定ファイルっぽい?

- スクリプトっぽい?

Page 29: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Grunthttp://gruntjs.com/

Page 30: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

grunt.initConfig({ sass: { // task dist: { // target options: { // options style: 'expanded' }, files: { // dest: source 'main.css': ‘main.scss’ } } } }); grunt.loadNpmTasks('grunt-contrib-sass');

Page 31: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

grunt.initConfig sass: dist: options: style: 'expanded' files 'main.css': ‘main.scss’ !grunt.loadNpmTasks 'grunt-contrib-sass'

Page 32: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Gulphttp://gulpjs.com/

Page 33: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Web Starter Kithttps://developers.google.com/web/starter-kit/index

Page 34: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

var gulp = require('gulp'); var sass = require(‘gulp-ruby-sass') !gulp.task('sass', function () { gulp.src(‘./main.scss’) // source .pipe(sass({ // task style : ‘expanded' // options })) .pipe(gulp.dest(‘./‘));// dest });

Page 35: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

grunt.initConfig({ coffeehint: { src: [‘main.coffee’] }, coffeescript: { files: { 'main.js': ‘main.coffee’ } }, uglify: { files: { ‘main.min.js': ‘main.js’ } } });

1タスク-n対象 の関係

1ファイルに対して適用されている 複数のタスクが散乱して流れを追いづらい

Page 36: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

!gulp.task(‘jsbuild', function () { gulp.src(‘./main.coffee’) .pipe(coffeelint()) .pipe(coffee()) .pipe(uglify()) .pipe(gulp.dest(‘./‘)); });

nソース-nタスク の関係

指定したソースありきでタスクを 流れるように適用できて見通しが良い

(しかし、JavaScriptっぽい)

Page 37: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

CSSプロセッサ 界隈

Page 38: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア
Page 39: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

- 使いたい言語機能

- CSSからの移行・学習コスト

- プリプロセス or ポストプロセス

Page 40: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

" " ".css.sass

.less

.styl

.cssプリ プロセス

ポスト プロセス

Page 41: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

プリプロセス

Page 42: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

SASShttp://sass-lang.com/

Page 43: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

LibSasshttp://libsass.org/

Page 44: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Lesshttp://lesscss.org/

Page 45: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Stylushttp://learnboost.github.io/stylus/

Page 46: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

reworkhttps://github.com/reworkcss/rework

Page 47: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

stylhttps://github.com/visionmedia/styl

Page 48: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

ポストプロセス

Page 49: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

PostCSShttps://github.com/postcss/postcss

Page 50: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Autoprefixierhttps://github.com/postcss/autoprefixer

Page 51: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

/* Sass with Compass */ * { @include box-sizing(border-box); } !/* CSS (compiled) */ * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }

Page 52: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

/* CSS */ * { box-sizing: border-box; } !/* CSS (autoprefixed) */ * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }

Page 53: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

JavaScriptライブラリ界隈

Page 54: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア
Page 55: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

_人人人人人人人人人人_ > いまや最も優れた < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y‾

Page 56: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

_人人人人人人人人人人人人人_ > Webアプリ開発の定番構成 < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y‾

Page 57: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

- 解決しようとしている範囲

- アーキテクチャモデル

- DOMテンプレーティング

- Data Binding

- Virtual DOM

- 宣言的 or 命令的

Page 58: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Backbone.JShttp://backbonejs.org/

Page 59: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

<div> <button class=“js-ouch”><%= foo %></button> </div> !Backbone.View.extend({ initialize: function() { this.render(); }, events: { ‘click .js-ouch’: ‘onOuch’ }, onOuch: function() { alert(‘ouch!!’); }, render: function() { var newHtml = ejsTmpl({foo: ‘bar’}); return this.$el.html(newHtml); } });

Page 60: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

AngularJShttps://angularjs.org/

Page 61: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

<div ng-contoller=“OuchCtrl”> <button ng-click=“onOuch()”>{{foo}}</button> </div> !angular .module(‘app’) .controller(‘OuchCtrl’, function($scope) { ! $scope.foo = ‘bar’; ! $scope.onOuch = function() { alert(‘ouch!!’); }; });

Page 62: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Reacthttp://facebook.github.io/react/

Page 63: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

<script type="text/jsx"> /** @jsx React.DOM */ var OuchComponent = React.createClass({ onOuch: function() { alert('ouch!!'); }, getInitialState: function() { return {foo: 'bar'}; }, render: function() { return ( <div> <button onClick={this.onOuch}> {this.state.foo}</button> </div> ); } }); </script>

Page 64: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

/** @jsx React.DOM */ var HelloMessage = React.createClass({ render: function() { return <div>Hello {this.props.name}</div>; } }); !!var HelloMessage = React.createClass({ displayName: 'HelloMessage', render : function() { return React.DOM.div(null, "Hello ", this.props.name); } });

Page 65: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

パッケージ管理& モジュールシステム

界隈

Page 66: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア
Page 67: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

- 色々あるけど、役割の違うツールが多い

- パッケージのインストール補助?

- ランタイム or ビルド時の依存解決?

- 標準仕様との互換性は?

- それとも両方の役割をできるもの?

Page 68: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

パッケージ管理

Page 69: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

npmhttps://www.npmjs.org/

Page 70: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Bowerhttp://bower.io/

Page 71: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

モジュールシステム

Page 72: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

RequireJShttp://requirejs.org/

Page 73: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

# html <script src="require.js" data-main="main.js" async></script> !# main.js define([‘module’], function(module) { alert(module.foo); // ‘bar’ }); !# module.js define(function() { return {foo: ‘bar’} });

Page 74: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

browserifyhttp://browserify.org/

Page 75: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

#index.js !// from node_modules var htmlparser = require(‘htmlparser’); // from local var module = require(‘./module’); // from bower ( recommend: debowerify ) var jquery = require(‘./bower_components/jquery/dist/jquery.js’) !- - - - - - - - - - - - - - - - - - - - - - - - !#module.js !module.exports = { foo: ‘bar’ };

Page 76: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

webpackhttp://webpack.github.io/

Page 77: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

var path = require("path"); var CommonsChunkPlugin = require("../../lib/optimize/CommonsChunkPlugin"); module.exports = { entry: { pageA: "./pageA", pageB: "./pageB" }, output: { path: path.join(__dirname, "js"), filename: "[name].bundle.js", chunkFilename: "[id].chunk.js" }, plugins: [ new CommonsChunkPlugin("commons.js") ] }

Page 78: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

標準仕様の界隈

Page 79: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

ここだけ 普通に時勢の話です

Page 80: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア
Page 81: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

HTML 5.1 Nightlyhttp://www.w3.org/html/wg/drafts/html/master/

Page 82: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

レスポンシブ・イメージ: ユースケースと入門用のコードサンプルhttps://dev.opera.com/articles/ja/responsive-images/

Page 83: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

dialog element: Modals made easyhttp://updates.html5rocks.com/2013/09/dialog-element-Modals-made-easy

Page 84: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Selectors Level 4http://dev.w3.org/csswg/selectors4/

Page 85: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

CSS SPECIFICATIONShttp://www.w3.org/Style/CSS/current-work

Page 86: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

All Standards and Draftshttp://www.w3.org/TR/

Page 87: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア
Page 88: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア
Page 89: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Templates

Custom Elements

HTML Imports

Shadow DOM

<template></template>

Document#registerElement()

<link rel=“import” href=“…”>

Element#createShadowRoot()

Page 90: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア
Page 91: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

ES6 (ES.next, harmony)http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts

Page 92: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

traceur-compilerhttps://github.com/google/traceur-compiler

Page 93: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

6to5https://github.com/sebmck/6to5

Page 94: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

⏱これらの賞味期限が短い トレンドとの向き合い方

紹介した内容は3年も持たないようなトレンドがほとんど どうすべきか?

Page 95: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

フロントエンダの 取捨選択

photo https://www.flickr.com/photos/jmv/2857858757

Page 96: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

技術は技術でしかなく それを以てなにをするか

Page 97: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

トレンドの取捨選択

Page 98: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

ロールモデルに合った トレンドを学び続ける

Page 99: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

得意のアニメーションでゲームを作るひと?

Page 100: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

デザインの立案から 実装までワンストップで

行えるひと?

Page 101: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

全体のアーキテクトを 踏まえてフロント領域を

管理できるひと?

Page 102: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

アクセシビリティ実装の 専門家?

Page 103: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

技術・デザイン・ビジネスの 間を取り持って

ディレクションできるひと?

Page 104: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

学習すべきは 技術トレンドだけでは ないのかもしれない

Page 105: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

無意識にしている判断を 明確化するだけで 普段の学びが変わる

Page 106: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

まとめ

Page 107: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

- フロントの流行は3年くらい前から   急速に変化するようになっている

- 自らの視点と判断を持ってトレンドに   流されてしまわないようにする

- ロールモデルから逆算して自分にとって本当に必要な技術トレンドを学ぶ

Page 108: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

10年先のため 今身につけたいこと

Page 109: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

自分のロールモデルから 逆算して学び続けること

Page 110: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

10年先生きのこる!

ロールモデルも10年の間にアップデートし続けよう!

Page 111: カジュアルな フロントエンドで この先生きのこるには · Profile 株式会社サイバーエージェント アメーバ事業本部 Webフロントエンドエンジニア

Questions? http://aho.mu @ahomu github.com/ahomu !

!

"

photo https://www.flickr.com/photos/gnilenkov/6109406698