Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
@ 教養としてのClojure / 2017.10.4
Clojureに入門してみた、2017年秋
〜 寄り道したかもしれない 10 ステップの足跡 〜
はじめに
● 小林 達 (こばやし さとし)
● BizReachで3年半。「スタンバイ」「HRMOS」立ち上げ
● 年の割にコード歴短い。雰囲気プログラマー
○ Scalaが主でサーバーサイドよりのフルスタック
● 土日は、娘の相手と、娘の写真と、料理...
「教養(きょうよう)とは
個人の人格や学習に結びついた
知識や行いのこと」
一般に、独立した人間が持っているべきと考えられる一定レベルの様々
な分野にわたる知識や常識と、古典文学や芸術など質の高い文化に対す
る幅広い造詣が、品位や人格および、物...
Clojureの知識・常識・造詣
理解力・想像力に結びつき、さらに品位・人格まで!?
● 実務に取り入れる淡い夢を抱きつつ、まず日々の開発に新鮮な視点を提供してく
れることを期待
● もしかして Must Learnな技術のひとつとしてブランデ...
10ステップの足跡
Step 1. Clojureのコンセプトを掴む
Clojure - 論理的根拠 より
● Lisp: シンプル、データとしてのコード(code-as-data)
○ 文法が少ない。data-as-code = evalみたいなもの?
○ ただ...
● 言語としては成熟期に入っていそう
○ Clojure 1.9.0-beta1 (September 2017)
○ Clojure 1.8.0 (January, 2016)
○ Clojure 1.7.0 (June, 2015)
○ C...
● Stack Overflow Developer Survey 2017
○ 年収1位!、好きな言語上位!
● JVMerが最後に辿り着く
場所なのかもしれない
Step 2. Clojureの現在 2/3
国内事例はどうか (順不同)
● オプトさん -
Clojureをプロダクトに導入した話 - Opt Technologies Magazine
● サイボウズスタートアップさん -
Clojureを用いたWebアプリケーション開発 - SSS...
Step 3. とりあえずコードを眺める
Learn X in Y minutes
● 1ページで少量
● 小一時間で雰囲気をつかむことができる
● 眺めるもので、電車の中で読むような感じ
● REPLっぽい。コメント、コード、の連続
● 余裕...
Step 4. 最低限の文法を学ぶ 1/2
Step 4. 最低限の文法を学ぶ 2/2
(… 漢文みたいにレ点を入れたくなった)
● ビルドツール。で REPL を起動できる
● インストールに時間はかからない
○ 初回の立ち上げでJARを少しだけダウンロード ($HOME/.m2/repository に入
る)
● lein new で、新規プロジェクトの雛形を作れる...
基本の一冊を選ぶならこれか
● 家に、第一版第一刷があった
○ 流し読み
● 現在、第三版がベータでリリース間近
○ 買ってみたが、初心者レベルでは
差がほとんどわからず
○ 日本語と英語の訳の対比に少し利用
Step 6. 「プログラミング ...
出版されると流行がくる?
● 第3版 (英: 2017/11/25 )
● 第2版 (英: 2012/4 日: 2013/4)
● 第1版 (英: 2009/6 日: 2010/1)
Step 6. 「プログラミング Clojure」を読む 2...
● 変更を保存すると即時評価される。正解なら次の課題に自動で進む
○ はい次、はい次、と行けるので理解できてくる感がある
● koan01から24まで。数時間ぐらい
○ 基本構造、関数、並行プログラミング、マクロまで
● ただ、エラーの内容がコ...
時々出てくるLips用語でわからなかった。マクロはわかるけど、リーダー?フォーム?そんなときに発見: Clojure
の基礎 〜マクロ編〜 (athosさん)
理解:
● フォーム … プログラムが読まれる単位。文字列、数値、キーワード、リスト...
学ぶ過程でお世話になったリソースたちを gist にまとめ
Step 9. リソースを整理
「Clojure で Web 開発をはじめてみよう — Clojure の日本語ガイド」(by あやぴーさん)を
順を追って見てだいたい雰囲気がつかめる!
● ルーティング、HTMLテンプレート、DBアクセス、バリデーション
● サーバ再起動せ...
道半ば。
● IntelliJの力はどうなんだ?
● ClojureScriptを試したかった!
○ React とか Redux とかと
● Rich Hickey をまだあまり知らない
○ 有名な格言とその哲学
Step 無念.
まとめ
● 最初は慣れない
○ 短い名前の関数とかが読みづらい。ただ、よく使うものは少なそう
○ 手を動かす経験を重ねるのがよさそう。REPL便利
○ Java/Scala辺りの経験はある程度あった方がよさそう
● 既に学ぶリソースは多く存在する
○ ...
Upcoming SlideShare
Loading in …5
×

Clojureに入門してみた、2017年秋

Clojureを学んだ10ステップをまとめたものです。初学者向け。

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Login to see the comments

Clojureに入門してみた、2017年秋

  1. 1. @ 教養としてのClojure / 2017.10.4 Clojureに入門してみた、2017年秋 〜 寄り道したかもしれない 10 ステップの足跡 〜
  2. 2. はじめに
  3. 3. ● 小林 達 (こばやし さとし) ● BizReachで3年半。「スタンバイ」「HRMOS」立ち上げ ● 年の割にコード歴短い。雰囲気プログラマー ○ Scalaが主でサーバーサイドよりのフルスタック ● 土日は、娘の相手と、娘の写真と、料理担当 ● Clojureは興味だけは前からあった ○ これは半年前にスケジュール登録 ○ 登壇者3人が決まって役割を75%終えたようなもの ○ Clojureを1ヶ月経ったが、ほぼインプットのみ 誰かな?
  4. 4. 「教養(きょうよう)とは 個人の人格や学習に結びついた 知識や行いのこと」 一般に、独立した人間が持っているべきと考えられる一定レベルの様々 な分野にわたる知識や常識と、古典文学や芸術など質の高い文化に対す る幅広い造詣が、品位や人格および、物事に対する理解力や創造力に結 びついている状態を指す - Wikipedia 教養とは?1/2
  5. 5. Clojureの知識・常識・造詣 理解力・想像力に結びつき、さらに品位・人格まで!? ● 実務に取り入れる淡い夢を抱きつつ、まず日々の開発に新鮮な視点を提供してく れることを期待 ● もしかして Must Learnな技術のひとつとしてブランディングできたりしないかな? 教養とは? 2/2
  6. 6. 10ステップの足跡
  7. 7. Step 1. Clojureのコンセプトを掴む Clojure - 論理的根拠 より ● Lisp: シンプル、データとしてのコード(code-as-data) ○ 文法が少ない。data-as-code = evalみたいなもの? ○ ただ、括弧が増えすぎない・Javaが呼びやすいよう+αの工夫 ● 関数型プログラミングのための言語 (イミュータブル、高階関数) ● 確立されたプラットフォーム(JVM)と共存できる言語 ● 並行処理のために設計された言語 また、 ● REPLでインタラクティブに開発ができる! ● フレームワークよりライブラリ ● 動的な型付け
  8. 8. ● 言語としては成熟期に入っていそう ○ Clojure 1.9.0-beta1 (September 2017) ○ Clojure 1.8.0 (January, 2016) ○ Clojure 1.7.0 (June, 2015) ○ Clojure 1.6.0 (March, 2014) ○ Clojure 1.5.1 (March, 2013) ○ Clojure 1.4.0 (April, 2012) ○ Clojure 1.3.0 (September, 2011) ○ Clojure 1.2.1 (September, 2010) ○ Clojure 1.2.0 (August, 2010) ○ Clojure 1.1.0 (January, 2010) ○ Clojure 1.0.0 (July, 2009) Step 2. Clojureの現在 1/3
  9. 9. ● Stack Overflow Developer Survey 2017 ○ 年収1位!、好きな言語上位! ● JVMerが最後に辿り着く 場所なのかもしれない Step 2. Clojureの現在 2/3
  10. 10. 国内事例はどうか (順不同) ● オプトさん - Clojureをプロダクトに導入した話 - Opt Technologies Magazine ● サイボウズスタートアップさん - Clojureを用いたWebアプリケーション開発 - SSSSLIDE ● ユーザベースさん - Clojureの世界観 - 紙箱 ● 楽天さん?リクルートさん?TISさん? ● 小さな会社さん多数? Step 2. Clojureの現在 2/3
  11. 11. Step 3. とりあえずコードを眺める Learn X in Y minutes ● 1ページで少量 ● 小一時間で雰囲気をつかむことができる ● 眺めるもので、電車の中で読むような感じ ● REPLっぽい。コメント、コード、の連続 ● 余裕があれば、マクロ版も。 ※ 「X」として多くの言語があるが、REPLに 最適化されたClojureはこの形式が特にあってそう
  12. 12. Step 4. 最低限の文法を学ぶ 1/2
  13. 13. Step 4. 最低限の文法を学ぶ 2/2 (… 漢文みたいにレ点を入れたくなった)
  14. 14. ● ビルドツール。で REPL を起動できる ● インストールに時間はかからない ○ 初回の立ち上げでJARを少しだけダウンロード ($HOME/.m2/repository に入 る) ● lein new で、新規プロジェクトの雛形を作れる ○ project.clj とその他のファイルを読むとなんとなく分かる ● 最近は、 boot なるものも ● 写経しながら、慣れた気分になる Step 5. Leiningen で REPL $ brew install leiningen $ lein repl
  15. 15. 基本の一冊を選ぶならこれか ● 家に、第一版第一刷があった ○ 流し読み ● 現在、第三版がベータでリリース間近 ○ 買ってみたが、初心者レベルでは 差がほとんどわからず ○ 日本語と英語の訳の対比に少し利用 Step 6. 「プログラミング Clojure」を読む 1/2
  16. 16. 出版されると流行がくる? ● 第3版 (英: 2017/11/25 ) ● 第2版 (英: 2012/4 日: 2013/4) ● 第1版 (英: 2009/6 日: 2010/1) Step 6. 「プログラミング Clojure」を読む 2/2
  17. 17. ● 変更を保存すると即時評価される。正解なら次の課題に自動で進む ○ はい次、はい次、と行けるので理解できてくる感がある ● koan01から24まで。数時間ぐらい ○ 基本構造、関数、並行プログラミング、マクロまで ● ただ、エラーの内容がコンソールから読み取れない ○ 別ウィンドウで `lein repl` しておいて、コピペで試しながら進めた http://clojurescriptkoans.com/ は、更にお手軽。内容は大体(全く?)同じ。慣れるま で基本の反復練習として手を動かすのにいいかもしれない。 Step 7. Clojure Koans を解く $ git clone git@github.com:functional-koans/clojure-koans.git $ cd clojure-koans $ lein koan run
  18. 18. 時々出てくるLips用語でわからなかった。マクロはわかるけど、リーダー?フォーム?そんなときに発見: Clojure の基礎 〜マクロ編〜 (athosさん) 理解: ● フォーム … プログラムが読まれる単位。文字列、数値、キーワード、リストなどを指す ref. ● リーダー… テキストをパースし、コンパイラが解釈できるデータ構造を生成する ref. ● リーダーマクロ… 前置きされる特定のマクロ文字によって起動されるリーダーの特殊動作。冗長なリスト 形式の省略形としてつかう。新規登録は不可。「;」「’」「#」など ● マクロ … コードからコードへの変換を定義する関数 ref. Step 8. 押さえておきたい「リーダー」のあたり フォーム リーダー リーダーマ クロ ※青字で元資料に追加
  19. 19. 学ぶ過程でお世話になったリソースたちを gist にまとめ Step 9. リソースを整理
  20. 20. 「Clojure で Web 開発をはじめてみよう — Clojure の日本語ガイド」(by あやぴーさん)を 順を追って見てだいたい雰囲気がつかめる! ● ルーティング、HTMLテンプレート、DBアクセス、バリデーション ● サーバ再起動せずに変更を反映できるREPL上の開発 ● 他のライブラリの解説も充実 Step 10. Web開発のイロハ
  21. 21. 道半ば。 ● IntelliJの力はどうなんだ? ● ClojureScriptを試したかった! ○ React とか Redux とかと ● Rich Hickey をまだあまり知らない ○ 有名な格言とその哲学 Step 無念.
  22. 22. まとめ
  23. 23. ● 最初は慣れない ○ 短い名前の関数とかが読みづらい。ただ、よく使うものは少なそう ○ 手を動かす経験を重ねるのがよさそう。REPL便利 ○ Java/Scala辺りの経験はある程度あった方がよさそう ● 既に学ぶリソースは多く存在する ○ 情報にのまれたが少ないよりいい ○ Step 1-10 が少しでも参考になれば ● 理想一辺倒でも実用一辺倒でもないバランス。怖くなさそう ○ 十分な歴史があり、実用に耐えるものは多そう ○ 関数界隈のモナドとかそういう言葉は意外と見かけなかった ○ 勉学の秋にぜひ まとめ

×