Javaのクラス宣言には5種類ある。 トップレベルクラス・ネストしたクラス・内部クラス・ローカル内部クラス・匿名クラス(無名クラスとも言われる)の5種類だ。 今回はこの5種類のクラス宣言のおさらい。 トップレベルクラス これは普段使っているクラス。拡張子が.javaのファイルを作り、そのファイル名とクラス名を合致させなくてはいけない。そのjavaファイルのトップレベルに位置する。 ネストしたクラス 「ネストしたクラス」(Nested class)とはクラスの中にクラスがネストしている状態。トップレベルクラスの内側にstaticキーワードをつけてクラス宣言を行う。 public class Outer { public static class Nested { } } このネストしたクラスは、トップレベルクラスと同等の機能性を持つ。 クラス名はOuter.Nestedという名前で扱われるが
「テストが間違ってたらどうするんだ」 自動テストの話をするとよく言われます。テストが間違ってたらわからないじゃないか。手動テストであれば、注意深く目で確認していれば間違いに気づけると言う主張です。 「目で確認していれば気づける」のは間違いではありません。必ず気付けるわけではありませんが、十分な知識を持った人が、十分な集中力と責任感をもってエビデンスを確認すれば、誤りに気付ける可能性は高いと思います。 品質(主に機能性)を目的とした自動テストでも、それを行う必要があります。それがテストコードのレビューです。 手動テストの場合、テスト実施前に手順や確認項目のレビュー、実施中の確認、実施後のエビデンス確認と、人が確認するタイミング*1が三カ所あります。 これに対し自動テストの場合、テストが書かれた時のみ。実行中は勿論、実行結果の確認に注意はありません。ただ成功か失敗かだけなので。ならば、テストコ
この記事は、Cagdas Basarane 氏のブログ、 CodeBuild から 2012年2月20日の記事 "15 Best Practices of Variable & Method Naming" を翻訳したものです。 原文URL http://codebuild.blogspot.com/2012/02/15-best-practices-of-variable-method.html 十分短く十分長い変数名をスコープごとに使用する。一般的に、ループカウンタには1文字、条件やループ変数には1単語、メソッドには1-2単語、クラスには2-3単語、グローバル変数には3-4単語を使用する。 具体的な(specific)名前を使用する。例えば、"value"、"equals"、"data"といった変数名はいかなる場合も有効ではない。 意味のある(meaningful)名前を使用する。変数
The document discusses Twitter Bootstrap, an open-source front-end web development framework. It provides information on Bootstrap's history and features, including its grid system, typography, forms, buttons, navigation and other components. The document also offers tips on getting started with Bootstrap, customizing it using LESS, and related tools and resources.Read less
はじめに 「分かりやすいコードを書く」、「コードと一緒にテストも書く」等はソフトウェア開発において大切なことです。しかしそれと同じくらい大切なことして「分かりやすいコミットメッセージを書く」があります。これはあまり着目されていなく、見過ごされていることです。 今回は、コミットメッセージの分かりやすさの大切さ、そして、分かりやすくするための書き方を説明します。 コミットメッセージとその大切さ バージョン管理システムとコミット 現在、ほとんど全てのソフトウェア開発ではSubversionやGitなどのバージョン管理システムを使っています。バージョン管理システムを使うことによるメリットというのは、ソフトウェアの変更が記録されていくことにあります。 具体的なメリットは3つあります。 ソフトウェアの調査がしやすくなることです。現時点でのコードと、そして変更の履歴とを組み合わせることで、それらから非常
タイトルは釣りっぽいですけど、結構まじめ。 フォーマッターを使用すること。 これが全てです。「スペースがどうこう」とか「括弧の位置がどうこう」とかどうでもいいです。そんな美的感覚でかわるような枝葉の話に結論は出ません。 コードフォーマッターを使用してください。そのプロダクトを通して、統一された同じフォーマッターでフォーマットすること。コードはそれだけで格段に見やすくなります。個々人が好き勝手にやったり、気をつけたり、CheckStyleなどでの見た目の警告を処理したり……そんなのしてたら不統一で見難いコードにしかなりません。 個人個人での見やすさとかはあります。当然です。例えば変数代入のイコールの位置がそろってる方が見やすい人もいます。変数宣言は1行開いてた方がいいって人も、メソッド間は2行開いてた方がいいとか、賛同できませんけどそんな人も居ます。そう言うときは自分専用にフォーマットして、
TracLightning の Apache 環境で TestLink を動かす - かおるんダイアリー これでインストールしたときを前提に TracLightning と TestLink の連携の手順を残します。 #長いので注意 #TestLink の操作は長いので気が向いたら書きます^^; TestLink の事前設定 1. trac.cfg.php(今回の例ではC:\TracLight\CollabNetSVN\httpd\htdocs\testlink\cfg\trac.cfg.php)を開き Trac のサーバ設定を書き換える 書き換え前 /** Trac Project Root */ define('BUG_TRACK_DB_HOST', 'http:///trac/'); /** Mapping TL test project name vs trac project u
Slashcolon /: » TestLink 1.8.1インストール…Windows向け邪道暫定版 ここを読んでいて、そういえば TracLightning の 環境で TestLink を動そうと思って忘れてたことを思い出したのでやってみた。 #長いので注意 必要なもの TracLightning 2.1 TestLink 1.8.1 PHP 5.2.9 MySQL 5.1.33 インストール TracLightning のインストール 1. TracLightning を通常通りインストールし再起動します PHP のインストール 1. PHP のインストーラを起動します 2. 「Web Server Setup」の画面で「Apache 2.2.x Module」を選択し「Next」を押します 3. Apache の設定ファイルの場所を聞かれるので、TracLightning 付属
TracLightningのTracについてはサービスに登録するバッチがスタートメニューに登録されるのでわかりやすいですが、hudson(jenkins)についてはhudsonが提供しているコマンドで登録する必要があります。そこでちょっと嵌ったのでメモっておきます。ちなみに、この前のエントリ「TracLightningのhudsonをjenkinsに変更する - タイトルは未定」で hudson を jenkins に変更しているので、その辺は適当に読み替えて下さい。 サービスの登録やり方は、id:ushidayさんのエントリー「HudsonをWindowsサービスで実行 - ushidayの日記」を見て下さい。私も「Jenkinsを再起動しますので、しばらくお待ちください。」から全然画面が更新されませんでした。原因はバッチファイルから起動した時のポートが8010なのに対して、サービス登録
プロフィールのところにも書いてあるのですが、おいらの目標は「美しく無駄のないシステムアーキテクチャを設計、構築すること」です。 なぜならシステムの保守性や拡張性って、アーキテクチャやコードの品質によって雲泥の差が出ることを、幾度となく痛感してきているからです。 しかし、どんなアーキテクチャやソースコードがキレイなのか、拡張性や保守性が高いのか、っていうのはなかなか客観的に判断しにくいのもたしか。 「俺のコードはあんたのより分かりやすい」 「そうですか??」 「絶対そうやろ!?なんでわからんのや???」 みたいな議論が始まったらたぶん平行線になっちゃいますよね。 そこでツールを使って、コードの品質を定量的に測ってみることにしました。 今回使ったツール 今回使ったツールはこちらです。 SourceMonitor V3.5 http://sourceforge.net/projects/dupl
サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。
積極的な「時短」をするために役立つExcelのショートカットキーTOP10 2012 年 1 月 29 日 9 時 41 分 パソコン ■マスターすればマウスいらずに 事務作業や書類作成に欠かせない表計算ソフト「エクセル」。他の多くのソフトと同じくエクセルにも、面倒くさい操作を省いて指示を実行してくれるショートカットがたくさん設定されています。 第1位 「Ctrl」+「Space」 第1位は、その列全体を選択する「Ctrl」+「Space」。指定したセルの上下すべてのセルを選択してくれるので、数値を入力していく作業には欠かせないショートカットです。 第2位 「Shift」+「Space」 つづく第2位には、その行全体を選択する「Shift」+「Space」。第1位の「Ctrl」+「Space」と合わせて使いたいですね。 第3位 「Ctrl」+「Y」 第3位には、「Ctr
いや罠でもなんでもないんですが、私が勝手に罠に引っかかっただけのでメモ。 カーソルの下または後の数をインクリメントしたい場合には、やで行う事ができますが、0埋めの数値をインクリメントする時に罠が待っています。 001 をでインクリメントすると 002 になりますが、 007 をでインクリメントすると 010 になります。察しの早い方はもうお分かりだと思いますが、0で始まる数値は8進数としてvimが認識してくれて次の数値である「010」にしてくれるているんですね。DBとかデータファイルでは0埋めで「0001」連番を振る場合がよくあるありますし、10進数で扱いたい!。私は8進数表記はあまり使いません・・・(バイナリアンとは遠い存在だなぁ) 設定くらいあるだろと思って、ヘルプったらありました。 :h nrformats ヘルプから引用です。 'nrformats' 'nf' 文字列 (既定では
TddAntiPatterns - TDD のアンチパターン 目次 この文書について TDD のアンチパターン TDD アンチパターン・カタログ 嘘つき。 (The Liar) セットアップ過多 (Excessive Setup) 巨人 (The Giant) モック酔い (The Mockery) 検査官 (The Inspector) 太っ腹な残り物 (Generous Leftovers) 地元の英雄 (Local Hero) 小姑 (The Nitpicker) 秘密のキャッチ (The Secret Catcher) ペテン師 (The Dodger) 大声 (The Loudmouth) はらぺこキャッチ (The Greedy Catcher) 序列屋 (The Sequencer) 隠れ依存 (Hidden Dependency) 点呼 (The Enumerator)
このエントリーはStartup Scrumなブログではありません。Scrumというものに興味をもった当時23歳うさみみ系エンジニアがScrumという言葉を借りて開発してみた。という話です。2011/3から2011/5あたりの話。 2011/3。僕はデスマ4年目を終えて、新しいプロジェクトに移りました。 あるプロジェクトの中の4人チームのうちの1人として。もちろん僕はいちばん下っ端として。 (元請け会社の2人、当時同じ会社だった先輩、僕の4人) そのプロジェクトはWFだったんですけど、タイムボックスやリスク管理について理解があることは雰囲気で伝わってきました。 僕はその頃勉強し始めていたあらゆることを現場で試してみたいって強く思いました。 僕はMercurial、Jenkins、Groovyを趣味的に使い始めていて(MercurialとJenkinsは2010/10から。Groovyは201
garyoさんから、ソースの複雑度と単体テストケース数について有益なアドバイスを示唆してもらったので、メモしておく。 ◆SourceMonitor Version 2.4 SourceMonitorはフリーで、以下の言語のソースのソフトウェア複雑度(McCabeのサイクロマチック数)を測定できる。 例:C++, C, C#, VB.NET, Java, Delphi, Visual Basic (VB6) or HTML ◆McCabe's cyclomatic complexity SourceMonitorで求められる複雑度(McCabeのサイクロマチック数)は、モジュール内の分岐の数(+ループの数)で計算される。 複雑度の数値は、下記の意味を持つらしい。 10 以下であればよい構造 30 を越える場合,構造に疑問 50 を越える場合,テストが不可能 75 を越える場合,いかなる変更も
ソフトウェアの組み合わせテストのテストケースをExcel上で自動生成する PictMaster という名前のExcelベースのフリーソフトです。 テストケース生成のエンジン部分はペアワイズ法(オールペア法)を採用したMicrosoftのフリーソフトPICTと大阪大学の土屋達弘教授が開発したCIT-BACHを利用します。 PICTとCIT-BACHはコマンドプロンプト上で動作するソフトですが、PictMasterはExcel上からGUIを使って簡単にPICTとCIT-BACHを使えるようにしたものです。 また約300種類の直交表テンプレートを内蔵し、直交表ツールとしてのテストケース生成もサポートしています。テスト対象に合わせて生成方式と生成エンジンを選択することができます。 さらにPictMaster独自の機能を追加し、使い勝手の向上も実現しています。 ※ 直交表方式の生成で "Triple
WACATE 2011 夏に誘われたのがキッカケでソフトウェアテストを勉強しはじめて10ヵ月くらいがたちました。 先日、わんくま名古屋でソフトウェアテストの勉強法についてLTしたのですが、みなさんにいろいろ聞かれたのでここにまとめておこうと思います。 本当は1年の区切りで書こうと思ったけど、まぁいいでしょう。 追記ここから わんくまで発表したLT資料はこちらです うさみみのソフトウェアテスト勉強法 View more presentations from Kyon Mm 追記ここまで こういうのを書くときに時系列で書くべきか、コツを書くべきか悩みますね。 でも、みんなが知りたいのは僕の歴史じゃなくってコツだと思うので後者で書きます。前者はTwitterとか勉強会とかお食事とかお茶でもしているときに聞いてみてください。 以下では多くの書籍を紹介していますが、僕がこの10ヵ月で読んだ本。ってい
http://d.hatena.ne.jp/tictac/20120110/p1 を読んで。本論とは少し外れちゃうんだけど うまくやる学生はそういう困難にぶつかったとき、自分の力不足と馬鹿さ加減に滅入る気持ちと闘い、山のふもとで小さな歩みを始めます。彼らは、プライドに傷がつくことは、山頂からの景色を眺めるためであれば取るに足らないということを知っているのです。彼らは、自分が力不足であると分かっているので助けを求めます。 このくだりはわかるような気がする。ソフトウェアの開発をやっていると、ときおり新しい言語とか、新しいプラットフォームにチャレンジしようということがある。iPhoneアプリを作りたい、とか、たまには毛色の違う言語を触ってみよう、とか。なんやかんやでもう10年以上、プログラミングはしているので、そういう新しいものを学ぼうと思ったときに、自分の能力を過信してか、いきなりそこそこ質実
お仕事のやり取りでたまに遭遇しつつ気になっていたのが、メールでファイルをやり取りする際にパスワードを設定し、そのパスワードを「メールで別途送ります」というやりとり。ファイル開くのに手間がかかるばかりで、セキュリティ的にもさほど高いとはとても思えず、でもこのやり方がビジネス上時折発生するのを不思議に思っておりました。 そんなことをわーわー騒いでいたら周囲の人がいろいろ意見をいただいたのでこのエントリーで簡単にまとめ。とはいえ、今のところ「パスワードはメールで別途送ります」のメリットが全然見えてなかったりもするのですが……。 1.誤送信防止のため 「パスワードは別途送ります」の理由として最初に教えられたのがこれ。1通だと間違えて送ってしまった場合にやり直しが効かないけれど、2通に分けて送ることで誤送信を対処できるとの理由だったんですがこれがどうにも腑に落ちない。 そもそも「宛先を間違う」ことを
私は夏休みの宿題のやり方を教えてもらったことがありません。約2ヶ月という限られた時間で、どういう風に消化していくと良いのかを学習したことがなかったのです。 夏の終わりに24時間テレビが放送されますが、あれを見ながら、答えをチラ見し、綺麗なドリル(*1)を1冊消化するのは忘れられない子供の頃の思い出です。 この経験はソフトウェア開発にも似ていて、開発の手法を知らなければ、良い結果を生むのは難しいのです。不幸なことに、夏休みの宿題のように明確に何をやるべきなのか、明確では無いのです。 夏休みの苦い思い出と、ウォーターフォールっぽい大失敗プロジェクトの経験をいくつか得た上で、アジャイルソフトウェア開発を学ぶことによって、ソフトウェアのつくりかたを学びました。 これは、中小のSIerでも、イケてるWEBサービスを提供している会社でも教えてくれたことではありませんでした。そう、夏休みの宿題のやり方を
Git で日本語のコミットログを残している場合、msysGit で git stash や git rebase --onto を実行すると、 usage: git update-ref [options] -d <refname> [<oldval>] or: git update-ref [options] <refname> <newval> [<oldval>] -m <reason> reason of the update -d deletes the reference --no-deref update <refname> not the one it points to Cannot save the current statusと言われて失敗しまうことがありました。この回避策を調べたので書いておきます。バージョンは git version 1.7.0.2.msysgit
gitによるバージョン管理 バージョン管理システムはつかってますか? 僕は前に自分の作成したコードを元に、後輩にプログラムを作らせようとしてまずは僕のコードをコピペしろと指示したところ、コピペしかしてない(と言い張る)割にはコピペしたコードは動かず、さらに何故かコピペ元の僕のコードが滅茶苦茶に荒らされて当然のごとく動かなくなるという、なんかもう幽霊の存在を認めない限り説明がつかないような怪奇現象に遭遇したことがあります。しかもそのときはcpコマンドによるバックアップに頼っていて運悪くバックアップを忘れたために僕の貴重な1日が消え去ってしまった訳でして、それから僕はバージョン管理システムに頼ることを固く心に決めました。また僕はその目を覆いたくなるような残虐な事件以来、建設業界に見習って、IT業界でもプロジェクトキックオフ時にお祓いはすべきだと訴え続けています。 まぁそれはいいとして、いやまだ
このエントリは、 TDD Advent Calendar 2011 の 7 日目の参加エントリです。前日は @sue445 さんの実録!TDD風景でした。 しかし TDD Advent Calendar 2011 は、名エントリが多いですね……ハードルが上がり続けていて胃に穴があきそうです。私の言いたいことの多くは、既に @bleis さんのTDD の基礎体力と、TDD に対する想いや、 @shuji_w6e さんのTDDを学ぶべき10の理由で語られています。二つとも素晴らしいエントリなので、ぜひ読んでみてください。 そろそろカバレッジについて一言いっておくか さて、今日書くのは、カバレッジについてです。 @bleis さんのエントリに以下のような記述があります。 もう一度言いますが、TDD のテストは Developer Testing であって、品質保証を目的としたテストではありません
思い浮かんだGitのTipsを列挙してみました。 gitのコマンドをで補完する git-completion.bash を入れると、でコマンドの補完が効くようになります。 また、PS1の設定を行うと現在のブランチ名が常にbash上に表示されるようになります。 (Windowsの場合、msysgit は標準で入ってます) contrib/completion/git-completion.bash - GitHub インストール方法(引用) # To use these routines: # # 1) Copy this file to somewhere (e.g. ~/.git-completion.sh). # 2) Add the following line to your .bashrc/.zshrc: # source ~/.git-completion.sh # # 3)
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く