SlideShare a Scribd company logo
+




    LT#7「Hello coffee」
            してきた
    2013/01/22 れこ
+
    おはようございます。眠いです


     昼夜逆転生活




     Tasketeは落選。




     コウサ展
+




                 CoffeeScript


photo by yukop
+
    目次

    1.    CoffeeScriptってなんぞ?

    2.    何が出来るの?

    3.    どう書くの?

    4.    所感



         導入手順については大きく割愛
+
    CoffeeScript


    “CoffeeScript is a little language that compiles into JavaScript.”
                                                  http://coffeescript.org/


      書いた物全てがjsに変換される

      文法はRuby,       Pythonあたりに近い?
+
    見た方が早い
+
    CoffeeScript

        varによる変数定義不要、セミコロン不要

        引数がある場合関数呼び出しの()不要

        色々とインデントで表現

        functionは「   ->」で表現
        classっぽいものも書ける

        コードから判断し必要最小限のスコープにしてくれる

        SublimeText2、Coda用のプラグイン有り
+
    コンパイル

    普通にコンパイル
    ⇒  即時関数で囲まれてる
    ⇒  グローバルを汚染しない




    -bオプションコンパイル
    ⇒  即時関数が外れてる
    ⇒  Nodejs系では必須だとかいう噂


    ファイルの変更を監視して
    自動コンパイルも出来るよ!!
+
    classもどき
+


    ぷ  
    ら  
    ぐ  
    い  
    ん
+
    所感:快適


     精神衛生上優しい

             for~in文の挙動が望んでいたそれに

             快適すぎて書くだけで楽しい

     タイプ数:減 書く速度:速 可読性:高

        jQueryも書いていけるし、むしろ書きやすい

        変更監視→自動コンパイルもあるから手間は感じない

        公式ドキュメントだけ十分学べる(※英語)
+



    だが、要は
    JavaScript
    なんだろう?
+
    自前で書ける範囲内です。


     Example:for            ~ in
    for ( var I = 0; I  ary.length; i++ ) {

            var item = ary[i];

            //これでitemは配列の各要素として扱える

    }



    めんどいし人によって実装がまちまちになる!
+
    あとのことはググりましょう。

        Ruby脳でCoffeeScriptのクラスを理解する - hp12c
         http://d.hatena.ne.jp/keyesberry/20110908/p1

        CoffeeScript
         http://coffeescript.org

More Related Content

What's hot

第二回 クラウドサーバー管理者若葉の会
第二回 クラウドサーバー管理者若葉の会第二回 クラウドサーバー管理者若葉の会
第二回 クラウドサーバー管理者若葉の会
masayoshi shiraishi
 
OSC 2011 KeySnail
OSC 2011 KeySnailOSC 2011 KeySnail
OSC 2011 KeySnail
Masafumi Oyamada
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
 
Ruby on Windows
Ruby on WindowsRuby on Windows
Ruby on Windows
Tomoya Kawanishi
 
人間たちとsystemd
人間たちとsystemd人間たちとsystemd
人間たちとsystemd
Uchio Kondo
 
K初めてのstylus
K初めてのstylus K初めてのstylus
K初めてのstylus
Kazuki Nakatani
 
Rubyでやろう。データ解析導入編( CSV, XML, JSON)
Rubyでやろう。データ解析導入編( CSV, XML, JSON)Rubyでやろう。データ解析導入編( CSV, XML, JSON)
Rubyでやろう。データ解析導入編( CSV, XML, JSON)
NAKAOKU Takahiro
 
Espressoじゃなくてcodaを使う理由
Espressoじゃなくてcodaを使う理由Espressoじゃなくてcodaを使う理由
Espressoじゃなくてcodaを使う理由Tao Sasaki
 
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Teppei Sato
 
Introduction of mruby & Webruby script example
Introduction of mruby & Webruby script exampleIntroduction of mruby & Webruby script example
Introduction of mruby & Webruby script example
kishima7
 
Rubyでバルクインサート
RubyでバルクインサートRubyでバルクインサート
Rubyでバルクインサート
Fujimura Munehiko
 
Rubinius Under a Microscope
Rubinius Under a MicroscopeRubinius Under a Microscope
Rubinius Under a Microscope
高広 内山
 
コンパイラ指向ReVIEW
コンパイラ指向ReVIEWコンパイラ指向ReVIEW
コンパイラ指向ReVIEWMasahiro Wakame
 
JavaScript MVC入門
JavaScript MVC入門JavaScript MVC入門
JavaScript MVC入門
大樹 小倉
 
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 dec
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 decmrubyボードを使って こんなことしてみました Kansai.mrb 2014 dec
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 dec
Yoshito Tanaka
 
Rubyの実装をRubiniusで便利
Rubyの実装をRubiniusで便利Rubyの実装をRubiniusで便利
Rubyの実装をRubiniusで便利
Yutaka Tachibana
 
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
Masahiro Wakame
 
Gulp De wordpress in WordBench
Gulp De wordpress in WordBenchGulp De wordpress in WordBench
Gulp De wordpress in WordBench
Kanako Kobayashi
 

What's hot (20)

第二回 クラウドサーバー管理者若葉の会
第二回 クラウドサーバー管理者若葉の会第二回 クラウドサーバー管理者若葉の会
第二回 クラウドサーバー管理者若葉の会
 
OSC 2011 KeySnail
OSC 2011 KeySnailOSC 2011 KeySnail
OSC 2011 KeySnail
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
 
Ruby on Windows
Ruby on WindowsRuby on Windows
Ruby on Windows
 
人間たちとsystemd
人間たちとsystemd人間たちとsystemd
人間たちとsystemd
 
K初めてのstylus
K初めてのstylus K初めてのstylus
K初めてのstylus
 
Rubyでやろう。データ解析導入編( CSV, XML, JSON)
Rubyでやろう。データ解析導入編( CSV, XML, JSON)Rubyでやろう。データ解析導入編( CSV, XML, JSON)
Rubyでやろう。データ解析導入編( CSV, XML, JSON)
 
Espressoじゃなくてcodaを使う理由
Espressoじゃなくてcodaを使う理由Espressoじゃなくてcodaを使う理由
Espressoじゃなくてcodaを使う理由
 
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
 
Introduction of mruby & Webruby script example
Introduction of mruby & Webruby script exampleIntroduction of mruby & Webruby script example
Introduction of mruby & Webruby script example
 
Rubyでバルクインサート
RubyでバルクインサートRubyでバルクインサート
Rubyでバルクインサート
 
Rubinius Under a Microscope
Rubinius Under a MicroscopeRubinius Under a Microscope
Rubinius Under a Microscope
 
コンパイラ指向ReVIEW
コンパイラ指向ReVIEWコンパイラ指向ReVIEW
コンパイラ指向ReVIEW
 
JavaScript MVC入門
JavaScript MVC入門JavaScript MVC入門
JavaScript MVC入門
 
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 dec
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 decmrubyボードを使って こんなことしてみました Kansai.mrb 2014 dec
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 dec
 
Rubyの実装をRubiniusで便利
Rubyの実装をRubiniusで便利Rubyの実装をRubiniusで便利
Rubyの実装をRubiniusで便利
 
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
 
Gulp De wordpress in WordBench
Gulp De wordpress in WordBenchGulp De wordpress in WordBench
Gulp De wordpress in WordBench
 
らくちん Go言語
らくちん Go言語らくちん Go言語
らくちん Go言語
 
ゆるかわPhp
ゆるかわPhpゆるかわPhp
ゆるかわPhp
 

Viewers also liked

LT#6 Taskete
LT#6 TasketeLT#6 Taskete
LT#6 Taskete
Shingo Inoue
 
そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4
Shingo Inoue
 
さらなるjsの深みへ#3
さらなるjsの深みへ#3さらなるjsの深みへ#3
さらなるjsの深みへ#3
Shingo Inoue
 
Lt8 JavaScriptで配列をコピーする
Lt8 JavaScriptで配列をコピーするLt8 JavaScriptで配列をコピーする
Lt8 JavaScriptで配列をコピーするShingo Inoue
 
LTって、何の略だっけ。1
LTって、何の略だっけ。1LTって、何の略だっけ。1
LTって、何の略だっけ。1
Shingo Inoue
 
コードゴルフ 〜今日から始める難読コードの世界〜
コードゴルフ 〜今日から始める難読コードの世界〜コードゴルフ 〜今日から始める難読コードの世界〜
コードゴルフ 〜今日から始める難読コードの世界〜
Shingo Inoue
 
Git svnではじめる忍者のごとく潜むgit
Git svnではじめる忍者のごとく潜むgitGit svnではじめる忍者のごとく潜むgit
Git svnではじめる忍者のごとく潜むgit
Kazuki Sato
 
Xcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミング
Xcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミングXcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミング
Xcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミング
Kazuki Sato
 

Viewers also liked (8)

LT#6 Taskete
LT#6 TasketeLT#6 Taskete
LT#6 Taskete
 
そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4
 
さらなるjsの深みへ#3
さらなるjsの深みへ#3さらなるjsの深みへ#3
さらなるjsの深みへ#3
 
Lt8 JavaScriptで配列をコピーする
Lt8 JavaScriptで配列をコピーするLt8 JavaScriptで配列をコピーする
Lt8 JavaScriptで配列をコピーする
 
LTって、何の略だっけ。1
LTって、何の略だっけ。1LTって、何の略だっけ。1
LTって、何の略だっけ。1
 
コードゴルフ 〜今日から始める難読コードの世界〜
コードゴルフ 〜今日から始める難読コードの世界〜コードゴルフ 〜今日から始める難読コードの世界〜
コードゴルフ 〜今日から始める難読コードの世界〜
 
Git svnではじめる忍者のごとく潜むgit
Git svnではじめる忍者のごとく潜むgitGit svnではじめる忍者のごとく潜むgit
Git svnではじめる忍者のごとく潜むgit
 
Xcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミング
Xcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミングXcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミング
Xcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミング
 

Similar to LT#7 Hello coffeeしてきた

読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム
amusementcreators
 
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話
simotin13 Miyazaki
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
hecomi
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由
Yusuke Naka
 
古い?ダサい?まだまだイケルChef!
古い?ダサい?まだまだイケルChef!古い?ダサい?まだまだイケルChef!
古い?ダサい?まだまだイケルChef!Naoto Ishizawa
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
 
俺とGitHubとcodeシリーズ
俺とGitHubとcodeシリーズ俺とGitHubとcodeシリーズ
俺とGitHubとcodeシリーズ
Masayuki KaToH
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
mitim
 
今日から始めるLaravel
今日から始めるLaravel今日から始めるLaravel
今日から始めるLaravelMasaru Matsuo
 
minneで学ぶクラウド脳
minneで学ぶクラウド脳minneで学ぶクラウド脳
minneで学ぶクラウド脳
Uchio Kondo
 
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめトランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
pospome
 
Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたい
Masato Noguchi
 
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラインフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
susumu tanaka
 
Clrh 110827 wfho
Clrh 110827 wfhoClrh 110827 wfho
Clrh 110827 wfho
Tomoyuki Obi
 
最近流行りのビルドツールとは
最近流行りのビルドツールとは最近流行りのビルドツールとは
最近流行りのビルドツールとは
Takahiro Maki
 
PHPとJavaScriptの噺
PHPとJavaScriptの噺PHPとJavaScriptの噺
PHPとJavaScriptの噺Shogo Kawahara
 
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugjPhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
Hisateru Tanaka
 
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIあなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
Wataru MIYAGUNI
 
Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005gotohayato
 

Similar to LT#7 Hello coffeeしてきた (20)

読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム
 
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由
 
古い?ダサい?まだまだイケルChef!
古い?ダサい?まだまだイケルChef!古い?ダサい?まだまだイケルChef!
古い?ダサい?まだまだイケルChef!
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
俺とGitHubとcodeシリーズ
俺とGitHubとcodeシリーズ俺とGitHubとcodeシリーズ
俺とGitHubとcodeシリーズ
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
 
今日から始めるLaravel
今日から始めるLaravel今日から始めるLaravel
今日から始めるLaravel
 
minneで学ぶクラウド脳
minneで学ぶクラウド脳minneで学ぶクラウド脳
minneで学ぶクラウド脳
 
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめトランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
 
Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたい
 
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラインフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
 
Clrh 110827 wfho
Clrh 110827 wfhoClrh 110827 wfho
Clrh 110827 wfho
 
最近流行りのビルドツールとは
最近流行りのビルドツールとは最近流行りのビルドツールとは
最近流行りのビルドツールとは
 
PHPとJavaScriptの噺
PHPとJavaScriptの噺PHPとJavaScriptの噺
PHPとJavaScriptの噺
 
Chef
ChefChef
Chef
 
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugjPhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
 
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIあなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
 
Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005
 

LT#7 Hello coffeeしてきた

  • 1. + LT#7「Hello coffee」         してきた 2013/01/22 れこ
  • 2. + おはようございます。眠いです  昼夜逆転生活  Tasketeは落選。  コウサ展
  • 3. + CoffeeScript photo by yukop
  • 4. + 目次 1.  CoffeeScriptってなんぞ? 2.  何が出来るの? 3.  どう書くの? 4.  所感   導入手順については大きく割愛
  • 5. + CoffeeScript “CoffeeScript is a little language that compiles into JavaScript.” http://coffeescript.org/   書いた物全てがjsに変換される   文法はRuby, Pythonあたりに近い?
  • 6. + 見た方が早い
  • 7. + CoffeeScript   varによる変数定義不要、セミコロン不要   引数がある場合関数呼び出しの()不要   色々とインデントで表現   functionは「 ->」で表現   classっぽいものも書ける   コードから判断し必要最小限のスコープにしてくれる   SublimeText2、Coda用のプラグイン有り
  • 8. + コンパイル 普通にコンパイル ⇒  即時関数で囲まれてる ⇒  グローバルを汚染しない -bオプションコンパイル ⇒  即時関数が外れてる ⇒  Nodejs系では必須だとかいう噂 ファイルの変更を監視して 自動コンパイルも出来るよ!!
  • 9. + classもどき
  • 10. + ぷ ら ぐ い ん
  • 11. + 所感:快適  精神衛生上優しい   for~in文の挙動が望んでいたそれに   快適すぎて書くだけで楽しい  タイプ数:減 書く速度:速 可読性:高   jQueryも書いていけるし、むしろ書きやすい   変更監視→自動コンパイルもあるから手間は感じない   公式ドキュメントだけ十分学べる(※英語)
  • 12. + だが、要は JavaScript なんだろう?
  • 13. + 自前で書ける範囲内です。  Example:for ~ in for ( var I = 0; I ary.length; i++ ) { var item = ary[i]; //これでitemは配列の各要素として扱える } めんどいし人によって実装がまちまちになる!
  • 14. + あとのことはググりましょう。   Ruby脳でCoffeeScriptのクラスを理解する - hp12c http://d.hatena.ne.jp/keyesberry/20110908/p1   CoffeeScript http://coffeescript.org