Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
引き続きデブサミ2014。 ドワンゴ吉村総一郎氏によるセッション「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」を聞きました。 いろんなところで良く聞くPHPレガシーコードにどう立ち向かったのか聞いてみたかったです。 案の定というか、想像以上のPHPレガシーコードっぷりにちょっと感動すらしましたがw profile 株式会社ドワンゴ 吉村総一郎氏 ウォーターフォール開発とアジャイル開発の両方のマネージャー経験 スライド ニコニコ生放送を書き直す理由 コードの技術的負債がやばい PHPで書かれている: 300万行! facebookで1000万行と言われているそう 1万行のクラスや4000行のメソッド 循環的複雑度600超のメソッドががが あまりに複雑過ぎて龍の巣と言われている(笑) まさに壊れかけのジェンガのよう 企画やスケジュールを優
友人から「しんぺいさん DI について書いてほしい」みたいな話をだいぶ前からされてたんだけど書く気力ずっとなかった。でも仕事の気分転換にちょっとずつ書いたやつがいい量まとまったので公開するです。たいしたことは書いてないっていうか知ってるひとにはあたりまえのことしか書いてない。サンプルコードはわたしの趣味で Scala で書いてあるが、Java が読めればなんとなく読めると思います。 DI ってなに Dependency Injection、日本語で言えば依存性の注入です。おしまい。 で記事を終えてもいいんだけど、そもそも依存性とはなんなのか、それを注入するとはどういうことなのか、なぜ DI が必要となるのかみたいな話をこれからします。 そもそも依存性ってなあに 例を出します。入力された文字列をもとにおみくじをひいて、その結果を twitter に投稿するプログラムにしましょう。 まずは普通
togetter 正規表現が構文として必要かどうかという話から プログラミング言語における正規表現リテラルの必要性について こういう収集がつかなそうな話題にあまり首突っ込むの好きじゃないんですが、blogに書いておけば、まぁそれはそれでScalaをあまり知らない人にとっては役に立つだろうから、丁寧に説明しておきましょう。 togetter(と、その他関連するtweet)はあまり読んでません。 とりあえずkazuhoさんがわかりやすくblogに要点まとめているので、まずそれに対応するかたちで説明しましょう。 また、大前提としてScalaに構文としての正規表現リテラルはありません。なので、以下の説明を読んで 「いや、それは単に苦しい言い訳だし、やはり正規表現リテラルは存在したほうがいいでしょ」 と思う人もいれば 「なるほど、このくらいの機能があれば、たしかにそれほど正規表現リテラル必要ないな」
注意 現在X(旧Twitter)でのソーシャルログインができない事象を確認しています。事前にX(旧Twitter)側で再ログインした上でconnpassのソーシャルログインを行うか、 「ユーザー名(またはメールアドレス)」と「パスワード」の組み合わせでのログインをお試しください。合わせてFAQもご確認ください。 お知らせ 2024年9月1日よりconnpassサービスサイトへのスクレイピングを禁止とし、利用規約に禁止事項として明記します。 9月1日以降のconnpassの情報取得につきましては イベントサーチAPI の利用をご検討ください。 お知らせ connpassではさらなる価値のあるデータを提供するため、イベントサーチAPIの提供方法の見直しを決定しました。2024年5月23日(木)より 「企業・法人」「コミュニティ及び個人」向けの2プランを提供開始いたします。ご利用にあたっては利用
Sébastien Doeraene @sjrdoeraene Scala Days 2013, June 12th LAMP, lamp.epfl.ch École polytechnique fédérale de Lausanne, Switzerland JavaScript The one and only language of the Web A scripting language, designed for programming in the small How to scale to Rich Internet Applications? JavaScript as a target language Compile a higher-level language to JavaScript GWT, Scala/GWT CoffeeScript, Dart, Typ
Systems Programming at Twitter Facebook, October 30, 2012 Marius Eriksen Twitter Inc. (Press space or enter to navigate to the next slide, left arrow to go backwards.) A history lesson Twitter evolves 2009: Pure Ruby-on-Rails app with MySQL; lots of memcache. Materialized timelines into memcaches. Social graph moved to a service. Delayed work through queues. 2010: Starting to move timelines out to
なぜScalaがバカ向けなのか。 ぼくの経験を元に、バカ向け言語と非バカ向け言語を比較しながら見て行きましょう 非バカ向け言語 C プログラマーとして最初に携わったのがC言語です。 それは以下のようなものでした。 何十ものファイルにまたがるグローバル変数 緻密な制御が必要であるにも関わらず、無秩序に取得/開放が行われているメモリー管理 このような複雑な構造を、ぼくのようなポケコン並の処理能力しか持たないバカに把握可能でしょうか。もちろん不可能です そこで、次のようなコーディングを心がけました。 グローバル変数を使わず、関数に引数を定義して渡す メモリーの取得/解放を同一ファイル内に限定する これで、メモリーや変数参照の影響範囲を限定し、ぼくのようなバカでも理解できるようになります。 ですが、わざわざそんな事をやらなくても全てを理解できるエリート様達は、 「なぜ引数で渡すんだ。グローバル変数
A slide for the hands-on session at Scala Kansai Summit 2018, originally presented by Kitora-san in 2017. 15.7.11 HiRoshima.R #4 Lightning Talks @imyuaotiの発表資料です。 ※注意※(2015.7.19追記) Rでは処理速度が遅いという理由で for関数の使用は避けるべきと考えられています。 本来は,処理を高速化をしたい場合,以下をうまく活用してください。 ・apply関数 ・foreachパッケージ,pforeachパッケージ 【参考資料】 「勝手に添削:for関数を使った繰り返し処理によるヒストグラムの一括出力 #rstatsj」 http://qiita.com/hoxo_m/items/5127c31f3eafd6be7428 (h
はじめに 関数型といえばモナド、モナドといえば難しいという事が巷で言われていますが、いきなりモナドを理解しようとするから難しく思えるだけで、圏論から順序を追って理解していけば全然難しく無いんだよって事を分かって貰えればいいなぁと思い書いて見ることにしました。 ただ、圏論といっても適用範囲がとっても広く、応用編になると分けわかんなくなってくるので、ここではプログラミング分野に特化したFP(functional programing)圏論*1について書きます。 また、説明を簡単にする為に細かい部分をいろいろ省略しています。学術的な定義としては正確ではないので、このエントリの説明は大体合ってる位の気持ちで読んでくださいね。 尚、ぼくは圏論の詳しい事はさっぱり分からないので、学問的な話を振られても回答できませんキリッ 圏ってなんなの? 圏論と言えば、圏です。 圏って何なのかというと、対象(obje
オブジェクト指向の関数型プログラミング言語「Scala」に関する、日本で初めての大規模なカンファレンス「Scala Conference in Japan 2013」が2013年3月2日、東京工業大学で開催された。 当日はScalaの開発の中核を担う米Typesafe社から4人の招待講演があったほか、国内でのScalaの採用事例など数多くの発表があった。同イベントは有料制だったが、200人分のチケットは1週間ほどで売り切れるなど、国内におけるScalaへの期待の高さをうかがわせた。イベント当日も、セッションによっては立ち見になるほどの盛況ぶりだった。 Scalaは2003年に生まれた比較的新しいオープンソースのプログラミング言語だ。コンパイル後はJava VMで動かせるため、Javaの既存資産をそのまま生かせるのが特徴だ。Scalaの考案者であるMartin Odersky氏らが創業したT
yabeライクなサンプルアプリケーションの作成&訂正 前回の記事ではyabeっぽいサンプルアプリケーション開発のための下準備を行いました。 今回は引き続き、ユーザー情報を登録するための機能を実装してみましょう。 その前に1つ訂正です。前回はScalaQueryを使用するためにライブラリ等を設定しましたが、DBアクセスにはPlay標準のAnormを使用します。 今回使用した動作環境は以下のとおりです。 OS : MacOS X 10.7.3 Java : 1.6.0_31 Scala : 2.9.1-1 Playframework : 2.0 MySQL : 5.5 ユーザー登録機能の実装 では順番に、シンプルなユーザー登録の機能を実装をしていきます。 モデルとコントローラの実装 まずはmodelsパッケージに、ユーザーを表すUserモデルを定義します。(User.scalaを作成) pac
About me Name: Toshiyuki Takahashi Working at M3,inc. Twitter: @tototoshi Github: github.com/tototoshi #rpscala M3,inc. M3 & Scala Unfiltered Scalatra Playframework M3 & Scala seratch/scalikejdbc t2v/play20-auth t2v/holidays t2v/stackable-controller tototoshi/lift-json-play-module tototoshi/play-json4s tototoshi/scala-csv tototoshi/play-joda-routes-binder tototoshi/play-ascii-art-plugin Lots of li
2012/12/22(土) 「Scala関西ビギナーズ 第1回」 を開催しました。 場所はオオサカンスペース 。 ランチタイム 今回は勉強会の前にランチという、ちょっと変わった形になりました。 「Scala勉強会の日に SCALA でご飯を食べる!」というネタのためだけに本来やっていない土曜ランチタイムにお店を開けて頂きました・・・! お店の方、本当にありがとうございます・・・! このランチのお陰で、空気が温まった状態で勉強会を開始することができました。 勉強会前ランチ、超オススメ!! セッション 私のセッション。 Scalaの基礎的な部分を説明しました。 後半のコードゴルフは若干やり過ぎなのではとのご意見も・・・。 (一応、ここまでやらなくていいよ!という注意書きを追記しておきました。) sum関数の存在はどっかで見た筈なのに、なんで私スライドに盛り込まなかったんだろう・・・。 セッショ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く