Upload
ikuru-kanuma
View
4.228
Download
0
Embed Size (px)
Citation preview
自己紹介:
- @サイボウズスタートアップス株式会社
- Clojure Story: https://clojure.org/stories/cstap- Clojure/ClojureScriptでweb開発
- HN: iku000888- https://github.com/iku000888- https://twitter.com/iku000888
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
作者
- Luke VanderHart (https://github.com/levand)- 〜ルーク・ヴァンダーハート
- 普段:Cognitect(Clojureの開発元)でコンサルタント
- Clojure講演多数
- Clojureの本の(共)著者:
- Practical Clojure- ClojureScript: Up and Running- Clojure Cookbook
Webアプリケーションに欲しい物
- DI機構
- CIサポート
- 結合テストサポート
- デプロイ自動化
- CDN- I18n- Content Negotiation- and more
- DBコネクション
- ルーティング
- HTMLレンダリング
- アセットパイプライン
- 認証/認可
- バリデーション
- ロギング
- キャッシュ
Webアプリ要素の利用方法(今まで)
ライブラリを組み合わせる
テンプレート
- 柔軟- 自分のコードではない- 作者がコードをメンテする- 手動プロセス- 組み合わせは無限大- アプリケーションを知らない
- 特定のコードを出力する
- コードは全て自分がメンテ
する
- ゴールから離れている程価
値が下がる
開発プロセス
- 設計レビューを受けている
- 設計書を公開している- https://github.com/arachne-framework/architecture
- 開発プロセスにドッグフーディングを組み込む- http://arachne-framework.org/posts/2017/alpha-release/
2. 設定DBからシステム全体を表すマップを作る
ClojureArachne runtime (ns arachne.run)Runtime Object
Clojure
2. Get
constructors
constructor-a constructor-b constructor-c
3. Crea
te
特徴:設定DBを作るプロセスと、ランタイムを作るプロセスを完全に分離(合せる)
アプリケーション全体の状態を一箇所に集約できる
1. 外部リソース(RDB,API etc)の相互依存関係が見
やすい
2. 外部リソースをモックしやすい→テストしやすい
デフォルトモジュール
- Arachne HTTP+Arachne Pedestal (App Server)
- Arachne Assets (アセットパイプライン)- Chimera (データ抽象化レイヤー)- 他にも多数
- あくまでデフォルト
Arachne HTTP+Arachne Pedestal
- Webサーバーモジュール
- Pedestal: Cognitectが開発するWebサーバー
- ルーティング
- ミドルウェアで機能拡張
とりあえず動かしたい!
=> Enterprise SPA テンプレート
- https://github.com/arachne-framework/enterprise-spa
Arachnehttp arachne-assets
arachne-cljs
arachne-figwheelArachnePedestal
arachne-core
react
Hello World!
デモ
https://github.com/iku000888/arachne-docs/tree/do-more-stuff
実演する内容
- アクセスカウンタ