サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
2024年ランキング
kompiro.hatenablog.com
この記事は 裏freee developers Advent Calendar 2018 の6日目です。 freeeでは会計の開発をしている傍ら、開発環境の改善をいろいろやっている、ソフトウェアエンジニアの @kompiro と申します。 数年放置していたこのブログですが、Advent Calendarも裏モードということで、ゆるゆるやっていきましょう。 さて、どこかで見た感じのタイトルですが、TechRachoさんのAdventCalendarにて Web開発環境をMacBook ProからWindows機に移行してみた話という記事がありました。開発環境としてのMacは、徐々に離れられているのでしょうか?栄枯盛衰ですね。 前職ではJavaのデスクトップアプリケーションを開発していました。サポートしているOSはWindows、MacだけでなくLinuxも・・・、ということだったので普段の開
Eclipseデバッガを活用する31のTipsにたくさんのはてブがつきました。たくさんの方に見ていただけたようで、とてもうれしいです。どうもありがとうございました。 デバッガの使い方のスライドを作ってみたものの、効率良くデバッグする方法については書いていませんでした。例えば、ブレークポイントをどこに貼ると効率が良いのか、教えてほしいという声がありました。デバッガ機能をどう使うとより効率的にデバッグできるのか、考えてみました。 デバッグにおける2つのポイント 突然ですが、僕は、デバッグには下記の2つのポイントがあると考えてます。 障害の再現方法を調査する。 ソフトウェアの内部状態を調査する。 みなさんはどうやってデバッグしていますか?僕がデバッグを行う時の流れを書いてみると、 報告された情報を元に、障害がどうやって起きるのか、再現方法を確認します。 再現方法が報告されていない場合は、再現方法
Eclipseデバッガを活用するための31のtips from Hiroki Kondo speakerdeckに貼ろうかどうか迷ったけれども、どこかで話したわけではないのでslideshareに。 Eclipseのデバッガを活用すると開発が捗ります。自宅ではIntelliJを使い始めてみて、さくさくコードが書ける事を体感しているのですが、デバッグはEclipseの方がやりやすいです。で、自分の知っているノウハウをチームで共有するために作りはじめたんですが、広くみんなに公開したほうがいいと思っておすそ分け。調べてみると、結構知らなかったネタがゴロゴロでてきました。Run to Lineとかお手軽で強力な機能だと思う。 「こんなネタ知りたい」とか、フィードバックを是非お寄せください。調査して追記していきますので、コメントとかよろしくお願いします。
みなさまご無沙汰しております。僕はここの所、残業はしないまでも毎日クタクタになるほど忙しい毎日を過ごしています。どんな仕事か一言でいうと、あるプロダクトのアーキテクチャを刷新するお仕事です。今までできなかったあれやこれやを実現するために、既存のアーキテクチャを改善したり、作りなおすお仕事です。今はまだ始まったばかりで、方針を決めるために、既存のアーキテクチャ上に機能拡張してみて問題点を調査したり、どう改善するのか方針案を考えたり、実際に改善案を少しずつやってみたりしています。 このプロジェクトは、それほど大所帯ではないですが、他の会社のエンジニアさんも加わるなど、結構スキルセットがバラバラです。そのため、久しぶりにペアプロで作業を回しています。1日じゅうペアプロすると、一日の終わりの頃には頭がクタクタです。久しぶりです、この感覚。楽しい。 さて、既存のアーキテクチャを見ていくと、10年以上
「ブログに書くまでがDevLOVEです。」大事な事なのでもう一回、「ブログに書くまでが D・e・v・L・O・V・E です。」。講演の中でも2回言ったので、書くよー。 いやー、月食きれいでしたね。東京にいられて良かったです。そのきっかけになってくれたのが、DevLOVE HangerFlightでした。先ほどのエントリの冒頭に、僕は福井に引っ越したと書きましたが、この度「何でもいいから東京に来て話してよ」といわれたので、それだったらFearless Changeの話がDevLOVEに必要だと思うのでさせてください、と提案してこのセッションをやってきました。 DevLOVEで学んだ事を現場 で広めるための48の戦略 をFearless Changeから 学ぼう 48の「戦略」としたのは「パタン」と呼んでもピンと来る人はそれほど多くはないだろう、と思ったからです。あと、当日紹介したのは8
かれこれ半年前に福井に引っ越しました。はてダではご報告せずに申し訳ないです。2011/12/10に行われたHangerFlight - Snow Barrage -で話すことになり、ついでにShibuya.tracでも話して、ということで、Kanbanについて話してきました。@kanu_さんが素振りで良かったんじゃ、とおっしゃってくださったんですが、お客さんの層が違うと思ったんですよ。だから、新幹線の中でシコシコ資料を作っていましたよ。 資料を作成し始めたら結構まとめないといけない事が多くてですね、半分もしゃべれなかった。Kanbanとは何か、ちゃんと説明されている資料は、自分も翻訳しているばかりなので、あんまりなかったのかもしれないですね。 Kanban! お客さんの視点に立った アジャイルなやり方 Pasona Techさんで今回は開催させて頂いたのですが、会場はとても素晴らしく、おし
ってそろそろ語られててもおかしくないですね。インターフェース不要論って、実はDI不要論の事なんじゃないのかと思うんですよ。「DI」って、とてもいい概念なんですが、使い始めるとDIコンテナを対象にこれでもか!とPOJOのプロパティ設定を書き始めた事がありました。最近はそんな過去のおいらに、「おいちょと待てよ」と声をかけたくなってきました。 要するに言いたいのは、DIコンテナを過度に使いすぎるな、という事と、プログラムの再利用にDIコンテナを利用すると面倒なことがあるよ、という事。 DIのDは依存性のDなんですよね。何かに依存するようなDを設定として切り出す訳です。それってなんよ?と考えてみたところ、「環境」のことだったりするのではないかと思うんです。例えばテスト環境と、開発用のAP環境と、プログラム結合用のAP環境で接続するDBが違う、そんな場合にDIは有効です。アプリケーションが永続化処理
JUnitの実行結果をGrowlがなくても、画面に通知するようにしてみましたよ。 Mylynの3.6が入っていれば動くはず。(Eclipse 3.7には標準添付っす。) http://quick-junit.sourceforge.jp/updates/dev/ からインストールできます。 Growlとかみたいに、きめ細やかな設定ができないのがちょとつらいですが、よかったらどーぞ。 上記フィーチャーです。
今まで使ってたEclipseから、インストールしてたフィーチャーを簡単にインポートできるよ! 1. File -> Importを選択 2. Install -> From existing Installationを選択 3. 既存のEclipseのパスを指定 するとでーんとインストールしていたフィーチャー一覧が表示されるよ。 あとはインポートしたいフィーチャーを選択してね! そんじゃーね。
Maven3になり、Eclipseプラグインも安心してビルドできる、ってのもあって、最近Mavenでビルドする事が増えてきています。JenkinsでCIを回してるんですが、別立てでApacheを立てたりするの面倒じゃないですか。で、そういうのを解決するプラグインないか探してみたらありましたわよ奥様。 Jenkins Maven Repository Server - Jenkins - Jenkins Wikiでございます。 使い方は簡単です。Jenkinsのプラグイン管理画面からJenkins Maven Repository Serverプラグインをインストールすると、あら不思議。 [JenkinsのURL]/project/repository/everything の下にJenkinsでビルドしている成果物全てのMaven Repositoryができているではありませんか。例えば先
平鍋さんから声をかけられ、Linda Risingさんが日本に滞在している間、付き人をさせていただきました。僕はLinda Risingさんは平鍋さんの師匠であり、Fearless Changeの著者のお1人だと言うことは存じていましたが、パタン・プリンセスと呼ばれていることを存じてませんでしたし、世界的に活躍されているコンサルタントだと言うことが、どういうことなのか、良く分かってませんでした。それはどういうことなのかというと、 先週末にはポーランドのJavaのカンファレンスに招かれて出席し、一度アメリカの自宅に戻ったものの、すぐ日本に移動し、Agile Japan 2011の懇親会に出ずに自宅へ帰らなければならないほどお忙しい人 なのです。僕は1ヶ月に3、4回は飛行機に乗って世界各国を飛び回るのが当たり前の人と行動を共にしたことはありません。そんな方を空港へ迎えに行ったり、ホテルまでお見
いよいよ来週がAgile Japan 2011が開催されますね。僕はスタッフとか、実行委員とか、そういう立場の人間ではありません。ただ、今回基調講演されるお二方の一人、リンダ・ライジングさんと、その講演「Fearless Change - 不安を乗り越えて組織改革を推進するには」が楽しみでブログを書いています。 この「Fearless Change」とは、リンダ・ライジングさんとマリリン・マンスさんのお二人で書かれた書籍のタイトルでもあります。書籍では人々の集まっている場所に新しいアイディアを広めるための48のパターンと、その戦略が270ページ足らずにまとまっています。 Fearless Change: Patterns for Introducing New Ideas 作者: Mary Lynn Rising, Linda Manns出版社/メーカー: Addison-Wesley P
Googleさまで「和英 ご飯」と検索すると以前は英辞郎へのリンクが表示されていたようですが、最近は表示してくれなくなりました。非常に不便です。そういう時はつぶやいてみるといいみたいです。 Googleで「和英 なんちゃら」とかで英辞朗へほぼ直接検索できなくなったのはつらいなぁ。 2011-03-02 15:43:31 via web すると@yojik_さんから @kompiro chromeだと、オプション検索エンジン管理を開いて、英辞朗検索時のURL(検索語部分を%sとする)、起動のキーワード「英和」を登録しておけば、URLバーで「英和」と打ち込んでtabを押下するだけで検索できるようになります。 2011-03-02 15:55:56 via Chromed Bird to @kompiro と言われたので、設定してみたところめっちゃ便利だったのでまとめました。最終的には 英辞朗だ
最近はユニットテストを行うテストコードにおいて、Test Doubleを多用してます。Test DoubleとはMockとStubを合わせた総称です。Test Doubleを用いると、信頼性や保守性が下がると言われることがあります。しかし、それはTest Doubleの用法を誤っているためではないかと僕は思うのです。Test Doubleの用途はユニットテストのスコープをテスト対象のクラスに限定するために用いるべきものです。実感として、Test Doubleを使っているからと言って、ユニットテストの信頼性/保守性が下がったとはあまり感じていません。 良く誤解されていますが、Test Doubleはスローテスト問題を解決するための手段ではありません。Test Doubleをうまく利用すれば、結果的にスローテスト問題を解決できます。しかし、スローテスト問題を解決するための手段ではないのです。ス
ぼーっとしていたらEclipse PluginをGroovyで書いてました!他のJVM言語でもEclipse Plugin書けるんです! Eclipseはe4プロジェクトでJava以外の言語(例えばJavaScript)でもPluginの実装を実現しようと頑張ってますが、なんか3系でもできちゃった。 必要なもの(環境) JDK 6 Eclipse for RCP and RAP Developer Groovy Eclipse を上記Eclipseにインストール こっからはほぼ画像ペタペタ貼っているだけです。この通りに作業すれば同じようにプラグインが作れます。 ほいじゃ、実際に作っていくよー。 まずGroovyプロジェクトを作るー プロジェクト名は「 eclipse-plugin-by-groovy 」って作りました。 GroovyプロジェクトをPluginプロジェクトにコンバート MAN
1/28に僕のふるさとの名古屋でEclipse Plugin開発セミナーが開催され、講師として参加してきました。そのために作成したEclipseプラグイン開発のチュートリアルを公開します。 http://kompiro.org/nagoya-seminar/html このチュートリアルはチュートリアルを通じて手を動かしてみる事でプラグイン開発とはどういったものかを、一通り学ぶ事を目的にしています。手順通りに実施すると二つ小さなプラグインを作成できるチュートリアルです。 このチュートリアルではまだテストコードを書いたり、ビルドサーバを立てたCIのやりかたなどは取り上げていませんが、その辺りも追加できればと思っています。
結論を最初に書くと、 テストコードを書くだけではダメで、デイリービルドなりCIしないと意味ないんじゃないっすか?という事です。 最近Hudsonを使っていてすごいいいなぁ、と思うのがこの画面。 「リグレッション」という表現はすごい的を射ているなぁ、と思います。以前は「失敗」となっていたと記憶しています。 なんで的を射ているかと思ったかと言うと、テストコードって回帰テストの中で動かされると、その結果は「成功」と「失敗」だけではありませんよね。仕様変更による影響がテストコードので、テストコードが失敗すると言う事もある訳で。確かid:hyoshiokさんのブログだったかで拝見したかなんかだったんですが、Oracleでは毎朝デベロッパが出社すると、QA担当の人から失敗した回帰テストが回覧し、デベロッパに「これは障害なのか、仕様変更による影響なのか」を判断してもらった、と言う話を目にしました。テスト
最近id:ursm氏により、絶賛貸出中のkinesisキーボードですが、自宅ではKINESIS Professional/PS2ユーザーのこんぴろです。この度キーのリマップを行いました。そこでメモがてらエントリを書いてみますた。 リマップ等のまとめ だらだら書いていたら長くなりそうだったので、最初にまとめから。チートシートです。マニュアルみればみんなかいてあるので、そっち見たらいいですよ。PDFでも配布されてます。 やりたいこと 対応キー Capsロック等を押したときのビープ音を消す "Progrm"+"-" aとか、普通のキーを押したときのビープ音を消す "Progrm"+"+" キーボードのリセット(ただしリマップは修正されず) "Progrm"+"Ctrl"+"F10" キーの手前側に書かれているキーを押せるようにする(Embedded Layerモード) "Keypad" キーの上
@Rule。このアノテーションは、あまり知られていないようですが、ヤバいです。このアノテーションが追加されたのは4.7からなので結構古いのです。@Ruleのうれしさは、カスタムで作られているRunnerをほぼ置き換えられる、ということを言われていました。ただ、僕はあんまり使った事がなかったですし、周りでも使っている話はあまり聞いた事がありません。でも、使ってみて非常に便利だと感じました。 例えばTemporaryFolderを利用して作成されたファイルは、テストの終了時に自動的に削除されます。ちなみにTemporaryFolderの使い方はこんな感じです。 public static class HasTempFolder { @Rule public TemporaryFolder folder= new TemporaryFolder(); @Test public void test
GUIのテストを含む場合、Linux環境だとXが必要だったり、Windowsだと権限のあるセッションが必要だったりする訳です。Linuxでは別のセッションを立ち上げて環境変数DISPLAYに設定して・・・みたいな事をすればできそうだったのですが、設定せど設定せどうまくいかず。なのであきらめていたんですが、いつの間にかHudsonにはXvncと連携するプラグインができていたので、利用してみました。Hudsonが動作している環境はUbuntu Linux 8.04です。LTS期限切れなので、もうセキュリティパッチが提供されないらしいので、近々いれかえようか。 インストールしておくもの vncserver imagemagick vncserverにはvnc4serverを使いました。tightvncserverというものもあるのですが、vnc4serverの方が情報が多かったのでそちらを選択し
Quick JUnitの0.6.0を近くリリースする予定です。どんな機能なのか、ここで簡単に紹介したいと思います。EclipseでいうNew and Noteworthyです。リリース候補版を http://quick-junit.sourceforge.jp/updates/beta/ で公開しています。リリース候補版ですが、特に問題なければこのまま正式版として配布する予定です。 Quick JUnitのアイコン まず大事な事から。このはてダで投票して頂いていたQuick JUnitのアイコンについてです。 このアイコンは@kurikazuさんが描かれたアイコンです。@kurikazuさんのアイコンをベースに、少し手直しをして頂きました。応募してくださった@tkzさん、@bikisukeさん、@satoshi_kimuraさん、@kurikazuさんありがとうございました。後日何らかの形
今年もRubyKaigi2010に参加してきました。世間知らずで恐縮なんですが、つくば思ったよりも遠いですね。JRubyKaigi以外のセッションには全く参加できませんでした。来年が最終回宣言されてしまっていますが、こんなに素晴らしいカンファレンスであれば、全参加者が宿泊できたらいいんですがね。次回参加できたとすると、近くのホテルを探してみよう。 JRubyでカードアプリを作ろうView more presentations from Hiroki Kondo. JAMCircleもJRubyを使っているので、LTをさせていただきました。感想は 遅くなったけど書いとこ。 #jrubykaigi ではJRubyチームに感謝の言葉を伝えられたし、@koichiroo さんのReadLine-ffiは使いたいし、LT中に@NaHiさんにつっこまれたし、@yokoletさんの銅鑼なるし。Scrip
先日8/23にDevLOVEモジュール指向勉強会が開催され、一コマ担当しました。その時の資料を公開します。 モジュール指向勉強会-コードリーディングを始める前に-View more presentations from Hiroki Kondo. 資料の中でソースコードリーディング前に、モジュール化の必要性について話しました。ぶっちゃけていうと、5人で半年の開発案件くらいだと、複数のモジュールに分割する必要なんかないです。日本のソフトウェア開発プロジェクトの少なくとも5割は5人プロジェクトらしいので、すぐにモジュール化を求めているプロジェクトはそんなに多くないんじゃないか、と思ってます。 ただ、そうはいっても世界に視野を移すと、順調にソースコードが増え、システムがどんどん複雑になっています。そのため、アプリケーション層のモジュール化が求められています。これはJavaに限った話ではなく、他の
ソースコードの分かりやすさは、「単一責務の原則」と「関心毎の分離」により適切に構造を分割した、バランスのいいところにあると前のエントリに書いた。では、そこにモジュラリティが加わるとどうなるだろうか。 モジュラリティとは、システムを幾つかのモジュール*1に分離し、さらに分離したモジュールを組み合わせて新しいシステムを組むソフトウェア開発法、とここでは定義する。分かりやすい例はEclipseだ。例えばPyDevを導入すればPythonの開発環境が手に入る。このように言語環境ごとに作られたプラグインを導入すれば、それぞれの言語で開発ができるIDEが構築できる。EclipseはIDEとして必要な機能の全てをプラグインという形のモジュールに分離し、組み合わせる事でモジュラリティを実現している。*2 モジュラリティの利点と欠点を上げてみよう。 利点 モジュール毎に独立して開発できる モジュールに分割で
Mac OSXのGrowl以外の通知システムにもテスト結果を通知できたらなぁ、なんて妄想してましたが、テスト終了後に通知するプロセスを立ち上げれば何とかなるんではないかと思い、プラグインを作成しました。 プラグインの配布元 プラグインのJARです。とりあえずdropinsにでもつっこんでください。 プロセスの設定画面 Growlに通知した例 notify-sendでUbuntuのNotifyOSDに通知した例 notify-sendの設定をしたプロセスの例 /usr/bin/notify-send -i /home/kompiro/eclipse/icon.xpm ${summary} ${detail} notify-sendの引数-iは、アイコンを指定するやつです。なので、適宜/home/kompiro/eclipse/icon.xpmを適当なアイコンファイルへ差し替えてください。で、
こんな感じででけた。もしこのコードを試すのであれば、ラーニングテストなので、適宜org.junit.Testをインポートしてね。 @Test public void exitしないことを確認しよう() throws Exception { System.setSecurityManager(new SecurityManager() { @Override public void checkExit(int status) { throw new SecurityException(); } @Override public void checkPermission(final Permission perm) { } @Override public void checkPermission(final Permission perm, final Object context) { }
@ITにQuick JUnitがとりあげられました!岡本さんありがとうございます! http://www.atmarkit.co.jp/fjava/rensai4/devtool16/devtool16_1.html 最初、タイトルを見ただけうれしくなり、本文をしっかり目を通していませんでした。ところが大事なお名前の部分を見落としていたようです。心より恥じます。すいません。 さて、文中ではEclipse MarketplaceからQuick JUnitをインストールされているのですが、アイコンが表示されていません。そうなんです。Quick JUnitにはまだアイコンがないのです。この機会に募集したいと思います。アイコンの大きさは32x32、フォーマットはpngかgifです。オープンソースへのコントリビュートはソースコードだけじゃありません。興味をもたれた方はブクマコメントやtwitterな
後数時間でいよいよEclipse3.6(Helios)がやってきます。(ただいまFriends of Eclipse権限でダウンロード中)今回のリリースでは、39個のプロジェクトが同時リリース。そして初めてe4も同時にリリースです。e4については、後日レポートします。(がんばる)簡単に触れると、e4は、Eclipseの次期バージョンを目指し、開発が進んできたIDEです。Eclipse Platformの開発にて、初めてコミュニティが主体になって進めてきたプロジェクトです。新たな開発プラットフォームとなるべく開発が進んでいます。Eclipse 3系の中心のorg.eclipse.uiはかなり巨大なBundleに成長してしまいました。その中でも特に重要なクラスであるWorkbenchクラスの実装コードは5000行(!)近く、改善を加えるにも結構限界があったんではないか、と思われます。e4では「
EGitなんていうすばらしいプラグインが現在Eclipse.orgで絶賛開発中ですが、残念な事にまだpullやfetchをサポートしてません。なので、他のGitクライアントを併用しながらの開発となると思います。そういうときは下記の設定をしておいた方がいいでしょう。 …リソースの自動読み込みですね。僕は開発中、pullはするんですが、ワークスペースに反映し忘れる事がおおいので、設定するようにしました。
次のページ
このページを最初にブックマークしてみませんか?
『Fly me to the Luna』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く