タグ

saisa6153のブックマーク (850)

  • ServiceとDCIについて - じゅんいち☆かとうの技術日誌

    面白そうなネタがあったので、自分なりの考えをまとめてみる。 Ruby/Rails 用 DI コンテナ Dee をつくった、あるいは Ruby のカルチャーについて この記事はRuby用のDIコンテナの話題なんですが、DCIについても言及されているようです。比較軸はDIそのものというより、サービスとDCIだと思うので、それについてダラダラといくつか考えをまとめてみます。多分も返事になるようでならないかも。それと宗教上の都合でDDDの視点から書きます…。 サービスという言葉はあいまい まず、簡単に前提の整理から。単に”サービス”って言葉が何を指すのか結構曖昧です。 サービスは簡単にいうと手続きとか振る舞いのことですが、細かくいうと、PofEAAでいうサービスと、DDDいうサービスは、目的が異なります。前者はアプリケーションのためにドメインモデルを再利用するためのものです。後者はドメインの知識

  • Draperで驚くほどRailsコードがわかりや少なったよ! 

    Draperって何?Draperは、Model/Controller/View/Helperと異なる第4のレイヤを提供するGemです。 この第4のレイヤは、海外では「Presenter」として分類されています。(正確にもう少し細かい分類があるらしいですが割愛♪) このレイヤを作るメリットは、 model/viewに余計なロジックを書かなくてすむ Helperのメソッドが使われている場所が不明という事態を防ぐ 日ではPresenterレイヤでは、ActiveDecoratorというGemが有名です。ActiveDecoratorもほぼ同じことができます。 Draperの紹介Draperの説明ならRailsCastが一番わかり易かったです(説明は日語に翻訳されています、動画は英語です)↓ #####286 Draper - RailsCasts 1年前の記事ですので、実際に動かしてみると少

    Draperで驚くほどRailsコードがわかりや少なったよ! 
    saisa6153
    saisa6153 2014/11/20
  • Test-Driven Development in Swift • Pawan Poudel

    In this blog post, we will learn how to build a simple iOS app menu (shown below) using Test-Driven Development in Swift. Here are things you need to know to fully understand the concepts presented in this post: Xcode 6 Familiarity with basic concepts in Swift Familiarity with commonly used classes in UIKit and Foundation (e.g., UITableView and NSNotificationCenter) Familiarity with XCTest. If you

    Test-Driven Development in Swift • Pawan Poudel
  • テーブル設計 データモデリングのエッセンス(1) | システム設計日記

    何回もデータベースを設計してきた。多くの失敗をしながら。その中から、こうすれば良い設計ができる、というデータモデリングやデータベース設計のノウハウが少し見えてきた。その要点をまとめてみる。 テーブルの役割を一つにする クラス設計と同じで、テーブルの役割は単純にすべきである。 関心のある情報のグループごとに別のテーブルに分ける。 例えば、商品にはさまざな属性情報がある。 ・仕様(色、サイズ、機能など) ・価格や割引ルール ・仕入れルート ・原価 ・在庫数 ・在庫場所 ・販売開始/販売停止の状態や予定日 など。 「商品」という一つの「なんでもテーブル」に情報を詰め込んで、アプリケーションプログラムのほうで、さまざまな検索条件を使い分けるのは、典型的なアンチパターン。 それぞれの情報ごとに別テーブルを用意して、ひとつのテーブルは、一つの関心だけを管理する設計が基。 役割が一つのテーブルの特徴

  • ドメインモデルの育て方

    BPStudy #82 2014/6/27 ギルドワークス「正しいものを正しくつくる」、市谷さんとの合体発表。 ドメイン駆動設計。Read less

    ドメインモデルの育て方
    saisa6153
    saisa6153 2014/11/19
  • 中途採用面接の志望動機が「給料アップ」でも採用された人の話

    私が面接官を手伝っていた時、印象に残った出来事がある。 その日は午前中に中途採用の面接があった。面接を受けにきた応募者は31歳、年収450万のエンジニアである。彼は過去に2回、転職をしており、もし我々が採用を行えば4社目、ということになる。 彼のスキルは特に低くもなく、高くもなくといったところで、年齢相応のスキルと言った感じだ。 音を言えば、私が面接を手伝っていた会社は30前後のエンジニアが欲しかったので、彼の応募は有り難いものであった。 面接が始まり、役員の一人が質問をする。 「なぜ、転職を考えたのですか?」 通常であれば、ここで返ってくる回答は、「上流工程をやりたかったので…」であったり、「お客さんと直接話せる仕事がしたかった…」など、当り障りのない回答がほとんどだ。 しかし、彼は違った。開口一番、 「はい。もっと給料が欲しかったからです」 と言ったのだ。 通常であれば面接の際に志望

    中途採用面接の志望動機が「給料アップ」でも採用された人の話
    saisa6153
    saisa6153 2014/11/19
  • 究極にして至高のWAF

    勢いだけで作った 参考文献: やはりお前らのMVCは間違っている http://www.slideshare.net/MugeSo/mvc-14469802Read less

    究極にして至高のWAF
    saisa6153
    saisa6153 2014/11/19
    アグレッシヴだ
  • 5分で絶対に分かるPCI DSS − @IT

    PCI DSSとは? セキュリティの基準として最近耳にする「PCI DSS」とはいったい何でしょうか。 クレジットカード会社のホームページを見るとPCI DSS(Payment Card Industry Data Security Standard)とは、 加盟店・決済代行事業者が取り扱うカード会員様のクレジットカード情報・取引情報を安全に守るために、JCB、アメリカンエキスプレス、Discover、マスターカード、VISAの国際ペイメントブランド5社が共同で策定した、クレジット業界におけるグローバルセキュリティ基準です…… 「JCBグローバルサイト PCIデータセキュリティスタンダード『PCIDSS』とは」より とあります。クレジットカード会社の基準だからクレジットカード情報を取り扱う局面に特化したもので、うちの組織には関係ないんじゃないかと思われている方も多いのではないでしょうか。

    5分で絶対に分かるPCI DSS − @IT
    saisa6153
    saisa6153 2014/11/19
  • 個人アプリの爆速開発を支えてくれたiOSの便利ライブラリを紹介する - Think Big Act Local

    先日 Go MemoというiOSアプリをリリースしました。 「あとで行く」ためのアプリ、Go Memoをリリースしました Go Memoは週末4日間くらいで作ってリリースしたアプリなのですが、こうしてスピードを出せたのは便利なライブラリのおかげです。 この記事ではGo Memoで使ったライブラリを紹介しようと思います。 便利なiOSライブラリ AFNetworking 言わずとしれた定番ライブラリ。作者の mattt さんも非常に有名です。サーバーとのHTTP通信はほとんどこれに頼っていて、NSURLSession とか自分で書いてないです。 Go Memoでは foursquare API をたたく所で利用しています。 NSDictionary *params = ...; AFHTTPRequestOperationManager *manager = [AFHTTPRequestOp

    個人アプリの爆速開発を支えてくれたiOSの便利ライブラリを紹介する - Think Big Act Local
    saisa6153
    saisa6153 2014/11/18
  • Swiftで作られたiOS用の美しいアラートライブラリ「Sweet Alert iOS」 | ソフトアンテナ

    「Sweet Alert iOS」はSwiftで作られたiOS用の美しいアラートライブラリ。最近話題となったJavaScript製の「Sweet Alert」からインスパイアされて作られたもので、SwiftまたはObjective-Cから利用することができます。 オリジナル同様アニメーション付きのモダンなアラートを表示することができるので、アプリに組み込んで便利に使うことができそうです。 使用方法 サンプルプログラムを起動するとボタンがずらっと表示されます。一番上から下にいくに従ってだんだんと複雑なアラートが表示されます。一番シンプルなタイトル行だけのアラートは次のように呼び出すことができます。 SweetAlert().showAlert("Here's a message!") もう少し複雑に。 タイトルとサブタイトルを表示したり、 SweetAlert().showAlert("He

    Swiftで作られたiOS用の美しいアラートライブラリ「Sweet Alert iOS」 | ソフトアンテナ
    saisa6153
    saisa6153 2014/11/18
  • αRby—An Embedding of Alloy in Ruby

    about αRby declarative modeling language embedded in an imperative programming language beneficial to both the modeling community of Alloy and the object-oriented community of Ruby programmers benefits to Alloy users: mixed execution partial instances staged model finding benefits to Ruby users: seamless embedding of a relational constraint solver download & run downloadarby @ github licenseGPLv3

    saisa6153
    saisa6153 2014/11/18
  • 形式手法とは?|ディペンダブル・システムのための形式手法の実践ポータル

    フォーマルメソッド(=形式手法)は、数学的に厳密に意味付けられた言語(「形式仕様記述言語」と呼ぶ)を用いて情報システム(ソフトウェア、ハードウェア等)の要求や設計等を記述し、情報システムがユーザの要求等を満たしているかなど論理的に推論するための仕組みを提供する手法である。 フォーマルメソッドは、基礎とする数学理論などによって異なる多数の手法の総称であり、100以上の異なる手法[1]が提案されており、それぞれ記述する対象範囲や検証目的等の適性に違いがある。比較的、実践でよく利用されるフォーマルメソッドには、Bメソッド、Event-B、VDM++、SPIN、NuSMV、Zなどの例がある。また、ProVerifのように、プロトコル検証など特定の目的に対応した専門家向けのフォーマルメソッドなどにも有用なものがある。フォーマルメソッドは、鉄道分野、航空分野、金融・セキュリティ分野など、セーフティクリ

  • AndroidのNFC機能でFeliCaの読み書きをする | −ゆめログ− | ゆめみスタッフブログ

    saisa6153
    saisa6153 2014/11/14
  • 形式手法とalloyの紹介

    8. モデル検査 • モデル検査(Model Checking)とは、形式システムをア ルゴリズム的に検証する手法である。ハードウェアや ソフトウェアの設計から導出されたモデルが形式仕様 を満足するかどうか検証する。 http://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%87%E3%83%AB%E6%A4%9C%E6%9F%BB 9. 自動定理証明 • コンピュータプログラムによって数学的定理に対する 証明を発見すること。 →プログラムの正しさを保証したり、安全なプログラ ムを書くことができる。 http://ja.wikipedia.org/wiki/%E8%87%AA%E5%8B%95%E5%AE%9A%E7%90%86%E8%A8%BC%E6%98%8E

    形式手法とalloyの紹介
    saisa6153
    saisa6153 2014/11/14
  • Pythonでつくる検索エンジン(Webクローラ, Mecab, MongoDB, Flask) - c-bata web

    検索エンジン自作入門 ~手を動かしながら見渡す検索の舞台裏 作者:山田 浩之,末永 匡発売日: 2014/09/25メディア: 単行(ソフトカバー) (この記事で紹介しているのはTF-IDFとかの計算もない簡素なものです。) はじめに Webサービスのプログラミングに必要なことのだいたいは、スクレイピングに学んだ - Line 1: Error: Invalid Blog('by Esehara' ) この前↑の記事をみかけました。クローリングやスクレイピングは、色々と応用が効きそうなのでしっかり勉強したい。 PythonではScrapyという有名なクローリング・スクレイピング用のライブラリがありますが、今回は勉強としてScrapyを使わずに実装してみる。流れとしては以下のとおり Webクローラの構築 Mecabで日語の形態素解析 検索エンジンの構築 データをMongoDBに格納 Fl

    Pythonでつくる検索エンジン(Webクローラ, Mecab, MongoDB, Flask) - c-bata web
  • Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT
    saisa6153
    saisa6153 2014/11/11
  • RailsでつくるRESTful APIのrequest specを書く - それはBooks

    saisa6153
    saisa6153 2014/11/11
  • 中古車も“コネクテッドカー”に、ガリバーがKinesis使い約5カ月で構築

    愛車との双方向のやり取りを実現する消費者向けサービス「DRIVE+」をガリバーインターナショナルが開発した。いわゆる「コネクテッドカー」構想を中古車に当てはめ、自動車買い取り事業のマーケティングに生かす狙いがある。センサーなどのストリームデータを一時的に蓄積するクラウドサービス「Amazon Kinesis」を活用し、約5カ月という短期間でシステムを構築した。 「おや、見当たらないな。この辺りに駐車したはずなのに。どこだか分からなくなってしまった」――。広い駐車場でこんな経験をしたことはないだろうか。 クルマの利用者が時折直面するちょっとした困りごとの際に、あたかも愛車とLINEでやり取りするようにして必要な情報を得られるサービス「DRIVE+」が2014年秋に始まる。サービスを手掛けるのは、自動車の買い取り・販売事業のガリバーインターナショナル(以下、ガリバー)だ。 「クルマを止めてから

    中古車も“コネクテッドカー”に、ガリバーがKinesis使い約5カ月で構築
    saisa6153
    saisa6153 2014/11/11
    Kinesis活用事例
  • 持ち歩けるプログラム環境『プチコン3号 SmileBASIC』が11月19日に配信決定 - ファミ通.com

    コマンドひとつで手軽に“飛び出すプログラム”も書ける スマイルブームは、ニンテンドー3DS用ダウンロードソフト『プチコン3号 SmileBASIC』を、2014年11月19日より、ニンテンドーeショップにて発売する。価格は1000円[税込]。 また、『プチコン3号 SmileBASIC』配信決定に伴い、第三回プチコン大喜利を開催することも決定した。詳細は、配信日である11月19日に当社公式サイト上で情報公開されるという。以下、リリースより抜粋。 『プチコン3号 SmileBASIC』は、ニンテンドー3DSシリーズで動作するプログラム言語“BASIC(ベーシック)”です。BASICはパソコンの初期から使われているプログラム言語です。近年のメジャーな高級言語よりも大きくハードルを下げて、起動して即プログラムを入力、そのまま実行と、煩雑な手続きに悩まされない、直接・手作りのプログラムが楽しめます

    持ち歩けるプログラム環境『プチコン3号 SmileBASIC』が11月19日に配信決定 - ファミ通.com
    saisa6153
    saisa6153 2014/11/11
    これ面白いのでは
  • Datomic情報モデル

    データベースは、主にデータを通して提供する力のおかげでデータベースだと言えます。他の点では、単なるストレージシステムです。通常、この力は、データの組織化 (例えば、インデックス) と、組織に影響を与えるクエリシステムの組み合わせから来ています。開発者たちは、興味深い、ますます広く使われる冗長な分散ストレージシステムを、自由に手に入れていますが、しばしばその影響力を失っています。Datomicはこれらのストレージシステム上で動き、スケイラビリティや組織化した情報の保存、そして、開発者自身の手に力を取り戻そうとしています。 構造と表現 データベースは、リレーション、列とドキュメント等、そのモデルの下部にある基ユニットを持ちます。Datomicのユニットは、私たちがDatomと呼ぶ原子的な事実です。 Datomは以下のコンポーネントを持ちます。 Entity Attribute Value T

    Datomic情報モデル
    saisa6153
    saisa6153 2014/11/11