タグ

ブックマーク / nowokay.hatenablog.com (7)

  • オブジェクト指向には、カメラがやっとついたころのガラケーのイメージがある - きしだのHatena

    某所でオブジェクト指向についていろいろ書いたのでまとめておく。 問題意識としては初学者がなにかというと「オブジェクト指向できるようになりたい」のようなことを言うけどそこまでの優先順位でがんばるものではないんでは、というところです。 まず前提として、オブジェクト指向は1980-2000年くらいに流行って発達したものの、それ以降は時代にあわせた進歩はしていない20年以上前の技術ってのがあります。 そのころは今だとCPUのキャッシュにも満たないようなメモリをやりくりしてプログラムを書く必要があったので、オブジェクト指向はメモリ上のデータをコピーすることなくうまく使いまわせるようなプログラム技術になっています。 そしてオブジェクト指向にはそこから目だった更新はなく、タイトルに書いたように、カメラがやっとついたくらいのガラケーのような古い技術という感じがします。 オブジェクト指向について、アプリケー

    オブジェクト指向には、カメラがやっとついたころのガラケーのイメージがある - きしだのHatena
    tenkoma
    tenkoma 2021/01/21
  • アルゴリズムの勉強のしかた - きしだのHatena

    この記事で、アルゴリズムの勉強はアルゴリズムカタログを覚えることじゃないよということを書きました。 プログラムの理論とはなにか アルゴリズムの勉強というのは、スポーツで言えば腕立て伏せや走り込みみたいな基礎体力を養うようなもので、「ソートなんか実際に自分で書くことないだろう」とかいうのは「サッカーは腕つかわないのに腕立ていらないだろう」とか「野球で1kmも走ることなんかないのに長距離の走り込みいらないだろう」とか言うようなものです。 Twitterでアルゴリズムの勉強とはなにかと尋ねられて、「アルゴリズムの基的なパターンを知って、それらの性質の分析のしかたをしって、いろいろなアルゴリズムでどのように応用されているか知って、自分が組むアルゴリズムの性質を判断できるようになることだと思います。 」と答えたのですが、じゃあ実際どういうで勉強すればいいか、ぼくの知ってるからまとめてみました。

    アルゴリズムの勉強のしかた - きしだのHatena
  • プログラマになるための勉強をしている人の前で話をしてきた - きしだのHatena

    イデアルITスクールというところで、1時間ほど話をしてきました。 プログラマとしてやっていくために大事なことというテーマ。 資料を作らずに、というか構想すら練らずにやってしまったので、ここで整理とまとめと補足を。実際にこれをしゃべったというのではなくて、だいたいこんなことをしゃべろうとしてたという内容をかなり盛って書いてます。 当然ですが、プログラマの仕事はプログラムを書くことです*1。 プログラマとしてやっていくためには、どこで動くプログラムを書くか、なにをするプログラムを書くかということを意識することが大事です。 ということで、まずはプログラムが動くところがどう変わったかという話。 1970年代ころは、デバイスを動かすためのプログラムが多かったのではないかと。 あと、ここには書いてないけど、業務アプリはほぼメインフレームで動いてたと思います。 それが、1980年代くらいからパソコンが出

    プログラマになるための勉強をしている人の前で話をしてきた - きしだのHatena
    tenkoma
    tenkoma 2011/09/16
  • どのプログラム言語を選ぶべきか・・・ - きしだのHatena

    PHP-erはダメな言語でいかにまともなものを作るかっていうマイナスからのスタートだし、 JavaScript-erは何もないところで何か動いて楽しいっていう0からのスタートだし、 Ruby-erはRuby好きって言ってるだけだし、 Java-erはJavaの仕様にしか興味がないし。 Scala-erは生ぬるいこと言うと狩られるし、 Smalltalk-erは過去の栄光語ってるだけだし、 COBOL-erは苦労話しか出ないし、 FORTRAN-erはプログラムに興味ないし、 Perl-erは同窓会みたいだし、 Python-erは仲間探すの大変だし、 Erlang-erはどこにもいないし、 C-erは目先の仕事にしか興味ないし、 C++-erはC++の復興にしか興味ないし、 C#-erはWindowsにひきこもるし、 ActionScript-erはAdobe税はらうのに大変そうだし、 O

    どのプログラム言語を選ぶべきか・・・ - きしだのHatena
    tenkoma
    tenkoma 2011/08/31
  • テスト駆動開発が嫌いだ - きしだのHatena

    テスト駆動開発が嫌いだ。 ただし、ここでの「テスト駆動開発」は日で今TDDと呼ばれてる多義的なものじゃなく、「テスト駆動開発入門」にかかれている「テスト駆動開発」。 もっと正確にいうと「テスト駆動開発入門」がミスリーディングをわざと誘ってて有害で嫌い。 テストは、プログラムが正しく動くことは検証できるけど、プログラムが正しいことは検証できない。そのようなテストに設計を依存してしまうと、正しく動くプログラムは作れるけど正しいプログラムは作れない。 設計も含めてテストによって駆動しましょうという「テスト駆動開発入門」のやり方では正しいプログラムが作れない。プログラムの正しさを別のやり方で担保しつつ、そちらを中心に開発を駆動して、あくまでも開発作業だけをテストで駆動するという考え方のほうが、正しいプログラムに近づける。 そして、TDDをいまがんばってる人たちも、それは当たり前にわかってると思う

    テスト駆動開発が嫌いだ - きしだのHatena
    tenkoma
    tenkoma 2011/08/27
  • NetBeansのメモリ使用量グラフからわかること - 2011-02-19 - きしだのはてな

    NetBeansでは、メニューの「表示 > ツールバー > メモリー」でメモリ使用状況をツールバーに表示させることができます。 けど、ここでは、もう少し詳しくメモリの使用状況を見るために、JConsoleを使いましょう。JConsoleは、Javaのプログラムの実行状況を見るための管理ツールです。 JConsoleプラグインのインストール JConsoleを使うには、JAVA_HOME/bin/jconsole.exeなどを起動すればいいのですが、せっかくなのでNetBeansからJConsoleを起動できるように、プラグインを入れてみましょう。 メニューの「ツール > プラグイン」を選択してプラグインダイアログを開いて、「使用可能なプラグイン」のタブから「JConsole」を選択してインストールしましょう。 そうすると、JConsole起動ボタンがツールバーに表示されるので、クリックして

    NetBeansのメモリ使用量グラフからわかること - 2011-02-19 - きしだのはてな
  • RDBMSの時代の終わりが見えてきた - きしだのはてな

    クラウドと一緒にやってきたもの 最近、クラウドが流行ってます。 GoogleMapResuceから始まって、MicrosoftのAzureまで、大手のクラウド製品が出揃った感じ。 で、そこで、こんなクラウド製品が出ましたというときに、必ずといっていいほどそのクラウド用のデータベースの説明があります。そして、それはRDBMSではありません。 GoogleだとBigTable、MicrosoftだとSQL Data Services、あとはAmazonSimpleDB。どれも、基的にはひとつのテーブルにハッシュコードでアクセスするようになっています。 ほかのクラウド製品も、Oracle Coherenceだったり、楽天のRomaだったり、非RDBMSのデータストレージを提供します。 クラウドというわけではないけど、mixiのTokyo TyrantやApache CouchDBも、RDB

    RDBMSの時代の終わりが見えてきた - きしだのはてな
  • 1