SlideShare a Scribd company logo
1 of 27
Leiningen超速入門 @Kuchitama
自己紹介

  • @Kuchitama
  • フリュー株式会社勤務
   - www.furyu.jp
  • 社会人1年と1ヶ月
  • Java/Scala/AS3/Clojure
Leiningen超速入門
自己紹介
                             キモ
  • @Kuchitama                  イ 画像
  • フリュー株式会社勤務               すい
                                ませ
                                   晒し
                                     て
   - www.furyu.jp                  ん

  • 社会人1年と1ヶ月
  • Java/Scala/AS3/Clojure
Leiningen超速入門
基本スタンス


  • とにかく書いてみる
  • まずは手を動かす


Leiningen超速入門
目次
   • Leiningenとは
   • メリット
   • 使ってみた
     - プロジェクト作成
     - 依存関係の解決
     - テスト
     - パッケージング
    • まとめ
Leiningen超速入門
Leiningenとは
  • ライニンゲン(独)らしい
  • Clojureプロジェクトのビルドツール
  • デファクトスタンダード
   - jarの依存関係解決
  • maven2リポジトリから取得
  • Clojure未インストール環境でも動作
   - Javaさえあれば!
Leiningen超速入門
メリット

  • 超お手軽インストール
   - ●nix
   - windows
  • 実行環境の構築
  • Java資産の再利用

Leiningen超速入門
使ってみよう

  • インストール
  • ライブラリ取得
  • テスト
  • パッケージング

Leiningen超速入門
使ってみよう1


             インストール
   • For Unix/Linux
  1.スクリプトをダウンロードし、パスを通す
  https://raw.github.com/technomancy/leiningen/stable/
  bin/lein
  2.実行権限の設定
  $ chmod a+x /YOUR_PATH/lein
  3.self-updateの実行
  下記コマンドを実行することで、インストール完了。
  $ lein self-install
Leiningen超速入門
使ってみよう2


  プロジェクトの作成
  • 次のコマンドを実行
   • lein new [プロジェクト名]
   $ lein new KyotoCljSample
  • プロジェクトが作成される




Leiningen超速入門
使ってみよう2


   プロジェクトの作成
  KyotoCljSample
                   README
                   project.clj
                   src
                   test
                   lib

Leiningen超速入門
使ってみよう2


   プロジェクトの作成
  KyotoCljSample
                   README
                   project.clj
                   src
                   test
                   lib

Leiningen超速入門
使ってみよう2


  プロジェクトの作成
   (defproject KyotoCljSample "1.0.0-SNAPSHOT"
   :description "FIXME: write description"
   :dependencies [[org.clojure/clojure "1.3.0"]])




Leiningen超速入門
使ってみよう2


  プロジェクトの作成
   (defproject KyotoCljSample "1.0.0-SNAPSHOT"
   :description "FIXME: write description"
   :dependencies [[org.clojure/clojure "1.3.0"]
                 [org.clojure/clojure-contrib "1.2.0"]])



   $lein deps
Leiningen超速入門
使ってみよう2


   プロジェクトの作成
  KyotoCljSample
                   ・・・
                   ・・・
               lib
                         clojure-1.3.0.jar	

                         clojure-contrib-1.2.0.jar

Leiningen超速入門
使ってみよう2


  プロジェクトの作成
   Clojars http://clojars.org/




Leiningen超速入門
使ってみよう2


   プロジェクトの作成
  KyotoCljSample
                   README
                   project.clj
                   src
                   test
                   lib

Leiningen超速入門
使ってみよう2


  プロジェクトの作成
       src
              KyotoCljSample
                    core.clj
       test     KyotoCljSample
                    test       core.clj

Leiningen超速入門
使ってみよう2


  プロジェクトの作成
   (ns KyotoCljSample.core)
   (def wrap-p-tag [str-seq]
        ; 与えられたシーケンスを<p></p>でくくる


       (map #(format “<p>%s</p>” %) str-seq)
   )




Leiningen超速入門
使ってみよう2


  プロジェクトの作成
   KyotoCljSample/core.clj
   (ns KyotoCljSample.core)
   (def wrap-p-tag [str-seq]
        ; 与えられたシーケンスを<p></p>でくくる


       (map #(format “<p>%s</p>” %) str-seq)
   )



Leiningen超速入門
使ってみよう2


  プロジェクトの作成
       core.clj
   (ns KyotoCljSample.core)
   (def wrap-p-tag [str-seq]
        ; 与えられたシーケンスを<p></p>でくくる


       (map #(format “<p>%s</p>” %) str-seq)
   )



Leiningen超速入門
使ってみよう3


       テスト実施
       src
              KyotoCljSample
                    core.clj
       test     KyotoCljSample
                    test       core.clj

Leiningen超速入門
使ってみよう3


              テスト実施
         test/core.clj

   (ns KyotoCljSample.test.core
     (:use [KyotoCljSample.core])
     (:use [clojure.test]))
   (deftest wrap-test ;; wrap-p-tagがちゃんと動くか
     (is (= (wrap-p-tag ["Welcome" "Kyoto" "clj"])
       ["<p>Welcome</p>" "<p>Kyoto</p>" "<p>clj</p>"])

      "ちゃんとくくれてない"))

Leiningen超速入門
使ってみよう3


                 テスト実施
   $ lein test


   > Testing KyotoCljSample.test.core
   >
   > Ran 1 tests containing 1 assertions.
   > 0 failures, 0 errors.


Leiningen超速入門
使ってみよう4


       パッケージング
   $ lein uberjar

  KyotoCljSample
                    ・・・
                    KyotoCljSample-1.0.0-
                      SNAPSHOT-standalone.jar
                    KyotoCljSample-1.0.0-
                              SNAPSHOT.jar

Leiningen超速入門
まとめ

  • あっという間にClojure環境構築
  • 使いたいライブラリを速攻ゲット
  • テストまで出来る
  • 超お手軽パッケージング

Leiningen超速入門
参考サイト


  • Clojure@wiki : http://www16.atwiki.jp/clojure/
  • GitHub: http://github.com/kuchitama/hentai


Leiningen超速入門

More Related Content

What's hot

gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 環境準備編
gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 環境準備編gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 環境準備編
gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 環境準備編Toshimichi Suekane
 
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのかJavaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのかYoshitaka Kawashima
 
Clojureの発表など
Clojureの発表などClojureの発表など
Clojureの発表などKikuta Go
 
Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料
Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料
Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料Toshimichi Suekane
 
Scala.jsはじめました!
Scala.jsはじめました!Scala.jsはじめました!
Scala.jsはじめました!K Kinzal
 
gulp + sass で目指せ倍速コーディング(第2回 gulpfile.jsの分割管理と画像作成の効率化)
gulp + sass で目指せ倍速コーディング(第2回 gulpfile.jsの分割管理と画像作成の効率化)gulp + sass で目指せ倍速コーディング(第2回 gulpfile.jsの分割管理と画像作成の効率化)
gulp + sass で目指せ倍速コーディング(第2回 gulpfile.jsの分割管理と画像作成の効率化)Toshimichi Suekane
 
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarconSeasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarconKazuhiro Sera
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化Gosuke Miyashita
 
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状についてClojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状についてKazuhiro Hara
 
ClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろうClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろうKazuhiro Hara
 
Alibaba Cloud で Docker を動かしてみよう [Hands-on]
Alibaba Cloud で Docker を動かしてみよう [Hands-on]Alibaba Cloud で Docker を動かしてみよう [Hands-on]
Alibaba Cloud で Docker を動かしてみよう [Hands-on]Masafumi Noguchi
 
minneで学ぶクラウド脳
minneで学ぶクラウド脳minneで学ぶクラウド脳
minneで学ぶクラウド脳Uchio Kondo
 
Introduction to GraalVM and Native Image
Introduction to GraalVM and Native ImageIntroduction to GraalVM and Native Image
Introduction to GraalVM and Native ImageKoichi Sakata
 
明日から使える Java SE 7
明日から使える Java SE 7明日から使える Java SE 7
明日から使える Java SE 7Yuichi Sakuraba
 
Gulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くするGulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くするHayashi Yuichi
 
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Sea Mountain
 
Java/phpからのOracle接続(debian)
Java/phpからのOracle接続(debian)Java/phpからのOracle接続(debian)
Java/phpからのOracle接続(debian)Kimiyuki Yamauchi
 
Scala.jsはじめました?
Scala.jsはじめました?Scala.jsはじめました?
Scala.jsはじめました?K Kinzal
 
Laravel meetup5(Laravel meet NewSQL/VoltDB )
Laravel meetup5(Laravel meet NewSQL/VoltDB )Laravel meetup5(Laravel meet NewSQL/VoltDB )
Laravel meetup5(Laravel meet NewSQL/VoltDB )Yuuki Takezawa
 
Introductionof taskflow
Introductionof taskflowIntroductionof taskflow
Introductionof taskflowharubelle
 

What's hot (20)

gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 環境準備編
gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 環境準備編gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 環境準備編
gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 環境準備編
 
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのかJavaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
 
Clojureの発表など
Clojureの発表などClojureの発表など
Clojureの発表など
 
Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料
Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料
Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料
 
Scala.jsはじめました!
Scala.jsはじめました!Scala.jsはじめました!
Scala.jsはじめました!
 
gulp + sass で目指せ倍速コーディング(第2回 gulpfile.jsの分割管理と画像作成の効率化)
gulp + sass で目指せ倍速コーディング(第2回 gulpfile.jsの分割管理と画像作成の効率化)gulp + sass で目指せ倍速コーディング(第2回 gulpfile.jsの分割管理と画像作成の効率化)
gulp + sass で目指せ倍速コーディング(第2回 gulpfile.jsの分割管理と画像作成の効率化)
 
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarconSeasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
 
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状についてClojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
 
ClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろうClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろう
 
Alibaba Cloud で Docker を動かしてみよう [Hands-on]
Alibaba Cloud で Docker を動かしてみよう [Hands-on]Alibaba Cloud で Docker を動かしてみよう [Hands-on]
Alibaba Cloud で Docker を動かしてみよう [Hands-on]
 
minneで学ぶクラウド脳
minneで学ぶクラウド脳minneで学ぶクラウド脳
minneで学ぶクラウド脳
 
Introduction to GraalVM and Native Image
Introduction to GraalVM and Native ImageIntroduction to GraalVM and Native Image
Introduction to GraalVM and Native Image
 
明日から使える Java SE 7
明日から使える Java SE 7明日から使える Java SE 7
明日から使える Java SE 7
 
Gulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くするGulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くする
 
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3
 
Java/phpからのOracle接続(debian)
Java/phpからのOracle接続(debian)Java/phpからのOracle接続(debian)
Java/phpからのOracle接続(debian)
 
Scala.jsはじめました?
Scala.jsはじめました?Scala.jsはじめました?
Scala.jsはじめました?
 
Laravel meetup5(Laravel meet NewSQL/VoltDB )
Laravel meetup5(Laravel meet NewSQL/VoltDB )Laravel meetup5(Laravel meet NewSQL/VoltDB )
Laravel meetup5(Laravel meet NewSQL/VoltDB )
 
Introductionof taskflow
Introductionof taskflowIntroductionof taskflow
Introductionof taskflow
 

Similar to Leiningen超速入門

React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDEdcubeio
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624Yusuke Suzuki
 
ocamloptの全体像
ocamloptの全体像ocamloptの全体像
ocamloptの全体像Kiwamu Okabe
 
Cryogenでサイトつくろーじぇん
CryogenでサイトつくろーじぇんCryogenでサイトつくろーじぇん
CryogenでサイトつくろーじぇんKazuhiro Hara
 
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)Kotaro Nakayama
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24
LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24
LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24Rescale Japan株式会社
 
Gradleどうでしょう
GradleどうでしょうGradleどうでしょう
GradleどうでしょうTakuma Watabiki
 
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)kojiokb
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929hiro345
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaYuta Kawadai
 
SwaggerとAPIのデザイン
SwaggerとAPIのデザインSwaggerとAPIのデザイン
SwaggerとAPIのデザインKazuhiro Hara
 
Lightweight Keycloak
Lightweight KeycloakLightweight Keycloak
Lightweight KeycloakHiroyuki Wada
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情takezoe
 
OpenStack on OpenStack with CI
OpenStack on OpenStack with CIOpenStack on OpenStack with CI
OpenStack on OpenStack with CIkanabuchi
 

Similar to Leiningen超速入門 (20)

React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
 
ocamloptの全体像
ocamloptの全体像ocamloptの全体像
ocamloptの全体像
 
Cryogenでサイトつくろーじぇん
CryogenでサイトつくろーじぇんCryogenでサイトつくろーじぇん
Cryogenでサイトつくろーじぇん
 
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
 
MoteMote Compiler Plugin
MoteMote Compiler PluginMoteMote Compiler Plugin
MoteMote Compiler Plugin
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
scala-kaigi1-sbt
scala-kaigi1-sbtscala-kaigi1-sbt
scala-kaigi1-sbt
 
LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24
LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24
LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24
 
Gradleどうでしょう
GradleどうでしょうGradleどうでしょう
Gradleどうでしょう
 
Osoljp201210 oi swift
Osoljp201210 oi swiftOsoljp201210 oi swift
Osoljp201210 oi swift
 
Haikara
HaikaraHaikara
Haikara
 
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
 
SwaggerとAPIのデザイン
SwaggerとAPIのデザインSwaggerとAPIのデザイン
SwaggerとAPIのデザイン
 
Lightweight Keycloak
Lightweight KeycloakLightweight Keycloak
Lightweight Keycloak
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
 
OpenStack on OpenStack with CI
OpenStack on OpenStack with CIOpenStack on OpenStack with CI
OpenStack on OpenStack with CI
 
らくちん Go言語
らくちん Go言語らくちん Go言語
らくちん Go言語
 

More from Kiyotaka Kunihira

Mackerel Day#2 チェック監視が救う!!エンジニア0カンパニー
Mackerel Day#2 チェック監視が救う!!エンジニア0カンパニーMackerel Day#2 チェック監視が救う!!エンジニア0カンパニー
Mackerel Day#2 チェック監視が救う!!エンジニア0カンパニーKiyotaka Kunihira
 
着任したエンジニアをスムーズにテイクオフさせる道具だて
着任したエンジニアをスムーズにテイクオフさせる道具だて着任したエンジニアをスムーズにテイクオフさせる道具だて
着任したエンジニアをスムーズにテイクオフさせる道具だてKiyotaka Kunihira
 
ガチのスタートアップがScalaを採用した結果(公開版) #scala_ks
ガチのスタートアップがScalaを採用した結果(公開版) #scala_ksガチのスタートアップがScalaを採用した結果(公開版) #scala_ks
ガチのスタートアップがScalaを採用した結果(公開版) #scala_ksKiyotaka Kunihira
 
ここが変だよRuby/RoR #rubykansai
ここが変だよRuby/RoR #rubykansaiここが変だよRuby/RoR #rubykansai
ここが変だよRuby/RoR #rubykansaiKiyotaka Kunihira
 
時をかける開発 #devtool_night
時をかける開発 #devtool_night時をかける開発 #devtool_night
時をかける開発 #devtool_nightKiyotaka Kunihira
 
DevLove関西 - ShareWisの文化を支えるエンジニアリング
DevLove関西 - ShareWisの文化を支えるエンジニアリングDevLove関西 - ShareWisの文化を支えるエンジニアリング
DevLove関西 - ShareWisの文化を支えるエンジニアリングKiyotaka Kunihira
 
スタートアップとScala
スタートアップとScalaスタートアップとScala
スタートアップとScalaKiyotaka Kunihira
 
オリジナル社内ツールの末路
オリジナル社内ツールの末路オリジナル社内ツールの末路
オリジナル社内ツールの末路Kiyotaka Kunihira
 
GitBucketPlugin@2014忘年度会
GitBucketPlugin@2014忘年度会GitBucketPlugin@2014忘年度会
GitBucketPlugin@2014忘年度会Kiyotaka Kunihira
 
アジャイルな新婚旅行
アジャイルな新婚旅行アジャイルな新婚旅行
アジャイルな新婚旅行Kiyotaka Kunihira
 
もがいているエンジニア集まれ~今度こそ英語をモノにしよう~
もがいているエンジニア集まれ~今度こそ英語をモノにしよう~もがいているエンジニア集まれ~今度こそ英語をモノにしよう~
もがいているエンジニア集まれ~今度こそ英語をモノにしよう~Kiyotaka Kunihira
 
Scala開発チームの挑戦-技術編-@DevLove2014
Scala開発チームの挑戦-技術編-@DevLove2014Scala開発チームの挑戦-技術編-@DevLove2014
Scala開発チームの挑戦-技術編-@DevLove2014Kiyotaka Kunihira
 
気が狂わないサーバ増設x10
気が狂わないサーバ増設x10気が狂わないサーバ増設x10
気が狂わないサーバ増設x10Kiyotaka Kunihira
 
GitBucketで社内OSSしませんか?
GitBucketで社内OSSしませんか?GitBucketで社内OSSしませんか?
GitBucketで社内OSSしませんか?Kiyotaka Kunihira
 
仕事のゲーム化でやる気モードに変える
仕事のゲーム化でやる気モードに変える仕事のゲーム化でやる気モードに変える
仕事のゲーム化でやる気モードに変えるKiyotaka Kunihira
 
プログラマが 引っ越しで気をつける 3つのこと
プログラマが 引っ越しで気をつける 3つのことプログラマが 引っ越しで気をつける 3つのこと
プログラマが 引っ越しで気をつける 3つのことKiyotaka Kunihira
 
Chefとかプロビジョニングまわり
ChefとかプロビジョニングまわりChefとかプロビジョニングまわり
ChefとかプロビジョニングまわりKiyotaka Kunihira
 

More from Kiyotaka Kunihira (20)

Mackerel Day#2 チェック監視が救う!!エンジニア0カンパニー
Mackerel Day#2 チェック監視が救う!!エンジニア0カンパニーMackerel Day#2 チェック監視が救う!!エンジニア0カンパニー
Mackerel Day#2 チェック監視が救う!!エンジニア0カンパニー
 
着任したエンジニアをスムーズにテイクオフさせる道具だて
着任したエンジニアをスムーズにテイクオフさせる道具だて着任したエンジニアをスムーズにテイクオフさせる道具だて
着任したエンジニアをスムーズにテイクオフさせる道具だて
 
React native実践談
React native実践談React native実践談
React native実践談
 
ガチのスタートアップがScalaを採用した結果(公開版) #scala_ks
ガチのスタートアップがScalaを採用した結果(公開版) #scala_ksガチのスタートアップがScalaを採用した結果(公開版) #scala_ks
ガチのスタートアップがScalaを採用した結果(公開版) #scala_ks
 
ここが変だよRuby/RoR #rubykansai
ここが変だよRuby/RoR #rubykansaiここが変だよRuby/RoR #rubykansai
ここが変だよRuby/RoR #rubykansai
 
時をかける開発 #devtool_night
時をかける開発 #devtool_night時をかける開発 #devtool_night
時をかける開発 #devtool_night
 
DevLove関西 - ShareWisの文化を支えるエンジニアリング
DevLove関西 - ShareWisの文化を支えるエンジニアリングDevLove関西 - ShareWisの文化を支えるエンジニアリング
DevLove関西 - ShareWisの文化を支えるエンジニアリング
 
スタートアップとScala
スタートアップとScalaスタートアップとScala
スタートアップとScala
 
オリジナル社内ツールの末路
オリジナル社内ツールの末路オリジナル社内ツールの末路
オリジナル社内ツールの末路
 
GitBucketPlugin@2014忘年度会
GitBucketPlugin@2014忘年度会GitBucketPlugin@2014忘年度会
GitBucketPlugin@2014忘年度会
 
アジャイルな新婚旅行
アジャイルな新婚旅行アジャイルな新婚旅行
アジャイルな新婚旅行
 
もがいているエンジニア集まれ~今度こそ英語をモノにしよう~
もがいているエンジニア集まれ~今度こそ英語をモノにしよう~もがいているエンジニア集まれ~今度こそ英語をモノにしよう~
もがいているエンジニア集まれ~今度こそ英語をモノにしよう~
 
とりあえず使えるSBT
とりあえず使えるSBTとりあえず使えるSBT
とりあえず使えるSBT
 
Scala開発チームの挑戦-技術編-@DevLove2014
Scala開発チームの挑戦-技術編-@DevLove2014Scala開発チームの挑戦-技術編-@DevLove2014
Scala開発チームの挑戦-技術編-@DevLove2014
 
気が狂わないサーバ増設x10
気が狂わないサーバ増設x10気が狂わないサーバ増設x10
気が狂わないサーバ増設x10
 
GitBucketで社内OSSしませんか?
GitBucketで社内OSSしませんか?GitBucketで社内OSSしませんか?
GitBucketで社内OSSしませんか?
 
仕事のゲーム化でやる気モードに変える
仕事のゲーム化でやる気モードに変える仕事のゲーム化でやる気モードに変える
仕事のゲーム化でやる気モードに変える
 
プログラマが 引っ越しで気をつける 3つのこと
プログラマが 引っ越しで気をつける 3つのことプログラマが 引っ越しで気をつける 3つのこと
プログラマが 引っ越しで気をつける 3つのこと
 
Ec2 automation framework
Ec2 automation frameworkEc2 automation framework
Ec2 automation framework
 
Chefとかプロビジョニングまわり
ChefとかプロビジョニングまわりChefとかプロビジョニングまわり
Chefとかプロビジョニングまわり
 

Recently uploaded

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Recently uploaded (9)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

Leiningen超速入門

  • 2. 自己紹介 • @Kuchitama • フリュー株式会社勤務 - www.furyu.jp • 社会人1年と1ヶ月 • Java/Scala/AS3/Clojure Leiningen超速入門
  • 3. 自己紹介 キモ • @Kuchitama イ 画像 • フリュー株式会社勤務 すい ませ 晒し て - www.furyu.jp ん • 社会人1年と1ヶ月 • Java/Scala/AS3/Clojure Leiningen超速入門
  • 4. 基本スタンス • とにかく書いてみる • まずは手を動かす Leiningen超速入門
  • 5. 目次 • Leiningenとは • メリット • 使ってみた - プロジェクト作成 - 依存関係の解決 - テスト - パッケージング • まとめ Leiningen超速入門
  • 6. Leiningenとは • ライニンゲン(独)らしい • Clojureプロジェクトのビルドツール • デファクトスタンダード - jarの依存関係解決 • maven2リポジトリから取得 • Clojure未インストール環境でも動作 - Javaさえあれば! Leiningen超速入門
  • 7. メリット • 超お手軽インストール - ●nix - windows • 実行環境の構築 • Java資産の再利用 Leiningen超速入門
  • 8. 使ってみよう • インストール • ライブラリ取得 • テスト • パッケージング Leiningen超速入門
  • 9. 使ってみよう1 インストール • For Unix/Linux 1.スクリプトをダウンロードし、パスを通す https://raw.github.com/technomancy/leiningen/stable/ bin/lein 2.実行権限の設定 $ chmod a+x /YOUR_PATH/lein 3.self-updateの実行 下記コマンドを実行することで、インストール完了。 $ lein self-install Leiningen超速入門
  • 10. 使ってみよう2 プロジェクトの作成 • 次のコマンドを実行 • lein new [プロジェクト名] $ lein new KyotoCljSample • プロジェクトが作成される Leiningen超速入門
  • 11. 使ってみよう2 プロジェクトの作成 KyotoCljSample README project.clj src test lib Leiningen超速入門
  • 12. 使ってみよう2 プロジェクトの作成 KyotoCljSample README project.clj src test lib Leiningen超速入門
  • 13. 使ってみよう2 プロジェクトの作成 (defproject KyotoCljSample "1.0.0-SNAPSHOT" :description "FIXME: write description" :dependencies [[org.clojure/clojure "1.3.0"]]) Leiningen超速入門
  • 14. 使ってみよう2 プロジェクトの作成 (defproject KyotoCljSample "1.0.0-SNAPSHOT" :description "FIXME: write description" :dependencies [[org.clojure/clojure "1.3.0"] [org.clojure/clojure-contrib "1.2.0"]]) $lein deps Leiningen超速入門
  • 15. 使ってみよう2 プロジェクトの作成 KyotoCljSample ・・・ ・・・ lib clojure-1.3.0.jar clojure-contrib-1.2.0.jar Leiningen超速入門
  • 16. 使ってみよう2 プロジェクトの作成 Clojars http://clojars.org/ Leiningen超速入門
  • 17. 使ってみよう2 プロジェクトの作成 KyotoCljSample README project.clj src test lib Leiningen超速入門
  • 18. 使ってみよう2 プロジェクトの作成 src KyotoCljSample core.clj test KyotoCljSample test core.clj Leiningen超速入門
  • 19. 使ってみよう2 プロジェクトの作成 (ns KyotoCljSample.core) (def wrap-p-tag [str-seq] ; 与えられたシーケンスを<p></p>でくくる (map #(format “<p>%s</p>” %) str-seq) ) Leiningen超速入門
  • 20. 使ってみよう2 プロジェクトの作成 KyotoCljSample/core.clj (ns KyotoCljSample.core) (def wrap-p-tag [str-seq] ; 与えられたシーケンスを<p></p>でくくる (map #(format “<p>%s</p>” %) str-seq) ) Leiningen超速入門
  • 21. 使ってみよう2 プロジェクトの作成 core.clj (ns KyotoCljSample.core) (def wrap-p-tag [str-seq] ; 与えられたシーケンスを<p></p>でくくる (map #(format “<p>%s</p>” %) str-seq) ) Leiningen超速入門
  • 22. 使ってみよう3 テスト実施 src KyotoCljSample core.clj test KyotoCljSample test core.clj Leiningen超速入門
  • 23. 使ってみよう3 テスト実施 test/core.clj (ns KyotoCljSample.test.core (:use [KyotoCljSample.core]) (:use [clojure.test])) (deftest wrap-test ;; wrap-p-tagがちゃんと動くか (is (= (wrap-p-tag ["Welcome" "Kyoto" "clj"]) ["<p>Welcome</p>" "<p>Kyoto</p>" "<p>clj</p>"]) "ちゃんとくくれてない")) Leiningen超速入門
  • 24. 使ってみよう3 テスト実施 $ lein test > Testing KyotoCljSample.test.core > > Ran 1 tests containing 1 assertions. > 0 failures, 0 errors. Leiningen超速入門
  • 25. 使ってみよう4 パッケージング $ lein uberjar KyotoCljSample ・・・ KyotoCljSample-1.0.0- SNAPSHOT-standalone.jar KyotoCljSample-1.0.0- SNAPSHOT.jar Leiningen超速入門
  • 26. まとめ • あっという間にClojure環境構築 • 使いたいライブラリを速攻ゲット • テストまで出来る • 超お手軽パッケージング Leiningen超速入門
  • 27. 参考サイト • Clojure@wiki : http://www16.atwiki.jp/clojure/ • GitHub: http://github.com/kuchitama/hentai Leiningen超速入門

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n