タグ

DSLに関するslay-tのブックマーク (9)

  • RestyというScala用のREST APIフレームワークを作ってみました - たけぞう瀕死ブログ

    GitHubリポジトリはこちら。 github.com なぜ作ったのか? Scala業界のフレームワークは関数型的なアプローチのものが主流になっています。これらのフレームワークはノンブロッキングI/Oや並列処理をうまく扱うことができますが、質的な複雑さをもたらします。自分の経験では、特に企業システムなどの場合は従来の同期サーブレットでも十分というケースも多いのではないかと感じています。 また、既存のScala用のフレームワークはタイプセーフなDSLでルーティングや入出力パラメータなどを定義するものが多いのですが、この手のものはシンプルな静的解析でメタ情報を抽出することが難しいためSwaggerなどの外部ツールとの相性が悪いという欠点もあります。 Restyはこのようなケースにおいてもプログラミング言語としてのScalaのアドバンテージを活かすことのできるシンプルなフレームワークがあるとい

    RestyというScala用のREST APIフレームワークを作ってみました - たけぞう瀕死ブログ
  • PHPが動くApacheのコンテナ環境をhaconiwaで1万個動かそうとしてみた - 人間とウェブの未来

    RubyKaigiに行くとにサインを求められるすごいエンジニアが書いたhaconiwaというmruby製のコンテナエンジン(コンテナ環境構築の基盤ツール)があるのですが、少し試してみようと思って、とりあえず1サーバ上に1万コンテナぐらい動かそうとしてみました。久々に今回は自分の作ったOSSではなく、OSSの検証レポート的な記事になります。 haconiwaは僕の好きなOSSの一つで、それはなぜかと言うと、 haconiwaでコンテナを作る際に、haconiwa実行環境にはコンテナの要素機能が全て入っている必要はない 必要なコンテナの要素機能を簡単に組み合わせて、自分が実現したいコンテナ、あるいは、それに準ずる環境を作れる haconiwaによるコンテナ定義をRubyのDSLで表現でき、動的な設定や組み合わせの設定を簡単にかける ということができるからです。その特性から、CentOS6のよ

    PHPが動くApacheのコンテナ環境をhaconiwaで1万個動かそうとしてみた - 人間とウェブの未来
  • Golangにおけるinterfaceをつかったテスト技法 | SOTA

    最近何度か聞かれたので自分がGolangでCLIツールやAPIサーバーを書くときに実践してるinterfaceを使ったテスト技法について簡単に書いておく.まずはinterfaceを使ったテストの基について説明し次に自分が実践している簡単なテクニックをいくつか紹介する. なおGolangのテストの基については @suzuken さんによる「みんなのGo言語」 の6章が最高なので今すぐ買ってくれ! 前提 自分はテストフレームワークや外部ツールは全く使わない.標準のtestingパッケージのみを使う.https://golang.org/doc/faq#Packages_Testing にも書かれているようにテストのためのフレームワークを使うことは新たなMini language(DSL)を導入することと変わらない.最初にそれを書く人は楽になるかもしれないが新しくプロジェクトに参入してきたひ

  • モデルからJSON生成するときこうやってます2016 - ✘╹◡╹✘

    最近RubyReact.jsをよく利用していて、Rubyで扱っている値をJSONとして表現したいケースが増えてきた。こういうのどうやっていますかと人に聞きたいので、自分はこうやっていますよというのを説明のためにまとめておくことにする。 概観 自分の場合、次のような方法で実装することが多い。 JSONとして表現したいオブジェクトをコンストラクタで受け取るクラスを定義する クラスに #as_json を定義して適当なHashを返すようにする Object#to_json が再帰的に #as_json を利用するようにする (ActiveSupportがやってくれる) コード 具体的には、以下のようなクラスをつくっている。これは最近つくっている掲示板での例で、Megaboard::Resources::Comment はコメントのJSON表現のためのクラスである。いわばコメントのJSON表現に

    モデルからJSON生成するときこうやってます2016 - ✘╹◡╹✘
  • https://qiita.com/magaya0403/items/01c8bd7c281c31d1db0d

  • Go のシンプルかつ明快な SQL クエリビルダ go-sqlf - 詩と創作・思索のひろば

    Go でリレーショナルデータベースを利用したアプリケーションを書いているとき、動的に SQL を組み立てたい場合には、いくつかの方法が考えられます: クエリビルダを使う。世の中にすでにいろいろ存在します。(そのためのライブラリなので)動的に生成するにはもってこいですが、この場合、それぞれのライブラリに合わせた書き方をしなければならないので読み手にもある程度負荷がある点、また、Go は言語として冗長に書くことをよしとする思想を持っているため、DSL 的な API との相性が悪いという欠点があります(map の組み立てが冗長、条件分岐する式が書けないなど)。また、一般にクエリビルダから生成される SQL がコードから想像しづらくなる問題もあります。 文字列連結や fmt.Sprintf を使う。発行される SQL は比較的分かりやすくなりますが、動的に組み立てると SQL プレースホルダとバイ

    Go のシンプルかつ明快な SQL クエリビルダ go-sqlf - 詩と創作・思索のひろば
  • cURL as DSL — cURL as DSL 1.0 documentation

    cURL as DSL¶ github repository Target: Curl Command: Generate Code Reset Result code is printed here. Usage¶ Select target envirionment and type curl command in above text box. You get source code that works as same as curl command. Enjoy! Supported Options¶ It doens’t support fully options of cURL. It supports only options for http 1.x in the following list: [supported options:] --basic Use HTTP

  • 「駅すぱあと」を支える技術とDSLの話 - だいくしー(@daiksy)のはてなブログ

    「駅すぱあと」を支える開発 〜9262の可能性を繋げ!〜(DevLOVE関西Ver) というイベントが開催された。 ぼくも会場係としてスタッフ参加。 「駅すぱあと」の歴史から技術、開発のマネジメント手法に至るまで、幅広い話が聞ける良いイベントだった。 いろいろな話が聞けたのだけれど、僕は特に佐藤さんの「『駅すぱあと』新しい開発基盤の研究」がおもしろかった。 まだ開発途中で、実際の駅すぱあとには組み込まれていないそうなのだけれど、佐藤さんは「駅すぱあと」の運賃計算のDSLを研究・開発しているという。 曰く、鉄道の運賃計算は泥沼である。単純に距離や、目的地までの駅数などで運賃が算出できればよいが、鉄道の運賃計算には無数の特例がある。 下記リンク先に、JRの運賃の特例計算が列挙されているので、ちょっと見ていただきたい。 ……お分かりいただけただろうか。現在の「駅すぱあと」では、これらの特例がすべ

    「駅すぱあと」を支える技術とDSLの話 - だいくしー(@daiksy)のはてなブログ
  • ドメイン特化言語 | プログラマが知るべき97のこと

    ドメイン特化言語著者: Michael Hunger チェスプレイヤー、幼稚園の先生、保険の外交員など、どの分野にも言えることですが、専門家というのは、日常生活で使われる言葉とは全く違った言葉を使うものです。いわゆる「ドメイン特化言語(DSL: Domain Specific Language)」が存在するのはそのためです。分野(ドメイン)には、それぞれ固有の事象があり、固有の事象を表す特殊な語彙があるので、DSLによってその語彙に対応するというわけです。 DSLは、ある分野に固有の語彙や語法を使用して事象を表現できるよう作られたプログラミング言語です。この言語を使えば、コードは当該分野の専門家にとって読みやすく理解しやすくなります。その言語を使うことで、専門家自身が自らコードを書くこともできれば理想でしょう。DSLの中でも特に古くから存在するのは、ソフトウェア開発者や科学者をターゲットと

    ドメイン特化言語 | プログラマが知るべき97のこと
  • 1