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.

Arachne Unweaved (JP)

4,619 views

Published on

jjug ccc 2017の登壇資料です
#ccc_i4


https://jjug-cfp.cfapps.pez.pivotal.io/submissions/1fe23fa4-dd22-4319-a505-25fe7cbbad88


www.java-users.jp/ccc2017spring/

Published in: Software
  • Be the first to comment

Arachne Unweaved (JP)

  1. 1. Arachne Unweaved Ikuru K
  2. 2. 自己紹介: - @サイボウズスタートアップス株式会社 - Clojure Story: https://clojure.org/stories/cstap - Clojure/ClojureScriptでweb開発 - HN: iku000888 - https://github.com/iku000888 - https://twitter.com/iku000888
  3. 3. アンケート 普段... - 何らかのJVM言語を使ってる? - Clojureを使ってる? - それ以外のプログラミング言語を使ってる? - プログラミングしない?
  4. 4. アンケート お仕事... - いわゆるWeb開発をしている ? - それ以外 ?
  5. 5. Clojure? - 動的な関数型言語 - Lisp + JVM = 楽しく実践的 - ClojureScriptでブラウザも射程圏内
  6. 6. Arachneのスタート - 目的:ClojureフルスタックWebフレームワークを作 る - 手段:2016年 4/16 Kick Starter - ベースライン:$35,000で3ヶ月フルタイムで取り組 んでアルファ版を作る - 結果:361 backers, $45,187 - https://www.kickstarter.com/projects/1346708779/arachne-rapid-web-development-for-clojure
  7. 7. 作者 - Luke VanderHart (https://github.com/levand) - 〜ルーク・ヴァンダーハート - 普段:Cognitect(Clojureの開発元)でコンサルタント - Clojure講演多数 - Clojureの本の(共)著者: - Practical Clojure - ClojureScript: Up and Running - Clojure Cookbook
  8. 8. 名前の由来 - 発音:uh-rack-nee - 元ネタ:ギリシャ神話に 登場する編み物の名手 - 「アプリを編み上げる」という思 いを込めた
  9. 9. フルスタックフレームワークの欠如 - Spring/Playに相当するフレームワークが無い - テンプレートを使う - ライブラリを組み合わせる
  10. 10. Webアプリケーションに欲しい物 - DI機構 - CIサポート - 結合テストサポート - デプロイ自動化 - CDN - I18n - Content Negotiation - and more - DBコネクション - ルーティング - HTMLレンダリング - アセットパイプライン - 認証/認可 - バリデーション - ロギング - キャッシュ
  11. 11. Webアプリ要素の利用方法(今まで) ライブラリを 組み合わせる テンプレート - 柔軟 - 自分のコードではない - 作者がコードをメンテする - 手動プロセス - 組み合わせは無限大 - アプリケーションを知らない - 特定のコードを出力する - コードは全て自分がメンテ する - ゴールから離れている程価 値が下がる
  12. 12. フレームワーク - 良いデフォルトを提供 - 要素を組み合わせる機構を提供
  13. 13. 開発プロセス - 設計レビューを受けている - 設計書を公開している - https://github.com/arachne-framework/architecture - 開発プロセスにドッグフーディングを組み込む - http://arachne-framework.org/posts/2017/alpha-release/
  14. 14. 現在はalpha版 提供している物 - arachne-core => DIによるオーケストレーション - プラグイン機構 - デフォルトプラグイン - プロジェクトジェネレーター
  15. 15. 1. 設定からコアデータを管理するDBを構築 JVM Clojure config.clj Arachne runtime (ns arachne.run) 1. Create DB
  16. 16. 2. 設定DBからシステム全体を表すマップを作る ClojureArachne runtime (ns arachne.run) Runtime Object Clojure 2.Get constructors constructor-a constructor-b constructor-c 3. C reate
  17. 17. 3. システムマップからアプリケーションを起動 Runtime Object Start Stop
  18. 18. 特徴:設定DBを作るプロセスと、ランタイムを作るプ ロセスを完全に分離(合せる) アプリケーション全体の状態を一箇所に集約できる 1. 外部リソース(RDB,API etc)の相互依存関係が見 やすい 2. 外部リソースをモックしやすい→テストしやすい
  19. 19. モジュール機構 - ライブラリ+α - 設定DBに対してCRUDが可能 - 設定用のDSLを提供可 - 他のモジュールに依存可 - 依存する対象を容易に共有できる
  20. 20. デフォルトモジュール - Arachne HTTP+Arachne Pedestal (App Server) - Arachne Assets (アセットパイプライン) - Chimera (データ抽象化レイヤー) - 他にも多数 - あくまでデフォルト
  21. 21. Arachne HTTP+Arachne Pedestal - Webサーバーモジュール - Pedestal: Cognitectが開発するWebサーバー - ルーティング - ミドルウェアで機能拡張
  22. 22. arachne-assets js-src css-src Upload 2 cdn add-fingerprint transducer
  23. 23. Chimera - アプリ視点からデータソースを統一的に扱う - マイグレーション - 様々なデータソースをサポート予定
  24. 24. とりあえず動かしたい! => Enterprise SPA テンプレート - https://github.com/arachne-framework/enterprise-spa Arachne http arachne-assets arachne-cljs arachne-figwheelArachne Pedestal arachne-core react Hello World!
  25. 25. デモ https://github.com/iku000888/arachne-docs/tree/do-more-stuff 実演する内容 - アクセスカウンタ
  26. 26. まとめ - Arachneは有力なフレームワークになり得る - 今後も開発される - コミュニティはまだこれから - 一緒に盛りあげていきましょう!
  27. 27. ありがとうございました!

×