O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
LLプログラマ向けExtensionsと	
  
テストライブラリ	
  Quickの紹介	
第2回	
  Swi2	
  勉強会	
  in	
  TechBuzz	
  
	
  
KitchHike,	
  Inc.	
  藤崎祥見	
 ...
自己紹介	
•  藤崎祥見(フジサキ ショウケン)	
  
•  KitchHike,	
  Inc.	
  代表取締役	
  Co-­‐CEO	
  	
  
•  普段はRuby	
  on	
  Railsで開発しています。	
  
• ...
What is KitchHike	
現地人とコミュニケーションを取りたい旅行者が、
料理を作ってくれる現地人の家に
遊びにいけるサービスです。
hQps://kitchhike.com/
LLプログラマが幸せになれるそうな	
  
Swi2	
  Extensionsの紹介	
•  Extensionsとは	
  
•  ExSwi2	
  
•  Pythonic.swi2	
  
•  Dollar.swi2	
  と	
 ...
Extensionsとは	
•  Swi2の標準クラスを拡張できる仕組み	
  
•  ObjecYve-­‐Cでは拡張カテゴリと呼ばれていたもの	
  
extension Array {!
func each(f: (Element) ->...
ExSwi2	
•  hQps://github.com/pNre/ExSwi2	
  
•  JavaScript	
  (Lo-­‐Dash,	
  Underscore)	
  &	
  Rubyにインスパイア	
  
•  Swi2クラ...
Pythonic.Swi2	
•  hQps://github.com/pracYcalswi2/Pythonic.swi2	
  
•  Python	
  
•  Swi2クラス拡張タイプ	
  
•  タブとは何だったのか?	
  
22...
•  hQps://github.com/ankurp/Dollar.swi2	
  
•  Lo-­‐Dash	
  or	
  Underscoreにインスパイア	
  
•  独自クラス(なので厳密にはExtensionsでは無い)	
 ...
$.at(["ant", "bat", "cat", "dog", "egg"], indexes: 0, 2, 4)!
=> ["ant", "cat", "egg”]!
!
$.contains([1, 2, 3, 1, 2, 3], va...
RubySwi2	
•  hQps://github.com/Appletone/RubySwi2	
  
•  Ruby	
  
•  ファーストコミット	
  2014/07/16	
  メソッド少なすぎぃ!	
  
•  とりあえずSta...
Quick	
•  hQps://github.com/Quick/Quick	
  
•  Specライクなテストフレームワーク	
  
•  実際に使った。幸せになれた。ドキュメントも充実している。	
  
705	
import Quic...
まとめとTIPS	
•  プロジェクトにファイルを置くだけ手軽に導入できる	
  
•  Ruby使っている人にはQuickおすすめ	
  
o  Spec!	
  Spec!	
  
•  プロジェクトで導入するには、バージョンを固定するのが...
https://kitchhike.com/
Próximos SlideShares
Carregando em…5
×

LLプログラマ向けSwift ExtensionsとテストライブラリQuickの紹介

2.084 visualizações

Publicada em

第2回Swift勉強会 in TechBuzz http://atnd.org/events/51944 で発表した資料です。
ExSwift, Pythonic.Swift, Dollar.swift, __.swiftとSpecライクにテストが書けるQuickの紹介です。

Publicada em: Tecnologia
  • Seja o primeiro a comentar

LLプログラマ向けSwift ExtensionsとテストライブラリQuickの紹介

  1. 1. LLプログラマ向けExtensionsと   テストライブラリ  Quickの紹介 第2回  Swi2  勉強会  in  TechBuzz     KitchHike,  Inc.  藤崎祥見   2014/07/18
  2. 2. 自己紹介 •  藤崎祥見(フジサキ ショウケン)   •  KitchHike,  Inc.  代表取締役  Co-­‐CEO     •  普段はRuby  on  Railsで開発しています。   •  MongoDB  JP  副代表     gihyo.jpで「MongoDBでゆるふわDB体験」を連載     •  TwiQer:  @syokenz,  Qiita:  syokenz   •  www.facebook.com/fujisaki.shoken   •  Swi2経験:  2泊3日の開発合宿で麻雀の捨て牌候補を表示す るアプリ作成
  3. 3. What is KitchHike 現地人とコミュニケーションを取りたい旅行者が、 料理を作ってくれる現地人の家に 遊びにいけるサービスです。 hQps://kitchhike.com/
  4. 4. LLプログラマが幸せになれるそうな   Swi2  Extensionsの紹介 •  Extensionsとは   •  ExSwi2   •  Pythonic.swi2   •  Dollar.swi2  と  __.swi2   •  RubySwi2   •  おまけ:  テストフレームワークQuick  
  5. 5. Extensionsとは •  Swi2の標準クラスを拡張できる仕組み   •  ObjecYve-­‐Cでは拡張カテゴリと呼ばれていたもの   extension Array {! func each(f: (Element) -> ()) {! for e in self {! f(e)! }! }! }! ! Extensions  サンプルコード:  Arrayにeachを実装する > [1,2,3].each { println($0) }! => 1! => 2! => 3
  6. 6. ExSwi2 •  hQps://github.com/pNre/ExSwi2   •  JavaScript  (Lo-­‐Dash,  Underscore)  &  Rubyにインスパイア   •  Swi2クラス拡張タイプ   •  ファーストコミット  2014/06/04(WWDCの次の日)   •  仕事早すぎぃ!   356 let array = [5, 1, 0, 10]! array.each { item in println(item) }! ! var items = Int[]()! (0..2).each { items.append($0) }! ! let dic = ["A": 1, "B": 2, "C": 3]! dic.each { key, value in println(key, value) }! dic.has(“A”)! ! let dic = [ "A": 1, "B": 2, "C": 3 ]! let mapped = dic.map(mapFunction: { return ($0 + "!", $1 + 1) })! println(mapped) ExSwi2  サンプルコード
  7. 7. Pythonic.Swi2 •  hQps://github.com/pracYcalswi2/Pythonic.swi2   •  Python   •  Swi2クラス拡張タイプ   •  タブとは何だったのか?   227 if re.search("^foo", "foobar") {! println(["foo", "bar", "zonk"].index("foo")) // 0! println(["foo", "bar", "zonk"].count("bar")) // 1! println(["foo", "bar", "zonk"].count("zoo")) // 0! }! ! if any(["foo", "bar", "zonk"]) {! println(chr(ord("a"))) // a! }! ! var greeting = " hello pythonista "! if greeting.strip().startswith("hello") {! println(greeting.strip().title()) // Hello Pythonista! } Pyhonic.Swi2  サンプルコード
  8. 8. •  hQps://github.com/ankurp/Dollar.swi2   •  Lo-­‐Dash  or  Underscoreにインスパイア   •  独自クラス(なので厳密にはExtensionsでは無い)   •  同じプロジェクト内にCentというSwi2拡張タイプもある   •  みんなの$が大好き     •  hQps://github.com/lotz84/__.swi2   •  Underscore.jsのクローン   •  独自クラス(なので厳密にはExtensionsでは無い)   •  _(アンダースコア)は2つ   __.swi2 55 1,022 Dollar.swi2
  9. 9. $.at(["ant", "bat", "cat", "dog", "egg"], indexes: 0, 2, 4)! => ["ant", "cat", "egg”]! ! $.contains([1, 2, 3, 1, 2, 3], value: 2) ! => True! $.range(0, endVal: 20, incrementBy: 5) ! => [0, 5, 10, 15]! ! let fun = $.bind({ (names: String...) -> String in! let people = $.join(names, separator: " from ")! return "Hello (people)"! }, "Ankur", "Swift")! $.times(2, function: fun) as String[] ! => ["Hello Ankur from Swift", "Hello Ankur from Swift"]! Dollar.Swi2  サンプルコード
  10. 10. RubySwi2 •  hQps://github.com/Appletone/RubySwi2   •  Ruby   •  ファーストコミット  2014/07/16  メソッド少なすぎぃ!   •  とりあえずStarした   1 5.times {! println("Hey! You look really like Ruby")! }! ! 5.upto(10) {! println($0)! }! ! "HELLO".capitalized() ! => Hello RubySwi2  サンプルコード
  11. 11. Quick •  hQps://github.com/Quick/Quick   •  Specライクなテストフレームワーク   •  実際に使った。幸せになれた。ドキュメントも充実している。   705 import Quick! import Nimble! ! class DolphinSpec: QuickSpec {! override func spec() {! it("is friendly") {! expect(Dolphin().isFriendly).to.beTrue()! }! ! it("is smart") {! expect(Dolphin().isSmart).to.beTrue()! }! }! } Quick  サンプルコード
  12. 12. まとめとTIPS •  プロジェクトにファイルを置くだけ手軽に導入できる   •  Ruby使っている人にはQuickおすすめ   o  Spec!  Spec!   •  プロジェクトで導入するには、バージョンを固定するのが吉   o  仕様変更もたびたびあるので下手にUpdateすると動かなくなる   •  必要な部分だけつまんで導入するのもあり   o  リポジトリのソースを参考に自分で書くのもあり   •  他のExtensionsとのコンフリクトに注意!   o  Arrayクラスはだいたい拡張されている
  13. 13. https://kitchhike.com/

×