タグ

programmingに関するaokcubのブックマーク (45)

  • 意外と知られていない構造化プログラミング、あるいは構造化プログラミングはデータも手続きと一緒に抽象化する、あるいはストロヴストルップのオブジェクト指向プログラミング史観

    意外と知られていない構造化プログラミング、あるいは構造化プログラミングはデータも手続きと一緒に抽象化する、あるいはストロヴストルップのオブジェクト指向プログラミング史観 書いた人: ると 型プログラミング言語史観(1) 〜あるいはオブジェクト指向における設計指針のひとつ〜という記事がありました。手続き型からの発展としてのオブジェクト指向という史観を書いた記事です。しかし、そこで次のように述べられている史観は少々単純化しすぎです。 手続き型プログラミングでは手続きを抽象化することで保守性を挙げることに成功したが、データを守ることには失敗してしまった。そこでオブジェクト指向はデータと手続きをひとかたまりにすることでデータを外から守るというコンセプトを打ち出した。 手続き型プログラミングの時代は、少なくとも思想的にはそこまで暗黒的ではありませんでしたし、「データと手続きをひとかたまりにする」の

  • 猫型プログラミング言語史観(1) 〜あるいはオブジェクト指向における設計指針のひとつ〜 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    TL;DR 手続き型プログラミングでは手続きを抽象化することで保守性を挙げることに成功したが、データを守ることには失敗してしまった。そこでオブジェクト指向はデータと手続きをひとかたまりにすることでデータを外から守るというコンセプトを打ち出した。 ここから、「手続き型プログラミングで書いてるのに手続きが十分に抽象化されていないのはヤバいね」とか「オブジェクト指向で書いてるのにひとかたまりじゃない雑多なデータに関心をもっちゃってるのはヤバいね」などの設計指針を導くことができるのである。そして純粋関数型言語の場合は……という話です。 はじめに プログラミング言語にはいろいろなパラダイムがあるが、その中で手続き型プログラミング、オブジェクト指向、純粋関数型言語について、わたしなりのひとつの史観を示すのがこの稿の目的である。となんかかっこつけて言ってみたんだけど、要するに、それぞれのパラダイムがどん

    猫型プログラミング言語史観(1) 〜あるいはオブジェクト指向における設計指針のひとつ〜 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • Cello • High Level C

    #include "Cello.h" int main(int argc, char** argv) { /* Stack objects are created using "$" */ var i0 = $(Int, 5); var i1 = $(Int, 3); var i2 = $(Int, 4); /* Heap objects are created using "new" */ var items = new(Array, Int, i0, i1, i2); /* Collections can be looped over */ foreach (item in items) { print("Object %$ is of type %$\n", item, type_of(item)); } /* Heap objects destructed via Garbage

  • アニメーションgifを殺して静止画にしたらかっこよかったはなし - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    アニメーション gif って一枚一枚の画像を高速で切り替えてアニメにしてるわけだけど、じゃあ、何枚も画像を切り替えるんじゃなくて、一枚の画像の中で上から順に表示させたらかっこいいんじゃないかなーって思って(伝われ)やってみたら案の定かっこよかったので置いておきます(だれかがもうすでにやってそうな気もする)。 これらが こうなる。 画面全体がすごいうごくみたいなやつはグリッチっぽくなって、画面の一部が動いてるみたいなやつだとミュワンって感じになる。 活きのいいアニメーション gif をフレーム一枚一枚にバラバラ殺人して、さらに個々のフレームもバラバラ殺人して、部品を上から順に並べるみたいな感じなので、anigif_killer.rb という名前にしました。スクリプトを貼っておくので魔改造なりなんなりしてください。

  • 職業プログラマーなら必ず読むべき「Code Complete」 - $shibayu36->blog;

    Code Completeの上下巻を読んだ。 CODE COMPLETE 第2版 上 完全なプログラミングを目指して 作者:スティーブ マコネル日経BPAmazonCODE COMPLETE 第2版 下 完全なプログラミングを目指して 作者:スティーブ マコネル日経BPAmazon 読んだ感想としては、職業プログラマーなら必ず読むべきだなと感じた。 このではソフトウェアコンストラクションに関する話題を扱っている。このの中でソフトウェアコンストラクションとは、詳細設計、コーディングやデバッグ、単体テストなどなど、要求定義が終わった後、ソフトウェア製作に必要なプロセス全般のことを指している。 主なテーマとして、どうやってソフトウェアにおける複雑さを減らすことが出来るのか、について書かれている。そのテーマをいろいろな観点から説明されている。例えば以下の様な観点がある。 上流工程の欠陥による

    職業プログラマーなら必ず読むべき「Code Complete」 - $shibayu36->blog;
  • 状態管理用の変数をインスタンスに持たせるなこのタコって話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    たとえば、今、「ユーザーが方向を入力したらプレイヤーが動くゲーム作りたい」みたいなはなしがあるとする。その場合、モデルクラスはまあシンプルな実装として下のようなものが考えられると思う。 「できたよー」って見せにいったら、今度は「あのさー、『高速移動モード』っていうモード欲しいんだよね。そのモードだと二倍速で動くの」って言われたとする。シンプルにやるとこうなりますね。 「できたよー」って見せにいったら、今度は「なあ、すげえ面白いこと考えたんだけど、『蟹モード』って面白くない?横は4倍速で動くんだけど縦は半分の速度で動くの」とか言われたわけです。あなたは「お、おう」と言って、以下のようにコードを修正しました。 これ、ヤバい感じしますね。破滅の匂いがする。「今度は『よっぱらいモード』欲しいな〜。入力に関係なくランダムに動くの」みたいなこと言われたら確実に複雑さが爆発してメンテ不能になりになり死

    状態管理用の変数をインスタンスに持たせるなこのタコって話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • IDEA * IDEA

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

    IDEA * IDEA
  • 読みやすいコードってどんなものか考えてみた -抽象化と名前重要- - tumblr

    あらすじ 人の綺麗なコードを読みまくると自分のコードも綺麗になっていくのに、イケメンを見続けても僕の顔が良くならないのは何故なの?? 2012-11-30 19:41:20 via web 今まであまり人のコードを読む習慣というか機会というかがあまりなかったのですが、最近になって、デスクの上がヨドバシのiMac売り場みたいと(僕の中で)話題沸騰中の@mitukiiiさんのコードを読む事があり、この人がまたすごく綺麗でスタイリッシュなコードを書くわけで、その時に、綺麗なコードというのはこういう感じに書くものなのかと結構な衝撃を受けたわけです。 またこれも最近なのですが、別の機会で、なんと言いますか、1つの関数が数千行あったり、しかもその内の大部分が共通処理として括り出せるような恐らくはコピペされたであろう部分が大量に入っていたりまぁ不可解な部分の多い、言うなればイケメンを見続けた僕みたいな、

  • ぷろぐらみんぐおさんぽまっぷ

    こういう薄いです 「プログラミング言語の文法を勉強してみたけど、 そのあとどうしよう?どうやったら綺麗なコードが書けて、世の中にあるカッコいいソフトウェアが作れるようになるんだろう?」 プログラミングをするようになってから数年経ち、このようなことをよく聞かれるようになりました。書では、この疑問に対する私なりの答えを示しています。あなたが今手にとっているこのは、初学者のためのプログラミング全般の入門です。と同時に、私がいつも同級生に教えていることのミニまとめでもあります。 対象読者としては「プログラミングを学校で勉強し始めて半年くらい経った学生」を想定しています。「やらされている勉強」に焦りを感じながらも、自分だけではどう進めば良いのかわからない。そう、そんなあなたのための薄いです。 これから非常に浅く広くプログラミングを取り巻く世界をお散歩します。というのは建前で……散歩なんかし

  • 28歳からのプログラマー

    ここの流れで、ウォーターフォール開発/スパイラル開発/アジャイル開発に関する話を書きました。 https://www.facebook.com/masahiko/posts/442480179150002 ご意見、御要望、御質問、ご発注は、Twitterからどうぞw @masahikosatoh

    28歳からのプログラマー
  • Ruby on Railsの「えせMVC」の弊害

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

  • PHPerのMVCの一体どこが間違っていたのか - MugeSoの日記

    メリークリスマス! PHP Advent Calendarもいよいよ24日目に突入です。 昨日はxhprofについてでしたね。僕もパフォーマンスチューニングの際に使っています。手軽に利用できるのでお勧めです。 さて、このエントリーでは表題の通りMVCについて書かせていただきます。これは、PHPカンファレンス2012&WordCamp Tokyo2012合同LT大会で発表した「やはりお前らのMVCは間違っている」で煽るだけだったこの問題をきちんと解説するものです。 この発表資料を公開するとPHPの枠を超えて広く閲覧いただき*1、また多くの方から突っ込みを戴きました。「LTだから」と言って逃げていた回答をして、気持ち新たに新年を迎えようと思います。 MVCとはなんなのか 間違いを指摘する前にMVCがそもそもどういうアーキテクチャであるのかを確認しなければいけません。 MVCは1970年代にパロ

    PHPerのMVCの一体どこが間違っていたのか - MugeSoの日記
  • 超速で開発・リリースするための6つのこと - Cybozu Inside Out | サイボウズエンジニアのブログ

    「サイボウズ・アドベントカレンダー」の8日目です。ちょうど真ん中まできました(これまでの記事一覧)。 こんにちは。kintone 開発チームの刈川です。いきなりですが、皆さんはどのくらいの頻度でアプリやサービスをリリースしていますか? 1週間? 1ヶ月? 1年? 規模によると思いますがクラウドサービスではリリースのスピードが大事です。せっかくいいアイデアを思いついたのに、それを実現するまでに果てしない時間と労力がかかるとしたら…。ユーザの意見を取り入れるまでに半年も一年もかかっていたのでは、ユーザは他サービスに移ってしまうかもしれません。そこで今回は、私たち kintone チームが取り組んでいる「スピーディな開発・リリース」のための手法を簡単に紹介したいと思います。 アイデアを形にする アイデアというのは形にするまでがゴールです。開発現場ではこのことをリリースと呼び、リリースをするまでに

    超速で開発・リリースするための6つのこと - Cybozu Inside Out | サイボウズエンジニアのブログ
  • SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?

    (PgDay2012発表資料) SQLにとって、なぜO/Rマッパーが重要かを説明した資料です。Read less

    SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
  • へ、変態っ!!読めないからやめてっ!bit使ったデータ構造・アルゴリズム実装集 - Negative/Positive Thinking

    この記事はCompetitive Programming Advent Calendar Div2012の2日目の記事です。 12月20日追記: Darseinさんが20日目の記事で、ビット演算についての詳しい説明を紹介してくださっています!必読ですね!!!!:) はじめに Y^´       ∨// /,∠ ,. ' /l/// /, ' , '/ ! | l }´     〈 〉    変  〈/ , ' // ̄`>< /// /// _,.=‐|'"´l l〈  変  / 〈    態.   ∨, '/l|   ,.'-‐、`//`7/  /''"´__ | ハ l丿  態   { 人)   ! !   (/!  |ヽ〈_ ・.ノ〃  〃 /  '/⌒ヾ.! ,' !く   ! !  (_ ト、__/   ヽ、_,.イ    /l l |:::::::```/:::::/...´..

    へ、変態っ!!読めないからやめてっ!bit使ったデータ構造・アルゴリズム実装集 - Negative/Positive Thinking
  • Vimのsnippetについてあまり知らなかったので設定してみたら便利過ぎてつらい - 僕の車輪の再発明

    今までこれを使いこなせてなかったなんて、今までの人生をなかったことにしたくてつらい・・・ vimでneocomplecacheを使用していて、スニペットの候補が来た時にCtrl-kと打つとスニペットが展開されることは知っていましたが、いまいち意識して使えていない状態が続いていました。 とりあえずスニペット使ってみる 追記 一応下のようにプラグインが入っている前提です。 NeoBundle 'Shougo/neocomplcache' NeoBundle 'Shougo/neosnippet' 追記終わり 追記 2013/01/19 現時点でのおすすめ設定も書いているのでそちらも参照 今しているneocomplcache + neosnippetの設定の自分的おすすめ - 僕の車輪の再発明 追記終わり 例えば「PerlVim」で言うと、この記事がかなりの良記事になっていて、そこでもスニペッ

    Vimのsnippetについてあまり知らなかったので設定してみたら便利過ぎてつらい - 僕の車輪の再発明
    aokcub
    aokcub 2012/11/29
    やってみよう
  • OAuthの認証にWebViewを使うのはやめよう

    AndroidからTwitterへアクセスするためのライブラリとして,Twitter4Jが有名です. これを使ってみようと,「Android Twitter4J」と検索すると 認証にWebViewを使った例がたくさん出てきます. ・・・いや,ちょっとまて. それはちょっとまずいだろう. そういうわけでもうちょっと賢い方法を探してみました. 何がまずいのさ 「Android Twitter4J」と検索すると,上位にこんなページが出てきます. Twitter4jを使ってOAuth認証をアプリ内で行う方法 Twitter4j-2.2.xを使ったOAuth認証のコーディング例 twitter4jでツイートする Android+Twitter4JでOAuthするためのソースコード 上のサイトでは次の様は方法をとっています. アプリ内にWebViewを貼り付け WebViewでTwitterの認証画面

  • プログラミングのルール

    自分のルールを twitter に書いてみました。1時間半ぐらいやってたらしい。 * * * 変数名やクラス名に省略した単語でなく正しいスペルのものを使う。 他人のインデントはいじらないが、間違ってるのはなおす。同じインデントシステムを使う。勝手に発明しない。ちなみに、K&R 大域変数は使わない。Singleton も使わない。インスタンス変数経由でパラメータを渡さない。必要な場合のみに使う。 コメントは関数/メソッドの役割に対しておこなう。bug fix comment には例を含める。 測定を伴わない最適化は無意味で間違っている。 xUnit を使う。 修正前のコードを残すようなことはせず、版管理にまかせる。 fprint() ; exit() ; のようなエラー処理をせず、エラー処理ルーチンを呼ぶ。 malloc を裸で使わない。 use case 図から書き始める。 if else

  • ソースコードを表示するためのフォント「Source Code Pro」をアドビがオープンソースで無料公開 - Publickey

    プログラミングやマークアップなど、コーディング作業のときにソースコードを表示する目的で開発されたフォント「Source Code Pro」を米アドビがオープンソースとして無料公開しました。24日(日時間24日深夜)に開催された同社のイベントCreate the Webで発表されました。

    ソースコードを表示するためのフォント「Source Code Pro」をアドビがオープンソースで無料公開 - Publickey
  • オブジェクト指向の設計と実装の学び方のコツ

    1. 学習パターンを実践する オブジェクト指向の設計と実装の 学び方のコツ 2012年9月12日 有限会社 システム設計 増田 masuda@system-sekkei.com Twitter : @masuda220

    オブジェクト指向の設計と実装の学び方のコツ