タグ

programmingに関するnacookanのブックマーク (43)

  • オブジェクト指向について語った時に使ったメモ

    今日、オブジェクト指向について1時間ほど語りました。整理するため自分用に書いたメモを公開します。大まかな構成はメモどおりに話しましたが、メモに書いていないこともたくさん話していますし、書いていても話さなかったこともあります。 前提として自分自身のオブジェクト指向へのスタンスを書いておきます。 自分のプログラマとしてのキャリアとオブジェクト指向の隆盛の重なりを考えると客観的に見て自分はオブジェクト指向世代のプログラマなんだと思います。一方で、世間で過剰にもてはやされる技術には反発してきました。オブジェクト指向も例外ではありません。オブジェクト指向を否定はしませんが、金科玉条のように扱う人の前では、オブジェクト指向なんて技法のひとつに過ぎないと、冷たく突き放してきました。 ただここ数年、かつてに比べてオブジェクト指向の威光は下がっている気がします。関数型プログラミング支持者から、オブジェクト指

  • http://dl.dropbox.com/u/224433/kayac-01-log/index.html

  • みんなでよってたかってコメントがつけられるコード共有サービス『Chop』 | 100SHIKI

    あ、これ便利かも。こういうコード書いたんだけどレビューしてくれないかなぁ、というときに使えそうだ。 Chopの使い方は簡単だ。まずはレビューしたいコードをこちらで貼り付けると特殊なURLをもらうことができる。 あとはそのURLをレビュアー間で共有し、よってたかってコメントをつけていくだけだ。 デザイン的にも素敵だし、日語もばっちりなのでちょっとした知識の共有に役立つかもしれない。 コードレビューをよくする人は検討してみてはいかがだろうか。

    みんなでよってたかってコメントがつけられるコード共有サービス『Chop』 | 100SHIKI
  • 常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)

    TwitterのTLで知ったのだが、少し前に海外掲示板で"sleep sort"というソートアルゴリズムが発明され、公開されたようだ。このアルゴリズムが面白かったので紹介してみる。 Genius sorting algorithm: Sleep sort 1 Name: Anonymous : 2011-01-20 12:22 諸君!オレは天才かもしれない。このソートアルゴリズムをみてくれ。こいつをどう思う? #!/bin/bash function f() { sleep "$1" echo "$1" } while [ -n "$1" ] do f "$1" & shift done wait example usage: ./sleepsort.bash 5 3 6 3 6 3 1 4 7 2 Name: Anonymous : 2011-01-20 12:27 >>1 なん…だと

    常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)
    nacookan
    nacookan 2011/05/20
    その発想はなかった
  • プログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指して

    最近はアーキテクトという役割で客先に常駐し、フレームワークの選定をしたり、事前に共通部品を設計したりする役割を担う仕事を引き受けることが結構あります。そこで運よくお客様のマネージャーがオブジェクト指向開発の経験が十分にある方だと、IDEなどの開発環境やインターネット接続環境を当然のように用意してくれるので最初から仕事がスムーズにできるのですが、そうでないとMS Officeしか入っていないロースペックのノートPCを渡されて、要件定義フェーズの期間中、フレームワークの設計をお願いしますとか、私としてはちょっと首をかしげてしまうような困ったことを言われてしまう場合があります。開発フェーズが始まる半年後まではコーディングは基的に不要という考え方です。アプリケーションのアーキテクトという役割では少なくともコーディング規約を考えたり、ツールやフレームワークの選定をしたりする必要がありますし、プロジ

    プログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指して
  • プログラムコードを綺麗に保つための10原則 - 我らねぶた馬鹿

    Onextrapixelより。 10 Principles for Keeping Your Programming Code Clean 主にWebアプリ開発を対象とした記事ですが、通常のプログラミングにも当てはまる内容です。今さらとも言うべき常識的な指摘ではありますが、いま一度確認しておくのも悪くはないと思います。 コーディングの前にロジックを整理する ページの構造を明確にする 適切なインデントを使用する コードの説明をコメントとして残す コメントの乱用を避ける 不適切なコメントはかえって混乱させる 極端に大きな関数を作らない 関数や変数の名前は標準的な命名規則に従う 変更を加える場合は慎重に 変更の旨はコメントに残す 複数言語の無差別な混在は避ける インポートを整理する CSSファイルをまとめるなど 5番について、不適切なコメントの例として次のようなものが挙げられています。 自分に向

    プログラムコードを綺麗に保つための10原則 - 我らねぶた馬鹿
  • Javaプログラマが知るべき9のこと - @katzchang.contexts

    はじめに ソースコードは設計であり、コードの記述は品質に直結するのは言うまでもない。ちなみに、プログラマにとって特に重要なのは保守性だ。コードは書いた直後から保守対象となるからだ。コードは要求文書の範囲で動けばいいと思っている人がいれば今すぐ、ソースコードをコピペして100klに増えるプラグインがいつの間にかインストールされる呪いをかけてあげよう。幸い、ここを読んでいる人にはそんな人はいないだろうと思うけれども。 ということで、コードの品質を下げる要因、すなわちシステム全体の品質を下げる要因となり、かつ使われやすいアンチパターンを挙げ、対策を検討していくことにする。対象は以下: 出力パラメータ 処理状態返却 意味のある配列 無意味な初期化 多すぎるtry-catch 暗黙の順序 コンパイラ警告の無視 過剰なコメント e.printStackTrace() 出力パラメータ メソッドの引数にオ

    Javaプログラマが知るべき9のこと - @katzchang.contexts
    nacookan
    nacookan 2011/02/10
    いいねー
  • プログラミング言語人気TOP10の簡易解説

    0-1. 前書き この世にはたくさんのプログラミング言語が存在します。Wikiepdiaのプログラミング言語一覧を見ると、実に200個以上というわけの分からない数の言語が並んでいたりします。 【参考URL】プログラミング言語一覧 - Wikipedia http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%... 200の中にはほとんど使われてない言語も混じってるので、実際に仕事でざくざく使われている言語は20とか30とかそういうオーダーなのですが、それでも1人の人間が把握するにはちょっと多過ぎる数です。 記事では、そうした有り余るプログラミング言語の海の中で「どれを勉強したらいいの?」とか「どれを採用するのが適切?」という悩みをお持ちの方が「よし、この言語に決めた!」と自信を持って決断できるように背中を押すことを目的として書か

  • プログラミング言語人気ランキング、Objective-C強い成長 | エンタープライズ | マイコミジャーナル

    TIOBE Programming Community index TIOBE Softwareから2010年10月のTIOBE Programming Community Indexが公開された。TIOBE Programming Community Indexは複数の検索エンジンの検索結果から対象とするプログラミング言語がどれだけ話題になっているかをインデックス化したもの。2010年10月におけるインデックスは次のとおり。 プログラミング言語 インデックス 年間推移 備考 1 Java 18.166 0.48↓ 3ヶ月連続1位だが、長期に渡り下落傾向 2 C 17.177 0.33↑ 3 C++ 9.802 0.08↓ 4 PHP 8.323 2.03↓ 5 (Visual)Basic 5.650 3.04↓ 6 C# 4.963 0.55↑ 7 Python 4.869 0.96↑

  • 実はオブジェクト指向ってしっくりこないんです!:気分はstatic!:エンジニアライフ

    わたしはこれまで、C言語、Visual Basic、SAP ABAP、最近になって ASP.NET C# などの言語を使ってきた。 「自分でクラスを作ってオブジェクト指向っぽいことをしている」なんてことはまったくない。特に「メンバー関数をstatic宣言すればインスタンス宣言をしなくてもいい」ということ知ってからは、メンバー関数を従来のファンクションのように使っている。共有変数も、pubulic static宣言していまう。したがってプロパティなんて作らない。 staticを理解していない人のコードを見ると、いちいちインスタンス宣言しているので笑ってしまう。データベースにアクセスするアプリケーションをC#で書いているのだが、Visual Studioで供給しているSQL関係のクラスを使えばできてしまうのだから。 オブジェクト指向の入門書では、クラスが持つ隠ぺい性が強調されているが、これは他

    実はオブジェクト指向ってしっくりこないんです!:気分はstatic!:エンジニアライフ
    nacookan
    nacookan 2010/04/27
    これは。。。
  • 60分間プログラミングが面白い - 未来私考

    ニコニコ動画で人気のあるジャンルの一つに「描いてみた」というものがあります。イラストを制作する過程を高速再生して徐々に絵が完成していく様子を楽しむというものですね。合間合間に小ネタを挟んだりBGMに併せてみたり、人気のある動画は数十万再生を誇るものもありますね。 描いてみたとは (カイテミタとは) [単語記事] - ニコニコ大百科 人気の「描いてみた」動画 84,791 - ニコニコ動画 個人的なお気に入りはこのあたり。 今回紹介する動画はそのプログラミングバージョンとでもいうべきもの。実況しながら約60分で実際に遊べるゲームをプログラミングをしてしまおうというもの。 第1弾はJavascriptによるオセロの作成。メモ帳でサラサラとコードを記述しながらみるみるとプログラミングが完成していくのがとても心地よい。 第2弾はWindowsアプリケーション環境でのテトリスの作成なのですが、これ

    60分間プログラミングが面白い - 未来私考
  • アルゴリズムの紹介

    ここでは、プログラムなどでよく使用されるアルゴリズムについて紹介したいと思います。 元々は、自分の頭の中を整理することを目的にこのコーナーを開設してみたのですが、最近は継続させることを目的に新しいネタを探すようになってきました。まだまだ面白いテーマがいろいろと残っているので、気力の続く限りは更新していきたいと思います。 今までに紹介したテーマに関しても、新しい内容や変更したい箇所などがたくさんあるため、新規テーマと同時進行で修正作業も行なっています。 アルゴリズムのコーナーで紹介してきたサンプル・プログラムをいくつか公開しています。「ライン・ルーチン」「円弧描画」「ペイント・ルーチン」「グラフィック・パターンの処理」「多角形の塗りつぶし」を一つにまとめた GraphicLibrary と、「確率・統計」より「一般化線形モデル」までを一つにまとめた Statistics を現在は用意していま

  • http://twitter.com/FTTH/statuses/3400758346

    nacookan
    nacookan 2009/08/20
    思わずブクマした
  • [ソフト開発] わかりやすいプログラムの書き方 - よくわかりません

    ※このエントリは、Arata Kojima/NPO法人しゃらく さんが公開しているわかりやすい技術文章の書き方の改変です。 このページは、プログラムやコードなどを書く方々のために、分かりやすいプログラムを書くためにはどうすればよいのかについて説明しています。 1. 自分が伝えたいこと・訴えたいことを誤解しないように相手に読んでもらうにはどうするべきか。 2. プログラムを書くにあたって知っておくべきルールは何か。 3. プログラムを書く前にどのような手順を踏めば、分かりやすいプログラムを作れるか。 などについて参考にしていただければ幸いです。 プログラムを書く前に プログラムを書く前に次のことをしっかりとイメージしておく。 何を書くのか。 書こうとしている物は正確に何であるのか。 仮定して良い、必ず成り立つ前提(状況/状態)は何か。 成り立つ事が単に多いだけ/今はたまたま成り立っている、と

  • カッコをつけたコードはカッコわるいのか論争:プログラマで、生きている:エンジニアライフ

    プログラマならC/C++を知らなくても、 if (buffer == null) {return;} と if (buffer == null) return; は同じ動作をするということはお分かりかと思います。 正式な言い方があるのか分かりませんが、「省略が許可されている記述」というやつです。 わたしは「省略が許可されてても省略しない派」(←どういう派閥?)なので、常にカッコでくるむのですが、わたしのコードを読んだ人が「これってこういう書き方していいんだよ」とご丁寧にもカッコをはずしてしまったことがありました。 「それくらい知ってるんですけど」 「なら、なんでわざわざカッコつけてんの?」 「どっちでもいいんならカッコをつけた方が安全じゃないですか」 「どういうこと?」 当時、わたしは結合テストで出てきたバグの原因調査をよくやらされていた(他の連中はテストで出たバグをつぶすのに忙しかったか

    カッコをつけたコードはカッコわるいのか論争:プログラマで、生きている:エンジニアライフ
    nacookan
    nacookan 2009/07/19
    自分は「省略できるから省略する」はまだ甘くて「省略すべきときには省略する」だと思っている。「ここはさっと読み流して良いよ」みたいな意味合いをコードに含める感じ。だから中心部分はあえて省略せず書く。
  • ひどすぎるネーミング - idesaku blog

    UKTKKNSHINF こういう名前の変数が出てくるのだが、意味わかる? 答え:受付禁止情報 今読んでいるPL/SQLコードは当にひどい出来なのだが、その中でもネーミングが群を抜いてひどすぎてむしろ笑えてくるので、ここでさらしてみたい。 先ほどの例でわかると思うが、悪しきネーミング習慣である子音母音抜きの嵐である。変数名だろうが関数名だろうがこのルールで命名されているので、暗号文を読んでいるような気分になる。 他には、例えばこんなのがある。 SKSI 作成 HNKN 変換 KKT 確定 CHKN 中間 DTM Datetime DTA Data こうして見ると、ktkrやwktkとなんら違いがない。 "作成"のような、比較的簡単に対応する英単語が見つかるものまで日語子音母音抜きで書くという徹底ぶり。でも"情報"はINFだったりする統一感のなさ。そしてこれらが単独ならまだしも、複合して出

    ひどすぎるネーミング - idesaku blog
    nacookan
    nacookan 2009/07/03
    ひどすぎる...
  • ','.join() がなぜキモイのか - methaneのブログ

    Ruby厨とPython厨が平行線の議論をしていたので、まとめてみる。 オブジェクト指向的にキモイ? str.join() 処理での登場人物は2人いる。連結文字(区切り文字=separator)、連結される文字列の列だ。 この二つを比べると、「連結される文字列の列」が情報的に重要な場合がほとんどだろう。それを元に文字列の列が主役で連結文字はオマケと考えると、「joinが主役でない連結文字側のメソッドになる何てキモチワルイ」となる。 でも、別の視点で「連結する側とされる側」というように分類すると、「区切り文字 join 連結される文字」が素直な能動態で、「連結される文字列 (is) join(ed by) 連結される文字」だと無理やりな受動態になるので、''.join() の方が素直だ。 Rubyの場合は「配列が要素をjoinする」と配列が主体となっているので、後者の考え方はしにくい。なので

    ','.join() がなぜキモイのか - methaneのブログ
    nacookan
    nacookan 2009/06/20
    .NETはStringの静的メソッドJoin(区切り, 配列)、JavaにはJoinなんてない。そこまで考えてもやっぱ文化の違いっぽいね。
  • ぼくがLLのひとに「ガツン」と申し上げたこと - ひがやすを技術ブログ

    ぼくは水曜日にTokyo Cloud Developerの集まりに出た。 そこで、LLのひとから、「Google App Engineは、Python版以外にJava版も出たけど、サンプル見たけど、たくさんコード書かなければいけなくて、正直どこがいいのか教えて欲しい」という質問があった。 blogに名前を出していいかの了解を得ることを忘れたので、ここには、LLの人としか書けない。 ぼくは、そこで一言申し上げた。あるいはそれは、「申し上げた」というような生やさしいものではないかも知れない。端的な言い方をすれば、ガツンと言ってやった。 客観的に見て、ぼくはガツンと言ってやったと思う。LLな方々を前に、「いまどきのフレームワークは進化しているから、言語による差なんて余りない。仮に、Javaのほうが二倍コードを書く必要があったとしても、開発の中でコードを書いている時間より考えている時間のほうが圧倒

    ぼくがLLのひとに「ガツン」と申し上げたこと - ひがやすを技術ブログ
    nacookan
    nacookan 2009/06/13
    どう書けばいいかわかってる時は補完でサクサク書けるけど、どう書くかわからない場面で悩んだり調べたり試したりしながら書くときに、コード長い+ファイル数多いで大変な気がする。上級者はそんな悩み無いのかな。
  • WritingTestableCode - テストできるコードの書きかた

    WritingTestableCode - テストできるコードの書きかた 目次 この文書について まずいのその1: コンストラクタがやりすぎ まずいのその2: 深い仲になってしまっている まずいのその3: 脆いグローバルな状態とかシングルトンとか まずいのその4: クラスがやりすぎ テストできるコードの書きかた この文書について "Guide: Writing Testable Code" の日語訳です http://misko.hevery.com/code-reviewers-guide/ 推敲歓迎: 誤訳, タイポ, 訳語の不統一, そのほか... TODO: 各 Flaw のリンク先も訳す Misko Hevery コードをベストな状態に保つために、 我々は Google でソフトウェアエンジニアに以下のようなをガイドを定期的に送っていた。このガイドを共有できてうれしいね。 この

  • なぜTDDとペアプログラミングで生産量が増えるのか

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    なぜTDDとペアプログラミングで生産量が増えるのか