タグ

ブックマーク / blog.livedoor.jp/lalha (14)

  • コードレビューについて : 小野和俊のブログ

    伊藤直也さんが「些末なコードレビュー」というエントリを書いて話題になっている。このエントリで伊藤さんはコードレビューの話と、はてなJavaScriptの話と2つの話題に触れている。前者のコードレビューについてはアプレッソでは8年ほど前から「コードレビューを通っていないコードはコミット不可」というルールですべてのソースコードに対してコードレビューを必須にしてきた関係で私も思うところがあるので、エントリを書いてみようと思う。 伊藤さんが例示しているように、インデントやreturnの省略などの話は好みの問題であり、議論してもソフトウェアの改善につながらない。なのでコードレビューでこうした宗教論争が起こるようなら、コーディング規約を見直すべきだ。「無駄に悩んだり議論したりすることを減らす」ことはコーディング規約の主たる効果のひとつだと言える。 コードレビューに慣れないチームが、何の考えもナシにコ

    コードレビューについて : 小野和俊のブログ
    ktakeda47
    ktakeda47 2014/03/19
    ぴよぴよ
  • if-then-else文の順番 : 小野和俊のブログ

    ペアプロで if-then-else 文が出てきた際、「これ、else if の順序、こっちの方が良くない?」というような会話をすることが時折ある。 どれも当たり前のものかもしれないが、「ああ、確かに」という反応があることもあるので、今日はそんな会話の際に出てくる視点についてまとめてみた。 if (よくあるケース/正常なケース) { // 処理 } else if (比較的特殊なケース) { // 処理 } else if (さらに特殊なケース) { // 処理 } else { // 処理 } 条件式の結果がtrueになる確率が高く、「ノーマル」に近いものを上に書く。可読性が上がる他、特に2.で触れる条件式の判定に時間のかかる場合や、ループの最奥にある処理などのif-then-else文の実行される回数が極めて多い場合には体感レベルで実行速度にも大きな差が出ることもある。 Code Co

    if-then-else文の順番 : 小野和俊のブログ
    ktakeda47
    ktakeda47 2013/01/11
    昔ね、Javaで if (!!visible) って!が2つになっているのに気づかないで、なんでここ入んないんだろーって唸ってる人見たことある。
  • UX/UIデザインガイドライン : 小野和俊のブログ

    このところ、アプレッソの中でも、MIJS製品技術委員会でも、自分たちのソフトウェアのUX/UIをブラッシュアップしていくためにどんなことができるのかをディスカッションしている。 UX/UIデザインガイドラインとして各社の推奨する指針をまとめたものがWebで公開されているので、プログラマーであれデザイナーであれ、ソフトウェアの画面設計に何らかの形で携わるのであれば、基礎知識として主要なものには目を通し、プログラマーがデザインパターンの用語で手短にコミュニケーションが取れるのと同じように、「ここは○○ガイドラインの△△パターンを使うのはどうかな?」というような会話ができるようにしていきたいと思っている。 ■ Apple ・アップル ヒューマンインターフェースガイドライン ・iOSヒューマンインターフェースガイドライン(PDF) ・iPadヒューマンインターフェースガイドライン(PDF) ■ M

    UX/UIデザインガイドライン : 小野和俊のブログ
    ktakeda47
    ktakeda47 2012/04/13
    「読んでおくべきものの候補」として次のようなガイドラインがリストに挙がった。スマートフォンやWebアプリケーション向けのものが多いが、中には業務アプリケーション向けのUIデザインガイドラインもある。
  • DataSpiderにおけるコンポーネント間のインタラクションの設計と実装 : 小野和俊のブログ

    先日、ソースコードのメンテナビリティについてのエントリを書きましたが、dankogaiさんから「で、具体的にどんなコード書いてるの?」という指摘がありました。 返信エントリでは、「DataSpiderはオープンソースではないのでソースコードをそのまま出すことはできない」と書いたのですが、よく考えたら、一部エッセンスを抜き出してサンプルコードとして紹介することはできるので、最近私が書いたコードの中で、メンテナビリティに関係するコードを紹介したいと思います。 ※ ソースコードの行数が正しく表示されない場合にはブラウザの幅を広げると正しく表示されます。なお、ソースコードの構成をシンプルにするため今回のサンプルではViewModelは使用していません。 目次 ・コンポーネント間のインタラクションの管理 ・最も原始的な実装方法: コンポーネントの相互参照 ・Mediatorパターン ・Role Ob

    DataSpiderにおけるコンポーネント間のインタラクションの設計と実装 : 小野和俊のブログ
  • dankogaiさんへの返信 : 小野和俊のブログ

    昨日、「メンテナビリティの高いソースコードを目指して」というエントリを書いたところ、dankogaiさんから、「コードも見せていないお前にコードを語る資格はない」と怒られてしまったので返信エントリ。 実はブログを初めて1,2年くらいの頃はコードを含むエントリをそこそこ書いてたのですが、プログラマーでない知人から「何の話か全然わからなかった」と言われ、またdankogaiさんも指摘している通り、「コードについて書く方がコードを書くより読まれる現実」があり、コードを含むエントリはJava Programming Tipsという別のブログに移した経緯があります。 ではどこに力を入れているかというと、私が一番力を入れいてるのはDataSpiderという商用ソフトウェアの設計と実装ですが、これはアプレッソの50人の社員を10年間支えてきてくれているソフトウェアなので「はい、どうぞ」とソースコードをお

    dankogaiさんへの返信 : 小野和俊のブログ
    ktakeda47
    ktakeda47 2012/01/26
    dankogaiさんから「お前ごときが」発言をされるのはこれで2回目で、確かにdankogaiさんと比べると私などは上に書いたことしかしていないしがない一開発者ではありますが、一応、プログラマーとして、また「小さなISV」の経
  • 小野和俊のブログ:罪悪感駆動開発(zaiakukan-driven development; ZDD)

    みなさんは罪悪感駆動開発(zaiakukan-driven development; ZDD)という言葉をご存知だろうか。私はつい先ほどまでこの概念を知らなかった。なぜなら先ほど自分で思いついたばかりだからだ。 仕事をしていく中で、やるべきことが山積みなのについネットサーフィンをしてしまい、「うわ、今日仕事全然進んでない、やばい」という罪悪感から、その後の仕事が妙に捗る、という経験をしたことがある人は少なくないだろう。 罪悪感駆動開発は、こうした危機感や罪悪感といった人間が来持っている感情を引き出すことで、より高い仕事の成果を上げていくことを志向する。 罪悪感を感じるポイントは人によって個人差があるが、一般に仕事中に罪悪感が高まりやすい充填行為として、次のようなプラクティスが広く認知されている。 (a) 昼寝 (b) ネットサーフィン (c) ゲーム (d) タイピングソフトでランキング

    小野和俊のブログ:罪悪感駆動開発(zaiakukan-driven development; ZDD)
    ktakeda47
    ktakeda47 2011/12/14
    これまで、職場で昼寝したりネットサーフィンしたりしていて気まずい思いをしていた人は、次に上司や同僚が冷たい眼差しを向けてきた時には「罪悪感駆動開発です(キリッ」と発言してみると良いかもしれない。
  • 人生で必要な知恵はすべてブラウザ三国志で学んだ : 小野和俊のブログ

    ブラウザ三国志での1000人対1000人の一ヶ月に渡る大戦争が終わった。 今回の戦争はこの2年間のブラウザ三国志の活動の集大成として位置づけていたので、 これを機に私がブラ三を通じて学んだことをまとめてみたいと思う。 学生にとっては努力の結果状況が一変する、ということが日常茶飯事だ。 毎日部活で夜遅くまで練習して1年後には見違えるほど上達していたり、 受験勉強で1年前には絶対合格不可能だと思われた大学に合格したり、 「今のままでは無理」と諦めずに努力や工夫を継続することで状況が劇的に 改善する事例は、自分や周囲の人のことを思い出してみても枚挙にいとまがないだろう。 しかし年を重ねるにつれ、自分に合った進路を選び、 人との接し方や問題が起きた時の対処の仕方もある程度身に付き、 上手くいかない場合にもその理由を整理し、対策を考えることもできるようになって行き、 様々な意味で成長すると共に、一方

    人生で必要な知恵はすべてブラウザ三国志で学んだ : 小野和俊のブログ
    ktakeda47
    ktakeda47 2011/10/20
    そんな盟主業をリアルでの仕事もしながら約2年続けて来る中で 最後に私が行き着いたのは、 「絶対にやらなくてはならないことだけを整理しておく」 という対応方法だった。 (1) まず絶対に対応が必要なものだけをリスト
  • 「努力なんて格好悪い」と斜に構えずに、集中して物事に取り組もう : 小野和俊のブログ

    起業してほぼ確実に成功する方法」 ホリエモンのこのエントリを、まあそうだよねーと思いながら読んでいたのだが、はてブのコメントを見たところ結構ネガティブな反応が多かったので驚いた。 どうも最近ネットでは、「長時間働くのは格好悪い」「海外ではそんな働き方誰もしていない。日人格好悪すぎる」というようなエントリがよく話題になるようだが、私なんかはこうしたエントリを読む度に、 打ち込んでいることにできるだけたくさんの時間を使おうとするのってそんなに格好悪いことですか?? shi3zさんとかはiPadが発売されるからということでサンフランシスコまで出向いてすぐにレビュー中継を配信したりしている。iPhoneの時もそうだったけど、自分が情熱を傾けている対象に対して、この上でどんなものを動かしたら面白いだろう、何が必要になってくるだろうと必死で考えて、徹夜で仕事して会社に泊まって、私はそんなshi3z

    「努力なんて格好悪い」と斜に構えずに、集中して物事に取り組もう : 小野和俊のブログ
    ktakeda47
    ktakeda47 2010/04/06
    「・・・打ち込んでいることにできるだけたくさんの時間を使おうとするのってそんなに格好悪いことですか??・・・」
  • 成長しないプログラマーの7つの悪習慣 : 小野和俊のブログ

    はてブのホットエントリで「成功できない人たちが持つ7つの悪習慣」という記事を見かけたのだが、ライフハック系のやエントリは胡散臭く感じるところがあってあまり好きではない私から見ても、これは確かに、と思える内容で、プログラマーについても同じことが言えると思ったので、エントリにまとめてみた。 ・自分の理解力不足を技術のせいにする。すぐ理解できない技術や、普段自分が使い慣れてない技術は「キモイ」、「自分には合わない」などといってすぐ学習を放棄する。 ・他人の非に非常に敏感。使っているライブラリや人が書いたコードに少しでもバグが見つかると、「使い物にならない」、「書き直した方が早い」などとすぐ口にする。 ・環境がよく壊れる。「このPC不安定」、「また開発環境がおかしくなった」、「OSから入れ直さないと」といったように、作業環境が頻繁におかしくなる。たいていは自分で必要なファイルを消してしまったり上

    成長しないプログラマーの7つの悪習慣 : 小野和俊のブログ
    ktakeda47
    ktakeda47 2010/01/12
    気をつけてください。>自分 「成長しないプログラマーの7つの悪習慣」
  • 福岡の夜 (shi3zさんとの喧嘩) : 小野和俊のブログ

    8/5から三日間、昨年に引き続き、九州大学非常勤講師として高度ICTリーダー特論という大学院の授業で福岡に来ている。この授業では、日の大企業からはNECのシステム開発部長の池上さん、国際的なリーダーシップということで東京海上で世界中を飛び回っている牧野さん、外資系企業のマイクロソフト楠さん、ベンチャー企業のUEI shi3zさんと私、経産省の境さんと、様々な立場の講師がプレゼン、パネルディスカッション、グループワークなどに参加しながら授業を進めるというなかなか面白いタイプの授業である。 こうした諍いのことをネットに書くのもどうかとも思ったのだが、リーダーシップを論じるために呼ばれた講師同士が飲み会で喧嘩、ということになると、授業そのものが駄目なリーダーの見市のような様相を呈してしまうため、私たちが何を議論していたのかについて、shi3zさんにならって私の視点からもブログに書いてみよう

    福岡の夜 (shi3zさんとの喧嘩) : 小野和俊のブログ
    ktakeda47
    ktakeda47 2009/08/07
    shi3z ってのは極端だな。
  • プログラマーの開発速度は「はまる」時間の長さで決まる : 小野和俊のブログ

    プログラミングを始めてから今日に至るまで、 様々なタイプのプログラマーと開発を共にしてきたが、 驚くべき速度で高い品質のソフトウェアを作り上げるプログラマーには、 一つ共通の特徴があるように思える。 それは、「はまる」時間が極端に短い、ということである。 風のプログラマー」を指向しており、開発速度を重要視している。 例えば平成14年未踏ソフトウェア創造事業「PICSY」では、 発表直前に知人でプロジェクトリーダーの鈴木健にレスキュー隊として呼ばれて 2,3日でGUI全般と、クライアント/サーバー通信部分の設計と実装を終わらせたのだが、 このときなどは、大体の要件を口頭で聞いた後は、 ほぼまったく手が止まらずコードを書き続ける感じで開発をしていた。 「はまる」時間の長さは開発速度に直結するわけだが、 プログラマーが「はまる」場合にはある程度の傾向があると思うので、 今日は「はまる」プログラマ

    プログラマーの開発速度は「はまる」時間の長さで決まる : 小野和俊のブログ
  • プログラマー面接時の技術的な質問事項(アプレッソ版) - 解答編 : 小野和俊のブログ

    昨日、プログラマー面接時の技術的な質問事項(アプレッソ版)を書いたところ、「自分ならこう答える」というエントリを書いてくれた人が何人かいて、個別にコメントしようかとも思ったのだが、昨日のエントリだけだと質問の投げっぱなしになってしまうところもあるので、解答編を書くことにした。 なお、「面接の質問項目を公表しちゃっていいの?」という指摘もあったが、ブログに書いたのはあくまでも質問項目の一例だし、解法を検討する過程を見れば普段どんな風に開発しているのかはだいたいわかるので、特に問題ない。 for (int i = 0; i < list.getLength(); i++) {}の潜在的パフォーマンスボトルネック list.getLength()がlist.getLength()回評価されてしまう。具体例としては、JREに標準で付属するDOMのライブラリのNodeListの実装はlist.get

    プログラマー面接時の技術的な質問事項(アプレッソ版) - 解答編 : 小野和俊のブログ
  • プログラマー面接時の技術的な質問事項(アプレッソ版) : 小野和俊のブログ

    技術者・SE・プログラマ面接時の技術的な質問事項というエントリをはてブで見かけたのだが、私もjavaプログラマーの面接を割とよくやっているので、よく質問する内容をまとめてみた。 (ちなみに、基的にコーディング面接の形態を取っている) プロジェクトの性質にもよると思うが、私の場合には、情報処理技術者試験的に基礎が満遍なく抑えられているかどうかよりも、 すぐ答えが見つからないような課題に対して、きちんと自分でやり方を考え、対応することができるか 「変な」コードをコミットしたりしないか(見つけにくいバグを混入させるとか、汚いとか、遅いとか)といった点を重視している。 まず、何を知っているかよりも、どんなものを作れるか、どんなことができるか、という質問。 ここで強烈な回答が来る人は、たいていここより下の質問は「あー、はいはい」という感じでサラッと答えてくることが多い。 これまでに携わってきた開発

    プログラマー面接時の技術的な質問事項(アプレッソ版) : 小野和俊のブログ
    ktakeda47
    ktakeda47 2009/02/24
    答えられるかどうかあやしい。。。
  • 彼氏がプログラマーだった。別れたくない… : 小野和俊のブログ

    コメント一覧 (4) 1. kazu氏 2008年11月13日 15:08 はじめまして。彼氏が○○だった。別れたい…シリーズ?で、プログラマで別れたくない、ていうのはいいな!と思いました。プログラマは変だけど、素敵な仕事だと思います。頭の中が普通の人とちょっと違うけど、それはそれでいいと思うんですけどね^^ 2. ところてん 2008年12月08日 15:50 >君の瞳は100テラバイト ハードディスクの容量は二年で二倍くらいになってくから、 「15年位すると、君には価値がなくなるよ」って意味ですね。 3. みかん 2008年12月12日 16:04 >ところてん様 ハードディスクは構造が変わってしまう。 古いシステムでは使えないし、 人もそれを勉強しないと使えなくなる。 だけど「君」は構造はそのままで進化「容量増加」が出来るから、 かなり良いと思うよ。 彼氏しだいで、ゴミにもスーパーコ

    彼氏がプログラマーだった。別れたくない… : 小野和俊のブログ
    ktakeda47
    ktakeda47 2008/11/18
    秀逸
  • 1