タグ

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

  • オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena

    「オブジェクト指向するとプログラムが読めなくなるから禁止」のような話は昔からあって、新しい技術についてこれない人を揶揄するようなニュアンスで使われていましたが、実際にはこれはオブジェクト指向迷路にうんざりした現場での率直な意見だと思います。 オブジェクト指向は、まじめにやるほどプログラムを読みにくくするという性質をもっています。 ※ 使い方次第というコメントついてますが、だからこそちゃんと性質をしっておく必要があると思います。 オブジェクト指向の代表的な指針を3つあげると次のようなものがあります。 オブジェクト同士の連携としてプログラムを組む 単一責務の原則 インタフェースと実装の分離 まず、オブジェクト同士の連携でプログラムを組むと、コードが飛びまくって追いにくくなります。そして単一責務の原則により、小さいクラスが大量に生成されて、追いにくさがさらにあがっていきます。 ダイクストラ先生が

    オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena
    mizchi
    mizchi 2023/02/25
    自分の肌感だとオブジェクト指向であるかどうかより、クラス継承時にprotectedで隠蔽するカプセル化を使いこなせる人類がいない、あるいは他者を信用できないのが問題だと思う
  • 小学校低学年へのプログラミング教育には効果がないと考えたほうがいい - きしだのHatena

    子どもへのプログラミング教育は早ければ早いほどいいというものではない。 最近子どもへのプログラミング教育が話題になることが多いけど、恐らく小学3年生までの子どもへの効果はほとんどなく、小学4年生でもほとんどの子どもには難しいと思う。 人間の知能の発達には段階があって、必要な段階に達していないうちにそれが必要な教育を行っても効果は望めない。 まず、なんでこのエントリを書いたかというと、プログラミングには適した発達段階があるということを知らないと、その発達段階に達する前にプログラミング教育を行って、もちろんプログラミングは出来なくて、その子には適性がないという判断をしてしまうとうことが起きてしまうんじゃないかと思ったからだ。 まだ適した段階まで来てないだけなのにプログラミング教育をして失敗して「この子にはプログラミングができなかった/興味をもたなかった」という実績を作ってしまうことによって、将

    小学校低学年へのプログラミング教育には効果がないと考えたほうがいい - きしだのHatena
    mizchi
    mizchi 2016/01/07
  • ソニーデジタルペーパーを買った。これはいいものだー - きしだのHatena

    発表されたときから興味があって、その値段のせいで買うのを躊躇していたソニーデジタルペーパー、なんかレビューみてたら一瞬気を失っていて、その間に注文してしまっていたようです。 ひとこと。これはいいものだー。 ソニー デジタルペーパー DPT-S1 出版社/メーカー: ソニー発売日: 2013/12/03メディア: エレクトロニクスこの商品を含むブログ (1件) を見る 表示 大きいことはいいことだ。 パタヘネやWEB+DB PRESSが実物以上の大きさで表示できるのは、とてもいいです。これで、アルゴリズムデザインみたいなでかいを裁断する気になります。 ブラウザ機能もあって、文字の多いサイトを読むのにもいい感じ。 通常の大きさのだと見開きで表示できるサイズなのですが、見開き表示のモードがないのが当に残念。 4枚表示でも読めるのですけど、横向きで2枚表示が欲しい。 ただ、電子書籍を読んだり

    ソニーデジタルペーパーを買った。これはいいものだー - きしだのHatena
    mizchi
    mizchi 2014/12/03
  • オブジェクト指向は禁止するべき - きしだのHatena

    プログラムがまだ不慣れな人が「プログラムちょっとわかるようになったけど、まだぜんぜんオブジェクト指向とかできてません」のように言ったり、ちょっと慣れた人が「このソース、ぜんぜんだめ。オブジェクト指向ができてない」にようなことを言ったり、まるで、オブジェクト指向ができてるかどうかがよいプログラムかどうかを表すことになってるようだ。 Javaのアルゴリズムのに、「Javaなのにオブジェクト指向ができていない」のような書評がついているのを見たときには、お前は何を求めてるんだと思ったりもした。 そのようなオブジェクト指向は、窓から投げ捨てるべきだ。オブジェクト指向はプログラムのよしあしの基準にならない。 むだにHogeインタフェースとHogeImplクラスがあったり、むだにnewするだけのcreateメソッドがあったり、どこで値が設定されてるかわからないオブジェクトがひきまわされてたり、ソースコ

    オブジェクト指向は禁止するべき - きしだのHatena
    mizchi
    mizchi 2014/07/18
  • StringBuilderを使ったクソコードはどこまで遅いか - きしだのHatena

    ※ 4/9 11:25 いろいろ計測しなおしてます。こちらも参照 Javaで文字列連結する場合には+演算子よりもStringBuilderを使うべき、という話があるのですが、よく sb.append("[" + data + "]"); みたいなコードをみかけて、あんまり意味ないなーと思ったりします。 あと、 sb.append("title:"); sb.append("[" + data + "]"); みたいに、+演算子を使った一行の式にして sb = "title:" + "[" + data + "]"; としておけば「title:」と「[」はコンパイル時点で最適化されたのに、ってコードもあります。 ということでTwitterJavaでの文字列連結は+を使うべき、ってやったほうが、StringBuilder使ったsb.append("[" + data + "]")みたいなク

    StringBuilderを使ったクソコードはどこまで遅いか - きしだのHatena
    mizchi
    mizchi 2014/04/09
    すごいコメントだ
  • JavaでIDEのアクセッサ生成よりlombokを使ったほうがいい理由 - きしだのHatena

    lombokは、JavaでのアクセッサやtoString、equalsなどボイラープレートなコードをコンパイル時に生成してくれるライブラリです。 ただ、こういったコードの生成は、IDEを使えば自動で行えるので、わざわざlombokを導入するまでもないと考えることもできますが、ぼくはlombokを導入するべきだと考えて、lombokを使うようにしました。 このとき「lombokを導入するべき」と考えた理由を書いておきます。 lombokとは lombokは冒頭でも書いたように、Javaのアクセッサなどを生成してくれるライブラリです。 Project Lombok import lombok.*; @Setter @Getter @AllArgsConstructor @NoArgsConstructor @ToString public class LombokSample { privat

    JavaでIDEのアクセッサ生成よりlombokを使ったほうがいい理由 - きしだのHatena
    mizchi
    mizchi 2013/07/30
  • TDDで「テストばかり書いて間に合うのか?」と質問されたときの正解 - きしだのHatena

    TDDにおいて、顧客などから「テストばかり書いていて間に合うのか?」などと質問されることがあると思います。 そんなときには、後ろからそっと抱きしめて 「そんな質問させてごめんな」 が正解です。 https://twitter.com/kis/statuses/350279800600018944 テスト駆動開発の効果はどのくらいある? − Publickey テスト駆動開発 作者:Kent Beckオーム社Amazon

    TDDで「テストばかり書いて間に合うのか?」と質問されたときの正解 - きしだのHatena
    mizchi
    mizchi 2013/06/28
  • FPGAのおすすめ教材 - きしだのHatena

    ここ最近のエントリを見て、モテたくてFPGAを触りたくなったという人もいるだろうと思います。 ただ、FPGAを触るといっても、どこから始めればいいのか、何を買えばいいかわからない人も多いのではないでしょうか。 そこで、FPGAを触るために用意するもので、おすすめのものをまとめてみます。下書きでずっと放置していたのですが、ばたばたと公開しておきます。 前提としては、今までハードウェアを触ったことのないソフトウェア技術者が、今後FPGAでデータ処理をしてモテるための準備をするということを想定してます。 「まず3万円用意します」 最初に、FPGAの評価ボードが必要です。 いろいろ安い評価ボードもありますが、ある程度最初からデバイスがついていないと楽しくないし、勉強もやりにくいです。また、その評価ボードを使ったテキストも必要になります。 そういう点で考えると、いまはDE0一択になると思います。 D

    FPGAのおすすめ教材 - きしだのHatena
    mizchi
    mizchi 2013/04/07
  • 黎明期のJava入門書の話 - きしだのHatena

    結城さんのJava入門書、「Java言語プログラミングレッスン」がJava7に対応した第3版が出るということで、思い出した話。 まずは出版おめでとうございます、おつかれさまでした。ただ、評価はちょっと厳しめです。 Java言語プログラミングレッスン 第3版(上) Java言語を始めよう 作者: 結城浩出版社/メーカー: SBクリエイティブ発売日: 2012/11/14メディア: 単行購入: 1人 クリック: 7回この商品を含むブログ (8件) を見るJava言語プログラミングレッスン 第3版(下) オブジェクト指向を始めよう 今回の「Java言語プログラミングレッスン」もやはり上巻でif、for、配列、下巻でクラス、インタフェースという構成になっていて、1冊にまとめれなかったものかという感がぬぐえない。 あわせて5040円というのは入門書として高価だし、上巻だけでは役にたたない。 まだ発

    黎明期のJava入門書の話 - きしだのHatena
    mizchi
    mizchi 2012/10/25
    "初期の「Javaは難しい」という評判の1/5くらいはこの本の影響じゃないだろうか。3/5くらいはjava-houseというメーリングリストの高木浩光という人物のせいだと思うけど。
  • 勉強することで何がいいのか実力者がいないことでデメリットはあるか - きしだのHatena

    「この辺を勉強してどういう良いことがあったか教えて欲しい。」というコメントがついてた。 良いこととして、一番は、まあ勉強するのが楽しくなった、ということなのだけど、それは循環してるので置いておいて。 実務的に一番いいのは、プログラムを組むのが楽になったということ。 とくに、質的な間違いが少なくなっていくので、後戻りが減るというのが楽。組んでみたけど動かない、途中でそれ以上組めなくなる、というのが少ない。まあ、ミスはあるので、そこの修正はするけど。 あと、できないことができないとわかりやすい。そのデータの持ち方でそのデータ数でその処理ではその精度の要求は満たせない、ということが原理的に判断しやすくなる。なので、むだな努力をしない。そして、どの条件を緩和すれば要求が満たせるかにも気づきやすい。 初見のライブラリや言語、ツールの理解が早くなる、とかも。 もちろん、前のエントリにも書いたように「

    勉強することで何がいいのか実力者がいないことでデメリットはあるか - きしだのHatena
    mizchi
    mizchi 2012/10/12
  • 人間関係をリアルとバーチャルに区別する意味はあるだろうか - きしだのHatena

    今日ちらっと、「ソーシャルとはリアルの人間関係のことである(キリッ」っていう文章みて、こいつバカじゃねーのって思わなかったことにしておくけど、そういう文章をみたんだ。 それで思った。じゃあリアルの人間関係ってなんだ? この対比で言う場合に、バーチャルのほうはわかりやすい。一度も実際に会ったことがない人との関係。でも、じゃあリアルって? 3年くらいはてなTwitterでお互いを認識して、一度だけ同じ飲み会に参加して5分くらい話をした人とは、リアルの人間関係? メールで仕事をもらって、一度も電話することもなく声を聞くこともなく、メールとチャットで打ち合わせをして、納品して請求書送ってお金を支払ってもらった人は、リアル?バーチャル? お金がリアルだから仕事はリアルだろって?じゃあ仕事の前の打ち合わせだけで仕事が流れたら?Twitterで、なんとなく仕事もらえねーかなーと思いながらつながってるの

    人間関係をリアルとバーチャルに区別する意味はあるだろうか - きしだのHatena
    mizchi
    mizchi 2012/02/08
    リアルはリアルで完結しがちだけど、ネット側は深く斬り込むとリアルと融和して区別する必要がなくなっていくけど、ネットで声が大きいのはそういう人間で、実際の比率とは異なる
  • プログラマになるための勉強をしている人の前で話をしてきた - きしだのHatena

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

    プログラマになるための勉強をしている人の前で話をしてきた - きしだのHatena
    mizchi
    mizchi 2011/09/16
  • Ubuntu設定のいろいろメモ 2011-06-01 - きしだのはてな

    語ディレクトリを英語にする 「デスクトップ」とかディレクトリ名が日語になってて気持ち悪いので英語に。 $ LANG=C xdg-user-dirs-gtk-update Javaフォント設定 Javaフォントの設定がおかしいらしくNetBeansとか起動するといろいろ文字化けするので対策 $ cd /usr/lib/jvm/java-6-sun/jre/lib/fonts/ $ sudo mkdir fallback $ cd fallback $ sudo ln -s /usr/share/fonts/truetype/takao/Takao* ./ PostgreSQL9のインストール 2011/06/04追記 Ubuntu10にこの方法でパッケージからPostgreSQL9入れるとなんか不安定になってしまう 2011/06/07追記 VirtualBoxの問題だったかも。

    Ubuntu設定のいろいろメモ 2011-06-01 - きしだのはてな
    mizchi
    mizchi 2011/06/02
  • 2010-06-18 - きしだのはてな - プログラマとして仕事をするときに勉強したほうがいいもの

    ブログ形式の都合で、6/17のできごとを18日の項に書いてます。 イデアルITスクールというところで3時間ほど話をしてきました。 http://www.ideal-ed.jp/ テーマなしだったのですが、だいたい表題のようにプログラマとして仕事をするときに勉強したほうがいいものについてという内容で話てみました。 特に今回は、これからプログラマとして働くという人たちだったので、高度なことを目指せるようにという視点だけではなくて、たとえばプログラマは生活の糧で休日はプログラム以外に当てるという場合に、高度ではないことを楽に行うという視点も考えてみました。 まあ、結局言うことは同じなのですけども。 話してるときに書いたメモ プログラマとして仕事をするときに勉強することView more presentations from nowokay. で、紹介した。なんどかあげたことあるもの。 まずは、

    2010-06-18 - きしだのはてな - プログラマとして仕事をするときに勉強したほうがいいもの
    mizchi
    mizchi 2010/07/15
  • AndroidでTwitterのタイムラインを表示するサンプル - 2009-10-30 - きしだのはてな

    AndroidTwitterのタイムラインを表示します。HttpClientとJSONとWebViewのいい感じのサンプルになっていると思います。 とりあえずこんな画面定義をしてWebViewを配置しておく。 <?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:id="@+id/twit_button" android:layout_width="fill_parent" androi

    AndroidでTwitterのタイムラインを表示するサンプル - 2009-10-30 - きしだのはてな
  • 1