タグ

programmingに関するinventのブックマーク (69)

  • MITがSICPを教えなくなった理由

    Programming by poking: why MIT stopped teaching SICP | posterior science このNYC Lisp meetupの動画で、Gerry Sussmanに対する質問として、SussmanとAbelsonの古典、The Structure and Interpretation of Computer Programs(SICP)に基づく、伝説的な6.001講義をなぜMITはやめたのかと聞かれている。 Sussmanの回答としては、SussmanとHal Abelsonは1980年代から延々と教え続けるに嫌気が差し、1997年に、学部長の事務所に行って、「俺らはやめる。後どうするからは勝手に考えろ」と宣言した。より重要なこととしては、SICPのカリキュラムは、今日のエンジニアリングに求められるエンジニアを育てることができないからで

  • クラスの「継承」より「合成」がよい理由とは?ゲーム開発におけるコードのフレキシビリティと可読性の向上 | POSTD

    コード構造における重要な問題として、複数のクラスを共有する場合に合成と継承のどちらを用いるかという点があります。“has a”の関係と、“is a”の関係と言われる2つの対比です。例えば、“ソファには綿が入っている”と、“ソファは家具である”という違いのようなものです。この例では2つの違いは非常に明白ですが、実際には、“has a”の関係でも“is a”の関係でも意味を成すケースがたくさんあります。ゲームのキャラクターについて、これはコリジョンボックスを持っているかと聞くのと、これは衝突可能なオブジェクトかと聞くような場合です。この2つは全く同じことではありませんが、それぞれが(または両方一緒に)衝突を処理する主構造として用いられ、どちらの方がよいかは必ずしも明白ではありません。私の経験では、直感的には継承の方がよいと思うことも多いのですが、それだと問題がたくさんあって結局は合成の方がよか

    クラスの「継承」より「合成」がよい理由とは?ゲーム開発におけるコードのフレキシビリティと可読性の向上 | POSTD
  • [翻訳]プログラマの生産性の壊し方 - Qiita

    George Stockerの「How to destroy Programmer Productivity」の翻訳です(Georgeさんには報告済み)。 間違いがございましたら、ご指摘お願いします。 プログラマの生産性に関する次の画像は、インターネット中を徘徊しています。 ザ・シンプソンズが出てきそうだけれども、「真実だから面白い」。 私は、今まで生産的になる秘密について解明してきませんでした。それは、主には、私が一貫して生産的ではなかったからです。Joel on Softwareのジョエル・スポルスキは、ブログの記事でこのことについて話しています: 時々私は何も終わらせることができなくなります 確かに、私はオフィスに入って、10秒ごとにe-mailをチェックして、ウェブを読んで、アメリカン·エキスプレスでの支払いのようないくつかの頭を使わないタスクを処理します。しかし、コードを書くフロ

    [翻訳]プログラマの生産性の壊し方 - Qiita
  • プロダクティブ・プログラマ

    TOPICS Programming , Business/Essay 発行年月日 2009年04月 PRINT LENGTH 284 ISBN 978-4-87311-402-6 原書 The Productive Programmer FORMAT PDF 生産性の高い人はそうでない人に比べ、同じ時間でより多くの仕事をし、より多くの成果を上げることができます。書は、ソフトウェア開発におけるプログラマの生産性についての書籍です。プログラマ個人が、どのような意識を持ち、どのようなツールを使えば、単位時間当たりの仕事量を増やすことができるかについて示します。書は2部からなり、「I部 技法編」では、作業を自動化するためのツールや集中を維持する方法など、開発に必要な作業の生産性を向上するテクニックとツールを解説します。「II部 実践編」では、テスト駆動開発や、メタプログラミングなど、生産性を

    プロダクティブ・プログラマ
  • 最悪のプログラミング言語、BANCStar

    Following is the email I received from Google for this article. This is so unhelpful to identify the cause. After carefully reviewing the article, I found one URL that was flagged to contain malware(probably usual old domain expired and purchased by other problem) so I removed that link. Please review and re-publish this article. I hope Google's flagging system tells me why it trigger the flagging

    最悪のプログラミング言語、BANCStar
  • コードレビューを円滑に行いたい (#cross2014 のお話) - $shibayu36->blog;

    id:antipopさんやid:studio3104さんに機会をもらえて、CROSS 2021に参加させてもらい、はてなでのレビューの話を軽くさせてもらった。はてなからは僕とid:hakobe932さんとで参加した。 http://blog.kentarok.org/entry/2014/01/18/204552 2014/1/17 #cross2014 コードレビューCROSS 〜ぶつかり稽古 2014初場所〜 - Togetter それで、今回参加して他の会社の人のレビューの話も聞いて、あーそれはあるあるとか、そういう問題解決するためにこういうことしてますとか、他の会社ではこういう時どうしているんだろとか、幾つかおもうところがあったので、もう少しレビューのことについて書いてみる。 レビューと関係性問題 レビュアーとレビュイーの関係に関して - 職質アンチパターン コードレビューと関係性

    コードレビューを円滑に行いたい (#cross2014 のお話) - $shibayu36->blog;
  • テストを書く - シンデレラは削らない

    http://t-wada.hatenablog.jp/entry/debugging-tests 和田さーん! テスト駆動開発(TDD : Test Driven Development)は、プログラマが自分の不安を克服し、自分が書くコードに自信を持ちながら一歩一歩進んでいくための手法です。不具合の発生は、端的に言えばこれまでの「自信」を揺らがせる事態です。テスト駆動開発者は不具合にどう立ち向かうのでしょうか? やはりテストを書いて立ち向かってゆくのです。 チーム内にテストを書く習慣を持ち込んで三年、最初のうちは工数が増えるだけだ(あるある)、テストを書いても不具合がでるじゃないか(あるある)、システムテストでカバーすればいい(あるある)などという抵抗があり、それでも僕は淡々と雨の日も、晴れの日も、雪の日も、朝も夜も深夜も、終電後のオフィスでも、GW中の人気のないオフィスでも、自動テスト

    テストを書く - シンデレラは削らない
  • codic - デベロッパーのためのネーミング辞書

    codicは、プログラマーのためのネーミング辞書です。新しいcodicでは、翻訳エンジンを搭載しネーミングをジェネレートできるようになりました。

    codic - デベロッパーのためのネーミング辞書
    invent
    invent 2014/01/05
  • テスト考2014 - Hidden in Plain Sight

    年々、ウェブアプリを開発するときにテストを書こうという機運が強くなっていると感じる。 これは、開発パラダイムの成熟を意味することであり、基的に良いことだと思っている。 しかし同時に「テスト原理主義」とでもいうような極端な考え方もでてきていて、開発スタイルをめぐって摩擦が起こっている。 そして、この議論は「テストは、ないよりあったほうが良いよね」という、微視的には誰も反論できないロジックに押し通されがちで、「地獄への道は善意で舗装されている」の典型的な現象に見えて仕方がない。 テストを書かない、というと背景にどんな深い考えがあっても素人くさく聞こえ、逆にテストを書くというだけで良いプログラマーに見える、という非対称な化粧効果がある。ソフトウェア・コンサルティング会社がテスト好きなのは決して偶然ではない。 ソフトウェアというのは、結局のところ、動いてナンボ、使われてナンボである。 期待するも

    テスト考2014 - Hidden in Plain Sight
  • テストが間違ってたら? - 日々常々

    「テストが間違ってたらどうするんだ」 自動テストの話をするとよく言われます。テストが間違ってたらわからないじゃないか。手動テストであれば、注意深く目で確認していれば間違いに気づけると言う主張です。 「目で確認していれば気づける」のは間違いではありません。必ず気付けるわけではありませんが、十分な知識を持った人が、十分な集中力と責任感をもってエビデンスを確認すれば、誤りに気付ける可能性は高いと思います。 品質(主に機能性)を目的とした自動テストでも、それを行う必要があります。それがテストコードのレビューです。 手動テストの場合、テスト実施前に手順や確認項目のレビュー、実施中の確認、実施後のエビデンス確認と、人が確認するタイミング*1が三カ所あります。 これに対し自動テストの場合、テストが書かれた時のみ。実行中は勿論、実行結果の確認に注意はありません。ただ成功か失敗かだけなので。ならば、テストコ

    テストが間違ってたら? - 日々常々
  • テストを軽視する者どもに告ぐ:アルファルファモザイク

    ■編集元:プログラマー板より「テストを軽視する者ども」 1 仕様書無しさん :2008/06/28(土) 19:49:20 何だよ、8割方終わった風な顔で、「コーディング終わりました。後はテストするだけです。」 って... コーディングが終わってやっと3割終わったかどうかってところだろが。 コーディングが終わってからが番だっちゅーの。テスト仕様書に従い、テストデータ用意して、 正常系、異常系含めて、抜かりなく全網羅テストすること。これがどれだけ大変なことか。 当に理解してんのか? コーディングが終わってやっとスタートラインに立ったぐらいの気持ち でいろよ、ってくヘラヘラしやがって。 こういう、テストを軽視する輩共が、プログラミングという作業を軽んじ、工数見積りを誤り、 徒に製造を急かし、バグの混入率を間接的に高めているということに気づかんのか。 どんな優秀な奴だっ

    invent
    invent 2009/09/29
    『プログラマ一人に対してテスト担当者を一人付けるべき』
  • サービス終了のお知らせ

    平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 件に関するお問い合わせはこちらよりお願いいたします。

  • a = a + 1; /* って違和感あるはずなのに */ : 404 Blog Not Found

    2009年07月10日15:00 カテゴリLightweight Languages a = a + 1; /* って違和感あるはずなのに */ ここまでは、いい。 だれでもわかるプログラミングの教え方もある……といいな - 狐の王国 じゃあ「c = a + b」はどうなるのか。 これはcという新しいバケツを用意し、aとbを足した数字を入れろという意味だ。ところが、 a = a + 1; でまともに数学を習った人ならつっかかるはずだし、実際つっかかるなのに、ほとんどの言語が代入演算子として=を採用しているのはなぜなのだろう? いや、私だってこれがFORTRAN由来だってことは知っている。私が知りたいのは、これが数学から見ても自然言語から見ても不自然なのに、ことプログラミングに関しては、なぜこれが自然になってしまったか、ということ。 代入に、=を使う必然性が全くないことは、それを使わぬ言語も

    a = a + 1; /* って違和感あるはずなのに */ : 404 Blog Not Found
    invent
    invent 2009/07/10
    改めて考えると不思議だ。
  • Efficient data transfer through zero copy

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Efficient data transfer through zero copy
  • はてなハイク サービス終了のお知らせ

    invent
    invent 2009/06/01
    『こんなコードは見たくない。CommentsAdd Stararuiha_shikashidhalmel関数名がgetで始まるのに返り値がvoidだった。』
  • プログラムは読む時間の方が長い - 遥か彼方の彼方から

    雑記プログラムは書く時間よりも読む時間の方が圧倒的に長いはずです。技術書を読まなくても、趣味でプログラムを組まなくても、読んでいる間の方が長い。 学校のプログラムの課題では、どうもこの単純なことに気づけてないのかなーという人がちらほらといます。確かに、提出さえすればプログラムを修正することはないかもしれない。また、コードの可読性は評価につながらないかもしれない。とにかく動くプログラムを作りさえすれば、それでいい。でも、そういったプログラムでも、やっぱり読む時間の方が長い。 はっきり言って、タイピングに掛かる時間なんてのはたかがしれてます。しかも、課題で出るようなプログラムなんてまず1000行もいかない。例え一指打鍵でも、誤差レベルにしかすぎない。 いっさい躓くことがなく、頭の中で完璧にコードの全景が見えていて、脳内メモリが豊富にあり、記憶力に自信があるなら、可読性はかなぐり捨てても良いか

    invent
    invent 2009/05/27
    『バグは潰すことよりも、出さないようにする方が大切』
  • プログラミング格言集

    psychopathより。 金言、格言は古今東西いろいろあるのだが、ここではプログラミングに関する格言がまとめられていたので、抜粋して翻訳してみる。翻訳に間違い等があった場合は、コメント等で指摘してください。 We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil 私たちは、時間の約97%を占めるわずかな効率に関しては忘れるべきである: 時期尚早な最適化は諸悪の根源だ。 - C. A. R. Hoare Walking on water and developing software from a specification are easy if both are frozen 水の上を歩くのと、仕様に基い

    invent
    invent 2009/05/17
    『PHPは小さな悪であり、それは無能なアマチュア達によって創られた。Perlはすばらしく油断のならない悪でありã€
  • CとC++は似たようなモノか? | スラド

    ストーリー by makeplex 2009年05月16日 22時52分 違和感がないならまだ初心者ということか? 部門より プログラミング言語のカテゴリ分けで、CとC++は一緒にされることが多い。Q&AサイトやSNS等でも「CとC++」というように同類視されている。 先日の当/.jpのアンケートでも、プログラミング言語に関する設問はこうなっている。 □C/C++ □C# □Objective-C CプログラマとしてはCとC++を一緒にされて迷惑している。実際, ネット上での質疑応答でも「まず CかC++どっちの質問?それを書いてくれないと答えられないよ」ってのが最初の応答だったりもするし。 個人的には、言語の「同類度」という観点では Cだけ別にしてオブジェクト指向という共通点がある C++/ObjectiveC/C#を一緒にするほうが妥当に感じるのである。 言語のグループ分けの際にどれと

    invent
    invent 2009/05/17
    『実際, ネット上での質疑応答でも「まず CかC++どっちの質問?それを書いてくれないと答えられないよ」ってのã
  • きれいなソースコードを書くために必要な、たったひとつの単純な事 - よくわかりません

    「構造のきれいなプログラムを書けるようになるためにはどうすればいいのか?」という質問を受けたので、「はて?どうしているだろうか?」と考えてみました。あ、形式知にきちんとなっているようなテクニックみたいなもんじゃなくて、モノローグなので、あまり凝ったものは期待しないように。 http://blog.shibu.jp/article/28983162.html 自分なりにもっと凝縮版を。渋川さんが言っている事全体もその通りとは思うけど*1、もっと簡単で、しかも射程が広い、と自分が思っている事。 渋川さんはちょろっと触れてるだけだけど、自分はこれが最も基的で汎用的、かつ、ソースをきれいにする原動力となる上にバグをも減らしてコードの汎用性まであげる、コーディングのエンジンみたいなものと思ってる。それは、 「すべてに正しい名前を付けて、そして、正しい名前であることを維持する」という鉄の意志 クラス

    きれいなソースコードを書くために必要な、たったひとつの単純な事 - よくわかりません
    invent
    invent 2009/05/11
    適切な名前をつけるのが大切。
  • どの言語を美しいと思うか: それほど間違ってないプログラマ用語辞典

    最近、私はPerlをポチポチと勉強しつつ、Rubyなんかも使ったりしている。 そうやって久しくやってなかった(そしてそれほど手に馴染んでもいない)言語を触っていると、自分が何を美しいと思うか、傾向が見えてくる。 それで……なんというか……あれだ、私はJavaを美しいと思ってしまったりしているのだ。static importとアノテーションは蛇足に見えるが、genericsは心地良いと思う、そういう人種だと気づかされてしまったわけだ。 どうか石を投げないで欲しい。FやUが付く言葉で罵ってブラウザを閉じないで欲しい。書いている私だって頭を抱えたくなっているのだ。 PerlRubyはどちらも怠惰な言語(これは良い意味の言葉だと確かリャマに書いてあった)なので、それを使っていると生真面目な言語に対する心に気づかされてしまう。そういうこともあるということだ。 では、私が怠惰な言語を嫌っているか

    invent
    invent 2009/05/04
    『怠惰な言語は揺れやすく、そして揺れ幅の中に「人が読めない物の怪」を作り出す可能性がある。私は意識の