ブックマーク / hiroki.jp (19)

  • 「GitHubでつくる、たのしい開発現場」YAPC:ASIA Tokyo2013 | Act as Professional

    YAPC::ASIA Tokyo 2013(2日目)で「GitHubでつくる、たのしい開発現場」というトークをしてきました。 まず、利用した資料を公開します。 伝えたいことコードレビューを習慣化させたいのであれば、GitHubは最適なツールです。 コードレビューを習慣化させたい コードは書いた人以外の目にふれさせるべきと考えている人には特にオススメのツールです。 ですが、GitHubはあくまでツールです。このツールを利用することで、コードレビューの機会や良いコードを書くためのノウハウを学習する機会を生み出すことができます。 その結果、人やチームが行動を起こすことでチームが成長したり、結果として良いソフトウェアができていくはずです。 レビューをすると増えるコスト、減るコストレビューはすべきだけど、現在レビューを習慣化できていないチームにとって、新たにコードレビューをしていくのは単に時間的なコ

    「GitHubでつくる、たのしい開発現場」YAPC:ASIA Tokyo2013 | Act as Professional
  • TDD(テスト駆動開発)を学ぶための動機になる話 | Act as Professional

    TDDがアジャイル開発では前提ここまでに説明した、アジャイル開発を支えるエンジニアリングのプラクティスをまとめておこう。 ユニットテストリファクタリングテスト駆動開発(TDD)継続的インテグレーションこれら4つを実践することなしにアジャイル開発を成功させることはかなり難しい。たちまち「書いて直す」だけの日々に逆戻りすることになるだろう。 アジャイルサムライでは成功させることはかなり難しいと甘い表現をされているが、ほぼ不可能であるといえる。 プラクティスとは習慣である。つまり、やることが当たり前なのである。やるべきことなのです。 テスト駆動開発を推し進めれば、必然とここにあげられている4つのプラクティスを実践することになる。 注意しなければいけないことは、テスト駆動開発をおこなうこと事態ががアジャイルソフトウェア開発ではありません。 アジャイルにソフトウェアを開発するためにエンジニア一人一人

    TDD(テスト駆動開発)を学ぶための動機になる話 | Act as Professional
  • これで開発者に差が付く、インタフェース心理学トピック100個集 | Act as Professional - hiroki.jp by HIROCASTER

    近所にコーヒーショップがオープンしました。あなたは期待に胸躍らせながら、はじめてそのお店で1杯のコーヒーを買いました。笑顔の素敵な店員さんは、カードがスタンプで一杯になると、コーヒー1杯が無料になるポイントカードをくれました。 そのポイントカードは ポイントカードA 欄が10個あり、最初にカードを貰ったときにスタンプが1個も押されていない。 ポイントカードB 欄が12個あり、最初にカードを貰ったときにスタンプが2個押してある。 ポイントカードはあと10杯コーヒーを買って、スタンプを10個ためるものです。スタンプを一杯にするのにコーヒーを注文する回数に違いはありません。 AとBのポイントカードのどちらをもらうかで、何か違いはあるでしょうか? インタフェースデザインの心理学このはデザイナーのためのハウツーではありません。良いソフトウェアをつくるためのポイントを科学的に研究された事実を元に解

    これで開発者に差が付く、インタフェース心理学トピック100個集 | Act as Professional - hiroki.jp by HIROCASTER
  • JavaScriptパフォーマンスを上げるシンプルな13の最適化 | Act as Professional

    最適化するとここまで早くなるのかと感心した@HIROCASTERでございませう。 Google I/O 2012 のなかで発表されたV8エンジン向けのJavaScript最適化の話です。 15.5秒ほどかかっていた処理が0.04秒まで高速化しています。 Initialize all object members in constructor functions Always initialize object members in the same order Prefer numeric values that can be represented as 31-bit signed integers Use contiguous keys starting at 0 for Arrays Don’t pre-allocate large Arrays (>64K elements) to

    JavaScriptパフォーマンスを上げるシンプルな13の最適化 | Act as Professional
  • プログラマがGitHubとどう関わっているのか垣間見て感じたこと | Act as Professional

    関係各所の協力により実現した1日にとても感謝している@HIROCASTERでございませう。 スタッフとして協力してくれる仲間がいたり、突発LTやってくれたりなど、Agile渋谷のおなじみのの雰囲気がアウェイの銀座も垣間見れたのもよかったです。 1日暇になったからLTやりにきてくれる仲間がいたり、おもしろかった。 Book1st銀座コア店では、Web+DB PRESSを1冊ずつ持った人が7人以上並ぶという光景があったとか。 「The GitHub」イベント詳細発表!話題のあの人が登壇 #Agile渋谷こちらのイベントのまとめです。 感想個人的な感想としては、やはり感じていたとおり、GitHubを使いまくってる人とほとんど使っていない人にグッサリわかれてしまっているのかなと。 仕事じゃ使えないけど、プライベートだと使いまくってるなんて、ケースはあまり聞かない。 そして、GitHubを使っていな

    プログラマがGitHubとどう関わっているのか垣間見て感じたこと | Act as Professional
  • 普通のプログラマへ良いコードを書く方法を教える!リーダブルコード | Act as Professional

    私はすばらしいコードを「エレガントなコード」と呼ぶ@HIROCASTERでございませう。 まず、はじめに。書はハッカーは読まなくて良い。普通のプログラマに読んで欲しい。 デザインパターンやリファクタリングよりも、書に書かれていることの方がプログラマは毎日考えて、意識してコードを書くのだ。 よって、普通のプログラマならば書を読んでおきたい。普通のコードを書く人にオススメの1冊だ。 例えるならば、バク転や月面宙返りをする方法ではなく、日常的におこなわれる「歩く」という行動に着目し、姿勢良く、美しく、シッカリ、確実に歩くための方法が書かれている。 書の目的は、君のコードをよくすることだ。 「良いコード」の定義とは、コードを読んだときに最短で理解できる様に書かれていることである。そう、書は伝えている。 では、良いコードを書くための方法を具体的に学んだり、教えられたりしたことはありますか?

    普通のプログラマへ良いコードを書く方法を教える!リーダブルコード | Act as Professional
  • NTTデータのアジャイルは現場への警告であり、日本のソフトウェア産業の大きな1歩である | Act as Professional

    アジャイルソフトウェア開発はキャズムを超えたと言われてもピンと来てなかったけど、当に超えたと僕が実感でき日も近いのではないかと思う@HIROCASTERでございませう。 「キャズム」という意味は、先進的な人と一般的な人との間にある隔壁のことです。 つまり、一部で活発になってきているアジャイルソフトウェア開発が一般的になってきているということ。 システムインテグレータ大手のNTTデータが下記の発表をしたことについて、思うことを書いておきたい。 若手リーダー層を対象としたアジャイル開発研修を開始 会社としての姿勢これまで欧米を中心に普及してきたアジャイル開発は、米国IT企業のソフトウエア開発における採用率で30%を超えるなど、欧米では最も利用されている開発手法となっています。昨今では、日国内でも、Webサービス業界やゲーム開発業界などを中心に多くの開発事例が見られるようになってきましたが、

    NTTデータのアジャイルは現場への警告であり、日本のソフトウェア産業の大きな1歩である | Act as Professional
  • 池澤あやかさんにPull Requestしてみた | Act as Professional

    < div class=”section”> CCレモンが売っていないので、まだ飲んでいない@HIROCASTERでございませう。 Ruby界隈で話題の池澤あやかさんが公開しているgithubが非常に興味深い状態(インデントがすごいことになってた)だったのでPull Requestしてみました。 @HIROCASTER pullリクエストきたー!初めてのpull体験です! — 池澤あやか / いけあや (@ikeay) March 29, 2012 あやかさんのはじめては俺がもらった!(ぇ RT @ike728: @HIROCASTER pullリクエストきたー!初めてのpull体験です! — Hiroki OHTSUKA (@HIROCASTER) March 29, 2012 Rubyどうこうってより、C++やるってのにビックリしたけどね。 一緒にペアプロしませんか?C++教えてくださ

    池澤あやかさんにPull Requestしてみた | Act as Professional
  • プロとしての行為 Act as Proffesional

    「ソフトウェアのプロになるには書が必要だ!」と、ボブおじさんがおっしゃっております。 このボブおじさんは、あの有名なアジャイルマニフェストにも名前を連ねているRobert C. Martinです。 プロとしての最低限必要な知識、姿勢、規律など、教育を受けたり学んだことがあるプログラマはあなたの現場に何人ぐらいいるでしょうか? 今こそ、書を取って、プロとしての道を歩み始めて欲しい。(amazonでずっと売りきれだったけど、やっと入荷したようだ。すぐに売り切れそうではあるが…) プログラミングの練習 僕はプログラミングの練習というのを意識的にあまりやったことが無い。日だとTDD Boot Campなどでおこなわれる小さなテーマでプログラミングをおこなうことである。書の6章に練習について書いてる。 個人的にはRubyKaigiで、ペアプロした外人が、これはToys Programming

    プロとしての行為 Act as Proffesional
  • 僕の経験をこれからアジャイルソフトウェア開発する人々に共有しました。 #agile渋谷 | Act as Professional

    2/1(水) Agile渋谷 meetup #05 無事に開催できました。ご参加頂いた数多くの皆様ありがとうございました。 そして、会場を提供してくださった株式会社VOYAGE GROUP当にありがとうございました。 資料を公開します。僕の言葉で多くのことを伝えたので、生の声を何かの役に立てて頂ければ幸いです。 僕のここ数年の経験で、当に重要だと考えていることについて、語れたと思います。

    僕の経験をこれからアジャイルソフトウェア開発する人々に共有しました。 #agile渋谷 | Act as Professional
  • プロとしての行為 Act as Proffesional

    事を抜く、おざなりにする 朝、昼、夕を熱中しすぎて抜いてしまう。ブドウ糖は蓄えておくことができません。定期的に栄養を取らないと脳がエネルギー不足となって、生産性の低下を招きます。凡ミスが多くなってくる。 きりの良いところで必ず事をとること。事の間隔があきすぎることがないように注意する。 生産性のないことに2〜3時間熱くなる 落ちついてコードを読み、設定を直せばすぐに解決するバグを、憶測で○○が悪いのかな?とあれもこれもと手を出すうちに2,3時間を費やしてしまい疲弊してしまう。 感情を抑え、物事を論理的に考える落ち着きを取り戻そう。 何を完了したら仕事が終わりなのかを理解していない コードを書けば仕事は終わりですか?QAやテストやドキュメントなどはいりませんか?誰に承認をえるのですか?これら、仕事として必要なことに注意を向けずに仕事を終わったと思ってしまう。当に足りないことはあ

    プロとしての行為 Act as Proffesional
  • PHPを使っているすべての人が知るべき無料のPaaSサービス | Act as Professional

    先日発売されたsymfonyの執筆に携わらせて頂いたので、今回はPHPのPaaSホスティングサービスである cloudControl で、無料で symfony1.4 を稼働させます。きっと、cakePHPやCodeigniterも稼働させることができるのではないでしょうか。 cloudControlって? 1時間あたり1BoxというcloudControlで定義している独自の単位は無料で使えます。簡単に言うと、少ないアクセスのサイトだったら無料で使えます。それ以上のアクセスを提供するためにはunlockの手続き(有料)が別途必要です。 また、無料で提供しているアドオンが利用できます。その中にはMySQLがあるので、PHPMySQLで稼働するフレームワークは大抵稼働するのではないでしょうか。 cloudControl で symfony1.4 を稼働させるところまで、解説することにしま

    PHPを使っているすべての人が知るべき無料のPaaSサービス | Act as Professional
  • いまどきのRubyとRailsの学び方 | Act as Professional

    code school という学習サイトがあります。現在は、Ruby on Railsに特化したコンテンツがありますが、確認する限りでは、jQueryやHTML5 & CSS3のコンテンツが近いうちに公開される予定です。 なにが、いまどきなのか? Ruby on Railsrails3に対応してる)が無料で学習できる Rails for Zombies をやってもらえば、すぐにわかるのですが、rails環境を一切つくることなく、Webブラウザだけで完結しているコンテンツなんです。 つまり、ブラウザにコードを打ち込んでいくと、動作する結果を返してくれるのです。環境作りに苦労することなく、学習に専念できるのです。 初心者向けのコンテンツだからこそ、こういった配慮は大事だなぁと考える。 Rails for Zombies は5章構成になっていて、1章ずつ動画で丁寧に説明されている。英語が聞き取

    いまどきのRubyとRailsの学び方 | Act as Professional
  • プロとしての行為 Act as Proffesional

    1.一般的なコーディング規約に目を通し、エレガントなコードを知る エレガントなコードを書くためには、エレガントなコードを知らなければならい。その土台を築いているコーディング規約について、オープンソースではどのようなものが使われているのか理解しておこう。入社する予定の会社が採用している言語については必ず目を通しておこう。 PHP PEAR 標準コーディング規約 symfony CodingStandards Perl perlstyle Ruby クックパッド株式会社のRubyコーディング規準 Matzスタイル NaClで採用している規約 Python PEP 8 そして、あなたの身近にあるオープンソースのコードを実際に読んでみよう。この時点でコードの仕組みや設計が理解できなくても良い。コードがエレガントかどうか?を感じ取って欲しい。こう書いた方が、良いのではないか?など、考えてみよう。

    プロとしての行為 Act as Proffesional
  • Act as Professional |

    プログラマは1日のほとんどを座った状態で生活している人がほとんどではないでしょうか? この「座りすぎ」の毎日は病気のリスクを高くすることが明かになっています。 座りすぎは病気のリスクを高める この「座りすぎ」の生活は2型糖尿病、心血管疾...

    Act as Professional |
  • あなたが知らない git svn の世界 | Act as Professional

    みんながいまだにsvnを使い続けるので、自分だけでもgitを使って幸せになってやる。って人のためのガイド。ツールや環境がsvnでがっちりつくられているとしかたないですねー。という状況の人向け。そこまでしてgitを使うのは早いし柔軟だから。マージもサクッと終わるし。 git svnって? svnをリモートリポジトリとして、ローカルではgitを扱うためのもの。gitインストールすれば大抵はいってるけど、macportsだったらこんな感じでインストール。 $ sudo port install git-core +svn gitローカルリポジトリをつくる gitは分散リポジトリなので、まずはローカルにリポジトリを持つところからスタート。 $ git svn clone -s http://svn.server/path/project これでsvnリポジトリのcloneをローカルにつくる。これで

    あなたが知らない git svn の世界 | Act as Professional
  • 達人プログラマーに学ぶ どこでも自動化 | Act as Professional

    達人プログラマーはどうするのか? p.240 第8章 達人のプロジェクトより 我々よりもコンピュータの方がうまくやってのけるような繰り返しや俗っぽいことは、すべてコンピュータに任せてしまいましょう。我々にはもっと重要で難しい仕事が待ち構えているのですから。 HIROCASTERの経験から cobblerをつかって、OSのインストールは自動化 puppetやChefをつかって、OSの設定やアプリケーションの導入と設定を自動化 capistranoをつかって、デプロイ作業を自動化 Nagiosなどの監視システムやCactiなどのモニタリングシステムへの追加も自動化 こんなことはさっさとやってしまおう。物理サーバが到着したら数分で番環境へ投入できるように。 Amazon EC2を使えば、物理サーバが到着するのも待たなくてすむ。 達人プログラマーから想像できる開発中の自動化は… シェルを書いてし

    達人プログラマーに学ぶ どこでも自動化 | Act as Professional
  • Let's TDD in PHP Matsuri 2010 | Act as Professional

    PHP Matsuri 2010の深夜12時過ぎから1時半ぐらいにかけて、急遽TDDワークショップ「Let’s TDD in PHP Matsuri 2010」を開催しました。 深夜の遅い時間にもかかわらず大勢のみなさまが参加して頂いてありがとうございます。 そして、進行のサポートをしてくれた@sanematに感謝の意を表します。 いち早く会場を提供するお話を通してくれた@hidenorigotoにも感謝。 JIREI NIGHTでヒアリングしてPHP界隈では業務でテストを書いているケースが非常に少なく、TDDを実際に実践している希なのだな。と感じました。 実際にワークショップで手を動かしたソースコード。

    Let's TDD in PHP Matsuri 2010 | Act as Professional
  • Hudsonでsymfony自動テスト環境をつくる | Act as Professional

    HudsonというJavaでつくられたCI(継続的インテグレーション)ツールを使って、symfonyの自動テストを継続的インテグレーションされる環境をつくる方法です。 継続的インテグレーションや自動テスト環境とは? XPやアジャイル開発手法でのプラクティスです。とても開発者を幸せにしてくれるものです。 プログラマーがユニットテストなどの自動テストを書く 実際の機能となるコードを書く 自分が変更した範囲のテストコードが通ることを確認する バージョン管理システムにコミットする HudsonなどのCIツールなどによって、すべての自動テストが走る。(結合テストとも呼ばれる) テスト結果にエラーがある場合、メールなどで通知される こうすることによって、開発者は常にテストが通るソースコードを維持し続けることができます。 万が一、他の機能を壊すコードを書いてしまったりバグを埋め込んでしまえば、いつのコミ

    Hudsonでsymfony自動テスト環境をつくる | Act as Professional
  • 1