タグ

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

  • TDD談義への反応に対する雑感(テスト駆動開発を取り巻く誤解等) - 千里霧中

    先日、twitter上でTDDに関する談義があったのだけれど、気になったのがそれに対するテストや品質の方々の反応。特にTDDの戒めである「品質保証を目的としていない」という書き込みに対してネガティブな反応が多かったのが気になった。 開発経験もあり定義や概念の扱いに注意深い方々なので誤解の可能性はないと思うが、結構問題が入り組んでいるように感じたので、今回テストエンジニアと開発者の視点の差異を焦点にして一部の論点を整理したいと思う。 開発者のいう品質保証の定義 まずTDD談義で開発者が「品質保証のためのテスト」「品質管理のためのテスト」などと呼んでいるテストの定義は、乱れや不統一感も多少あるけど、基的にKent Beckや和田さんが使われているQAテストの定義によるもの(http://gihyo.jp/dev/serial/01/tdd/0003)。 この定義で「品質保証のための単体テスト

    TDD談義への反応に対する雑感(テスト駆動開発を取り巻く誤解等) - 千里霧中
    f_oggy
    f_oggy 2010/03/01
    なるほど、TDDはソースそのものの品質を上げるためのものということか。品質という言葉がちょっと適切じゃないのかもしれないね、この場合。
  • いまさら聞けない「変数の命名規則」 - 基本へ帰ろう

    変数の命名規則って名前がついているのですね・・・というのをさっき知ったので・・ほんといまさら聞けない感じです・・w アッパーキャメルケース (UCC)、またはパスカルケース(PascalCase)(Pascal記法) キャメルケース - Wikipedia 複合語の先頭を、大文字で書き始める。 例 : CamelCase ローワーキャメルケース (LCC)、または単にキャメルケース キャメルケース - Wikipedia 複合語の先頭を、小文字で書き始める。 例 : camelCase アプリケーションハンガリアン(ハンガリアン記法) ハンガリアン記法 - Wikipedia アプリケーション ハンガリアンは、間違えたコードを間違えて見えるようにする記法である。 たとえば、論理座標にRelative Positionのrp、絶対座標にAbsolute Positionのapというプレフィッ

    いまさら聞けない「変数の命名規則」 - 基本へ帰ろう
  • プログラミング言語 Misa

    #! /usr/bin/misa ごっ、ごぉおっ、ご〜きげんよおぉおおぉおほっ。ほおぉおぉおっ。 「ごきげん☆みゃぁああ”あ”ぁ”ぁああ〜っ」 さわやかな朝の☆ご挨拶! お挨拶がっ。 澄みきった青空にこだましちゃうぉ〜ああぉおおおぉん。 「は、はひっ、はろおぉっ☆わぁるどおおぉっぉ〜っ」 こ、この文章は☆おサンプル! おおぉおぉおおサンプルプログラム!! どんなおプログラム言語でも基のご挨拶させていただくのぉぉおッ! 「ぽうっ」 長々と書くのがこ、ここでの〜、ここでのぉおおぉおぉぉおたしなみぃぃいぃ。 「長いぃ。長すぎましゅう。ご挨拶にこんなプログラム長すぎまひゅぅうぅ☆ んおおぉぉ、ばかになる、おばかになっちゃいましゅ〜ッ」 長いのがっ、バッファの奥まで入ってきましゅたぁあぁあっ! ばっふぁ☆溢れちゃいまひゅぅ〜。あみゃぁあ”あ”ぁ”ぁああ”あ”ぁぁ。 「で

    f_oggy
    f_oggy 2010/01/12
    「ちょっぴり変わったステキなプログラム」ちょっぴり・・・だと・・・!/ コーディング大変そうだw
  • コンピュータサイエンスはこう学べ (1) - 将来が不安

    週報 2024/04/28 川はただ流れている 4/20(土) 初期値依存性 さいきん土曜日は寝てばかり。平日で何か消耗しているらしい。やったことと言えば庭いじりと読書くらい。 ベランダの大改造をした。 サンドイッチ 一年前に引っ越してからこんな配置だったのだけど、さいきん鉢を増やしたら洗濯担当大臣の氏…

    コンピュータサイエンスはこう学べ (1) - 将来が不安
  • なぜ新人は聞きに来ないのか? - teruyastarはかく語りき

    プログラマで、生きている: ググるな危険 http://el.jibun.atmarkit.co.jp/hidemi/2009/11/post-9d2b.html わたしが新人が検索に頼ってしまうことを危険視するのは、コピペの寄せ集めでもなんとなく動くコードが書けちゃって、それで自分は仕事を達成したという錯覚に陥ってしまうからです。 たいていの場合、新人プログラマには「きちんとしたコードを書くこと」は期待していません。先輩たちが期待しているのは「きちんとしたコードを書ける人になってくれること」です。 そこらへんの意識が行き違っちゃってるから、仙台に行くことよりも、新幹線に乗ることの方が重要事項になっちゃうんですかねえ。 最後に、わたしが新人の時に先輩から言われた言葉をご紹介させていただきます。 「自分で説明できないコードを1行たりとも書くな!」 間違うのはしかたありません。けれども、「自分

    f_oggy
    f_oggy 2009/11/24
    "ググるな危険"に関する考察。しかも詳細に。
  • ググるな危険:プログラマで、生きている:エンジニアライフ

    だいぶ前の話になりますけど、「新人にデータ移行ツールのコーディングを任せるので、面倒をみてやってくれ」と頼まれたことがありました。 その新人はやたらとGoogle検索に頼る人で、とにかくわからないことがあると、わたしに聞かずにGoogle先生に尋ねるんですね。 検索サイトにはわたしもかなりお世話になっていますし、昔に比べるととても使い勝手がよくなっていますけれど、その人の技術レベルに対応して検索結果を出してくれるほど高機能なわけではありません。 そのため新人の書いてくるコードは、つぎはぎというかちぐはぐというか、身についてない知識に振り回されてる感が満載でした。 そういう弊害を気にしつつも、自分で調べようとする気持ちは尊重するべきなのかなあ、と思ってとりあえず黙認していたんですが、あるとき「ちょっと考えが甘かった」と思い知らされるトラブルが発生しました。 その新人が「Windowsのレジス

    ググるな危険:プログラマで、生きている:エンジニアライフ
    f_oggy
    f_oggy 2009/11/24
    コメ欄も参考になる / あるある話過ぎて困る / 「自分で説明できないコードを1行たりとも書くな!」は金言。
  • グーグル、オープンソースのプログラミング言語「Go」を発表

    Googleは米国時間11月10日、オープンソースのプログラミング言語「Go」を発表した。Goは、首席ソフトエンジニアRob Pike氏やUNIXの共同開発者のKen Thompson氏らで構成されるチームにより開発された。 現在、Goプロジェクトは、プログラミング言語、コンパイラ、Goで書かれたプログラムに多くのビルトイン機能を与えるランタイムパッケージプログラムで構成されている。Pike氏によると、Goは、CおよびC++と類似しているが、最新の機能を採り入れ、ウェブブラウザ内でも使用可能にするなどの汎用性を備えているという。 Goは、ソフトウェアをマルチコアプロセッサで実行する場合に発生する問題に対処するよう開発されている。またオブジェクト指向プログラミングが持つ問題点を緩和するためのアプローチが取られているほか、同社はオープンソースブログで、Pythonのようなダイナミック言語で作業

    グーグル、オープンソースのプログラミング言語「Go」を発表
  • The Go Programming Language

    Tips for writing clear, performant, and idiomatic Go code

    The Go Programming Language
  • 【プログラミング】テトリスを1時間強で作ってみた【実況解説】 ‐ ニコニコ動画(原宿)

    【プログラミング】テトリスを1時間強で作ってみた【実況解説】 [技術・工作] ■今回は、Win32API + C言語でテトリスを作る様子を実況してみました。■徐々にテトリスが出来ていく...

    【プログラミング】テトリスを1時間強で作ってみた【実況解説】 ‐ ニコニコ動画(原宿)
    f_oggy
    f_oggy 2009/11/09
    gccの環境からで1時間ちょい。すごい。/ 本当の意味で一からやっているのはなかなか見られない。ほんとにプログラミング好きなんだなー。
  • Rubyを最大63%高速化した中学生は超多忙!

    金井仁弘(HN:CanI)氏                    撮影:平沼久奈 ハンドルネームCanIの由来は、「“Can I”→キャナイ→カナイ」。C#、Visual Studio、Microsoft .NETとマイクロソフト製品が大好きな「.NETer」と自称する 筑波大学付属駒場中学校は、東京都内にある中高一貫の国立校だ。入学試験の偏差値と東京大学への進学率の高さから“東の筑駒、西の灘”と称される進学校である。強いのは受験だけではない。国際情報オリンピックや国際数学オリンピックでは、同校の生徒が毎年のように金・銀メダルを制するなど才能あふれる理数系人材が多数在籍している。 金井氏はこの夏の「セキュリティ&プログラミングキャンプ2009」(2009年8月12~16日)に参加し頭角を現した中学生プログラマである。 今年に入って、Ruby 1.9のフィボナッチ数列による演算(多倍長加算

    Rubyを最大63%高速化した中学生は超多忙!
    f_oggy
    f_oggy 2009/10/28
    正直、時代が羨ましい。
  • 小数点の計算をやるからといってすぐにfloatやdoubleを使ってはいけない - かとじゅんの技術日誌

    おつかれさまです。 型を選ぶというのはプログラミングの基礎中の基礎ですが、以外に開発の現場でも注意が必要なのが、floatとdoubleの精度の問題があります。これぐらい当然と思っていたのですが、最近よく耳にしますので、あえて言及w これらの型の目的が科学技術計算のための用途。多少誤差が生じても高速に演算をすることを目的としています。グラフィックなどの描画系とかですかね。 このように、float型やdouble型は誤差を含む可能性があるため、科学・工学計算で多少の誤差は許容できる場合はよいのですが、金融・会計分野のように正確な値が要求される計算には向きません。 どうしても正確な値が欲しい場合は、BigDecimalクラスを使用することになります。基データ型のdoubleやfloatと比較すると不便かつ低速ですが、精度が保証されており、丸め方も指定できます。 ここで言及されているように、お

    小数点の計算をやるからといってすぐにfloatやdoubleを使ってはいけない - かとじゅんの技術日誌
  • JavaScriptをやるなら覚えておくと超便利な、コードをブラウザ上で開発&発行できる「JS Bin」:phpspot開発日誌

    JavaScriptをやるなら覚えておくと超便利な、コードをブラウザ上で開発&発行できる「JS Bin」 2009年10月23日- JavaScriptをやるなら覚えておくと超便利な、コードをブラウザ上で開発&発行できる「JS Bin」というサイトを発見。 ちょっとした動作確認用のコードを書いたり、入門者の方がJavaScriptを学ぶのに非常に有用ですし、その結果も保存してサーバに置いてホスティングしてもらうことも可能。 また、比較的面倒なjQueryやjQuery UI、prototype.js 等の有名どころのフレームワークを簡単に読込めて使える機能もあります。 サイトを開くと、まず3つのタブがあって、JavaScript のタブにはJSを、HTMLのタブにはJavaScript から操作するHTMLを、Output には実行結果が出力されるようになっています。 JavaScript

  • Web アプリの MVC 設計まとめ - もやし日記

    MVC 設計について考えていたときに、ちょうどその辺りの話をされている方々が居たので、今の考えをまとめてみました。 目次 前提 肥大化するコントローラを避ける ビジネスロジックをどこに書けば良いのか コントローラとモデルの間にもう一つの層があるとうまくいく? まとめ 前提対象は Web アプリケーションで、画面数(ビューの数)は数個〜100個程度の規模です。WordPressTwitter、37signals のサービスのようなものを作ろうとするとき、どういう MVC 設計をしていくかについて考えます。巨大なシステム、金融系システム、基幹系システムなどを作る場合とは異なる考え方もあると思います(そもそも MVC を使わない、など)。 肥大化するコントローラを避ける例えば、八百屋さんで「60円で仕入れたリンゴ1つを100円で売った」こと(Sales Transaction)を記録する場合を

  • えせMVCについてそろそろ一言言っておくか - ひがやすを技術ブログ

    Ruby on Railsの最大の問題点は、それが持つ「一見そのフレームワークがMVCの形をとりながら、MVCの最も大切なところを外している『えせMVC』である」点にある RailsのえせMVC疑惑で盛り上がってますね。Railsが「えせMVCフレームワーク」ではないのは、みんな知っていると思うので、記事、コメントをみて勘違いしている人が多そうな部分に一言書いておきます。 まず、おかしいのはsatoshiさんのこの意見。 PhotoShareは主にRailsで作られているので、ModelはActiveRecordが担当しているわけだが、Modelのレイヤーが非常に薄いために(O/Rマッピングをしているだけ)、データベースの整合性の責任がController側にある。そのため、ちょっとした機能変更のたびにAPIレベルでのテストを大量に走らせなければならないし、それでもどうしてもミスが生じてし

    えせMVCについてそろそろ一言言っておくか - ひがやすを技術ブログ
  • XML ―伸び縮みマークアップ言語―

    SGMLのサブセットであるXMLは、インターネット上で扱うデータを記述するための新しいデータフォーマットで、 利用者が自由にタグを定義でき、文書中の文字列に意味付けができる柔軟性のある言語構造を持っており、 プログラムで自在にXMLデータを情報処理できるというメリットがあります。 そのXMLを実際に文書を作成しながら学べるようわかりやすいよう解説します。 ■ XMLの基 XMLとは XML文書作成の大まかな流れ XML文書の記述 XML文書ブラウザでの表示 ■ XSLTスタイルシートの基 XSLTスタイルシートの適用 XSLTの構造 ■ XML文書の構文 XML文書の宣言 文字コードの設定 タグ付けのルール 要素名・属性の指定について 階層構造 実体参照・文字参照について その他・コメントや処理 DTDの記述 名前空間の指定 ■ データをXML文書化する 情報をデータ化する 階層構造の

  • 【特集】詳解! HTML 5と関連APIの最新動向 - Webアプリ開発編 (1) 本特集の趣旨 | エンタープライズ | マイコミジャーナル

    特集は、HTML 5の仕様や実装状況に関する現時点での最新レポートとして、実際に動作するサンプルを添えた詳細な解説をお届けするものである。特集の後半となる今回は、Webアプリケーションを作成するにあたって有用な、JavaScript APIを中心として取り上げる。今回紹介する内容は以下の通りだ。 アプリケーションキャッシュ クロスドキュメントメッセージング Web Workers Web Storage Web Database Web Sockets Geolocation API HTML5で新しく導入されたタグなどに関しては、前回の特集を参照していただきたい。 今回調査対象としたブラウザは、前回と同じく次の通り。ベータバージョンも含めた最新のバージョンをチョイスした。Internet Explorerについては、最新バージョンの8でもHTML 5への対応があまり進んでいなかったため

    f_oggy
    f_oggy 2009/08/17
    またIEだけ時代遅れか!
  • ケータイの流儀を常識と思いこむのは危険 | 水無月ばけらのえび日記

    公開: 2009年8月6日14時10分頃 「やはり退化していた日のWeb開発者「ニコニコ動画×iPhone OS」の場合 (takagi-hiromitsu.jp)」。 iPhone・iPod Touch用の「ニコニコ動画」アプリのサーバ側実装が脆弱だったというお話。iPhoneやiPod Touchの端末製造番号 (UDID) は秘密情報ではない上に詐称可能なのですが、そのUDIDに依存した認証を行っていたため、他人のUDIDが分かると、その人の非公開マイリストなどが見られてしまう……ということのようで。現在は修正されているようです。 脆弱性の話としては、認証方法の不備という単純な話なのですが、むしろ周辺の反応が興味深いですね。いちばん面白いと思ったのがこのブックマークコメント。 ツッコミがたくさん入っていますが、「流儀が違う」というのは、実は全くその通りなのですね。端末固有IDによる

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

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

    f_oggy
    f_oggy 2009/07/16
    性格によって方法論が変わってくるということ自体が学者的な感じ。個を対象とした方法論としては正しい。
  • コードレビューって意味あるの ? | スラド デベロッパー

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

    コードレビューって意味あるの ? | スラド デベロッパー
    f_oggy
    f_oggy 2009/06/25
    回答にもあるようにあくまでひとつの手法であり、定常的に行うようなプロセスではないと思う / 当然、非常に有効となる状況もあるので、むしろ手法を適用する状況を見極める力のほうが重要だろう
  • 新人教育向けの秀逸な課題プログラムって? | スラド デベロッパー

    新人教育にて講師をやる事になりました。そこで新人に与える課題を考えているのですが、何か良い課題はないでしょうか? 講義は課題プログラムを与えてプログラミング、後でプログラムのアルゴリズムの説明を各人に行わせる。という形なので、各自が異なるアルゴリズムになってくれるのが理想です(閏年を求める等、パターンがある物はパス)。 このアルゴリズムにプログラミングテクニックの小技(f = -f)とかがでてくると面白いかなぁ。とか考えています。この手の課題で悩んでいる方、アドバイスをお願いします。