タグ

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

  • 達人プログラマーに学ぶ コメントは必要?不要? | Act as Professional

    HIROCASTERの経験から SIer時代にコメントの重要性と言うより納品物としての必然性を教え込まれた記憶がある。例えば、こんなコメントは不必要である。 class foobar { /** * foobar class のコンストラクタ */ public function __construct() { foo = array(); bar = array(); } } 「public function __construct()」と書かれているのにわざわざ上でコメントを書く必要性はない。同じ意味を違う言語(表現)で書いているだけだ。重複であるといってもよい。DRYの考えに反する。 でもこれ、ドキュメントを自動生成して納品物とする場合、クラスずつにページがあって、コンストラクタの場所にいろいろと書かれている場合と何も書かれてない場合とかってのは、納品物として白紙はまずいわけで、こう

    達人プログラマーに学ぶ コメントは必要?不要? | Act as Professional
    koogawa
    koogawa 2016/01/19
    名前重要
  • 達人プログラマーに学ぶ どこでも自動化 | Act as Professional

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

    達人プログラマーに学ぶ どこでも自動化 | Act as Professional
    koogawa
    koogawa 2016/01/18
  • 達人プログラマーに学ぶ 絶え間ない結合化と容赦ないテスト | Act as Professional

    書いたコードの量が増えれば、増えるほど、比例してバグが増えていきます。 予期せぬバグはスケジュールに致命的な影響を与える。 手を加えたソースの量が増えてからバグを特定するのには多くの時間や労力を費やすことになります。 達人プログラマーはどうするのか?p.241 第8章 達人のプロジェクトより 早めにテスト、何度もテスト、自動でテスト 書いたコードが少ない段階で、少ないテストをして、小さなバグをできるだけ早く解決していく。製品コードとテストコードを同時に書いていくのです。仮にバグを埋め込んでしまったとしても、バグになっている箇所はすぐに特定できるでしょう。 このテストをあながた手を動かしてやっている暇はありません。 あなたは新たなバグを埋め込むために製品コードを書かなければなりません。絶対に自動化しましょう。 自動化してテストを何度も、何度も、繰り返しおこなえるようにしましょう。結合テストも

    達人プログラマーに学ぶ 絶え間ない結合化と容赦ないテスト | Act as Professional
    koogawa
    koogawa 2016/01/18
    容赦ないテスト
  • 達人プログラマーに学ぶ 品質とチームメンバーの役割 | Act as Professional

    割れ窓理論というのはご存じですか?建物の窓が割れているのを放置していると、やがてすべての窓が破壊されていくという理論です。 ソフトウェア開発に置き換えると、小さなバグを知っているのにもかかわらず、放置しておくと、どんどんバグだらけになっていくということになります。これは、バグだけいえることではなく、テスト駆動開発にも同じことがいえます。テストファーストのアプローチをせずに、テストがないコードを少しでも積み上げた状態をそのままにすると、どんどんテストがないレガシーコードが生産されていきます。品質は低下していく一方です。 達人プログラマーはどうするのか? p.229 第8章 達人のプロジェクト 全員が環境の変化を積極的に監視しているかどうかを確認するのです。また、水質検査のチーフを任命するのです。その人が幅広い視野と、短い時間尺度で定期的に、追加機能、新環境といった元々の合議事項に無かったもの

    達人プログラマーに学ぶ 品質とチームメンバーの役割 | Act as Professional
    koogawa
    koogawa 2016/01/17
  • 達人プログラマーに学ぶ リファクタリング | Act as Professional

    ガーデニングのメタファーはソフトウェア開発の現実にかなり近いものです。あるルーチンが大きくなりすぎたり、色々なことを実現しようとしすぎている場合、2つに株分けする必要があるのです。また、計画通りうまくいかないものは雑草を抜いたり剪定してやらないといけないのです。 こういったコード記述のやり直し、再作業、再設計を総称して「リファクタリング」と呼びます。 リファクタリングのきっかけ DRYの原則に反している 直交していない設計 時代遅れの知識をつかっている パフォーマンスがわるい クラス、メソッドが長い 名前がしっくりこない 同じようなコピペコードがいくつも見られ、UIを直すとロジックを直して、DBもなおすとか。非推奨のメソッドを使っていたり。ループ分が多いし、やってることとメソッドの名前があっていないとか。みなさんも、思い当たるようなことはありませんか? タイミングとガン細胞の切除 きっかけ

    達人プログラマーに学ぶ リファクタリング | Act as Professional
    koogawa
    koogawa 2016/01/17
    「追加機能の実装とリファクタリングは同時に実施しない」同感
  • プロとしての行為 Act as Proffesional

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

    プロとしての行為 Act as Proffesional
    koogawa
    koogawa 2016/01/16
    たくさん寝たい
  • これはマネしたい!スーパーエンジニア達の習慣 | Act as Professional

    いままで勉強会に顔を出し、すばらしいエンジニアと数多く会うことができた。そして、スーパーエンジニアと共に仕事をすることもできたし、できている。そんなスーパーエンジニア達が持っていた習慣を僕の経験と視点からまとめてみる。 自分が使う道具を厳選して選んで手入れをしている エンジニアでいえばエディタやツールなど。皆が使っているIDEやエディタを何も考えずに使い始めたりしない。 厳選したエディタやツールを使って、手になじませるのである。手になじませるというのは、2つの意味がある。 1つは操作性に慣れること。呼吸をするように自然に、キーボードの上を駆け回る心地よいリズムを奏でるエディタを選ぶ。 2つめは、自分に合わせて拡張しているということ。プラグインのON/OFFだけではなく、オリジナルのショートカットを設定し、適切なハイライト、シンタックスのチェック、コーディングルールのチェック、様々な言語への

    これはマネしたい!スーパーエンジニア達の習慣 | Act as Professional
    koogawa
    koogawa 2016/01/16
    知ったかぶりはダメよね。「それは、なに?」と聞いちゃう
  • 昔の自分に教えてあげたい、新人プログラマへ伝えていること | Act as Professional

    最近、この春に職業プログラマになった人達と話す機会に恵まれているので、共通して話すことを書いてみる。 大概、○○について、聞かせてください。とか、いろいろ聞いてくる人達は、羨ましいぐらい、すごく意識高い。 彼らは会社での仕事のプログラミングを上手にやりたい。ってのは、あたり前だし、 どうやってテストを綺麗に書くか? テスト書きながらプログラミングするってのをどう学ぶか? 綺麗な設計はどうやるのか? 仕事でコードを書いていくってのは、どういうことなのかとか? すごいコードはどうやって書くのか? とか、いろんな事を学びたくて、何から学ぶべきなのか見失っているのではないかというぐらい、やる気に満ちあふれている。人それぞれ、やる気の方向性や現在のスキルセットが違うから何をしたいのか、した方が良いのかは異なっている。 だけど、ざっくり共通しているのは、結局のところ「ある程度のプログラマとしての実力を

    昔の自分に教えてあげたい、新人プログラマへ伝えていること | Act as Professional
    koogawa
    koogawa 2014/06/01
    「一緒に仕事をする尊敬するエンジニアのコードを読んで、理解して、学ぶことは実践的で、すぐに役立つ」ホントそう思う
  • GitHub実践入門が3/20発売 現場で使える実用的なガイド | Act as Professional - hiroki.jp

    書は、世界中の開発者が行っているGitHubを利用した開発方法を、みなさんが現場で使えるようになるためのガイドとして執筆しました。よって、GitHubの解説だけにとどまらず、開発ワークフローやそれを支えるほかのツールにも踏み込んで解説しています。 現場で使えるノウハウが凝縮されたGitHubのガイド 書は現場でGitHubを徹底的に活用するために、UIの解説、Gitの操作、実際に手を動かしながら試せるPull Request、開発ワークフロー(GitHub Flow, Git Flow)の解説、Jenkinsなど開発を支えるツールのGitHubとの連携について丁寧に執筆しました。こちらで目次が公開されています。GitHubを今まで使っていた人も、こんなのあったの?ってなるようなTipsなどもちりばめました。 GitHubを使ってPull Request文化の開発をどうやるべきなのか開発

    GitHub実践入門が3/20発売 現場で使える実用的なガイド | Act as Professional - hiroki.jp
    koogawa
    koogawa 2014/03/06
    次々と欲しい本が出てくる
  • MavericksでCommand Line Developer Toolsをインストールする方法が変更 | Act as Professional

    Mac OS Xを10.9(Mavericks)にアップグレードして、Xcodeなど一連のツールもバージョンアップされました。 いつもならば、XcodeからCommand Line Toolsをインストールしていましたが表示されていません。 どうやらインストール方法が変更されたようです。 インストール方法 下記のコマンドを実行するとCommand Line Developer Toolsをインストールする確認のダイアログが出現します。 $ xcode-select --install これをインストールすればコマンドラインのツールがインストールされます。 無事にコンパイラなども導入されました。

    MavericksでCommand Line Developer Toolsをインストールする方法が変更 | Act as Professional
    koogawa
    koogawa 2013/11/04
    Xcodeからはインストールできなくなったのね〜
  • 2012年上半期 プログラマだったら読んでおきたい書籍11選 | Act as Professional

    このブログを読んでいる、あなた、ねこ背になっていませんか? 「胸を張って背筋を伸ばす」というのは、ねこ背を治す方法として無意味です。腹筋や背筋などの姿勢を支える筋力が足りないからというのも間違っています。 ねこ背にならない立ち方、座り方というのがあるのです。それを知らないのが一番の原因です。 詳しくは「一般人の常識を覆す“ねこ背”の治し方がここにある「ねこ背は治る!」 」にて、衝撃を受けたポイントを書いています。 ねこ背に悩んでいるあなたに、ぜひ手にとって頂きたい1冊です。 リーダブルコード ハッカーは読むな。必要ない。 良いコードを書くために悩み、ミスもする普通のプログラマに読んで欲しい。 発売1週目で増刷が決定するほど、上半期に圧倒的な注目をされた書籍です。私も一押しです。 デザインパターンよりも、こっちの方が毎日使う知識なのです。 良いコードとは人間が最短で理解できるように書かれたコ

    2012年上半期 プログラマだったら読んでおきたい書籍11選 | Act as Professional
    koogawa
    koogawa 2012/07/02
    ねこ背も入ってる!
  • 普通のプログラマへ良いコードを書く方法を教える!リーダブルコード | Act as Professional

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

    普通のプログラマへ良いコードを書く方法を教える!リーダブルコード | Act as Professional
    koogawa
    koogawa 2012/06/22
  • GWにプログラマがコードから離れて、熱くなれる15冊 | Act as Professional - hiroki.jp by HIROCASTER

    コードを書き続けていれば、良いものをつくれるようになるわけではなく、考え方や気持ちも大事であると考えている@HIROCASTERでございませう。 もうすぐ、ゴールデンウィークです。 プログラマがプログラミング言語から離れて、ハッカーとしての考え方や気持ちを学ぶための読み物系の書籍をご紹介します。 お休みの間や帰省の移動中にでも読んでみてください。休み明けに気持ちが高まって、最高の状態でコードに向きあえることでしょう。 読んだことがあるがあったら、ぜひ感想をTwitterでつぶやいて他の人にも教えてあげてください。

    GWにプログラマがコードから離れて、熱くなれる15冊 | Act as Professional - hiroki.jp by HIROCASTER
    koogawa
    koogawa 2012/04/28
    _φ(・_・メモメモ
  • プロとしての行為 Act as Proffesional

    心底、プログラマとして生きていくのが幸せなんだなと思える人に出会ったことのある@HIROCASTERでございませう。 プログラミングが上達するベストプラクティスってあるんでしょうか? 大学でコンピュータ教えている教授なんかは、そのあたり教えてくれるんでしょうか? あなたの先輩は教えてくれましたか? 昔ながらの職人がいう、見て、まねて、盗め。ですかね? 僕の経験で、いくつか書いてみました。 毎日コードを書く とにかく毎日コードを書いている。 息を吸うように、歯磨きををするように、顔を洗うように、事を取るように毎日コードを書いている。 テストコードも書く 動くソフトウェア側のコードだけでなく、テストコードも書いている。 必然と設計も考える癖が付くわけで…。 ソフトウェア全体を仕上げるまで書く 例えば、小さなメソッドだけでなく、クラス全体を。 ソフトウェアとして動作するまで全体を。 全体を仕上

    プロとしての行為 Act as Proffesional
    koogawa
    koogawa 2012/04/02
    上達??
  • IT系勉強会に参加する人が実践すべき10のこと | Act as Professional

    イベントの定義を事前に理解する 大きく分けて、イベントには2つのタイプがあると感じています。この2つのタイプを理解して、十分な準備をしてイベントにのぞみましょう。 講師から講義を受けて、知識を “教えてもらう” スタイル 特定のテーマに沿って、ディスカッションや手を動かして “学びあう” スタイル 告知ページやメーリングリスト、Twitterなどで雰囲気はつかめます。過去の開催情報も公開している勉強会も多いので、それを確認するのが一番確実でしょう。 教えもらうスタイル 「○○入門」といった感じの勉強会が多いタイプです。何も知らないところから、色々と手ほどきを受けて、使い始めてみるきっかけをつかむタイプの勉強会です。ですが、限られた時間で、限られたことをするので、体系的に知識を得られるケースはまれです。 よって、講義を受けたからといって満足してしまってはいけません。実際に自分で手を動かして、

    IT系勉強会に参加する人が実践すべき10のこと | Act as Professional
    koogawa
    koogawa 2011/06/22
    "学びあうスタイル" イイネ!
  • 1