home ホーム search 検索 -  login ログイン  | help ヘルプ

find 検索

241 - 250 / 1320    [|<]  [|<]  [<]  21  22  23  24  25  26  27  28  29  30   [>]  [>|][>|]
タイトル/名前 更新者 更新日
読書メモ/"How Google Tests Software", 「テストから見えてくるグーグルのソフトウェア開発」 msakamoto-sf 2013-08-11 17:57:52
Groovy/Enum型を使う時はGroovyのバージョンに注意 msakamoto-sf 2013-08-10 20:01:26
日記/2013/08/10/調査メモ : WebブラウザのRecord and Playback Framework(RPF)関連 msakamoto-sf 2013-08-10 13:35:54
日記/2013/08/10/調査メモ : デスクトップ画面の動画キャプチャソフト msakamoto-sf 2013-08-10 13:15:45
Java/NIO/Netty, Mina, Grizzly, Vert.x + WebSocket 調査メモ msakamoto-sf 2013-08-10 13:10:14
Java/Maven3/Eclipse上でサクサクWeb開発 (tomcat-maven-pluginを使ったテンプレート + Groovy) msakamoto-sf 2013-07-28 21:19:34
Java/Maven3/Eclipse上でサクサクWeb開発 (例:tomcat-maven-plugin) msakamoto-sf 2013-07-28 20:59:00
Java/Maven3/Eclipse上でサクサクWeb開発 (tomcat-maven-pluginを使ったテンプレート) msakamoto-sf 2013-07-28 20:53:47
技術/RCS/Subversion msakamoto-sf 2013-07-28 18:33:35
日記/2009/05/10/UNIX-C言語でのTCPのechoサーバのサンプル msakamoto-sf 2013-07-28 18:30:22
ソート項目 / ソート順     1ページ 件ずつ表示

読書メモ/"How Google Tests Software", 「テストから見えてくるグーグルのソフトウェア開発」  

所有者: msakamoto-sf    作成日: 2013-08-11 17:51:25
カテゴリ: TDD 読書 

邦題:「テストから見えてくるグーグルのソフトウェア開発」

・テスト技術者、およびTDD(テスト駆動開発)やテストファーストに意欲的に取り組んでいるエンジニア向けに3行でまとめる。
1. グーグルですら適切で合理的なテストケースの作成やテスト計画、テストの自動化、そして開発者にテストコードを書かせるのに苦労している。昔も、今も、そしてこれからも。
2. だから、テストやその自動化には「正解」なんて無い。グーグルですらそんなの知らない。だからグーグルではテストに対して様々な実験や検証が日常的に行われ、そこからイノベーションが生まれる。
3. では何を軸とするか?それはひたすら、「テストにより製品に価値を追加する」こと。テスト計画、自動化、開発者へのテストコードの啓蒙、それら全ては製品の価値に従属し、会社の利益につながる。

これで本書を読みたくなった人は、以下の文章を読む必要はありません。さあ、今すぐ上のリンクをクリックして本書を購入しましょう!特に、TDDに一度は夢を見て→現場導入を試みて挫折と絶望、を味わった人におすすめです。

※なお、技術的な技法や管理手法についてはほとんど書かれてません。テストコードの書き方やインフラの構築方法、あるいはテスト工程の管理方法などは期待しないほうが良いです。そもそも組織文化を変えたい、とか、JavaScriptが多用されたWebアプリ、あるいはAndroidやChromeOSなどハードウェアやOSレイヤーと結びついたソフトウェアに対して、どのようなアプローチでテストに取り組んでいるか、という話が多いです。もちろん、グーグルのテストエンジニアはどういう仕事をしていて、どんな日常なのかも書かれてます。

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-08-11 17:57:52
md5:672bc72907edfd6ef1c73637b79a1d9f
sha1:3f4eca9854206d2d59681333272a534aead30f42

Groovy/Enum型を使う時はGroovyのバージョンに注意  

所有者: msakamoto-sf    作成日: 2013-08-10 19:56:15
カテゴリ: Groovy 

JavaのEnumと、その魅力的な機能はGroovyでも使えます。

JavaでのEnum参考:

しかし、GroovyでJavaのenumを使う場合、特に変態的な凝った組み合わせを導入し始めると(例:コンストラクタのカスタマイズ、メソッドのオーバーライドなど)、Groovyのバージョンによっては期待通りに動作しないケースがありました。その辺りを簡単にメモします。

まず、codehausにあるような超単純なenumの使用方法では特に問題なくGroovyでも使えます。コンストラクタをカスタマイズしてる例もありますが、まだenumインスタンスごとの初期化ブロックは無いので、偶然にも地雷を回避できています。

しかし、2010年ごろになるとJavaのenumの変態的な機能に魅了されたGroovierが、「これってGroovyでも出来るんじゃ・・・」と試した結果、残念な結果に終わる報告が出てきます。

まあこの辺は、1.8で大体直されてるので可愛いものです。

初期化ブロック中の";"とか"(", ")"のような些細な問題は 1.8 で解決されましたが、enumに抽象メソッドを導入してインスタンスごとに実装させるとか、enum中のメソッドをインスタンスごとにオーバーライドしようとするとか始めると、2.0/2.1の初期バージョンでは期待通りに動いてくれなかったようです。

この辺は、2.0.8 / 2.1.3 になってようやく解決されています。

プロジェクトによってはGroovyのバージョンをドラスティックに上げられない場合もあると思います。マイナーバージョンアップで 1.8.9 まで上げられたとして、上記のような凝ったenumを使おうとするのであれば、以下の様な回避策があると思います。1.8.9 で動作確認済みです。

  • https://gist.github.com/msakamoto-sf/6175058
    • ポイント:enumのstaticブロックを利用して、staticインスタンスのmetaClassを使って動的にメソッドを設定している。
    • 抽象メソッドは、1.8.9だとabstract指定がまだ使えないので、ひとまずUnsupportedOperationException()を投げるようにしておく。(ダミーでも良いので入れておかないと、GreetEnum型の参照からのメソッド呼び出しが解決できない。)

結論:enumの変態的な特徴をフルに使いたいのであれば最新版のGroovyを使いましょう。

ただ、個人的にはenumの変態的な特徴に依存したデザインにするのは、単に言語の特徴に悪ノリしただけのような気もしますので、あんまりそれに依存し過ぎないよう、調整したほうが良い気もしました。(他の言語と比べて特出した特徴に依存し過ぎると、黒魔術化してメンテナンスが悪くなる可能性があるので、それを避けたい。)



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-08-10 20:01:26
md5:4a5e204ec762c511253441dd62900aa9
sha1:f54680c324232f89e067326f9f536bf94115b80d

日記/2013/08/10/調査メモ : WebブラウザのRecord and Playback Framework(RPF)関連  

所有者: msakamoto-sf    作成日: 2013-08-10 13:26:26
カテゴリ: Selenium TDD 

Google BITE & Record and Playback Framework (RPF)

Selenium IDE for Chrome

Selenium IDE for Firefoxで作ったのをIE/ChromeでPlayback剃る方法:

無いのかな・・・と思ったけど、こういうのを見つけた:

Sciroccoといえばクラウド上でのAndroidテストサービスだが、どうしてChromeに?と思ったが、どうやらChrome上での操作内容をAndroidDriverのテストスクリプトに変換することをメインに据えているらしい。
ユーザからの評価はまずまずといった感じで、これからの拡張に期待。OSSらしいが、ソースはどこだろう?

結局、ひと通りのWebブラウザを確実に対応しようとするならテスター向けの商用製品に今のところはなってしまうのかもしれない。RPF自体が、エンドツーエンドのテスト自動化という、わりと大規模で体力のある企業でないと導入出来ないものだろうから、致し方ないところか。

Record and Playback System : 有償製品


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-08-10 13:35:54
md5:806a9cfb0798c3d0e96ea7fcc8de147a
sha1:8cfaf2a37b254f6b7f3234654a3342d10afcc4c3

日記/2013/08/10/調査メモ : デスクトップ画面の動画キャプチャソフト  

所有者: msakamoto-sf    作成日: 2013-08-10 13:15:22
カテゴリ:

プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-08-10 13:15:45
md5:71ee41c911df5541b7a7d2a136014220
sha1:a78871efdf7ddc2d56831299f9d21488da4c9471

Java/NIO/Netty, Mina, Grizzly, Vert.x + WebSocket 調査メモ  

所有者: msakamoto-sf    作成日: 2013-08-10 13:08:28
カテゴリ: Java ネットワーク 

NIOフレームワーク、およびそれらにおけるWebSocket対応状況(ついでにErlang + WebSocketどうよ?も含む)についてざっと参考リンクをまとめる。

Nettyを中心としてNIOフレームワーク全般に話が及んでいる、総括的な記事:

Netty, Grizzly, MinaをサンプルとしたNIOフレームワークの検証:

ErlangとWebSocket周り:

NettyとWebSocket周り:

Vert.xとWebSocket周り:

Grizzly周り:



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-08-10 13:10:14
md5:c0f0e081b1a77e522ddab53d5d578227
sha1:2aa974c48a4c326366fd25b889455803c6aae451

Java/Maven3/Eclipse上でサクサクWeb開発 (tomcat-maven-pluginを使ったテンプレート + Groovy)  

所有者: msakamoto-sf    作成日: 2013-02-11 22:04:04
カテゴリ: Eclipse Groovy Java Maven 

Java/Maven3/Eclipse上でサクサクWeb開発 (tomcat-maven-pluginを使ったテンプレート) に、さらにGroovyのソースも組み込めるようにしたもの。

参考:

ポイント:

  • "<build>" - "<plugins>" - "<plugin>" - gmaven configuration の順だと "Plugin execution not covered by lifecycle configuration:..." が発生してしまった。
    • → "<build>" - "<pluginManagement>" - "<plugins>" - "<plugin>" - gmaven configuration の順で解決。
  • "mvn clean package" だと、先にJavaのコンパイルが走り、Javaから参照されるGroovyのクラスがまだ無いためコンパイルエラーが発生してしまう。
    • → "mvn clean groovy:compile groovy:testCompile package" の順ならJavaコンパイル、JavaのJUnitもGroovyのコンパイル、GroovyのJUnitも動いてくれました。
    • この辺りは、Mavenのpom.xmlのphaseやgoalの設定で改善出来るかも。
    • Eclipseからなら、Eclipseの自動ビルドがよしなに計らってくれるので、↑のようなエラーは発生しない。
  • "mvn tomcat:run"をデバッグ実行すれば、普通にサクサク開発を始められます。

動作確認:

Win7 Pro 64bit
JDK 1.7.09 64bit
Eclipse 4.2 Juno SR1 64bit
  plugin:
    m2e-1.2.0.20120903-1050 (maven 3.0.4)
    Groovy-Eclipse plugin 2.7.1

2013-07追記
tomcat-maven-plugin (2.1) に更新しました。Tomcat6を起動する場合は "mvn tomcat6:run", Tomcat7で起動する場合は "mvn tomcat7:run" を実行します。



プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2013-07-28 21:19:34
md5:b089b6aaafdfbe2607ca06b6a477456b
sha1:bdcaad49c836ebd5789e2f671ba048db7742cbdc

Java/Maven3/Eclipse上でサクサクWeb開発 (例:tomcat-maven-plugin)  

所有者: msakamoto-sf    作成日: 2012-04-09 18:11:36
カテゴリ: Eclipse Java Maven 

2013-07更新

2013-02に Apache Tomcat Maven Plugin の 2.1 がリリースされ、nexus.codehaus.org のリポジトリから 1.2 が削除されました。現在はMavenのCentralリポジトリから 2.1 を直接ロード出来ます。

pom.xmlへの組み込み例:

<build>
  <plugins>
    ...
<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat6-maven-plugin</artifactId>
  <version>2.1</version>
  <configuration>
    <port>8090</port>
    <path>/tomcat6-demo</path>
  </configuration>
</plugin>
<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat7-maven-plugin</artifactId>
  <version>2.1</version>
  <configuration>
    <port>8090</port>
    <path>/tomcat7-demo</path>
  </configuration>
</plugin>
    ...
  </plugins>
</build>

Tomcat6とTomcat7用に分離されています。ゴールも"tomcat6:xxxx"と"tomcat7:xxxx"で分かれているため、両方同時に組み込んでもゴール指定で使い分けることができるため、衝突問題も発生しません。

実際のサンプルコードについては Java/Maven3/Eclipse上でサクサクWeb開発 (tomcat-maven-pluginを使ったテンプレート) を参照してください。


MavenプロジェクトでのServletプログラミングで、Eclipse上で「サクサク」、つまりJavaソース修正→Eclipse上で保存→Eclipseによる自動コンパイル→即座にServletContainer上に反映という素早い開発サイクルを実現するためのメモです。
対象:フルスペックのJ2EEサーバ機能を用いない、TomcatやJettyなどの軽量ServletContainer上で動作するWebアプリケーション。
環境:Maven3, Eclipse 3.6 or 3.7 以上, m2e プラグイン, Tomcat 5 以上

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2013-07-28 20:59:00
md5:d9d3b20d8a0ffeeed20dce74d7c63873
sha1:a7f489c20cc7e2c87278f80fceeeac83c52568ad

Java/Maven3/Eclipse上でサクサクWeb開発 (tomcat-maven-pluginを使ったテンプレート)  

所有者: msakamoto-sf    作成日: 2013-02-11 17:18:25
カテゴリ: Eclipse Java Maven 

Java/Maven3/Eclipse上でサクサクWeb開発 (例:tomcat-maven-plugin) にもう少し肉付けした、Maven 兼 m2e Eclipse Projectのテンプレート。ライセンスは Apache License 2.0 にしています。

特徴:

  • mainとtestのそれぞれに、javaとresourcesを含んでいます。
  • resourcesの下には、war実行時は"src/main/resource/", test実行時は"src/test/resources/"を使っていることを区別できるようなファイルを置いています。
  • tomcat-maven-plugin(1.2)をpomに組み込み済み。"mvn tomcat:run"をEclipseからDebug実行すれば、localhostの8080番、"/" にてすぐにデバッグ実行およびJavaソース更新→即座にコンテキスト反映のサクサク開発を実現できます。
  • 2013-07更新 : tomcat-maven-plugin (2.1) をpomに組み込み済み。Tomcat6を起動する場合は "mvn tomcat6:run", Tomcat7で起動する場合は "mvn tomcat7:run" を実行します。

archetypeを構築するのがベストではあるのですが、そこまで時間なかったのでこういうテンプレートという形でお茶を濁しました。



プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2013-07-28 20:53:47
md5:5a3fc76bb0f0494277a480e5de26e125
sha1:0d0743c931a89478ba230773796c73b1a2353b94

技術/RCS/Subversion  

所有者: msakamoto-sf    作成日: 2011-09-11 17:29:17
カテゴリ: Subversion 
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2013-07-28 18:33:35
md5:bfb18647e52fbde77b4f119bf7e3ddd9
sha1:684259d44eed4bb21f2c5a76828af02ed98f3393

日記/2009/05/10/UNIX-C言語でのTCPのechoサーバのサンプル  

所有者: msakamoto-sf    作成日: 2009-05-10 22:40:57
カテゴリ: BSD C言語 Linux UNIX ネットワーク 

UNIX上でのC言語による、TCP/IPソケットを使った"echo"サーバ/クライアントのサンプル実装をcodereposに登録しました。

http://coderepos.org/share/browser/lang/c/echo_samples

2013-07-28 : msakamoto-sfが著作権を持っているコードのみ、GitHubにコピーしました。以降はこちらを更新します。
https://github.com/msakamoto-sf/toybox/tree/master/tcp_echo_sample/c

詳細はREADME_ja.txtを参照して下さい。
http://coderepos.org/share/browser/lang/c/echo_samples/README_ja.txt

元々、「サーバ側でどうにかして"接続タイムアウト"をクライアント側に発生させられないかな」と思い、select + acceptの間にsleepかませたらどうかとか考えていたのですが、下記リンクの「TCP/IP エラー処理 connect編」で普通に「マシンが居ないIPアドレスに接続」で普通にクライアント側で発生させることが出来たので、そこまでは作りませんでした。
というか、最後にソケット系の関数を弄くったのが1年以上昔で、思い出して普通のブロッキングバージョンのechoサーバ/クライアント作るだけで土日終わってしまいました・・・。
ギリギリで、connect()前にソケットを非ブロッキングモードにしておき、EINPROGRESSで戻ったらタイムアウト秒数指定のselect()で任意のタイムアウト秒数を設定できるサンプルが出来ました。

そもそもSYN+ACKを返したりするのはOSのTCPスタック内部の処理なので、ユーザーランドからはそこまで制御できないのでは?と思ったり・・・。SOCK_RAW使ったら出来るかな?

また来週末位に、気力が残っていたらサーバ側で select() + accept() するパターンを実験してみようと思います。

以下は参考にしたリンクです。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-07-28 18:30:22
md5:015ef60f297ffdc5445c0de1e7c61504
sha1:255a8549f62b6ea52fab7b1ecc1d71fe6f04ea84