タグ

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

  • 「RESTful MVC」なアーキテクチャの話

    最近、増井君と私でアーキテクチャの話をすることが多いのだが、そんなディスカッションの中で気に入っているのは左の図のようなアーキテクチャ。 もちろん、核となるのはビジネスロジックを含んだModelの部分。そこをしっかりと実装し、内部構造を隠す粒度の荒いインターフェイスを定義し、外から何をされてもデータの整合性が壊れない様にすることは何よりも大切。 そして、そのModel層へのインターフェイスを特定の言語に依存したクラスやAPIではなく、HTTP上でJSON(XMLでもかまわない)をやりとりするだけの RESTfulなWeb Serviceにすることがミソ。こうすることによりにより、どんなに締め切りに負われようが、誰がControllerを実装しようが「ずるができない」ように作っておく(ずる=来使うべき外部インターフェイスだけでなく、Model内部に直接アクセスして依存関係を作ってしまう事)

    「RESTful MVC」なアーキテクチャの話
    shinfukui
    shinfukui 2009/10/18
    興味深い考察だが、MVCのMをサービスとして露出するのは下策だと思う。ファサードなりをCとしてかますべき。RESTfulだからといってMを直接露出させる必要はない。それをするならそれこそActiveRecordを使った方がいい。
  • Ruby on Railsの「えせMVC」の弊害

    先日のエントリーでも少し触れたが、Ruby on Railsの最大の問題点は、それが持つ「一見そのフレームワークがMVCの形をとりながら、MVCの最も大切なところを外している『えせMVC』である」点にある。MVC(Model View Controller)がなぜ必要かを根底の部分でちゃんとと意識せずにRailsアプリケーションを作ると、後々ひどい目に会うので注意が必要である。 その意味では「RailsでMVCを学ぶ」などもっての他だし、「JavaにもRailsと同じようなフレームワークを作って業務用アプリの開発を効率化しよう」などという発想もとても危険である。 ということで、今日はまずはMVCの解説から。 MVCの発想の根底には、「モジュール化と情報の隠蔽により、プログラムがスパゲッティ化するの(コード間の相互依存関係が複雑に入り込んでしまってにっちもさっちも行かない状態になること)を避

    shinfukui
    shinfukui 2009/10/12
    正直、RDBのレコードをオブジェクトに自動マッピングしてくれても、なんにも嬉しくないと昔から思っている。ある程度の規模のシステムに必要なSQLはそんな単純なものじゃない。
  • プログラミング言語の特徴を、実行速度と簡潔さで見る

    プログラミング言語にはさまざまな種類、CやJavaPerlなど、が存在します。理想的なプログラミング言語の定義は条件やプログラマーの好みによってさまざまだとは思いますが、やはり実行速度が速いこと、できれば簡潔に記述できた方がよい、という条件に同意する方は多いのではないでしょうか。 さまざまなプログラミング言語のベンチマークを実行し、その結果を報告しているWebサイト「The Computer Language Benchmarks Game」を紹介しているのが、ブログ「Radium Software」の記事「プログラミング言語の特徴を視覚的に比較する」です。 「The Computer Language Benchmarks Game」では、ベンチマークの結果とそのコードの関係をグラフにした「interpret scatter plot shapes」というWebページが公開されています

    プログラミング言語の特徴を、実行速度と簡潔さで見る
    shinfukui
    shinfukui 2009/10/03
    ScalaよりJavascriptの方が簡潔?
  • Chapter1 C# 3.0らしいプログラミングとは?(1/10) - @IT

    同書籍は、もともとフォーラムにて連載していた『C# 2.0入門』、『C# 3.0入門』の記事を整理統合し、加筆、修正されたものです。 手元でまとめて読みたい方は、ぜひ書店などにてお買い求めください。 【注意】記事は、書籍の内容を改変することなく、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。 はじめに 冒頭からあえて断言しよう。 オブジェクト指向プログラミングに関する書籍やネットの情報の9割は間違いである。正確にいえば、根拠のないあやふやな思い込みが事実として書かれている。いわゆる“トンデモ”である。 トンデモの最も典型的な特徴は、「クラス」によってプログラムのすべてを表現し、現実に存在する「もの」と「オブジェクト」を対応付けることですべてうまくいくという主張だろう。 しかし、そのような主張がされてから軽く十年以上た

    shinfukui
    shinfukui 2009/08/01
    内容と目次(予定)に期待しているが、Chapter1に関してはちょっと力が入りすぎだと思う。
  • プログラミングできる人とできない人との間の深い溝 - masatoi’s blog

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

    プログラミングできる人とできない人との間の深い溝 - masatoi’s blog
    shinfukui
    shinfukui 2009/07/09
    パターン認識能力ってことかな? 確かにそれが無いと構造化もできないし、オブジェクト指向でも躓くだろう。/ この試験でdropした人の適性率も調べて欲しい。これって単に「ソースコードに対する耐性」ってだけでは?
  • fladdict » アプリケーションにおけるデザインの重要性

    WWDC出てAppleの中の人や、成功したアプリの製作者が口をそろえて言うことは、「これからアプリはデザインがもっとも重要で、開発時間の大半をデザインに充てるべきだ」、ということだった。 1年ほど自分で製作してみた実感でも、テクノロジーはそれほど重要ではない印象。 いわゆるFlexとかRIA系の世界では、デザイナーのポジションはUI設計と切り離されて、単なるスキン屋に甘んじてることが多いとおもう。 しかしiPhone系だと、ぶっちゃけデザインがウンコだと、メディア露出だけで力技で殴り勝てるアプリじゃない限り、まず成功することはありえないと思う。 iPhoneは市場が小さいからまだ当面予算が低いのがアレだけど、最終的にはこういう生活に密着したアプリケーションは、通常のウェブサイトやアプリケーション以上に積極的にデザイナーが設計にコミットして、もっと単価要求すべきな気がする。 これはアプリケー

    shinfukui
    shinfukui 2009/06/14
    むしろこれまでがデザイン重視でなさすぎた。
  • 2008-01-27 - flashrod - AS3では関数の引数はすべて値渡し(call by value)である

    友人宅の犬を3Dスキャンさせていただいて3Dプリンタでフィギュアを作った タイトル通りの記事です。初めて生き物を3Dスキャン&3Dプリントしてみて面白かったので備忘録として記事に残しておく。 以下が今回の成果物です。 .@ken_c_lo さん @tatsuoSakurai 宅のおもちを3Dスキャンさせていただいて3Dプリンタでフィギュアを作りました!リビン…

    2008-01-27 - flashrod - AS3では関数の引数はすべて値渡し(call by value)である
    shinfukui
    shinfukui 2009/05/15
    よくある誤解。この説明だと、AS3に限らず全ての言語で関数の引数はcall by valueになる。call by referenceとは、ポインタを引数に渡すことを指す概念。題材にstringを使ってるのがまた話をややこしくしている。
  • 良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog

    Java並行処理プログラミングを読み終えた。ここ 1 年に読んだ技術書の中でダントツのベスト。(2位はWorking Effectively With Legacy Code) 「Javaだから関係ない」と思った人にこそ読んで欲しい。僕もここ数年 Java のコードなど一切書いていないが、このを読んで得たものは非常に大きかった。 このでは マルチスレッドプログラミングにおける問題と背景、その対処方法 Java が提供している API の設計と実装 を解説している。分かりやすさとレベルの高さを兼ね備えたとても良い。翻訳も最高。 僕はこのを読んで、Java の並行処理プログラミングは、想像を遙かに超えて進化している事に驚きを隠せなかった。何回も twitterJava すげーと叫んだ。 これを読んでしまうと、最近僕が熱心な Scheme も含めて、自分の身の回りにあるプログ

    良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog
    shinfukui
    shinfukui 2009/03/27
    java.util.concurret.*の作者が書いているのか。ちょっと気になる。持ってる人、今Amazonマーケットプレイスに出せばプレミア価格で売れるよ!
  • PHPはそのニセ科学的な文化が問題なのでは? - よくわかりません

    もうおまえらPHPerは正規表現をブログにうpするんじゃねえ! と言われても無理もなくなってしまうのではないか。 http://blog.livedoor.jp/dankogai/archives/51189905.html 弾さんの咆哮に対して、「PHP関係ねぇ!十把一絡げにすんな」的な反論がブコメでもチラホラ見られる。それは正論だし、当然ちゃんとしたPHPerも少なからず居るはずだと思う。だけど、あえてそれを無視して暴論を。 PHP周辺が、ハッカー達から蔑ずまれ叩かれやすいのは、単に正規表現が間違っていたかという単体の事象達が問題なんじゃなくて、そういう事象を生み続けるPHP文化圏、そこに属する人達の態度が誠実でない傾向が原因じゃないだろうか。 彼らは、プログラミングに関わる諸問題を科学的に研究してきているコンピューターサイエンスに対して、リスペクトも関心も払わず、対象の問題内容もろ

    shinfukui
    shinfukui 2009/03/21
    嫌いなのはPHPじゃなくて初心者でしょ?PHPがなくなったら、別の言語が取って代わるだけだと思うよ。初心者が求める言語というのはそういうもの。初心者お断りの言語よりはいいと思うけど。
  • 中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント - 分裂勘違い君劇場

    「変数のスコープは狭いほど良い」と妄信する 変数でもメソッド名でもクラス名でも言えることだが、単純に「スコープは狭いほどよい」という方針でプログラムすると、逆に保守性も可読性も悪いプログラムができあがることがけっこうある*1。 実際、「あちこちから頻繁にアクセスするようなオブジェクトやメソッド」は、スコープをぐっと広くしてしまった方が(場合によってはグローバル変数やグローバル関数にしてしまった方が)、いちいちパラメータ渡しのバケツリレーをせずに、オブジェクトや機能を使うことができ、プログラムの可読性も保守性もずっと向上することがけっこうある。 たとえば、プログラムのいろいろな箇所から比較的頻繁にアクセスする必要があるようなオブジェクトや機能がバインド(格納)された変数やメソッドのスコープをクラスやメソッド内のローカルにして、それを使うときは、いちいち各クラスやメソッドにパラメータ渡しのチェ

    中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント - 分裂勘違い君劇場
    shinfukui
    shinfukui 2008/10/26
    「何の為に」の説明がいるが、初心者にはやはり「こうしろ」が必要では。スコープの話は「狭い方がいい」は大原則だと思う。広いスコープが必要ならその中で出来るだけ狭くする。広い=スーパーグローバルでもない。
  • オブジェクト指向をわかりたいなら今すぐ『オブジェクト指向でなぜつくるのか』を読め - 思っているよりもずっとずっと人生は短い。

    オブジェクト指向の入門書と言えば『オブジェクト指向でなぜつくるのか』に決まってるよね、と話していたら、「ええ、そうなんですか?」と、このに推薦のことばを寄せていた平鍋さんの会社の人に言われてショックでした。ちょっと駄目すぎです。角谷さんなんとかしてください(<無茶振り)。 オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識― 作者: 平澤章出版社/メーカー: 日経BP社発売日: 2004/06/03メディア: 単行購入: 34人 クリック: 448回この商品を含むブログ (198件) を見る 私もご他聞に漏れず、オブジェクト指向のはいろいろ読んでみたのですが、『オブジェクト指向でなぜつくるのか』に勝るは内外合わせてまだお目にかかれていません。率直に言ってプログラマ必読書だと思います。 その素晴らしさは随所にあるのですが、章立てに追って説明しましょ

    オブジェクト指向をわかりたいなら今すぐ『オブジェクト指向でなぜつくるのか』を読め - 思っているよりもずっとずっと人生は短い。
    shinfukui
    shinfukui 2008/07/28
    だいぶ前に学生に買い与えたが、今だに誰も手をつけておらず机の片隅に放置状態。
  • プログラミング未経験者が JavaScript でプログラミングを始めるまでに必要なこと - IT戦記

    (執筆中) (文章の練習も兼ねてぐだぐだと執筆中、現時点で読んでも日語になってないと思います。) (執筆途中だけど、こうしたらいい!とか、アドバイスがあれば教えてください><読者みんなが編集者!とか言ってみる) (あ、はてな記法のパッチを送ってくれてもいいです^^) (ちょっと、 Shibuya.JS in Kyoto → PHP カンファレンスがあるので、次の更新はそれ以降になるかも) 自分の知り合いに「まったくのプログラミング未経験だけど、自分のウェブサイトを作ってみたい!」という人がいるので、プログラミングを始める前に必要な知識や心構えや準備などを書いておこうと思います。もちろん、最初に使う言語は JavaScript です。 この文章は、プログラミングまったくの未経験者が読んで分かる文章を目指しています。もし、分からない部分がある場合は指摘してください。聞いてください。自分で調べ

    プログラミング未経験者が JavaScript でプログラミングを始めるまでに必要なこと - IT戦記
    shinfukui
    shinfukui 2008/07/15
    「一つのキーワードに対して、違う言い回しで矛盾のない解説が何度も何度も書かれている文章」/そうそう。これが難しいのよね…。
  • 学生の知的好奇心を誘発するプログラミングコンテンツの検討

    shinfukui
    shinfukui 2008/06/30
    学生の知的好奇心を誘発するプログラミングコンテンツの検討.pdf
  • プログラミングに苦手意識を抱く学生を対象としたプログラミング授業の提案

    概要 慶應義塾大学湘南藤沢キャンパス(以下、SFCと略す)では、プログラミングの授業の履修がほぼ必修となっている。しかし、授業履修後に自力でプログラムを書けるまでになる学生の割合は極めて低いといえる。授業履修後プログラムを書けるようになる学生と書けない学生の違いは何であろうか。 その理由の一つとして、‘プログラミング’をパソコン・ツールの一つとして捉え、履修前に既に苦手意識を抱いてしまっていることが挙げられる。 しかし、私は全ての学生にプログラムを書けるようになってもらいたい。なぜなら、プログラミングというのは、計画・実装・評価・再構築のプロセスを指すのであり、そのプロセスは、コンピューターの世界のみに限らず、‘ものをつくる’ということ全てに共通しているからだ。 そこで、プログラミングに苦手意識を抱いていた私自身の経験から、学生がプログラミングを苦手とする原因を分析し、それに対してどのよう

    shinfukui
    shinfukui 2008/06/30
    「、プログラミングの本質である「行動計画」を立て、実装し、評価、再構築を繰り返すプロセスというのは、なにもコンピューターの世界に限ったことではなく、‘ものをつくる’上で共通するプロセスである。」
  • はてなブログ | 無料ブログを作成しよう

    27年ぶりのYUKIライブ 2024/8/11。僕は埼玉の戸田市文化会館で行われた”YUKI concert tour “SUPER SLITS” 2024”に参加した。前にYUKIの歌声を聴いたのは1997/05/27の代々木第一体育館。実に27年の歳月が経ってしまった。 なぜそんなに間が空いたのか。なぜ、それでも参加しようと思ったのか…

    はてなブログ | 無料ブログを作成しよう
    shinfukui
    shinfukui 2008/05/18
    また「プログラミングそのものが目的の人々」の話か。/あと、Webのクライアント側技術を置いといて「Webプログラミングはつまらない」って、そりゃスープなしでラーメン食ってるようなもんでしょ。
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    shinfukui
    shinfukui 2008/05/01
    デザインとは五感に働きかけるソリューション。エンジニアリングとは自動化によるソリューション。特にウェブではそれらが交わることが多いですね。求められる資質の殆どは同じだと思います。
  • 僕がRubyをやめたわけ - ひがやすを blog

    私は気が付いてしまいました。Ruby の動的型付けは多くのエラーを引きおこすことに。そして、安心してデプロイするためには 95% ものテストカバレッジを達成しなければいけないことに。95% のテストカバレッジを得ることの代償として、私の書いたコードは(テストコードも含めて) Java で書いたものと同等のサイズにまでふくれあがってしまいました。その上、Rails では動的なコードの変更が可能なため、開発・テスト・デプロイ中にトラブルが続出するようになりました。高いテストカバレッジを確保しているにも関わらずです。これらの問題にくわえて、MRI(Matz Ruby Implementation: まつもとゆきひろ氏による Rubyの実装)は速度が遅く、言語仕様も安定していません。それなのに開発コミュニティはそのことに見向きもしません。 liftを開発した人へのインタビューなんだけど、ちょっとひ

    僕がRubyをやめたわけ - ひがやすを blog
    shinfukui
    shinfukui 2008/04/05
    他人のスキルのなさを言語のせいにするやつについてははどう?
  • MOONGIFT: » 必見!GUIアプリケーションもこれでWeb化?「Jsc」:オープンソースを毎日紹介

    ※ 画像は公式サイトデモより このソフトウェアはすごい。やりたいことも、できていることも分かるのだが、どうやっているのかがさっぱり分からない。GUIアプリケーションとWebアプリケーションでは越えられない壁が存在すると思っていた。いくらAjaxやJavaScriptを駆使しても、GUIアプリケーションの操作性にはかなわない。 ギャラリーアプリケーション だが、それさえも軽々と乗り越えてしまいそうなアプリケーションが登場した。 今回紹介するオープンソース・ソフトウェアはJsc、C#やVisual BasicのコードをJavaScriptにするソフトウェアだ。Sourceforge.net上でのライセンスはPublic Domainとなっているが、ダウンロードできるパッケージに含まれるlicense.txtには個人利用に限るフリーウェアとなっているので注意されたい。 実際、そのようなことができ

    MOONGIFT: » 必見!GUIアプリケーションもこれでWeb化?「Jsc」:オープンソースを毎日紹介
    shinfukui
    shinfukui 2008/04/04
    ええええええええ。/ .NETのライブラリまで変換するわけではなさそう。専用ライブラリを使ったバイトコードを変換する模様。それでも便利。
  • C/C のポインタの機能--参照渡し - page2 - builder by ZDNet Japan

    ポインタとは ポインタはC/C++言語の特徴的な機能のひとつである。ポインタ(pointer)を直訳すると「指し示すもの」であり、別の変数や文字列定数の場所を指し示すために使う。また、ポインタを指すポインタ(ポインタへのポインタ)というものも存在する。 このページをお読みいただいている読者にあっては、「C言語 ポインタ」「C++ ポインタ」などのキーワードでWeb検索をしたことがあるかもしれない。そうするとポインタに特化した内容の書籍をいくつか見つけられる。それだけ奥が深い機能ということである。 ポインタの用途 では、ポインタはどんなところで使われているのだろう。C/C++言語では、あらかじめ定義されている関数が多数存在するが、その一覧には、*(アスタリスクあるいはアステリスク)が付いているものをよく見かける。 これらはポインタを表し、主に文字列の操作やファイルをはじめとするデータの入出力

    C/C のポインタの機能--参照渡し - page2 - builder by ZDNet Japan
    shinfukui
    shinfukui 2008/04/01
    Cから離れて久しい自分でも、見た瞬間にオイオイと思ったが…。さすがに言い訳しようの無いミスだなぁ。見直した後も気づいていないっぽいのが…。なんかこの人の今後のことを考えると逆に気の毒になってきた。
  • Visual REGEXP : a graphical explorer for your regexps

    Introduction Tired of debugging your regular expressions ? Do you want to quickly build efficient regexps ? Visual REGEXP is for you ! This software will let you design your regexps by letting you type the expression and visualize its effect on a sample of your choice. The screenshots below illustrate this concept (click to enlarge): Download Standalone for Windows To following executable is a sta

    shinfukui
    shinfukui 2008/03/25
    これは嬉しいなぁ~。いちいちprint文デバッグしなくて済むや。