タグ

ブックマーク / blog.jnito.com (11)

  • サンプルストーリーで理解するDNSの設定方法と周辺知識(改) - give IT a try

    2013.4.20 追記 CNAMEの間違った使い方を書いていたので、「3. DNSレコードでCNAMEやAレコードを設定する」の項を一部修正しました。 というか、実際に痛い目に遭いました・・・(T T)。 詳しくは文にて。 2014.10.10 追記 結局Herokuでは「Aレコード + ネイキッドドメイン」の設定を使うことはできなくなりました。 ネイキッドドメインを使う場合は、かわりに「CNAME flattening」という仕組みを使います。 詳しくは以下の記事で説明しているので、参考にしてみてください。 のパン屋のwebサイトをいろいろ更新した話 ~Rails 4アップデートとかサイトの高速化とか~ - give IT a try はじめに みなさん、DNS、ネームサーバー(NS)、Aレコード、CNAME、と言われて、「ああ、アレね」ってすぐに頭の中にイメージが浮かびますか?

    サンプルストーリーで理解するDNSの設定方法と周辺知識(改) - give IT a try
  • 数値で測るコード品質 - give IT a try

    プロフィールのところにも書いてあるのですが、おいらの目標は「美しく無駄のないシステムアーキテクチャを設計、構築すること」です。 なぜならシステムの保守性や拡張性って、アーキテクチャやコードの品質によって雲泥の差が出ることを、幾度となく痛感してきているからです。 しかし、どんなアーキテクチャやソースコードがキレイなのか、拡張性や保守性が高いのか、っていうのはなかなか客観的に判断しにくいのもたしか。 「俺のコードはあんたのより分かりやすい」 「そうですか??」 「絶対そうやろ!?なんでわからんのや???」 みたいな議論が始まったらたぶん平行線になっちゃいますよね。 そこでツールを使って、コードの品質を定量的に測ってみることにしました。 今回使ったツール 今回使ったツールはこちらです。 SourceMonitor V3.5 http://sourceforge.net/projects/dupl

    数値で測るコード品質 - give IT a try
  • 自動化テストで気をつけること - give IT a try

    先日、会社のメンバーからテストの自動化に苦労しているという話を聞きました。 そういえば、一言で「テストの自動化」といっても結構奥が深いので、自動化テスト初心者が注意すべき点や重要なポイントをちょっと考えてみました。 自動化テストの注意点 どのような処理でもプログラムとして自動化できるプログラミングスキルを実装者が持っていること。 結局、手作業でやっていることのほとんどをプログラムとして実装する必要があるからです。 いつでも、どこでも、誰が実行しても同じテスト結果が返ってくるようにテストを作成すること。 たとえば、テストの成功・失敗がシステム日時や外部ファイルやデータベース等に格納された不安定なデータに依存しているとテストがすぐに壊れます。 壊れたテストを放置しないこと。 少なくともソース管理システムにコミットしたファイルはすべてパスするようにしましょう。 壊れたテストを放置すると、誰も自動

    自動化テストで気をつけること - give IT a try
  • C#プログラマのための理解度チェックリスト - give IT a try

    前回のエントリでは「新しい言語を勉強したって、前に使ってた言語と同じような書き方をしてたら意味がない」という話をしました。 そこでC#を題材にして、C#を質からマスターできているかどうかを確認するためのチェックリストを作ってみました。 これらの質問に対してすべて自分の言葉で説明できるのであれば、あなたはきっとC#をC#らしく使えているはずです。 interfaceって何のためにある?どういうときに使う?それがあったら何が嬉しい? 抽象クラスや抽象メソッドって何のためにある?どういうときに使う?それがあったら何が嬉しい? virtualって何?なんでJavaにはvirtualがない? 名前空間って何?それがあったら何が嬉しい? クラスって何?自分で新しくクラスを作る場合の注意点は何?(オブジェクト指向設計的な観点から) クラスと構造体の違いって何?参照型と値型の違いって何? フィールドやメ

    C#プログラマのための理解度チェックリスト - give IT a try
  • レガシープログラマさんと一緒にリファクタリングをする、の巻 - give IT a try

    前回のエントリではレガシープログラマの判断項目について、書きました。 その日、仕事でレガシープログラマさんの一人が書いたプログラムを一緒にリファクタリングしました。 レガシープログラマさんと言っても、おいらより年下の女性エンジニアです。 今回のエントリではそのやりとりについて書いてみたいと思います。 元のプログラムはどんなプログラム? そのプログラムは以下の判断項目に該当していました。 複数のデータをまとめて扱う際は毎回配列を使う。配列の上限数はありえなさそうな数を指定する(1000とか)。 基データ型(stringやint)と配列だけでデータ構造を表現しようとする。 クラスのフィールド変数をグローバル変数のように利用する。 言語はC#2.0で、CSVを読み込んでメールを送信するプログラムです。 ただし、同じFromとToの組み合わせに対しては一通のメール内の複数のコンテンツを含めて送信

    レガシープログラマさんと一緒にリファクタリングをする、の巻 - give IT a try
  • 2011-02-18 - ITは芸術だ レガシープログラマかどうかを判断する10項目

    ※2011.3.30追記 11個目の判断項目を追加しました。 また、「昔はね...」の補足説明を各項目に追加しました。 レガシープログラマ = モダンな言語のおいしい機能をうまく使いこなせていないプログラマ おいらは時々社内システムのコードレビューなんかをやっているのですが、「なんかちょっと前時代的だな〜」とか「ちょっと修正したらC言語でもコンパイルできそうだな〜」って思うことがよくあります。 おいらがレビューする言語は主にC#です。C#やJavaのような比較的モダンな言語のおいしい機能をうまく使いこなせていないプログラマを、ここでは「レガシープログラマ」と呼ぶことにします*1。 そこで、おいらがこれまでに見てきたコードの中から「これはレガシープログラマっぽい」と思った典型的な症例を10個11個挙げてみます。 レガシープログラマの判断項目 使われるローカル変数をすべてメソッドの最初に宣言す

    2011-02-18 - ITは芸術だ レガシープログラマかどうかを判断する10項目
  • おかしなおかしな目標管理 - give IT a try

    組織のゴール うまく書けるかどうか分からないけど、前々からちょっと気になっていた話です。 うちの会社では半期ごとにゴールを設定します。 ゴールは通常、組織全体で定量化(数値化)できるものが設定されます。 ゴールを達成したかどうかで、特別ボーナスの額が変わることがあります。 この会社に入った時は前の会社のあいまいな(つまり基準がよく分からない)評価制度があまり好きではなかったので、「明確に評価できるのはいいね!」と感じていたのですが、最近その弊害をよく感じます。 一言でいうと、目的と手段が入れ替わってしまう時があるんです。 では具体例を・・・いや、ちょっとその前にコンテキストを説明します。 今から始まる話のコンテキスト おいらは社内SEである。 顧客はすべて社内の人間である。 開発も社内で行っている。外注はしていない。 社内開発なので当然、開発に関わる金銭のやりとりは発生しない。 期日につい

    おかしなおかしな目標管理 - give IT a try
  • C#のコード品質を上げるフリーツール8本 - give IT a try

    はじめに 読みにくいコードや複雑なコードをメンテナンスするのってイヤですよね。 コードの品質を上げる方法の一つにコードレビューがありますが、すべてのソースコードを人力でチェックしていくのは大変ですし、レビュアーのスキルや好みにも大きく依存してしまいます。 そういう場合はツールを使って自動化するのが有効です。 ツールを使えばあっという間に完了しますし、実施者のスキルや好みに左右されることもありません。 しかし、あまりお金がかかるツールだと、ちょっと気軽に導入しにくいです。 そこで今回はC#のコード品質向上に有効なフリーツールを紹介します。 実際のプロジェクトで使用したことがあるものばかりなので、どれも「使えるツール」だと思いますよ。 ところで、ツールを紹介する前にTipsと注意点を簡単に挙げておきましょう。 ツールを利用する際のTips 自分の書いたコードのみを対象とし、ツールが作成したコー

    C#のコード品質を上げるフリーツール8本 - give IT a try
  • Java/C# からRubyに乗り換えて感じたことのまとめ - give IT a try

    はじめに 最近、言語の型について語っているブログをよく見かけます。 便乗するつもりはないですが、前々からJava/C# からRubyに乗り換えて感じていることを書きたいな〜と思っていたので、このタイミングでちょっと書いてみることにします。 今回のエントリはあくまで僕個人が感じていることを書くだけであって、別に言語の優劣を述べようとしているわけではありません。 そもそもプログラマ個人のバックグラウンドや知識、スキル等々によって感じ方や見解は異なってしかるべきだと思うので、その前提で読んでもらえればと思います。 僕のバックグラウンド まず、最初に僕のバックグラウンドを紹介します。 この業界に入って最初の3年ぐらいはJavaをよく書いていた。 最後に使ったのは Java 5.0 + Struts + Spring + Hibernateとか、そういう時代。 前職ではC#/ASP.NETをよく書い

  • 妻のパン屋のWebサイトを四苦HackしてIE対応した話 - give IT a try

    はじめに 昨日公開した「第一回 プログラマ向けデザイン勉強会の内容を参考にしてのパン屋のWebサイトをリニューアルしてみた」の続編を書きます。 今回は僕が苦労したIE6〜8対応のお話です。 実はIE8ユーザーの割合はIE9に次いで第2位! Mac万歳!Chrome万歳!な僕にとって、IEは「どうせ使うことないし、どうでもいいよね〜」という「心の中でサポート対象外なブラウザ」でした。 しかし、店のWebサイトのアクセス解析を見てみると、実はIE9とIE8が1位、2位を占めていることがわかりました。 よく見ると8位にはIE6がまだしぶとく生き残っています。 この結果を見ると、「うーん、こりゃ完全に無視するわけにはいかんな・・・」と考えざるを得ませんでした。 IE対応を全く考慮していないとこうなる まず最初に、IE対応を全く考慮していないと、いったいどんな表示になるか見てみましょう。 トップペ

    妻のパン屋のWebサイトを四苦HackしてIE対応した話 - give IT a try
  • ソフトウェア開発プロセス残酷物語 - give IT a try

    昔々、あるところにジェイソンという、大変真面目な開発者がおりました。 彼がとある会社の情報システム部にやってきたとき、彼は社内システムのクオリティのひどさに衝撃を受けました。 情報システム部といっても、その会社では外注はせず、社内の開発メンバーがシステムを作っていました。 ジェイソンがそこで最初に担当したシステムは、見事なまでのスパゲッティコードでバグだらけ、データ設計も素人レベルでパフォーマンスも最悪、エラー処理もずさん、おまけにまともなドキュメントもなく、ちょっとした障害を調査したり、小さな改造を実施したりするのにも、大変な苦痛を伴うという、それはそれは大変なシロモノでした。 このシステムは元々エセーグルという、ちょっと変わった名前の開発者によって作られていました。 しかし彼はすでに別の開発チームに異動していて、こちらの質問には答えてくれますが、もはや人が直接手を動かすことはありませ

  • 1