タグ

programmingに関するarakaji-yuuのブックマーク (32)

  • やはりあなた方のDependency Injectionはまちがっている。 — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something

    今日はPHP界隈で大人気のDependency Injectionと、それに関連する用語について整理しておこうと思います。 以下のような状況があるのではないか?と思ったからです。 多くのPHPユーザがDependency Injection(DI)をよくわかっていない、あるいは正確に説明できません。 そして、デザインパターンである「DIパターン」とDIをサポートするツールである「DIコンテナ」を混同しています。 また、「DIパターン」と「サービスロケータパターン」をうまく区別できていません。 Dependency Injectionとは何か? Dependency Injectionとは「Dependency」を「Injection」するというデザインパターンです。 日語では何故か「依存性の注入」と訳されており、これが混乱の元ではないかと思います。 日語で「依存性」と言うと、「依存性は

  • Atomic DesignはWeb開発を救うのか - DMM.comラボ デザイナーズブログ

    前置き Webを便利に・高品質にしようと技術が進歩する中、コンポーネント設計に寄り添ったシステムが多く出てきました。 ただし、それらを十分に活用するにはデザインから見直さなければなりません。 コンポーネントベースのUIデザインは汎用性・再利用性の観点からも有用ですが、それを実現する際には「コンポーネントの定義」が非常に難しいことがあります。 PDCAサイクルをまわす時のようにあとから再びデザインに手を加えることが予測される環境下では、コンポーネントの粒度が曖昧なままでいると思わぬコストが発生する場合が多々存在するでしょう。 そこに対して一定のルールを持った設計システムが導入されることにより、未来の要望に対応できる柔軟なデザインが構築できるかもしれません。 そう、デザインにも設計は必要なのです! Atomic Designとは? atomicdesign.bradfrost.com Atom

    Atomic DesignはWeb開発を救うのか - DMM.comラボ デザイナーズブログ
  • ヘキサゴナルアーキテクチャ(Hexagonal architecture翻訳)

    Alistair Cockburn による Hexagonal architecture の翻訳です。PoEAAで言及されていることから、2002年ごろにはすでにC2 Wikiにページがあった模様。似たようなアーキテクチャである クリーンアーキテクチャ も翻訳したので参考にしてください。 この記事は著者から許可を得て公開しています。Thanks to Alistair Cockburn! 目次 パターン: Ports and Adapters (構造に関するパターン) 意図 動機 解決法の質 構造 サンプルコード ステージ1: FIT アプリ 定数をモックデータベースとして ステージ2: UI アプリ 定数をモックデータベースとして ステージ3: (FITまたはUI) アプリ モックデータベース 応用ノート 左右の非対称性 ユースケースとアプリケーションの境界 ポートはいくつ? 既知の用

    ヘキサゴナルアーキテクチャ(Hexagonal architecture翻訳)
  • [PDF] Software Architecture Patterns | O'reilly

  • ドメイン駆動設計読んだ - hitode909の日記

    ドメイン駆動設計というのはソフトウェア工学のおしゃれなで,Kindleで買えたので読んだ.ドメインを軸に戦略的に設計しましょうという.2週間くらいで読めて良い体験できてよかった. ソフトウェアを,ユーザーインタフェース,アプリケーション,ドメイン,インフラストラクチャという4つの層に分けて,一番重要なのがドメイン層で,ドメイン層にアプリケーションが存在し得る理由がある.銀行システムだったら,口座とか利子みたなやつがドメイン層で,口座がよくできてると銀行としてうまくいく.ATMのタッチパネルというのはユーザーインタフェースで,どんなにATM押しやすくても,ドメイン層に,口座という概念がなくて,ただのハッシュだったりすると,銀行を運営して金を儲けるとか,新たな金融商品とか作るのが困難になる.インフラ層は永続化とかするのだけど,インフラ層がいかによくても,意味ないデータを保存していては銀行倒

    ドメイン駆動設計読んだ - hitode909の日記
  • Common Lispの勉強をするには、あるいは情報を得るには | κeenのHappy Hacκing Blog

    深町さんのブログで日語でCommon Lispの質問をする方法が載ってましたが質問じゃなくて単に情報を得たい、勉強をしたいという場合が書かれてなかったので勝手に補遺。 処理系選び 処理系:選び方の目安 - Common LISP users jpや Common Lisp 処理系 - 紫藤のWikiが参考になるかと思います。 開発環境構築 Modern Common Lispあたりですかね。著者がちょっと古くなってきたので更新するって言ってました。 処理系のインストールなら*nix環境で使える拙作のCIMもあります。解説はこちら。 入門 Web 私の一番のおすすめはM.HiroiさんのWebページです。一応Common Lispではなくxyzzyですがここで紹介されている内容であればCommon Lispにも共通します。 M.Hiroi’s Home Page / xyzzy Lisp

    Common Lispの勉強をするには、あるいは情報を得るには | κeenのHappy Hacκing Blog
  • Welcome to Swift

    Welcome to Swift Swift is a new object-oriented programming language for iOS and OS X development. Swift is modern, powerful, and easy to use. let people = ["Anna": 67, "Beto": 8, "Jack": 33, "Sam": 25] for (name, age) in people { println("\(name) is \(age) years old.") } Safe Swift pairs increased type safety with type inference, restricts direct access to pointers, and automatically manages memo

    Welcome to Swift
  • Programming in Emacs Lisp: List Processing

    1. List 処理 訓練を受けてない人にとっては、Lisp は奇妙なプログラミング言語である。 Lisp のコードの中には到る所に括弧が見受けられる。中には、Lisp と言う名前 は、`Lots of Isolated Silly Parentheses' を表わしているのだとほざく人ま でいる。しかし、これは根拠のない主張である。Lisp は LISt Processing を表 わし、リスト (や、リストのリスト) を両側を括弧で狭んで扱うプログ ラミング言語である。括弧は、リストの境界を示している。時々、リストの頭に アポストロフィ、即ち引用符 `'' が付いていたりすることもある。リスト は Lisp の基礎である。

  • A Brief Beginner’s Guide To Clojure

    by John Gabriele, last-modified: 2016-06 (using Clojure 1.8.0, Leiningen 2.6.1, and OpenJDK 8) The purpose of this brief guide is to provide new users with a 1000-meter view of Clojure and its ecosystem, including how to quickly get up and running. This guide concerns the original, Java-based Clojure implementation (though, there are others). It’s not a Clojure language tutorial; there are a numbe

  • smalltalk-users.jp - 第63回Smalltalk勉強会

    3月のSmalltalk勉強会の日程が決まりました。下記の要領で行います。 日時: 2014/3/31(月) 19:00-21:00 (2時間程度) 場所: シンコム・システムズ・ジャパン株式会社 東京都港区麻布台1丁目11番9号 CR神谷町ビル11階 テキスト: 「Smalltalkで学ぶオブジェクト指向プログラミングの質」または「自由自在Squeakプログラミング」(PDF) ※テキストは補助的なものです。初心者の方は持参されると何かと便利でしょう。 今回はSqueakからスピンアウトしたコンパクトな処理系、Cuis Smalltalkを扱います。 昨今のSmalltalk処理系というと4000クラス越えのリッチなクラスライブラリを誇るものも普通なのですが、一方で全容を理解しづらい、初心者が圧倒されてしまう、などのデメリットもあります。 Cuisは全てを把握できるシンプルさを目指して

  • Pythonにサヨナラを - HackerNews翻訳してみた

    「HackerNews翻訳してみた」が POSTD (ポスト・ディー) としてリニューアルしました! この記事はここでも公開されています。 Original article: Saying Goodbye To Python by Ian Bicking ずっと先延ばしにしてきた記事を書きます。決別宣言ではなく(ずいぶん前に離れていますし)、ただ自分が歩んできた道を振り返ったに過ぎません。Pythonの世界に別れを告げてずいぶん経つのに、これまでサヨナラを言う勇気がなかったのです。 何年も前にPythonを卒業したとはいえ多少の愛着は残っており、戻る可能性もあると思っていました。PyCon 2013への提議が却下されたことは頭にきましたが(面白い話をしようと思っていたのに!)、この件で自分はもうPythonコミュニティの一員ではないのだと確信しました。 Pythonは私が初めて(もしかした

  • mixiの新人研修トレーニングが非常にわかりやすくて実践的すぎる - Android Javascript iOS

    mixiは新人研修用のトレーニングをgithubに公開しています。 公開していることは知っていたけれど、いざみてみると… とってもわかりやすく実践的!!! 普通に参考書で勉強するよりも企業が公開しているものだから、より実践的という感じもします。 自分はこのAndroidTrainingをやっているのですが、最後に課題もあり、到達度や理解度もすごく把握できていい感じです。 READMEもかなり充実しており、一通りを学べるように工夫されています。 mixiに入社した方がこれを一通りやったと思うと、大変な印象ですが…だからこそやったときに達成感がありそうです。 開発環境の構築から書かれているので、ほとんどつまづくことはありません。 かなり詳しくわかりやすく書かれている印象を受けました。 ちょっと初めて学習するには、難しい箇所もありますが適宜ぐぐって補えばよいでしょう。 ・AndroidTrain

    mixiの新人研修トレーニングが非常にわかりやすくて実践的すぎる - Android Javascript iOS
  • The Node Beginner Book

    The perfect introduction plus its comprehensive follow-up now in one bundle! Leanpub.com currently offers the final version of The Node Beginner Book plus its follow-up The Node Craftsman Book for $9 only! (limited offer - regular price is $29.99) 224 pages in total PDF, ePub & MOBI Free lifetime updates Unconditional 45 days money back guarantee A Node.js tutorial by Manuel Kiessling About The ai

    The Node Beginner Book
  • The Hacker Shelf | Community-curated collection of free books for the intellectually curious.

    Neural Network Design by Martin T. Hagan, Howard B. Demuth, Mark H. Beale, Orlando De Jes s

  • オブジェクト指向と関数型の特徴を備える---Scalaの準備

    Scalaは、スイス連邦工科大学ローザンヌ校のMartin Odersky(マーティン・オーダスキー)教授率いるチームが開発しているプログラミング言語です。オープンソース(BSDライセンスに似たSCALA LICENSE)で開発・公開されており、その範囲内で自由に利用できます。最初に、“なぜ、Scalaの人気が高まっているのか”を説明します。 Scalaは、オブジェクト指向に加えて関数型言語の特徴を備えた比較的新しい言語です。この、“オブジェクト指向に加えて”というのがポイントです。新しいパラダイム(問題解決のための考え方)を、従来のパラダイムに重ね合わせていることから、マルチパラダイムの言語ともいわれます。 ちなみにScalaという名前は、Scalable Language(拡張性のある言語)の短縮形です。そのスケーラブルという言葉には、「小さいプログラムも大規模なプログラムも同じ概念で

    オブジェクト指向と関数型の特徴を備える---Scalaの準備
  • Scalaプログラミング入門

    Martin Oderskyによる 関数型かつオブジェクト指向プログラミング言語 Java 1.1–1.4コンパイラの開発者 Pizzaの開発者 (Philip Wadlerと共同) オープンソース 活発に開発が行われている 応用 Twitterの分散DBフレームワークGizzardはScalaで記述されている Foursquare, Tumblr, LinkedIn, Amazon, VMware, はてな, ドワンゴなどでも利用されている WebアプリケーションフレームワークとしてPlayなどがある プログラミング言語別年収ランキング 2017年は1位, 2018年は2位 言語の特徴 関数型プログラミング言語とオブジェクト指向プログラミング言語の融合 強力な型推論 高階関数 Immutable Collections 並行計算 Java言語もJava 8から,関数型プログラミングの特徴

  • The Scala Programming Language

    val fruits = List("apple", "banana", "avocado", "papaya") val countsToFruits = // count how many 'a' in each fruit fruits.groupBy(fruit => fruit.count(_ == 'a')) for (count, fruits) <- countsToFruits do println(s"with 'a' × $count = $fruits") // prints: with 'a' × 1 = List(apple) // prints: with 'a' × 2 = List(avocado) // prints: with 'a' × 3 = List(banana, papaya)

    The Scala Programming Language
  • プログラミング言語Scala 日本語情報サイト

    Created by mhanada on 2011-12-25. Updated: 2012-02-11, 23:29 日Scalaユーザーズグループ発足に伴い、今後は日Scalaユーザーズグループのサイトにニュースを掲載することにいたしましたのでそちらをご覧いただくようお願いします。

  • もうひとつの Scheme 入門

    勾配の緩やかな初心者向け Scheme 入門ページです。 コンピュータは使ったことがあるが、プログラミング経験があまりない人を想定しています。 Scheme の解説はすでに山ほど優れたものがありますが、あえて解説記事を書いてみました。 Scheme のような抽象的な話題は波長が合えばすんなりと理解できますが、あわないと全く理解できません。 他の解説を読んで今ひとつよく理解できなかった人は試しに読んでみてください。 この記事の目標はコンピュータ科学の教科書の決定版である SICP を読める程度の Scheme の知識を提供することです。 目次: 処理系のインストール Scheme を電卓代わりに使う リストを作ろう 関数を定義しよう 分岐 局所変数 繰り返し 高階関数 入出力 代入 文字、文字列 シンボル型 連想リスト、ハッシュ表 ベクトルと構造体 構文の定義 (マクロ) 継続 遅延評価 非

  • Practical Scheme

    このページでは、プログラミング言語Schemeの紹介、および 自作のSchemeのライブラリやアプリケーションの紹介をしてゆきます。 特に、ファイルをパーズしてテキストファイルを生成したりとか、 プロセスを監視したりとか、ちょっとしたGUIをでっちあげる と言った、職業プログラマとしてやってく上で避けて通れない雑用に便利な ライブラリが中心になる予定です。 SchemeはLisp系の言語で、見かけはLispに良く似ています。 Lispと聞いたら人工知能用言語だとか、もう古くさい言語だとか思われることも 多いんですが、CommonLispで書かれた実用的なアプリケーションはいろいろ ありますし、Schemeも拡張言語としてそれなりに使われています。 ただ、いかんせんマイナーな言語であることは間違いなく、メンテできる人が居ない とか他に分かる人が居ないという理由で採用が見送られることがあるのは

    Practical Scheme