タグ

programmingに関するakkun_choiのブックマーク (432)

  • Javaテクニック:コンストラクタの引数が多いときにはビルダーを検討する(その1) - バイオインフォマティクスって何ですか?

    Java | 書籍『Effective Java』から Java のプログラミングテクニックを紹介します。static ファクトリーメソッド*1とコンストラクタには共通の問題があります。それは、オプションパラメータが多いときには、どちらもうまく対応できないということです。例えば、次のような場合を考えてみましょう。加工品に表示される栄養成分を表すクラス NutritionFacts を考えます。このクラスには必須パラメータとして、一人前の分量(servingSize)、容器あたりの量(servings)の2つがあるとします。また、オプションパラメータとして、エネルギー(calories)、脂質(fat)、ナトリウム(sodium)、炭水化物(carbohydrate)の4つがあるとします。このようなクラスに対して、コンストラクタや static ファクトリーメソッドをどのように書くべきでし

  • 【読者参加型企画】2,000行のJavaソースコードを読むのに何分かかりますか?

    ソースコード読解力は個人差が大きい コードレビューなどで、他の人のソースコードを読んだり理解したりする速度が気になることはありませんか? また、読む速度や理解する速度がとても速い人がいると感じたり、自分が周りの人よりも速いと思ったりすることがあるのではないでしょうか。私たちの研究グループで実施した観察でもソースコードを読む速度は個人差が大きいことを確認しており、同じソースコードを理解するための時間に6倍の差がある事例を確認しています。 では、自分自身のソースコードを読む速度や理解する速度が、平均と比べて速いのか遅いのかを知るためにはどうしたらよいでしょうか? 最も簡単な方法は、社内などの身の周りの人とコードレビュー時間を比べてみることでしょう。他にも、参加者全員でソースコードを読むような社外勉強会に参加する方法もありそうです。 文献からは大まかな速度を知ることができる 書籍、標準、論文の情

    【読者参加型企画】2,000行のJavaソースコードを読むのに何分かかりますか?
  • プログラミング言語ヒエラルキー:Geekなぺーじ

    「Programmer Hierarchy」という面白いネタがありました。 結構笑えました。 一部日語化してみました。 図中の矢印は「相手よりも上であるとみなしている」事を示しているそうです。 もともとは「Geek Hierarchy」というオタク同士が「俺はこいつらよりオタクではない」と思いあっているというネタがあって、それのプログラマ版のようです。 ちょっとアメリカ文化ですが、元ネタのオタク版も面白いのでもしよろしければご覧下さい。 おまけ:プログラミング/技術関連お笑いネタ プログラマレベル 人生の全てはTCP/IPに学んだ いいから殺せ。後はこっちでなんとかするから 技術系シモネタ

  • Ywcafe.net

    Ywcafe.net This Page Is Under Construction - Coming Soon! Why am I seeing this 'Under Construction' page? Related Searches: Migraine Pain Relief Best Mortgage Rates music videos All Inclusive Vacation Packages Healthy Weight Loss Trademark Free Notice Review our Privacy Policy Service Agreement Legal Notice Privacy Policy

    akkun_choi
    akkun_choi 2009/08/27
    うーん。ありがち…
  • Big Sky :: ReverseHttpで誰よりも速く「はてなブックマーク」に反応するツール書いた。

    ReverseHttp面白いですね。 ReverseHttp Tunnel HTTP over HTTP, in a structured, controllable, securable way. Let programs claim part of URL space, and serve HTTP, all by using an ordinary HTTP client library. http://www.reversehttp.net/ ただ勘違いされやすいのが「何がReverseなの」という部分。通常ブラウザからリクエストが送信され、それに対する応答がサーバから返されます。ReverseHttpはサーバで何かアクションが起きた場合に、ブラウザ側がその通知を受信する...なんて事が出来るプロトコルです。仕組みはcometというlong pollに似た仕組みで、サイトのdemo

    Big Sky :: ReverseHttpで誰よりも速く「はてなブックマーク」に反応するツール書いた。
  • require 'php' の実装解説 - 星一の日記

    require 'php' とは何か PHP の素晴らしい機能を Ruby スクリプトでも使えるようにするためのライブラリです。PHPRuby にはない「プリティーな」機能がたくさんあり、たとえば数値とそれをあらわす文字列とを等価とみなす == 演算子、未定義定数を文字列として扱ってくれるとっても「親切な」リテラルなどがあります。 今回僕が実装した require 'php' ライブラリは Ruby の基クラスの == メソッドを、PHP の == 演算子の挙動に置き換えるものです。ほかにも実装したかった PHP 的機能がいっぱいあるのですが、実装時間が 3 日のみ*1、さらに発表時間が 3 分しかないことから、今回は演算子 == だけに焦点をしぼることにしました。 おまけですが、ライブラリには echo 関数や array 関数なども実装されています。しかし実装が数行ですんでし

    require 'php' の実装解説 - 星一の日記
    akkun_choi
    akkun_choi 2009/07/21
    phpきもい
  • カッコをつけたコードはカッコわるいのか論争:プログラマで、生きている:エンジニアライフ

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

    カッコをつけたコードはカッコわるいのか論争:プログラマで、生きている:エンジニアライフ
  • Shibu's Diary: きれいなソースコードを書けるようになるためには

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 by chazmatazz 「構造のきれいなプログラムを書けるようになるためにはどうすればいいのか?」という質問を受けたので、「はて?どうしているだろうか?」と考えてみました。あ、形式知にきちんとなっているようなテクニックみたいなもんじゃなくて、モノローグなので、あまり凝ったものは期待しないように。あ、Pythonに限定してますが、他の言語でも似たようなものはあると思いますので、脳内変換をお願いします。 事前の設計はしません 「こういう処理が必要」「こういう計算しなきゃね」みたいなロジックや「要件はこうかな?」ということは事前に考えたりするけど、クラス構造とかは基的に考えないで手をつけます。そして、ある程度規模が大きくなって「あ、ちょっとこの関数大きすぎて理解しにくいなぁ」と

  • Shibu's Diary: 「ソースコードをきれいに書く唯一の方法」は4つある

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 taken by Manuel_Marin なんとなく書いたら、アクセス数が10000件超えたソースコードをきれいに書くための方法の記事。r-westさんの「きれいなソースコードを書くために必要な、たったひとつの単純な事」と、uwiさんの「誰がためのきれいさ?」と、フォローのトラックバックまで頂きました。僕のも含めてそれぞれスタンスが違いますが、どれが正しいとか、どれが一番いいかというのはないと思っています。人によってどっちがいいかは別れるはずです。人によっていちばん苦労がなくて、モチベーションがあがる方法がそれぞれの人にとっての正解である、というのが僕の考えです。 モチベーションマネージメントというのがよく言われるけど、「モチベーションを上げろ」と言われて上がる人なんていませ

  • プログラミングできる人とできない人との間の深い溝 - masatoi’s blog

    どうしてプログラマに・・・プログラムが書けないのか?を読んでいて出てきたので出展の一つを訳してみた。Separating Programming Sheep from Non-Programming Goatsの和訳。 プログラミングというものには向き不向きが強く出るということはわりと知られていると思うが、このエントリではプログラミングができるかできないかは比較的簡単なテストによって、プログラミングの訓練を始める前の段階で分かると主張している。どうしてプログラマに・・・プログラムが書けないのか?では、そもそもこの事前テストをパスしていないような人達までプログラマとして応募してくると言っており、その判定法として有名なFizzBuzz問題を挙げている。 追記(2019/2/28) 注意: なおこの論文はしばらく前に著者の一人によって撤回されたようです Camels and humps: a r

    プログラミングできる人とできない人との間の深い溝 - masatoi’s blog
  • 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ならそういう方法もあり得るが、そうはいかな

  • プログラマの麻疹 - 宇宙行きたい

    id:t-wada と話してた時に出てきた「プログラマの麻疹」 プログラマはみんなどうせかかるんだから早めにかかっておいた方が良い そしてかかっておくと治った後にはさらに良いコードが書けるようになるので 恐れずにかかりましょう 名前 症状 僕の状態 OO 厨 多分、現在一番キャリアが多い。一時期 AOP 厨になってしまった人も含むことがある。Smalltalk を神格化し始める かかり中 function 厨 最近増えてきた。マルチコア時代に最適というわかりやすい感染源ができたことも要因の一つ。LISP が世界を作っていると信じる 挫折中 三項演算子厨 どんどんネストした三項演算子を書いてしまう。気がつくと自分でもよくわからなくなってることもある 治療済み テスト厨 テストのためだけにコードを書いてしまう。プロダクトコードのきれいさよりもテストのしやすさを求めてしまう 治療中 lambda

    プログラマの麻疹 - 宇宙行きたい
  • Coding Horror

    akkun_choi
    akkun_choi 2009/07/01
    グサッときた
  • コードレビューって意味あるの ? | スラド デベロッパー

    「こういうコードが恥ずかしいコードである」 という価値観について、上級技術者間で意識統一がなされていればね。 ようするにコードレビューと言うのは、大学の研究室で言う輪講とかと同じなんです。 コードをよりよいものにする、と言うのも目的の一つですが、コードを組んだ人のレベルアップを図る、という目的もある。 十分な人数の、良く判っているプログラマがいるならばペアプログラミングも良いでしょう。でもペアを組んで回れるほどレベルの高い人がいなかったら? 「教授と助教授と助手の目の前で発表させる」 しかないじゃないですか。 もちろん、この作業は「教授や助教授や助手」の時間をいます。もしあまりにも多くの時間をうのであれば可能性は次の3つのどれか。 初心者が多すぎる。そのため、「教授や助教授や助手」の時間をフルに使っても、全部など到底見切れない。コードの品質は悪いままである。初心者が少なすぎる。コードの

    コードレビューって意味あるの ? | スラド デベロッパー
  • ','.join() がなぜキモイのか - methaneのブログ

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

    ','.join() がなぜキモイのか - methaneのブログ
  • 俺コーディング規則 - Cube Lilac

    最近,他人が自分のコードを読んだり修正したりする機会が増えてきたので,意思疎通のために自分のコーディング規則をメモしておきます.CLX C++ Libraries も(たまにブレてますが)ここに挙げる規則に従って書いているので,コードを読む際の参考にでも. 尚,以下は基的に自分が守っているだけで,他人は(単一プロジェクト内のコード間で整合性が取れる範囲で)自分の信念に基づいてコーディングしていけば良いんじゃないかな,と思っています. 名前空間 グローバル名前空間には,クラス/関数を(極力)定義しないようにします.通常は,プロジェクト毎に適当な名前空間を考えて,その名前空間内に各種クラス/関数を定義します.ただし,ユーザに使用されることを意図していないクラス/関数に関しては,使用する名前空間の中でさらに detail 名前空間を定義して,その中で定義します. クラス設計 クラスは, x.i

    俺コーディング規則 - Cube Lilac
  • 『10分でコーディング』

    昨日の問題、一番早く終わったひとは3分以内でした。すごすぎます。タイピングだけでも3分くらいかかりそうなのに。今日の問題はかなり簡単です。できるだけ早い時間でエレガントなコードを書きましょう。あまりに簡単なので制限時間を10分としてやってみてください。これ以上かかった人は自分はかなりプログラミングができない。とつらい事実を認識しましょう。そして、これからすごくなりましょう。では、10分だけこの問題に付き合ってみてください。スタート!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>難易度 激簡単 目標時間10分以内あなたはこれからトランプを配っていきます。あなたにはトランプを配る人数、そしてトランプが渡されます。今回はとても簡単なので例題で説明します。例)2つの引数がもらえます。3"123123123"最初の3はプレイヤーの人数を示しています。

    『10分でコーディング』
  • privateメソッドは不要、出力パラメータに御用心 - kagamihogeの日記

    privateメソッドは不要 - @katzchang.contexts 書いてあることに同意。Meyer センセを始めとして「値を返すだけの function と副作用を伴う procedure は分離しる!」とむかしから言われてるアレと同根かなぁと。 で、トラバ元のエントリとは直接関係無いのだけど、このエントリ読んでて思い出したことがあるのでそれについて。 共通関数(この言い回しは良くないかな?)として static なメソッドに切り分けてるつもりで、やばいことになってるコードについてです。 public class OutputParameter { private List<String> privateList; public OutputParameter() { super(); this.privateList = new ArrayList<String>(); } pu

    privateメソッドは不要、出力パラメータに御用心 - kagamihogeの日記
    akkun_choi
    akkun_choi 2009/06/12
    副作用するかどうか
  • AddinBox(祝日マクロ-1)

    自由に各自のマクロに組み込んで利用して下さい。なお、フリー/シェアソフト 開発での利用も可(フリー/シェアでの利用の場合、事後で結構ですので一言 お知らせください)です。ただし、引用に当たっては、マクロの先頭に記述してある コメント(CopyRight )を必ず一緒に引用する事 を条件とします。 なお、 他サイト上でマクロを直接引用(マクロ全体を丸々貼り付ける等) する事は、ご遠慮願います。ページへのリンクによる紹介で対応して下さい。 [ktHolidayName]という関数名そのものは、各自の環境における命名規則に沿って 変更しても構いません。 VBA(VB含む)で利用する場合はマクロのコード構成を一切変更しないでください。 VBAというレスポンス的に不利な言語でも出来る限りレスポンスを良くする事を前提に 設計してある為、コード内容を変更するとレスポンスが低下

    akkun_choi
    akkun_choi 2009/06/11
    笑っちゃうぐらいややこしいな
  • 各言語におけるtrue/falseまとめ - 昼メシ物語

    たとえば PHP で、 if ($hoge) { ... } とか書いてあったら、 $hoge がどんな値のときに if の中身が実行されるのか即答できますか。 こういう書き方は多くの言語で可能ですが、言語によって何が真で何が偽になるのかが異なるので、それぞれまとめてみました。 C言語 C言語には bool 型が無い。 0 (int) だけが偽となり、それ以外はすべて真となる。 NULL 定数は stddef.h で以下のように ((void*)0) と定義されているため、偽値として使える。 意見が分かれそうなところですが、個人的にはNULLを偽値として使用するは好きじゃないです。 #ifndef __cplsuplus #define NULL ((void*)0) #else #define NULL __null #endif C++ C++になると bool 型が出てくる。C と同

    各言語におけるtrue/falseまとめ - 昼メシ物語