タグ

programmingとProgrammingに関するagxのブックマーク (281)

  • Concepts Principles - プログラミングの原則 - Concepts Principles - Top

    ここはプログラミングの原則を集める Wiki です。巨人の肩に乗って、ふつうの人がよいプログラムを書くための指針を集めたいなと思ってます。 目次 よいデザインのための Concepts + Principles DRY (Don'tRepeatYourself) 名前重要 直交性 トラッシュではなくクラッシュ DuckTyping よいルーチンを書く 凝集性 結合性 契約による設計 (DesignByContract) ルーチンを作る正当な理由 よいモジュールを書く 適切なモジュール性を確保するために守らなければならない5つの原則 開放/閉鎖原則 (OpenClosedPrinciple) よいアプローチのための Concepts + Principles 曳光弾 可逆性

    agx
    agx 2007/06/05
    プログラムを書くための指針を集めるwiki
  • 九州大学オープンコースウェア(Kyushu University OpenCourseWare)|コースリスト|理学府・理学部|計算理論

    九大OCWとは | ご利用にあたって | 関連サイト | ©2006 Kyushu University 九大OCWのWebサイト、およびこのサイトで公開されている講義資料は、「ご利用にあたって」に記載されている条件にもとづいて利用することができます。

  • 駆け出しプログラマーのグループ - hamastaの日記 -Pythonで学ぶプログラミングの世界- - 雑誌記事 「日本のプログラマーの未来時給」を見て人生オワ

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    駆け出しプログラマーのグループ - hamastaの日記 -Pythonで学ぶプログラミングの世界- - 雑誌記事 「日本のプログラマーの未来時給」を見て人生オワ
    agx
    agx 2007/06/01
    プログラマ未来時給651円
  • 型推論と型検査、静的な型つけと動的な型つけ、強い型つけと弱い型つけ - sumiiのブログ

    ついでに追加。 型推論:変数や式の型をプログラマが宣言しなくても、言語処理系が文脈から推論してくれる機構。MLとかHaskellとか。 型検査:変数や式の型が合っていることを言語処理系が(普通は静的に)チェックしてくれる機構。CとかJavaとか、MLやHaskellも。 静的な型つけ:プログラムの実行前に型を検査する機構。MLとかHaskellとかCとかJavaとか。 動的な型つけ:プログラムの実行中に型を検査する機構。LispとかSchemeとかPerlとか。 強い型つけ:検査を通れば、安全さ(safety)が保証される、という(普通は静的な)型つけ。MLとかHaskellとかJavaとか。Javaはバグがあったりしたので少し怪しいですが。 弱い型つけ:検査を通っても、安全さ(safety)は保証されない、という型つけ。CとかPascalとか。 安全さ(safety):プログラムが言語仕

    型推論と型検査、静的な型つけと動的な型つけ、強い型つけと弱い型つけ - sumiiのブログ
  • 論理的思考の放棄 - 登 大遊@筑波大学情報学類の SoftEther VPN 日記

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

    論理的思考の放棄 - 登 大遊@筑波大学情報学類の SoftEther VPN 日記
  • ソフトウェア開発者のための推薦図書

    Code Complete 2 [ Code Complete第2版―完全なプログラミングを目指して (上・下) ] スティーブ・マコネルのCode Completeはソフトウェア開発者のための「楽しい料理だ。このを読むということは、自分の仕事を楽しんでいるということであり、自分のすることに真剣であるということであり、もっと向上したいと思っているということなのだ。Code Completeの中で、スティーブは平均的なプログラマが読む 技術書は年に1冊に満たないと指摘している。このを読んでいるという時点で、あなたはおそらく周りにいる開発者たちの90%と違う行動を取っていることになる。それもいい方向にだ。 私はこのがすごく好きで、ここから自分のWebサイトの名前(Coding Horror)を取ったくらいだ。このではやるべきでない悪い例には"coding horror"アイコンで印

  • IBM メモリー管理の内側 - Japan

    IBM メモリー管理の内側 - Japan
  • yunoの雑記帳 - gcc/attribute

    gcc4.1の__attribute__のメモ。 関数属性 † __attribute__((alias("name"))) 関数を他の関数のエイリアスにする。 void foo() __attribute__((alias("bar"))); __attribute__((always_inline)) 最適化がオフのときでも、関数をインライン展開する。 __attribute__((flatten)) 関数のサイズやインライン化パラメータを無視して、常にインライン展開する。 __attribute__((cdecl)) 386専用。 __attribute__((const)) 関数に副作用がなく、戻り値が引数のみに依存すると仮定する。 __attribute__((constructor)) 関数がmainに入る前に自動的に呼ばれるようにする。 __attribute__((dest

    agx
    agx 2007/03/17
    gccの属性一覧
  • OpenCV/Reference - Co-Coa Wiki

    キャッシング 申込み比較rtのWEB申込がとっても簡単!おすすめ!スピーディな即日申込が可能です!キャッシング 申込み比較rtガイドはお急ぎ融資でも早いので助かります!カードローンWEB申込は簡単即日OKです。 わかった!キャッシング 申込み比較rtでキャッシング 申込み比較rtのコツ まだ先だと思っていたのに、キャッシング 申込み比較rtがひどくて地獄のようです。 キャッシング 申込み比較rtに寝かせることもできず、キャッシング 申込み比較rtを持ち上げた状態でキープしなくてはダメです。 キャッシング 申込み比較rtはそんなに重くはないといっても、しんどいことにはかわりません。 キャッシング 申込み比較rtを眠さのあまり抱けずにいると、借り入れの煩さが増して、キャッシング 申込み比較rtの睡眠時間の不足も影響して、女性スタッフも泣きたい気持ちでいっぱいになってきます。 笑基的くらい開放

    OpenCV/Reference - Co-Coa Wiki
    agx
    agx 2007/03/17
    Paul Grahma の翻訳まとめ
  • 二流プログラマの三流な日常: プログラムの実行時間を計測する

    Windowsでプログラムの実行時間を計るのは簡単ではありません。他のスレッドが計測の邪魔をするからです。 最初に確認しなくてはならない事は、実行時間を計測するために、ソースコードを修正できるか否かです。 前者の場合は、Kernrateやパフォーマンスカウンタを使うのが一般的です。 ここでは後者の状況について詳しく検討していきます。 まず、よくある計算方法。 時間計測関数の以下を使います。(参考:その分解能) QueryPerformanceFrequency GetTickCount timeGetTime GetSystemTimeAsFileTime これらは特殊な状況を除いて不合格です。何せ、他のプログラムが動作している時間を全く考慮しません。Windows98なら以下が使えない為、仕方がない。 GetProcessTime GetThreadTime これが正解です。プロセスが複

  • 分裂勘違い君劇場グループ - 劇場管理人のコメント - 有能なプログラマの特徴を思いつくまま列挙してみる

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    分裂勘違い君劇場グループ - 劇場管理人のコメント - 有能なプログラマの特徴を思いつくまま列挙してみる
  • カリー化 - Wikipedia

    カリー化 (currying, カリー化された=curried) とは、複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること(あるいはその関数のこと)である。クリストファー・ストレイチーにより論理学者ハスケル・カリーにちなんで名付けられたが、実際に考案したのはMoses Schönfinkelとゴットロープ・フレーゲである。 ごく簡単な例として、f(a, b) = c という関数 f があるときに、F(a) = g(ここで、g は g(b) = c となる関数である)という関数 F が、f のカリー化である。 関数 f が の形のとき、 をカリー化したものを とすると、 の形を取る。uncurryingは、これの逆の変換である。 理論計算機科学の分野では、カリー化を利用すると、複数の引数をとる関数を、一つ

  • オブジェクト指向プログラムでgetter/setterメソッドを使わなければならない10の理由

    オブジェクト指向プログラムで getter/setterメソッドを使わなければならない 10の理由 福盛 秀雄 fukumori at m.ieice.org JavaC++などのオブジェクト指向言語でプログラムを書いているときに、単純なメンバ変数を参照したり操作するために anObject.getX() [以後これをgetterメソッドと呼ぶ] とか anotherObject.setY(y) [以後これをsetterメソッドと呼ぶ] と書くのはなぜだろうと思ったことはないだろうか? int型の変数ひとつを操作するのになぜわざわざメソッドを定義するのだろう? 単純に代入を使えばいいじゃないか? この文章はそんなあなた(かつての僕も含む)が、getter/setterメソッドを使うべきである理由についてまとめたものである。 ということで早速論へ。 1. クラス内部のデータ表現を変えた場

  • Code Golf | Home

    agx
    agx 2007/02/10
    与えられた課題をどれだけ少ない文字数で出来るかを競い合う
  • バベル案内

    Steve Yegge / 青木靖 訳 2004年9月 これは駆け足の言語案内だ — Amazon Developers Journalのために今月書いていたのだが、どうもこれを見苦しくないようにする方法を見つけられなかった・・・。 ひとつには、私はどうも粗野で口汚くなりがちで、オフィシャルな趣のあるAmazonの出版物に載せるのは不適切に思えた。それでかわりに誰も読まない自分のブログに押し込めてしまうことにした。読んでるのはあなたくらいのものだよ。どうも! もうひとつ言うと、これは当に書きかけのものであり、そこかしこの断片を集めたものでしかない。全然磨き上げられていない。これもブログエントリにする理由になっている。ブログなら別に良質である必要も完全である必要もない。単に私が今日考えたことというだけのものだ。ではお楽しみを! この駆け足の案内では、C、C++、Lisp、JavaPerl

  • プログラミング用のフォントを探してたら一日が終わってた

    1. 遠視なのでフォントサイズは大きめ 2. エディタの関係で等幅TrueType限定 3. ClearType有効 4. 字は1Il| ,.;: (){} oO0 とmの潰れ具合ぐらいしか見てない 5. フリー 以上の条件でフォントをセレクト Bitstream Vera定評もあり、今回の基準をほぼ完全に満たすフォント。 イタリック・ボールド、セリフ・サンセリフ全てバランスがいい。 ただ小文字のLの自己主張がちょっと激しくて、ゼロがdotted zeroなのが気に入らない。 http://www.gnome.org/fonts/ Andale MonoVeraフォントと似たような感じのフォント。 というよりこの条件と自分の好みで選んだ結果全部似たようなフォントになってしまったが。 http://sourceforge.net/project/showfiles.php?group_id=

    プログラミング用のフォントを探してたら一日が終わってた
  • GNU make 日本語訳(Coop編) - 目次

    著者 :リチャード・M・ストールマン, ローランド・マグラス (GNU プロジェクト) 訳者 : いのまた みつひろ / ecoop.net(技術メモ公開中) 翻訳文更新日:May 20, 2002(翻訳終了・未校正) Linux 標準搭載の make コマンド, 別名 gmake の日語版です。 この資料の著作権は Richard.M.Stallman & Roland.McGrath と Free Software Foundation にあり、また翻訳版には前述の著作者に加えて ecoop.net に著作権があります。再配布・転載等される方はこちらを見て下さい。 GNU Project についてはgnu.org(日語)を参照のこと。 序文はこちら GNU makeユーティリティは大きいプログラムのどの断片が再コンパイルされる必要が あるかという事と,それらを再コンパイルする発行コ

  • IBM Developer

    IBM Developer
  • Remake - GNU Make with comprehensible tracing and a debugger

    Remake – GNU Make with comprehensible tracing and a debugger remake is an enahanced version of GNU Make that adds improved error reporting, better tracing, profiling and a debugger. The latest version is based off of the GNU Make 4.3 source, although versions are available based on 4.2.1, 4.1, and 3.82. We also have a some cool debuggers for: Python 3, Python 2, GNU Bash, Z Shell, Korn shell, Perl

  • Make と Makefile の説明

    まだ完成途中です back 注意: このページの内容には、おそらく多くの間違いがあります。 リンクされているので残しておきますが、利用には注意してください。(2008年3月、新山) ここではおもに make の使い方 と Makefile の書き方について 説明しています。じつは make の種類にはいろいろあり、ここでは GNU make (gmake というコマンド名のこともある) を 対象にしています (BSD の pmake でも基的な部分は同じですが、 マクロ定義などは違うところもあるので注意してください)。 わかりにくい箇所とか、まちがってる箇所がある場合はメールください。 Contents make はどんなときに使うか Makefile を作る make の実行 Makefile の文法リファレンス 多段 make について (未完成) Makefile の例 (未完成)