タグ

プログラミングに関するkoka_orzのブックマーク (35)

  • 5年後に後悔しないJavaプログラムの書き方 - L'eclat des jours(2009-07-02)

    _ 5年後に後悔しないJavaプログラムの書き方 ここ数日、死ぬほど後悔しまくっているので、あらためて(というのは、数年前にも一度後悔しまくって、そのときの知見はあらかた処方箋とかコーディングの掟に書いているからだが)後悔しないための書き方をいくつか紹介する。 とにかく、ファクトリメソッドパターンを使うこと。 これは当に重要。しかも簡単でありながら効果は絶大。 だめな例。 public class FooBar { private Connection conn; ... protected void setup() { ... conn = DriverManager.getConnection(url); ... } urlを指定することや、DriverManagerの実装を交換すれば良いだろうと想定していても(というか、Connectionならそういう方法もあり得るが、そうはいかな

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

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

    プログラマー面接時の技術的な質問事項(アプレッソ版) : 小野和俊のブログ
  • 最も危険なプログラミングエラーTop 25 | スラド デベロッパー

    ストーリー by hylom 2009年01月14日 17時04分 やはりよく言われている問題が多い、 部門より CWEとSANSが共同で「最も危険なプログラミングエラーTop 25」を取りまとめ、発表した。 このリストはSymantecやMicrosoft、米国国土安全保障省の国家サイバーセキュリティ部門、また日の情報処理推進機構(IPA)など、国際的かつ多岐に渡る組織の協力を得て作成された。パフォーマンス上の問題やセキュリティ上の脆弱性、またサイバー犯罪の原因となり得るプログラミングエラーのうち、特に頻度と危険性の高いとされるものが25点挙げられている。 エラーは大きく「コンポーネント間のコネクションが適切に保護されていない」「危険なリソースマネジメント」「不備のある防衛策」の3種類に分類され、それぞれのエラーには簡単な説明と対処法などが記述されている。挙げられているエラーは「入力デ

  • Joel on Software - やさしい機能仕様

    ジョエル・スポルスキは、ニューヨーク市の小さなソフトウェア会社  Fog Creek Software の設立者です。イェール大学を卒業後、マイクロソフト社、Viacom社、 Juno社でプログラマとして働きました。 このページは著者の個人的な意見を掲載したものです。 All contents Copyright ©1999-2005  by Joel Spolsky. All Rights Reserved. FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky

  • プログラミングのスピードを上げる方法 - teruyastarはかく語りき

    http://q.hatena.ne.jp/1203667934 ソフトウェア開発やプログラミングのスピードを上げる方法はありませんか? プログラマーとして生きていこうと決めたのですが、いつも見積もりの3倍時間がかかってしまいます。 そのため いつもつらい思いをしています。 環境を良くしようとHHKLite2を使い、カスタマイズソフトでホームポジションから離さずにプログラミングしています。 マウスもゲーム用の高精度のものを使っています。 調べ物にもタブブラウザを使い、拡張し続けて効率化をしています。 DualCoreマシンを使いメモリもたくさん積み、障害がないように心がけがけています。 出始めのころから効率化のためにエクストリームプログラミングも取り入れていました。 単体テスト、リファクタリングも当然行いますが、余計に開発速度が落ちています。 しかし開発速度は効率化とは無縁だとすら感じてい

  • 論理的思考の放棄 - 登 大遊@筑波大学情報学類の SoftEther VPN 日記

    僕は、1 日に少なくとも 3,000 行程度、多く書くときで 10,000 行以上のプログラムを書くことができる。その結果、多い月で 10 万行 / 月くらいである。なお、言語は書くソフトウェアの性質上、大半が C 言語である。 また、プログラミングにはバグが付き物だが、ここ 2、3 年の間は、発生するバグの数を極めて少なく保つことに成功している。 とても大きく複雑で、かつレイヤ的に OS に近い処理をたくさんやるプログラムを書く場合は、プログラミングをするときでも、事前の設計が極めて重要となる。設計をうまく行わないと、後になって全面的に書き直しをしないといけなくなったり、パフォーマンスが低下したりする原因となり、開発者の苦痛の原因となる。 当然のことながら、これまで書いたいくつかの大きく複雑といえるソフトウェアの大半の設計も、自分で行った。いかなる場合でも、設計は、最初の 1 回目で確定

    論理的思考の放棄 - 登 大遊@筑波大学情報学類の SoftEther VPN 日記
    koka_orz
    koka_orz 2008/03/17
    プログラミングをするときでも、事前の設計が極めて重要となる。設計をうまく行わないと、後になって全面的に書き直しをしないといけなくなったり、パフォーマンスが低下したりする原因となり、開発者の苦痛の原因
  • 目からうろこが何枚も落ちたオープンソースの“人間的本質” - シリコンバレーからの手紙

    もうかれこれ十年近くにわたり、オープンソースというネット上の摩訶不思議な現象について、欄で取り上げてきた。オープンソースは人間の質を考えるきわめて重要な素材だと思うから、連載の大きなテーマとして考え続けてきた。その思考に小さなブレークスルーがあったので、ご報告しておく。 オープンソースとは、ソフトウェアのソースコード(人が記述したプログラムそのもの)をネット上に無償公開し、世界中の不特定多数の開発者が自由に参加できる環境を用意し、そのソフトウェアをさらに開発していく方式のことだ。リーナス・トーバルズが創始したリナックスが有名なように、ほとんどのオープンソース・プロジェクトは欧米から生まれている。 しかし日人でたった一人だけ、世界中の人々が使うソフトウェアをオープンソース方式で開発したリーダーがいる。島根県松江市在住のまつもとゆきひろ(名・松行弘、一九六五年生まれ)である。彼が

  • コメント: PHPは駄目な言語なのか? - スラッシュドット・ジャパン

    趣味でやっている人のことは、まあ、いいとして(踏み台にされる可能性はあるけど)、仕事PHPを使うときの注意を書いておこう。 コーディング規約を守る。組織にコーディング規約がないなら、Zend Framework PHP標準コーディング規約 [zend.com]を使う。オレ流コーディングスタイルは禁止。 内部コードにはEUC-JPかUTF-8を使う。入出力もできるだけShift JISを避ける。Shift JISを使う場合には2byte目に0x5Cを含む文字の動作を忘れずに確認する。 開発環境の警告レベルをE_STRICTにする。番環境ではdisplay_errorsをオフにする。 register_globals、magic_quotesはオフにする。 type hintingを積極的に使う。 スコープの長い配列をクラスでラップする。 プレゼンテーションとロジックを分割すること。プレゼ

  • Martin Fowler's Bliki in Japanese - 設計力

    http://martinfowler.com/bliki/PreferDesignSkills.html 2008/1/18 雇用について考えてみよう。 応募者が2人。どちらも経験が数年間。 青コーナーの人には、あなたが好きな設計スタイルの広範な設計力が備わっている(私の場合だと、DRY、分別のあるパターンの使用、TDD、伝わるようなコード、なんかが挙げられるけど、自分の好きなやつでいいよ)。ただし、彼女には、あなたが使っているプラットフォーム技術についての知識がない。 赤コーナーの人には、そういった設計の知識は(それに興味も)ないが、プラットフォーム技術についての知識はめちゃくちゃある。言語には詳しいし、どのライブラリが使えるかはよく知ってるし、ツールも流暢に使いこなす。 これ以外のことについては(こうした思考実験以外については)、2人ともまったく一緒だとしよう。 また、あなたのチーム

    koka_orz
    koka_orz 2008/01/22
    基本的な設計美を学習するのは、新しいプラットフォームを学習することよりも難しいことだが、ずっと長く使えるものになる。
  • http://micropledge.com/

  • プログラミングの6大10項目リスト

    Jeff Atwood / 青木靖 訳 2007年3月22日 以下に私の選ぶプログラミングの6大10項目リストを挙げておく。取り上げた順序には特に意味はない。このエントリを簡潔なものにしておきたいので、それぞれの項目は短い要約を引用するに留める。興味を引くものがあれば、ぜひリンクをたどってオリジナルの作者の考えについてもっと詳しく読むことをお勧めする。 [ 訳注: 要約だけで意味が取りにくいものに簡単な説明をつけた。] ジェラルド・ワインバーグの「エゴレスプログラミングの十戒」 自分が誤りを犯すということを理解し、受け入れること 。 自分と自分のコードは別物である。 どんなに「空手」を学ぼうと、いつでもあなたよりもっと詳しい人間がいる。 相談せずにコードの書き直 しをしない。 自分より無知な人に対しても尊敬と敬意と忍耐を持って接すること。 世界で唯一変わらないのは変わるということだけ。 唯

  • 窓の杜 - 【NEWS】SQL文をGUIで作成できるフリーのデータベース開発環境「黒猫 SQL Studio」

    GUIによるSQL文の作成など、さまざまな開発支援機能を備えるSQL開発環境「黒 SQL Studio」v1.1.7.413が6月4日に公開された。Windows 2000/XPに対応しており、個人使用・業務にかかわらずフリーソフトとして利用可能。現在作者のホームページからダウンロードできる。 「黒 SQL Studio」は、SQL文の作成やテストを行える汎用のデータベース開発環境。ソフト上からOLE DB接続またはODBCドライバに対応する各種データベースへ直接接続可能で、作成したSQL文を実際にテスト実行できる。画面は3ペイン構成で、左側には複数のSQLソースファイルを管理できるファイラー、中央には複数ファイルをタブで切り替えて表示できるエディター、右側には接続したデータベースの構造をツリーとリストで表示する“データベースエクスプローラ”が表示される。 SQL文の作成時は、さまざ

  • 「【VB.NET】リフレクションでByref引数のメソッドをGetMethodできない」(1) Insider.NET - @IT

    IT 会議室 Indexリンク Windows Server Insider Insider.NET System Insider XML & SOA Linux Square Master of IP Network Java Solution Security & Trust Database Expert RFID+IC リッチクライアント & 帳票 Server & Storage Coding Edge @ITクラブ Cafe VB業務アプリケーション開発研究 @IT SpecialPR

  • 『ハンガリアン記法』

    変数などの名前を付ける時のコーディングルールに、ハンガリアン記法(ハンガリー記法)と呼ばれるものがある。簡単に言えば、名前の先頭に「型」などを表す文字列(プリフィックス)をつけるというものである。 かつて Microsoft が好んで採用しており、 Visual C/C++ (MFC) を使ったWindows プログラミングの仕事が多かった私の会社では、社内ルールとしても採用されている。 というわけで、私も、ハンガリアン記法で多くのコードを書いてきたのだが、あるとき、Joel Spolsky 氏の「間違ったコードは間違って見えるようにする 」という記事を読んでショックを受けた。 それまで私が書いてきたハンガリアン記法というのは、MFC でやっているように、変数名に「型(type)」を表すプリフィックスを付けるものだった。しかし、それは「システムハンガリアン」と呼ばれ、来のハンガリアン記法

    『ハンガリアン記法』
  • netnewsgroups.net

  • Download Visual Studio 2005 Retired documentation from Official Microsoft Download Center

  • ひがやすを blog - [DI]DIって本当に必要?

    http://www.commonsmedia.jp/cm/JavaAndSolarisCampaign blogでNetBeansやJavaEEについて書いて、トラックバックしたら先着100名にAmazonギフト券3000円分をプレゼントするそうです。id:nowokayさんのためのような企画です。 id:taediumさんもid:da-yoshiさんもぜひどうぞ。ただし、Seasar固有のことはできれば避けてねということです。 DIって当に必要?たまにそう思うときがあります。DIによって開発は当に楽になったのか。 DIのメリットでよく語られることとして、インターフェースと実装を分離し、機能の利用者側はインターフェースを通じて機能を利用することで、実装に直接依存しなくなり、後で実装を変更しても影響を受けなくなるということがあります。 実際後から、実装クラスを変更するということはめった

    ひがやすを blog - [DI]DIって本当に必要?
  • 文字列で指定したメソッドを呼び出すには?

    連載目次 「TIPS:文字列で指定したクラスのインスタンスを作成するには?」では、文字列によるクラスのインスタンス化について解説した。稿では、メソッドの名前を文字列で指定して、そのメソッドを動的に呼び出す方法について解説する。 MethodInfoクラスのInvokeメソッドによるメソッドの実行 前掲のTIPSと同様に、文字列によりメソッドを呼び出す場合にも、まずは呼び出そうとしているメソッドを含んでいるクラスのTypeオブジェクトを取得する。もしそのクラスのインスタンスがすでに作成済みなら、GetTypeメソッドにより、そのTypeオブジェクトを取得できる(以降のコード例はC#の場合。VB.NETの場合は後掲のサンプル・プログラムを参照してほしい)。

    文字列で指定したメソッドを呼び出すには?
  • 文字列で指定したクラスのインスタンスを作成するには? ― @IT

    連載目次 通常、クラスのインスタンスはnewキーワード(VB.NETの場合はNewキーワード)により作成するが、リフレクションの機能により、文字列で指定されたクラス名からインスタンスを作成することもできる。 稿では、インスタンス化したいクラスを含んだアセンブリがすでにロードされている場合と、そのアセンブリがまだロードされていない場合の2つのケースについて、クラス名からインスタンスを作成する方法について解説する。 すでにアセンブリがロードされている場合 インスタンス化したいクラスを含んだアセンブリがすでにディスクからロードされている場合には、まずTypeクラス(System名前空間)のGetTypeメソッドにより、そのクラスのTypeオブジェクトを得る。GetTypeメソッドでは、パラメータとしてクラス名を文字列で指定できる。 Type t = Type.GetType("インスタンス化し

  • Dependency Injection の基本的なアイディア - bkブログ

    Dependency Injection の基的なアイディア Inversion of Control コンテナと Dependency Injection パターンを読みました。関連する事柄を広くカバーした、隙のない記事です。 ただ、割とボリュームがあるので、「Dependency Injection って結局何なの?」ということを手っ取り早く知りたい向きにはあまり向かないかもしれません。そこで、基的なアイディアを手短にまとめてみました。 Dependency Injection (依存性注入、DIと略) とはその名の通り、依存性を注入するパターン (テクニック) です。もう少し言葉を加えると、依存性を内部に抱え込まずに外部から注入する、パターンです。 Dependency Injection の基的なアイディアは「依存性を外部から注入する」です。 DIコンテナと呼ばれるフレームワ