SlideShare a Scribd company logo
Web技術勉強会
                                        2011/05/14
       Ryuichi TANAKA/@mapserver2007/summer-lights.jp

      JavaScriptでプロトタイプベースオブジェクト指向プログラミング
~親子関係を維持してクラスを使わないオブジェクト指向プログラミング手法~
Introduction
 この違い、わかりますか?
       ①
       var Phone = {
              type: function() {
                     return “basic phone”;
              }
       };

       ②
       var Phone = function() {};
       Phone.prototype = {
              type: function() {
                     return “basic phone”;
              }
       };
Introduction
 呼び出し方が違う
  ①:Phone.type();
  ②:var phone = new Phone(); phone.type();
 メモリ効率が違う
  ①:オブジェクトとして定義したときにメモリを確保
  ②:インスタンスを生成したときにメモリを確保
 形式が違う
  ①:オブジェクト
  ②:関数(クラス)
どちらを使うべきか
オブジェクト指向プログラミングするなら②
 クラスを定義する
  var Phone = funciton() {};
 メソッドを定義する
  Phone.prototype = { … }:
  Phone.prototype.type = function() { … };
 継承する
  Phone.type = new Telephone(); // 簡易な継承方法
 インスタンス化
  var obj = new Phone();
他言語のOOPと比較的似ている
いろいろ試行錯誤した結果、これがベスト
と、思ってた時期が先週まであった
さっきのやり方はベストではないと思い直した
見直したきっかけ
 http://blog.tojiru.net/article/199670885.html
やっぱりクラスではなくオブジェクトとして扱うのがベ
ストなのではないか
 JavaScriptはプロトタイプベースのオブジェクト指向プログ
 ラミング言語
 さっきのはクラスベース
非効率だった
 わざわざオブジェクトをクラス(にみたてて)化、使うときに
 newで再度オブジェクト化している
どうすればよいか
 いずれにしてもクラス化する方法はベストではない
  GoodPartsにもnewはBadPartsであると明記されている
  JavaScriptパターンではモダンではない旨が明記されている
 オブジェクトのまま扱う方法がベストではないのか
こうすればよい(のではないか)
実装目標
 オブジェクトのまま扱う(クラス化しない)
  new禁止
  感覚としてはモジュールのような感じ
 オブジェクトのまま継承する
 親子関係を維持する
  http://blog.tojiru.net/article/199670885.htmlのやり方で
  は不十分。親子関係が消滅している。
 Rubyっぽくしたい
  関数で継承しないでメソッドで継承
件のサイトについて
http://blog.tojiru.net/article/199670885.html
基本的にかなり参考になる(ブコメもすごい数)
 が、問題がある。かなり重大な。
「継承」ではない
 継承と言いつつ、プロパティを上書きしているため親子
 関係は消滅。つまり、同じメソッド名は定義できない。
個人的な美的感覚にマッチしていない
 継承方法がちょっとカッコ悪い(関数で継承)
   これは別に悪くない。
 継承順が逆
   これはだめ
件のサイトについて
継承順について
 サイトではこうなっている
 var Dog = object(Animal, {
        name: “犬”,
        bowwow: function() { alert(“わんわん!”); }
 });
 これは、extend(Animal, Dog); という意味。
 英文にすると、Animal extend Dog
  動物は犬を継承→???
 つまり、逆でないとおかしい
 Dog extend Animal
 extend(Dog, Animal);
これらの点を解消してあげればかなりよい方法が導けそ
う
「JavaScriptらしさ」を損なわないでオブジェ
クト指向化
美的感覚にマッチした実装
 Dog.extend(Animal)みたいな継承方法
親子関係を維持する
 プロトタイプチェーンを使う
 親のメソッドを参照できるようにする
  var obj = Dog.extend(Animal);
  obj.parent.getName();
複数の継承を許可
 単一継承(ただし連鎖可能)
  var dog = Retriever.extend(Dog).extend(Animal);
 多重継承(ただし後勝ち)
  var dog = Retriever.extend(Dog, Animal);
プロトタイプチェーンとは
オブジェクトに存在するプロパティのひとつ
参照しているオブジェクトがあればそのオブジェク
トを指す
 例:Array->Object
Object.prototype === nullのときチェーンは終了




      http://igeta.cocolog-nifty.com/blog/2007/04/prototype.html
prototypeと__proto__
 __proto__プロパティはプロトタイプチェーンをた
 どるためのプロパティ
 prototypeプロパティは関数オブジェクトを拡張す
 るためのプロパティ
 __proto__はアクセスされたメンバ変数が存在しな
 いとき、代わりにどのオブジェクトを参照するかと
 いう参照先を指す
 __proto__はIEで未実装
継承を実装するには
__proto__を動的にたどって、__proto__の指すポイ
ンタを動的に組み替えればいい
動的に__proto__をたどる
これはできない
 child = child.__proto__;
 child.__proto__ = parent; // Cyclic error
これはできる
 child.__proto__.__proto__ = parent;
 だがこれは静的にたどってるのでNG
解決策
 var list = [“child”, “__proto__”, “__proto__”];
 eval(list.join(“.”) + “ = parent”);
親を参照するには
自分自身の__proto__を参照するだけ
完成形
https://gist.github.com/967863
問題:parentが関数になってしまう
obj.parent().getName() になってしまう
 obj.parent.getName() が理想だったが…
解決策はない
 理由
  parent()では自分自身(this)を参照し__proto__を参照する
  自分自身(this)を参照するには関数でなければならない
    parentだとただのプロパティであり、thisはwindowになる
  悪あがき(無名関数を駆使したり)したがやっぱり無理でした。


正直、こんなことにこだわる理由はないのだが…。
大した問題じゃないので次。
問題:prototype汚染問題
prototypeを拡張することで全コードに影響が出る問題
 Object.prototype.extend
 Array.prototype.each など
 ライブラリ拡張してたりする。ライブラリ間で競合していると動かなく
 なる可能性がある
 for-inでプロパティを走査したときに拡張したメソッドが含まれるため
 バグを生む可能性がある
回避方法
 メソッド化を諦めて素直に関数を使う
 ラッパーオブジェクトでラップする
  http://d.hatena.ne.jp/cyokodog/20081031/ArrayExtend01
 ライブラリを使う
  jQueryとかを素直に使っておけということ
  そのライブラリが汚染していることがあるけどね
今回の場合
 mix, parentを追加したので影響はある
 が、かぶることは(おそらく)ないので目をつぶる。for-inは気をつける。
今回の方法を応用すると
機能ごとの汎用オブジェクトを定義しておく
 var Utils = {…};
 var Http = {…};
 var Design = {…};
各アプリごとで使いたいオブジェクトだけ継承する
 var obj = Base.mix(Utils).mix(Http);
 名前がかぶらなければそのまま呼べる
   obj.xhr(); // Http#xhr
 名前がかぶってもparent()で呼べる
   obj.parent().getObjectName(); // Utils#getObjectName
汎用オブジェクトの単独使用も可能
 var result = Http.xhr();
他のライブラリと併用はもちろん可能
まとめ
JavaScriptのプロトタイプベースオブジェクト指向
プログラミングをするための方法を説明
過去のプログラムをこの方法で書きなおすかも

More Related Content

Viewers also liked

Web技術勉強会12回目
Web技術勉強会12回目Web技術勉強会12回目
Web技術勉強会12回目
龍一 田中
 
Web技術勉強会 第25回
Web技術勉強会 第25回Web技術勉強会 第25回
Web技術勉強会 第25回
龍一 田中
 
Web技術勉強会9回目(Slideshare用)
Web技術勉強会9回目(Slideshare用)Web技術勉強会9回目(Slideshare用)
Web技術勉強会9回目(Slideshare用)
龍一 田中
 
Web技術勉強会 第26回
Web技術勉強会 第26回Web技術勉強会 第26回
Web技術勉強会 第26回
龍一 田中
 
Web技術勉強会10回目(Slideshare用)
Web技術勉強会10回目(Slideshare用)Web技術勉強会10回目(Slideshare用)
Web技術勉強会10回目(Slideshare用)
龍一 田中
 
Web技術勉強会6回目
Web技術勉強会6回目Web技術勉強会6回目
Web技術勉強会6回目
龍一 田中
 
Web技術勉強会 第29回
Web技術勉強会 第29回Web技術勉強会 第29回
Web技術勉強会 第29回
龍一 田中
 
Web技術勉強会 20100424
Web技術勉強会 20100424Web技術勉強会 20100424
Web技術勉強会 20100424
龍一 田中
 

Viewers also liked (8)

Web技術勉強会12回目
Web技術勉強会12回目Web技術勉強会12回目
Web技術勉強会12回目
 
Web技術勉強会 第25回
Web技術勉強会 第25回Web技術勉強会 第25回
Web技術勉強会 第25回
 
Web技術勉強会9回目(Slideshare用)
Web技術勉強会9回目(Slideshare用)Web技術勉強会9回目(Slideshare用)
Web技術勉強会9回目(Slideshare用)
 
Web技術勉強会 第26回
Web技術勉強会 第26回Web技術勉強会 第26回
Web技術勉強会 第26回
 
Web技術勉強会10回目(Slideshare用)
Web技術勉強会10回目(Slideshare用)Web技術勉強会10回目(Slideshare用)
Web技術勉強会10回目(Slideshare用)
 
Web技術勉強会6回目
Web技術勉強会6回目Web技術勉強会6回目
Web技術勉強会6回目
 
Web技術勉強会 第29回
Web技術勉強会 第29回Web技術勉強会 第29回
Web技術勉強会 第29回
 
Web技術勉強会 20100424
Web技術勉強会 20100424Web技術勉強会 20100424
Web技術勉強会 20100424
 

Similar to Web技術勉強会 20110514

Web技術勉強会 20110528
Web技術勉強会 20110528Web技術勉強会 20110528
Web技術勉強会 20110528
龍一 田中
 
魔法を使わないプログラミング(web公開版)
魔法を使わないプログラミング(web公開版)魔法を使わないプログラミング(web公開版)
魔法を使わないプログラミング(web公開版)
hajikami
 
Alluren of prototype-based OOP
Alluren of prototype-based OOPAlluren of prototype-based OOP
Alluren of prototype-based OOP
azuma satoshi
 
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
Yuji Nojima
 
オブジェクト指向入門1
オブジェクト指向入門1オブジェクト指向入門1
オブジェクト指向入門1
Kenta Hattori
 
Howtoよいデザイン
HowtoよいデザインHowtoよいデザイン
Howtoよいデザイン
Hiroki Yagita
 
仕事でも Groovy を使おう!
仕事でも Groovy を使おう!仕事でも Groovy を使おう!
仕事でも Groovy を使おう!
Oda Shinsuke
 
ユニットテスト_2日目
ユニットテスト_2日目ユニットテスト_2日目
ユニットテスト_2日目
Yoshiki Shibukawa
 
JavaScriptおよびXPages Vote技術解説
JavaScriptおよびXPages Vote技術解説JavaScriptおよびXPages Vote技術解説
JavaScriptおよびXPages Vote技術解説
賢次 海老原
 

Similar to Web技術勉強会 20110514 (9)

Web技術勉強会 20110528
Web技術勉強会 20110528Web技術勉強会 20110528
Web技術勉強会 20110528
 
魔法を使わないプログラミング(web公開版)
魔法を使わないプログラミング(web公開版)魔法を使わないプログラミング(web公開版)
魔法を使わないプログラミング(web公開版)
 
Alluren of prototype-based OOP
Alluren of prototype-based OOPAlluren of prototype-based OOP
Alluren of prototype-based OOP
 
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
 
オブジェクト指向入門1
オブジェクト指向入門1オブジェクト指向入門1
オブジェクト指向入門1
 
Howtoよいデザイン
HowtoよいデザインHowtoよいデザイン
Howtoよいデザイン
 
仕事でも Groovy を使おう!
仕事でも Groovy を使おう!仕事でも Groovy を使おう!
仕事でも Groovy を使おう!
 
ユニットテスト_2日目
ユニットテスト_2日目ユニットテスト_2日目
ユニットテスト_2日目
 
JavaScriptおよびXPages Vote技術解説
JavaScriptおよびXPages Vote技術解説JavaScriptおよびXPages Vote技術解説
JavaScriptおよびXPages Vote技術解説
 

More from 龍一 田中

WebSocketでリアルタイム処理をする
WebSocketでリアルタイム処理をするWebSocketでリアルタイム処理をする
WebSocketでリアルタイム処理をする
龍一 田中
 
Web技術勉強会 20130525 - Google Cloud Messaging入門
Web技術勉強会 20130525 - Google Cloud Messaging入門Web技術勉強会 20130525 - Google Cloud Messaging入門
Web技術勉強会 20130525 - Google Cloud Messaging入門
龍一 田中
 
Web技術勉強会 20120728
Web技術勉強会 20120728Web技術勉強会 20120728
Web技術勉強会 20120728
龍一 田中
 
Web技術勉強会 20120609
Web技術勉強会 20120609Web技術勉強会 20120609
Web技術勉強会 20120609
龍一 田中
 
Web技術勉強会 20120114 - JenkinsでJava/PHP/Ruby/JavaScriptをビルドする
Web技術勉強会 20120114 - JenkinsでJava/PHP/Ruby/JavaScriptをビルドするWeb技術勉強会 20120114 - JenkinsでJava/PHP/Ruby/JavaScriptをビルドする
Web技術勉強会 20120114 - JenkinsでJava/PHP/Ruby/JavaScriptをビルドする
龍一 田中
 
Web技術勉強会 20111112
Web技術勉強会 20111112Web技術勉強会 20111112
Web技術勉強会 20111112
龍一 田中
 
Web技術勉強会 20110723
Web技術勉強会 20110723Web技術勉強会 20110723
Web技術勉強会 20110723
龍一 田中
 
Web技術勉強会 20110611
Web技術勉強会 20110611Web技術勉強会 20110611
Web技術勉強会 20110611
龍一 田中
 
Web技術勉強会 20100925
Web技術勉強会 20100925Web技術勉強会 20100925
Web技術勉強会 20100925
龍一 田中
 
Web技術勉強会 第38回
Web技術勉強会 第38回Web技術勉強会 第38回
Web技術勉強会 第38回
龍一 田中
 
Web技術勉強会 第37回
Web技術勉強会 第37回Web技術勉強会 第37回
Web技術勉強会 第37回
龍一 田中
 
Web技術勉強会 第34回
Web技術勉強会 第34回Web技術勉強会 第34回
Web技術勉強会 第34回
龍一 田中
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回
龍一 田中
 
Web技術勉強会 第31回
Web技術勉強会 第31回Web技術勉強会 第31回
Web技術勉強会 第31回
龍一 田中
 
Web技術勉強会 第30回
Web技術勉強会 第30回Web技術勉強会 第30回
Web技術勉強会 第30回
龍一 田中
 
Web技術勉強会 第28回
Web技術勉強会 第28回Web技術勉強会 第28回
Web技術勉強会 第28回
龍一 田中
 
Web技術勉強会23回目
Web技術勉強会23回目Web技術勉強会23回目
Web技術勉強会23回目
龍一 田中
 
Web技術勉強会 第19回
Web技術勉強会 第19回Web技術勉強会 第19回
Web技術勉強会 第19回
龍一 田中
 
Web技術勉強会 第18回
Web技術勉強会 第18回Web技術勉強会 第18回
Web技術勉強会 第18回
龍一 田中
 
Web技術勉強会11回目
Web技術勉強会11回目Web技術勉強会11回目
Web技術勉強会11回目
龍一 田中
 

More from 龍一 田中 (20)

WebSocketでリアルタイム処理をする
WebSocketでリアルタイム処理をするWebSocketでリアルタイム処理をする
WebSocketでリアルタイム処理をする
 
Web技術勉強会 20130525 - Google Cloud Messaging入門
Web技術勉強会 20130525 - Google Cloud Messaging入門Web技術勉強会 20130525 - Google Cloud Messaging入門
Web技術勉強会 20130525 - Google Cloud Messaging入門
 
Web技術勉強会 20120728
Web技術勉強会 20120728Web技術勉強会 20120728
Web技術勉強会 20120728
 
Web技術勉強会 20120609
Web技術勉強会 20120609Web技術勉強会 20120609
Web技術勉強会 20120609
 
Web技術勉強会 20120114 - JenkinsでJava/PHP/Ruby/JavaScriptをビルドする
Web技術勉強会 20120114 - JenkinsでJava/PHP/Ruby/JavaScriptをビルドするWeb技術勉強会 20120114 - JenkinsでJava/PHP/Ruby/JavaScriptをビルドする
Web技術勉強会 20120114 - JenkinsでJava/PHP/Ruby/JavaScriptをビルドする
 
Web技術勉強会 20111112
Web技術勉強会 20111112Web技術勉強会 20111112
Web技術勉強会 20111112
 
Web技術勉強会 20110723
Web技術勉強会 20110723Web技術勉強会 20110723
Web技術勉強会 20110723
 
Web技術勉強会 20110611
Web技術勉強会 20110611Web技術勉強会 20110611
Web技術勉強会 20110611
 
Web技術勉強会 20100925
Web技術勉強会 20100925Web技術勉強会 20100925
Web技術勉強会 20100925
 
Web技術勉強会 第38回
Web技術勉強会 第38回Web技術勉強会 第38回
Web技術勉強会 第38回
 
Web技術勉強会 第37回
Web技術勉強会 第37回Web技術勉強会 第37回
Web技術勉強会 第37回
 
Web技術勉強会 第34回
Web技術勉強会 第34回Web技術勉強会 第34回
Web技術勉強会 第34回
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回
 
Web技術勉強会 第31回
Web技術勉強会 第31回Web技術勉強会 第31回
Web技術勉強会 第31回
 
Web技術勉強会 第30回
Web技術勉強会 第30回Web技術勉強会 第30回
Web技術勉強会 第30回
 
Web技術勉強会 第28回
Web技術勉強会 第28回Web技術勉強会 第28回
Web技術勉強会 第28回
 
Web技術勉強会23回目
Web技術勉強会23回目Web技術勉強会23回目
Web技術勉強会23回目
 
Web技術勉強会 第19回
Web技術勉強会 第19回Web技術勉強会 第19回
Web技術勉強会 第19回
 
Web技術勉強会 第18回
Web技術勉強会 第18回Web技術勉強会 第18回
Web技術勉強会 第18回
 
Web技術勉強会11回目
Web技術勉強会11回目Web技術勉強会11回目
Web技術勉強会11回目
 

Recently uploaded

Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
Takayuki Nakayama
 
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
Tatsuya Ishikawa
 
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
iPride Co., Ltd.
 
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
Tetsuya Nihonmatsu
 
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
TsuyoshiSaito7
 
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
shogotaguchi
 
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツールMOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
TsuyoshiSaito7
 
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
Hironori Washizaki
 
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
Takuya Minagawa
 
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
company21
 

Recently uploaded (10)

Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
 
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
 
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
 
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
 
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
 
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
 
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツールMOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
 
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
 
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
 
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
 

Web技術勉強会 20110514