タグ

2014年5月8日のブックマーク (26件)

  • 『Javaプロジェクトでテストをたのしく書くための試み』

    こんにちは、Ameba事業ゲームプラットフォーム室の山田(@stormcat24)です。 自分のミッションは主にゲーム部門の開発の改善で、最近はScalaでモナ・・・しながらツールを書いてたりClojureに手を出したりしています。 はじめに ところでみなさんJava書いてますか?サイバーエージェントでは最近node熱が高いのですが、Javaプロジェクトもまだまだ根強く存在します。僕も隙あらばScalaをぶっこもうとしてますが、大人の事情でまだまだJavaを書くシーンも多いのです。 で、そんなテンションが上がりにくいJavaプロジェクトをやっていく上で、せめてテストくらいはなるべくたのしく書きたい!ということで、今のプロジェクトで取り入れた施策を簡単にですが紹介します。 めちゃくちゃ尖った技術を使ってるわけではないですが、これらをやっておけばそれなりに楽しく書けるかなと思ってますので、

    『Javaプロジェクトでテストをたのしく書くための試み』
  • JavaScriptでスパイ、スタブ、モックなどのテストダブルを行う

    連載は、テストコードをこれから書こうと考えているJavaScript技術者を対象に、テストコードの意義から、テスト駆動開発、JavaScriptでのテストコードの書き方、継続的インテグレーションなどテスト全般にわたって解説します。また、原理原則だけでなくWhyから説明し、チームメンバーを巻き込みながら開発現場に活かせる考え方を総合的に解説します。第4回目の稿は、JavaScriptでのテストダブルの方法を、Sinon.jsというJavaScriptテストダブルモジュールを使って説明します。 対象読者 JavaScriptの基をある程度理解している方 テストコードをこれから書こうと考えている方 テストダブルとは テストコードを実行する際に、次のような課題に直面したことはないでしょうか。 Ajaxへのサーバへの問い合わせのような外部リソースも含めた処理のテストを行う必要があるが、テストデ

    JavaScriptでスパイ、スタブ、モックなどのテストダブルを行う
  • Spring Bootで高速アプリ開発 | DevelopersIO

    Spring Bootとは いまから10年以上前、Spring frameworkは巨大化したJ2EEへのアンチテーゼとして登場し、 DIやAOPといった、当時の最新技術をもってWebアプリ開発に必要な機能を提供してくれました。 ※Spring frameworkについてはこのへん参照 Webアプリ開発において革新をもたらしたSpringでしたが、時間が経つにつれSpring frameworkまわりの さまざまなプロダクトが登場し、J2EE以上に肥大化していきました。 そこで最近登場したのが、今回紹介するSpring Bootです。 Spring Bootは「コードを全く生成することなく、XML構成ファイルなしで番環境で利用できる Springベースのアプリを作成し、すぐに実行できるようにすること」とのことです。 開発者がSpring Bootを使用することで、「Springプラットフ

    Spring Bootで高速アプリ開発 | DevelopersIO
  • The Official Microsoft Japan Blog - Site Home - TechNet Blogs

    すべての Microsoft 製品 Global Microsoft 365 Teams Copilot Windows Surface Xbox セール 法人向け サポート ソフトウェア Windows アプリ AI OneDrive Outlook Skype OneNote Microsoft Teams PC とデバイス Xbox を購入する アクセサリ VR & 複合現実 エンタメ Xbox Game Pass Ultimate Xbox とゲーム PC ゲーム Windows ゲーム 映画テレビ番組 法人向け Microsoft Cloud Microsoft Security Azure Dynamics 365 一般法人向け Microsoft 365 Microsoft Industry Microsoft Power Platform Windows 365 開発者

    The Official Microsoft Japan Blog - Site Home - TechNet Blogs
  • TypeScript早わかりチートシート【1.5.3対応】 - Build Insider

    TypeScript 1.5正式リリース。最新言語仕様を速習しよう! TypeScriptを使うときに役立つ情報がまとまったチートシート(1クリックで試せるサンプル付き)。 稿はTypeScript 1.5.3を対象に解説を行います(※2016/11/08追記:姉妹サイトの@IT Insider.NETで「特集:TypeScript 2.0概説」 を掲載していますので、稿と併せてご参照ください )。 早いもので、TypeScript 1.0がリリースされた2014年4月3日から、1年以上が経ちました。今年の頭あたりに記事のTypeScript 1.0版からの更新の依頼が来た時は、(記事改訂は想定していなかったので)びっくりしました。情報をメンテし、良い情報がWeb上に残るよう運営するのは大変であろうな、と想像に難くないですが、筆者としてはうれしい限りです。 さて、去る2015年3月5

    TypeScript早わかりチートシート【1.5.3対応】 - Build Insider
  • Rails入門 | Rails日本語ドキュメント | Ruby STUDIO

    Ruby on Rails Guidesの内容を翻訳して作成したガイドです。 誤訳や誤記があると思いますのでその点についてはご了承ください。 もし、誤訳などの間違いを見つけましたら、 @tomof まで教えていただければ幸いです。 訳注:Rails4の「Getting Start」からは、scaffold(スキャフォールド)の説明がとり除かれたようです。 これは、おそらくscaffoldを使用することで、かえって初心者の理解を妨げる要因になると考えられてのことだと思われます。 scaffoldの事が知りたければ、Rails入門(Rails 3)を参照してください。 Railsの入門ガイドです。 このガイドを読むことで、次の事が学べるはずです。 Railsのインストールし、Railsアプリケーションのプロジェクト生成、データベース接続 Railsアプリケーションの一般的なレイアウトについて

  • Wox·すぐに使えて便利!Windows用の検索型ランチャー MOONGIFT

    個人的にはランチャーと言えば自動探索、検索型のランチャーしか使わなくなっています。かつては自分でアプリケーションを登録するのが一般的でしたが、メンテナンスするのが面倒で検索型に落ち着いています。 Mac OSXではGoogle Quick Search Boxを使っていますが、Windowsで同じように検索型で使えるランチャーとしてWoxを紹介したいと思います。 Woxの使い方 WoxはAlt + スペースキーで呼び出します。 デフォルトでGoogle Chromeのブックマークを検索します。 パスに入っているアプリケーションも検索できます。 g + ○○でGoogle検索ができます。 Woxはその他、ファイルの検索を行ったり、クリップボード履歴を検索することもできます(要プラグイン)。プラグインによる機能追加やテーマによるデザイン変更にも対応しています。プラグインはC#またはPython

    Wox·すぐに使えて便利!Windows用の検索型ランチャー MOONGIFT
  • 初学者向けの Scala Tips (1) - Option#map()を使おう - kmizuの日記

    唐突に始まったScala Tipsコーナー、初学者が陥りがちなScalaのコードパターンを例にして、より良い方法を解説していきます。第一回はOptionクラスのmap()メソッドを使おうというものです。知ってる人には今更ですが、Option#map(f)は、レシーバーの値がSome(v)の場合は、fにvを渡した結果のSome(f(v))が、Noneの場合はNoneが返ります。したがって、パターンマッチを使った以下のようなコードは val result = exp1 match { case Some(v1) => val vx = //expression using v1 Some(vx) case None => None } 常に以下のような形に書き換えることができます。 val result = exp1.map{v1 => val vx = //expression using

    初学者向けの Scala Tips (1) - Option#map()を使おう - kmizuの日記
  • WordPress用のVagrant環境VCCWが大幅にパワーアップしました。 | Firegoby

    WordPress用のVagrant環境「VCCW」に、最近いくつかの新機能を加えましたので、まとめて紹介します。 なお日現在のVagrantの最新版1.6は、Vagrant側の不具合により動作しませんので、1.6.1のリリースを待っていただくか、1.5.4を使用してください。 There is a terrible regression for CentOS and Fedora guests in Vagrant 1.6.0. Fixed in 1.6.1 (not released yet, very soon). Sorry. 🙁 — Mitchell Hashimoto (@mitchellh) May 6, 2014 はっきりとアナウンスしていませんでしたが、Windows環境でも動作します。 改善 サイトを作りましたー。 ただし英語です。今後細かいアップデートは以下のサイ

    WordPress用のVagrant環境VCCWが大幅にパワーアップしました。 | Firegoby
  • TDDをめぐる、最近の議論についての私見。 - bluebird

    はじめに DHH氏のTDD is dead. Long live testing. (DHH)のエントリは、国内でもさまざまな議論を呼び起こしました。ですが、そのセンセーショナルな見出しの影響もあり、「(TDDと同一視した上での)ユニットテストは不要」などの、ミスリードされた論調も見られます。乗り遅れた感もあるのですが、前述のエントリに限らず、TDDについて最近考えていることをまとめたいと思います。 TDD=テストファーストではない ケントベックの「テスト駆動開発入門」や、Uncle BobのTDD三原則の影響もあり、TDDでは、まずテストファーストするのだ、という印象をお持ちの方がいると感じてるのですが、いきなりテストファーストするというのは、教条主義なところがあり、現場に適用するのは敷居が高いのは確かです。 TDDを実践する上で大事なのは、テストによって開発が駆動されることです。すなわ

    TDDをめぐる、最近の議論についての私見。 - bluebird
  • Macのsayコマンドの使い方 - Qiita

    テキストファイルの内容を読み上げてもらうことも可能 ファイルを「-f」か「--input-file」で指定する 「-」を指定すると標準入力から喋る システム環境設定で、テキスト読み上げが日語以外の音声になってる場合、日語を喋ってくれない その場合、設定を変更するか、音声を明示的に指定する 音声を変更 「-v」か「--voice」で音声を指定できる 日語では最近、Otoyaっていうオッサンのボイスが追加された (システム環境設定から事前にダウンロードする必要あり) ダウンロード方法:「システム環境設定」=> 「音声入力と読み上げ」=> システムの声でカスタマイズを選択後Otoyaにチェックを入れる Agnes en_US # Isn't it nice to have a computer that will talk to you? Albert en_US # I have a f

    Macのsayコマンドの使い方 - Qiita
  • 統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト

    Rは統計をするうえでとても使い勝手の良いプログラミング言語です。 スライドでは、データの型の説明から、集計までに基的なプログラミング方法を説明します。 会社サイト:http://www.data-artist.com/Read less

    統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト
  • ラムダ式で本領を発揮する関数型インターフェースとStream APIの基礎知識

    前回の「知っといてムダにならない、Java SE 8の肝となるラムダ式の基文法」では、Javaでのラムダ式の記述方法について見てきました。 今回はラムダ式の導入によってより効果を発揮するJava 8の新機能について見ていきます。今回のJavaのバージョンアップではラムダ式の導入と共に、多くの関数型インターフェースを扱うAPIが追加されています。 今までJavaをやっている人の中には「Java 8の新しい機能を試してみよう」と思っている人も多いことでしょう。しかし、「ラムダ式」という新しい書式に加えてAPIに数多くのクラスやインターフェースやメソッドが追加されていて、その多さに拒否感を持ってしまう人もいるかと思います。 しかし、多くの新機能は幾つかの基盤となるパターンがあり、多くの細かい機能はそれらを拡張したものになっています。今回は、その中で「汎用的に使える関数型インターフェース」「ラム

    ラムダ式で本領を発揮する関数型インターフェースとStream APIの基礎知識
  • J2EEレガシーアプリケーションのJavaEEアプリケーションへのマイグレーション(1) - 水まんじゅう2

    何回かに分けてJ2EEレガシーアプリケーションのJavaEEアプリケーションへのマイグレーションについて実際のコードを見ながら解説したいと思います。 変更前のサンプルソースはこちら https://github.com/megascus/oi-webapp-sample/tree/initial こちらのソースは、Tomcat上で動く、ビューがServlet2.5+JSP、O/RマッパーとしてHibernateを直接使用するという、大体2005年ぐらいに作られたシステムのイメージになっています。 また、いくつかの点にてきちんと設計されているとは言えず、MVCに沿って作られたことになっていますが、きちんとViewとModelが分離できていません。 それ以外にも問題をいくつか抱えています。 これをGlassFish4.0上でのJavaEE7仕様で作り直したいと思います。 古いシステムを新しい仕

    J2EEレガシーアプリケーションのJavaEEアプリケーションへのマイグレーション(1) - 水まんじゅう2
  • 共通部分文字列をカウント | アルゴリズム [AOJ 528][Ruby/Python][文字列操作]

    引き続きプログラミングの基礎体力づくりと、Pythonの勉強を兼ねてアルゴリズムを勉強中です。今回は『共通部分文字列をカウントする方法』について勉強しました。AIZU Online Judgeで対応している問題は、『Common Sub-String』です。アルゴリズムというよりは頭の体操的なパズル問題ですが、ある程度速度の早いプログラムを書くのには工夫が必要だなと痛感しています。 🏈 AOJ問題Common Sub-String Aizu Online Judge。2個の文字列が与えられたとき、 両方の文字列に含まれる文字列のうちもっとも長いものを探し、 その長さを答えるプログラム。 🍄 Rubyコードloop do s, t = gets.chomp, gets.chomp rescue break s, t = t, s if s.length > t.length max_l

    共通部分文字列をカウント | アルゴリズム [AOJ 528][Ruby/Python][文字列操作]
  • CLIでプログレスバーみたいのを出力する - Qiita

    コマンドラインのツールつくるときとかに、ダウンロード中の進捗をパーセントで表示したかったんだけど、表示をクリアして再描画する方法がわからなかったので調べた。 \rで現在の行をクリアできるらしい。追記:行のクリアじゃなかった。コメント参照 rubyなら 100.times do |num| print "working... #{num}%\r" sleep 0.05 STDOUT.flush end

    CLIでプログレスバーみたいのを出力する - Qiita
  • Groovy のトレイトと @Immutable - なんとなくな Developer のメモ

    Groovy 2.3 からトレイト機能が追加されています。 Groovy 2.3 ここで、トレイトと @Immutable アノテーションを共に使用した場合、現バージョン (2.3) では以下のような注意点がありました。 トレイトで定義したプロパティの値は変更可能 (immutable とはならない) マップベースコンストラクタで値を設定するには "<トレイト名>__<プロパティ名>" と指定する必要あり 検証に使用したサンプルスクリプトは下記です。 ソースは http://github.com/fits/try_samples/tree/master/blog/20140504/ sample.groovy import groovy.transform.* interface Pricing { BigDecimal total() } // トレイトの定義1 trait BasicP

    Groovy のトレイトと @Immutable - なんとなくな Developer のメモ
  • ビルドツールまとめ。Gruntとかgulpとか (フロント寄り) - Qiita

    はじめに そろそろ、使っていないと後ろ指をさされそうな雰囲気になってきた、ビルドツール各種ですが、業界(?)の全体像をなんとなく眺めてみたいと思います。動きとしてはRuby界隈が早く、Guardが2010年あたりから、それを参考にする形でGruntが出てくるのが2011年、gulpについてはまだ1年未満という状況ですが、特にJavaScript周りは活況です。 下記、主にGitHubの各種数値を並べています。コミュニティの盛り上がりや成熟度の判断の参考として。 名称 環境 設定ファイル 可読性 GitHub プラグイン Issues 初コミット

    ビルドツールまとめ。Gruntとかgulpとか (フロント寄り) - Qiita
  • 11の項目を設定するだけでJavaScriptコーディングガイドラインが作成できるjsCode | バシャログ。

    ゴールデンウィーク中に5年ぶりにフットサルをしてまだ筋肉痛が癒えてないishidaです。社内でフットサル部を立ち上げてみましたが、参加人数が少ないので横浜近辺で一緒に球蹴りしてくれる人を募集中です。 さて今回は、JavaScriptのコーディングガイドラインを作成してくれるサービスのご紹介です。 JavaScriptHTMLCSSよりも自由度が高いので、 ガイドライン化してコードを統一するのも手間がかかるかと思います。 また初めてガイドラインを作成する人にとっては、 JavaScriptのどこまでをルール化すればいいのかも悩む部分ではないでしょうか。 そんな時にお手軽でJavaScriptコーディングガイドラインを作成してくれるサービスがありました。 11の項目を設定するだけでJavaScriptコーディングガイドラインが作成できる jsCode http://jscode.org

    11の項目を設定するだけでJavaScriptコーディングガイドラインが作成できるjsCode | バシャログ。
  • 簡単で、奥深くて、超便利! LLの元祖「AWK」にさわってみよう

    編注1:「シェル芸」とは、UNIXシェル(主にbash)のワンライナーを駆使して文字列加工を自由自在に操ることです。また、そのような能力をもつ人をシェル芸人と呼びます。 パターンとアクション AWKはパターンとアクションを組み合わせるプログラム言語です。日語で「もし○○だったら、○○をする」という文章のうち、「もし○○だったら」という部分がパターンであり、「○○する」という部分がアクションです注1。このようにパターンとアクションで構成されるAWKの基文法は直感的であるため、様々な機会で用いられます。これをAWKスクリプトで記述すると以下のようになります。 さて、「パターン」という名前から「正規表現にマッチする」ようなイメージを持たれるかもしれませんが、AWKのパターンは「条件式」そのものであり、その条件式の戻り値による「真偽」にしたがいアクションが実行されます。今回はこのパターンの真偽

    簡単で、奥深くて、超便利! LLの元祖「AWK」にさわってみよう
  • 第6回ドメイン駆動設計読書会の感想 - プログラマの思索

    第6回ドメイン駆動設計読書会に行ってきた。 感想をメモ書き。 【参考】 第6回ドメイン駆動設計読書会@大阪 - ドメイン駆動設計読書会@大阪 | Doorkeeper Pages ・ dddosaka/reading_ddd_report Wiki [ 技術講座 ] Domain-Driven Designのエッセンス 第1回 [ 技術講座 ] Domain-Driven Designのエッセンス 第2回 [ 技術講座 ] Domain-Driven Designのエッセンス 第3回 [ 技術講座 ] Domain-Driven Designのエッセンス -目次- 【1】今回の勉強会は、ちょっと難しいと感じた。 おそらくその理由は、第5回に参加できなかったため、DDDの基パターン「モデル駆動設計」をきちんと読み込めていなかったからだろうと思う。 DDDの基パターンは、[ 技術講座 ]

    第6回ドメイン駆動設計読書会の感想 - プログラマの思索
  • 忙しい現代社会人のために習うより慣れる AngularJS のリンク集 - Qiita

    忙しくない人は、公式のチュートリアルを頭から全部やると良いです。めんどくさくてそっちはやってないので分かりません。 とりあえずここを開いてジャッヴァスクリプトを眺める モジュールについて 基中の基。特に推奨セットアップのところを見ておけば良い。 DI(依存性注入)について こっちを読んだ方が幸せになれるかも。 どんなサンプルを読むにあたっても、DI の仕組みを知ってないと辛くなる。仕組み自体はよくできているが取っつきづらい。 特に 引数名で渡される実体が変わる 部分は慣れるまで気持ち悪い気がするし、ぼくは気持ち悪い。もっと言うと、minify した場合などで変数名が変わると動作しなくなるため基的には変数名を指定して、実体を捕捉する必要がある。 var sampleApp = angular.module('sampleApp', []); /** たとえば、Controller で

    忙しい現代社会人のために習うより慣れる AngularJS のリンク集 - Qiita
  • 『デザインは8の倍数でできている』

    1 pixel|サイバーエージェント公式クリエイターズブログ サイバーエージェントのクリエイターの取り組みを紹介するオフィシャルブログです。最新技術への挑戦やサービス誕生の裏話、勉強会やイベントのレポートなどCAクリエイターの情報が満載です。 はじめまして。 mama&crowdのデザイナー、長谷川彰之介です。 今回は、WEBサイトの「余白」や「ブロックサイズ」「WEBサイトの横幅」に対して 「最適な値は存在するのか?」 について考えてみたいと思います。 少々長いですが、お付き合いのほどよろしくお願いします。 ボックスサイズとは、「ヘッダー」「コンテンツ」「ナビゲーション」などの ひとつひとつの固まりの大きさ(サイズ)を指します。 【第1部】8の倍数 WEBサイトのUIをデザインしていて悩まされるのが「余白」です。 「ここは3px…いや4pxか。もっと空けたら見やすくなるかもしれない。6p

    『デザインは8の倍数でできている』
  • Kendo UI Core·企業向けHTML5 UIフレームワークのコア部分がオープンソース化 MOONGIFT

    HTML5を使ったWebアプリケーションを構築するのに使えるUIフレームワークとしてKendo UIが知られています。ビジネス向けに有償提供されていましたが、先日よりコア部分をオープンソース化しました。 有償版は継続ですが、その7割近くをオープンソースとして使えるようになっています。この機会にKendo UIの便利さを知ってみてはいかがでしょう。 Kendo UI Coreの使い方 こんな感じにサジェスト付き検索ボックスを実装したりできます。 カレンダーUI。温度計や小さな時刻も表示されています。 カレンダーは日付選択時にも使えます。 時刻ピッカーなるものも。 ドロップダウンもちょっとカスタマイズされています。 サムネイルの画像一覧。高さがちゃんと揃っていますね。 メニュー付き。結構複雑なUIです。 通知表示。 スプリッター。この辺りは業務システムでは必須ですよね。 ソートできるリスト。

    Kendo UI Core·企業向けHTML5 UIフレームワークのコア部分がオープンソース化 MOONGIFT
  • Markdown Slides - Markdownから多彩なフォーマットに出力できるスライド作成ツール MOONGIFT

    最近、スライドをMarkdownで書く人が増えています。Markdownにしておくことでスライド形式はもちろん、HTMLで出力して後で公開するのも簡単になります。さらにそれを一歩進めてくれるのがMarkdown Slidesです。 Markdown SlidesはMarkdownで記述しますが、その後の変換先が多いのが特徴です。一つのフォーマットから多彩な変化をしてくれますので、とりあえずMarkdownで記述しておこうという気になるでしょう。 Markdown Slidesの使い方 サンプルです。スライドとして表示しています。 スライドの他、PDFでも生成できます。さらにODT/Docxでも出力可能です。 テーマは簡単に変更できます。 Reveal.jsを使った高機能なスライド。 PDF出力版。これはこれで便利ですよね。 こんな感じの一枚モノとしても出力できます。 目次もちゃんと動きます

    Markdown Slides - Markdownから多彩なフォーマットに出力できるスライド作成ツール MOONGIFT
  • コーラは飲むだけじゃない。暮らしに役立つ10のコーライフハック

    コカ・コーラ、ペプシ、炭酸飲料の代表格であるコーラは飲みものではあるのだが、飲むだけではなく様々な用途にお使いいただけるという。 海外サイトでコーラの10の使用方法が話題となっていた。いったい何に役立つのだろうか?早速みていくことにしよう。 1.錆びを落す この画像を大きなサイズで見る 錆び落しには、一晩コーラに浸けて朝こすればオッケー。メッキの錆び落しには古布か研磨パッドにコーラを沁み込ませたもので円を描くように磨けば良いそうだ。 2.ガンコな油汚れ落とし この画像を大きなサイズで見る しみのついた部分をコーラに浸ししばらく置いてから洗濯機で洗剤を入れて洗濯する。油や血液といったガンコな汚れまで落ち、消臭も出来てしまう。ただし時間を置きすぎるとコーラの色が残ってしまう場合があるので、そんな時は中性洗剤を薄めた液性を薄めた液を含ませた布で上から叩くと良いだろう。 3.虫さされ、クラゲに刺さ

    コーラは飲むだけじゃない。暮らしに役立つ10のコーライフハック