STAFFBLOG スタッフブログ

最新JavaScript 「ECMAScript2015」を誰にもバレずに、こっそりさわってみる

sawamichio
2017/11/06
閲覧所要時間:約8

最近癒しを求めて、こそこそJavaScriptを書いている
クリエイターのSAWAMICHIOです。

実はJavaScriptは2015年6月に「ECMAScript2015」「通称ES6?」と呼ばれる新仕様が発表され、
大きな進化を遂げでいるのを今更ながらピックアップしてみました。

JS以外のプログラミング言語を深く知るわけではないのでなんとも言えないのですが、
新仕様で特に注目を集めてそうなのがclass構文の追加です。

それまではプロトタイプという非常にわかりにくい苦行のような書き方だったのですが、
ES6ではよりポピュラーな記法でクラスを定義できるようになったようです。

従来のプロトタイプベースでのクラス(コンストラクタ)の定義

function Person( name, gender ) {
  this._name = name
  this._gender = gender
}

Person.prototype.string = function() {
  return this._name + 'は' + this._gender + 'です。'
}

var sawa = new Person( 'SAWAMICHIO', '男' )
console.log( sawa.string() )


↑よくある例です。はい。
関数を作ってそれをnew演算子を介して呼び出すと急にコンストラクタとして動作し、
インスタンス化したオブジェクトから親クラスのメソッドにアクセスできるというやつです。

↓同じことをこのように書き換えることができます。

最新のクラス構文でのコンストラクタの定義

class Person {
  constructor( name, gender ) {
    this._name = name
    this._gender = gender
  }

  string() {
    return this._name + 'は' + this._gender + 'です。'
  }
}

const sawa = new Person( 'SAWAMICHIO', '男' )
console.log( sawa.string() )


「class クラス名」でクラスを定義する書き方は、
JavaやC言語ではおなじみらしいのですがワタシは知りません。
クラスからオブジェクトを生成するコンストラクタは、そのものズバリ
「constructor」で定義するようです。
コンストラクタの定義は省略することもでき、
省略した場合は、「constructor(){}」という空のコンストラクタが
暗黙のうちに定義されます。

クラスを定義したら、new演算子でクラスからオブジェクトを生成できます。
この辺は一緒ですね。

またクラスの定義は下記のようにクラスリテラルで記述して、
変数に代入する書き方もできます。

クラスリテラルを使ってコンストラクタを定義する

const Person = class {
  constructor( name, gender ) {
    this._name = name
    this._gender = gender
  }

  string() {
    return this._name + 'は' + this._gender + 'です。'
  }
}


static修飾子で静的メソッドを定義できる

上記までのものは、単に書き方が変わっただけっぽかったのですが、
クラス構文には静的メソッドを持たせることができます。
この場合、オブジェクトをわざわざインスタンス化することなく、
「クラス名.静的メソッド」で実行できます。
class Calc {
  static sum( num1, num2 ) {
    return num1 + num2
  }
}

console.log( Calc.sum( 5, 5 ) )

[実行結果]
10

setter/getterを使ったプロパティの定義

ここではsetter/getterを使って
Personクラスにageプロパティを追加しています。
class Person {
  set age( value ) {
    console.log( 'setter呼び出し' )
    if ( value < 0 ) {
      throw new RangeError( 'ageは正数で' )
    }
    this._age = value
  }

  get age() {
    console.log( 'getter呼び出し' )
    return this._age
  }
}

const kawaguchi = new Person()

kawaguchi.age = 22
console.log( kawaguchi.age )

kawaguchi.age = -22
console.log( kawaguchi.age )


[実行結果]
setter呼び出し
getter呼び出し
22
setter呼び出し
x RangeError: ageは正数で
setのコードブロックがsetterで、ageプロパティに値を設定した時に自動的に実行されます。
同じくgetのコードブロックがgetterで、ageプロパティから値を取得しようとした時に自動的に実行されます。


setterを省略して読み取り専用のプロパティを定義する

class Person {
  get age() {
    console.log( 'getter呼び出し' )
    return this._age = 22
  }
}

const kawaguchi = new Person()
console.log( kawaguchi.age )

kawaguchi.age = 92
console.log( kawaguchi.age )


getterを省略して書き込み専用のプロパティを定義する

class Person {
  set age( value ) {
    console.log( 'setter呼び出し' )
    if ( value < 0 ) {
      throw new RangeError( 'ageは正数で' )
    }
    this._age
  }
}

var kawaguchi = new Person()
kawaguchi.age = 22
console.log( kawaguchi.age )


extends構文を使ったクラスの継承

class Person {
  constructor( name, gender ) {
    this._name = name
    this._gender = gender
  }

  string() {
    return this._name + 'は' + this._gender + 'です。'
  }
}

class FrontierVision extends Person {
  constructor( name, gender, job ) {
    super( name, gender )
    this._job = job
  }

  string() {
    return this._name + 'は' + this._job + 'です。'
  }
}

const kawaguchi = new FrontierVision( '川口', '男', 'エンジニア' )
console.log( kawaguchi.string() )

クラスの重要な機能の一つにオブジェクトどうしの継承関係を築けるというのがあります。
JS自体、Objectを頂点とした壮大な宇宙を構成しているように
あるクラス(親クラス)から、そのクラスのメソッドやプロパティを引き継いだ(子クラス)を定義できる機能です。

従来はプロトタイプ継承というJS特有の?やり方で実現していましたが、新しい構文では「extends」という構文で継承を実現できるようになり
よりシンプルにわかりやすく表現することができます。

新しいclass構文によってガラリと変わった印象を持ちますが、内部的にはやはり従来通りのプロトタイプベースのようです。
その証拠にclass構文で定義した Personをtypeof演算子で確認すると function(関数)と表示されます。

さらに「Person.prototype.プロパティ = 関数リテラル」という従来の記法でメソッドを追加することも可能です。

表面的にはガラリと変わって新しい言語かのようになりましたが、実態は
今までのJavaScriptそのものということで安心できますね。
いちいち学習し直さないでいいですから。
他にも気になる機能がたくさん追加された「ECMAScript2015」ですが、それはまた次の機会に

御免。

改名しました! SAWAMICHIOです!!

sawamichio
2017/01/27
閲覧所要時間:約1

sawamichio

構想3年。

年も新たに心機一転、
今年一日から、名をソ○ダから => SAWAMICHIOと改めました。
クリエイターのSAWAMICHIOです。

旧名の頃お世話になったクライアント様、そして社員の皆さん、
誠に勝手に、そして突然の変更に、ご迷惑をおかけしますが、何卒よろしくお願いします。

突然の改名にも、快く承諾してくれた渡邉社長には仏を見ました。

名は愛してなんぼですので(?) 末長くお付き合いください。

また、改名したのはいいのですが、
皆さん慣れずによく旧名で呼ばれる事があります。

安心してください!
僕も慣れずに振り向いてしまいます!!

そして今年に入り、新しくなったのは名前だけではありません。
先日やっと、Appleからお届け物が届きました↓↓↓↓

お届け物の中身とは・・・

ブラッキー [MacBook Pro Late 2016]

そう、 ヌゅ〜Macです!!
Touchbar(タッチバー)です!
スペースグレイです!

かるく1分間の合掌のあと、
開封の儀とさせて頂きました。

現在調教中で、実戦デビューはまだですが、
新しい名前と新しいMacで2017年を駆け抜けたいと思います。

皆さん、今年1年よろしくお願いします。


SAWAMICHIOでした。


ハイパスを極めよ! Photoshopレタッチ講座?

sawamichio
2016/09/21
閲覧所要時間:約3

こんにちは!
1人まごまごしているソノダです。

今回は業務でもよく使うPhotoshopでレタッチのやうなものをサラッとやってみたいと思います(^_^)
20160920-8

まずは素材の準備!

いい加減な撮影ですが、明るく撮れているのでよしとします。
20160920-1



いただけない背景を削除!

何はともあれ背景がいただけないので、とりあえずゴソゴソして人物だけを切り抜きます。
最近のPhotoshopは境界線の調整(CS2015.5からは選択とマスク)など、簡単に高精細に切り抜けて楽になりましたね。
今回はそれプラスチャンネルを使って切り抜きました。
20160920-2

続いて真っ白な背景では眩しいのでグレーで塗りつぶしてます。
20160920-4


肌をレタッチ

この少年、顔はハーフで日本人離れした美少年なのですが、ちょっとソバカスなどが目立ちます。
それをスポット修復ブラシツール(ショートカットキー J)で整えていきます。
この時、レタッチで肌の質感がなくならないように、
修復ツールでレタッチするレイヤーにレイヤースタイルなどで作ったテクスチャーをクリッピングさせてます。
20160920-4


なんかあれなので目をギラギラさせる

そのままでも異国風漂う顔なんですけど、さらに目をギラギラさせてターミネーターのようにしてみました。
20160920-5


ハイパスフィルターで質感アップ!

これまでのレイヤーの統合画像を一つ作り、その画像に今回のキモ、フィルタから → ハイパスをかけます。
半径は13.4ぐらいの割と強めのハイパスレイヤーと半径1.8ぐらいのキメの細かいハイパスレイヤーを作ります。
20160920-6



ハイパスフィルタとは?

デジタル画像はどんなものでも波の成分に分解できます。
波の成分に分解することを空間周波数といって細かい波の成分ほど空間周波数が高いと言います。

興味のある方は空間周波数と画像検索してもらってその画像にハイパスフィルターをかけてみてください。
空間周波数の高い、低いの意味がよくわかると思います。

作ったハイパスレイヤーはそのままでは50%グレーになんかごにょごにょした画像ですので、
描画モードをオーバーレイに変えます。
(オーバーレイは50%グレーを無視してそれより明るい部分はスクリーンに、暗い部分には乗算をかける演算です)
20160920-7

そうすると、肌の質感などを際立たせることができたと思います。
今回はキメの細かいハイパスレイヤーは4層ぐらい複製して効果を増幅させました。


仕上げにカラコレして完成!

20160920-8

主にトーンカーブやトーンカーブを使って、
止めにもう一度トーンカーブを使って全体を整えました。

最後にドラクエ5のロゴを添えたかったのですが、大人の事情で泣く泣くフィニッシュです。



Instagramを始めました!

弊社フロンティアビジョンのInstagramを立ち上げました!

写真好き、カメラ好きばかりが揃った我がフロンティアビジョンの強者たちが
渾身の作品をこれからUPしていきます!

ぜひチェックしてみてください(^_^)

フロンティアビジョン インスタグラムページはこちら

池島アゲイン (ほぼ写真・・。)

sawamichio
2016/07/19
閲覧所要時間:約1

blog-20160719-05
お陰様でつねに多忙中のわがフロンティアビジョンですが、
先々月に池島へ社員旅行に行ってきました。

↓スタッフがすでに当日のゆかいなレポートをあげております↓

社員旅行で池島炭鉱に行ってきました



行く前は最近流行りの? HDRで写真を撮ろうと準備に余念がなく、
レンズなど意味もなく3回ほど磨いて臨んだのですが、
何と、船で島へ向かう前の港でカメラを置き忘れてしまいました。。

と、ゆーことで、島で観光中、自慢のカメラでみんな思いおもいに写真を撮っているのを尻目に
終始ボーっとしてはワタシですが、帰る間際持参してたiPadにカメラが付いているのに気付き(普段カメラ機能は全く使いません)
ギリギリ、なんとかその姿をデジタル化することができました。

人に写真を見せるたびに、「よくわからん」、「暗い」、「どこだかわからん」と、よく言われるのですが、
撮っている本人はFV1明るい人間です^^

おそらく。
そして。。。


blog-20160719-01



blog-20160719-06



blog-20160719-04



blog-20160719-03



blog-20160719-02

通常業務再開します。

sawamichio
2016/04/20
閲覧所要時間:約1

tento

4月14日21時26分頃に、熊本県熊本地方を震源とする、
マグニチュード6.5、最大震度7の地震が発生しました。
翌々日の16日には同じく熊本県熊本地方を震源とする、マグニチュード7.3
、最大震度6強の地震が発生。

日本でこれまでに起こった大震災を誰も予測できなかったように、
マグニチュード7.3の地震が熊本を襲うなど
誰が予測できたでしょうか?

事前の予測では熊本地方の地震の確率は4%から6%ぐらいだったという情報も目にしました。
日本は地震大国だということはわかっていても、
地震を予測することは不可能なのだと改めて思います。

予測ができない以上、日本のどの地域でも被災地になる可能性があるということを
私たちは肝に銘じなくてはなりません。

この熊本で、尊い命が奪われ、たくさんの方々が家を失い、
今日も余震に怯えながら眠れない夜を過ごしています。

私も余震に備え、夜は家の前のテントで過ごしています。

フロンティアビジョンでは今日から通常業務を再開します。
また、熊本復旧のために一刻でも早く私たちが出来ることを見定め、
アクションを起こせたらと思っております。

まだまだ、余震が続いています。
被害を受けられた皆様方の、一日も早い復旧を心からお祈り申し上げます。

【世界遺産認定】明治日本の産業革命

sawamichio
2015/08/05
閲覧所要時間:約2

blog-2015-0804

なんか活字ばかりのタイトルで取っ付きにくいですがこんにちわ、
最近アヒルを飼いはじめたデザイナーのソノダです。

明治日本の産業革命遺産について


明治日本の産業革命遺産岩手県から鹿児島県に点在する「「明治日本の産業革命遺産(めいじにほんのさんぎょうかくめいいさん)
主に九州、山口を中心に進められた日本の近代化は、西洋先進諸国からの積極的な技術導入によって進められ、鎖国状態にあった日本において、非西洋地域で初めて、約50年間という短期間で飛躍的な経済的発展を成し遂げた産業遺産群。

出典:日本の世界遺産


↑がこの度世界遺産に登録されました。
正式な登録名称は「明治日本の産業革命遺産-製鉄・鉄鋼、造船、石炭産業」だそうです。
規模は全国8エリア23箇所にもまたがるもの。

このうちの一つが実は僕の家の近所にありまして、
子供の頃からの遊び場でした(サティアンと呼んでた(嘘))

昔はほんとにただの廃墟で汚らしく魅力的だったのですが、
いつの間にか雑草が刈られ、整備されていき世界遺産になってました。
近くには観光客を想定してか、綺麗な駐車場が次々出来ていってます。

なんかもう自分のものではなくなった感ありありのその場所なのですが
まだ、観光客で埋め尽くされる前に一度思い出に浸ろうと
日光浴がてら気温摂氏35度の中勇敢にむかい、
カラフルでヴィビッドなアイスクリームを片手に写真を一枚パチリ。

やけにセミの鳴き声だけが鮮明に聞こえてくるような
そんな時間でした。

みなさん、はじめまして。

sawamichio
2015/06/25
閲覧所要時間:約2

blog_sonoda_01

みなさん、はじめまして。
先週入社したばかりの新人(中年)デザイナーのソノダです。
FVSメンバーの中で唯一県外(大牟田)からはるばる熊本まで通勤しています。
高校時代以来の毎朝の電車通勤に懐かしさと共に、同乗してくる若い学生を見ては
「年とったな〜」と日に日に実感している今日この頃です。

自己紹介

福岡県大牟田市出身の36歳。
噂では平均年齢28歳のFVSでは最年長になります。
趣味は→ 絵画、ギター、写真、DTM、ガンプラ、Macでゴソゴソ。

小さい頃から両親とも共働きだったこともあり一人の時間が多く、
暇があれば1日中絵を描いて過ごしてました。
そしてそのまま大学油絵科へ進み、絵も沢山描きましたが、
ギターばかり弾いていたような気がします。
属性は夜で、根っからのインドア派ですがアウトドアに転向したく今脳内覚醒を実行中です。

20代は美術を、そして30代でWEBデザイナーへ

10代後半から20代のすべてを美術とギターに注ぎました。
注ぎすぎてお金がついてこず、公園で寝泊まりすることもしばしば。

WEBデザイナーになったきっかけは自分でもよくわかりませんが
ギターなども最初はなんとなく弾き始めるように、
Macをなんとなく触り出して今にいたるような気がします。

そしてフロンティアビジョンへ

たまたまとある求職サイトにエントリーしてたポートフォリオが渡邉社長の目にとまり
光栄にもお声がけをいただき入社する事となりました。

まだ入社して間もないのですが、
会社の快適で綺麗なオフィスにすっかりリラックスしてます。
Macがずらりと並んでいるのもMac好きにとってはたまりません。

ただ毎日同じミュージックが流れるので休みの日も
会社で聞いている音楽が頭から離れませんが。。。

「HAPPYをつなぐ」という会社のスローガンのもと
質のいいウェブサイト通してお客様や社会に貢献できるよう
日々努力していきたいと思っています。

フロンティアビジョンのFacebook

デンタルWEB

求人情報

スタッフ紹介