タグ

ブックマーク / bugrammer.hateblo.jp (4)

  • 今日のポエム: なぜ、その抽象化は失敗してしまうのか - Line 1: Error: Invalid Blog('by Esehara' )

    近況 打ち捨てられた過去について 要旨 この記事を興味深く読む一方で、やはり違和感を覚える人も多くいるようで、自分もその一人だった。恐らく、この違和感は、「抽象化」が「具体性を奪取していくもの」といったような対立項として述べられているからだ、というように思われる。しかし、果たして具体性無しに「抽象化」することが有益なことなのだろうか。それが一つの違和感のように思われる。 文 プログラミングの世界には、YAGNI原則(You ain't gonna need it)というものがある。また、YAGNIという言葉を使わなくても、「過度な汎用化が足を引っ張る失敗例」というのは、プログラマとしての心構えを書いたの中で、ちらほらと自嘲気味に述べられることがある。 僕も、一度そのような失敗例を見たことがあるけれど、なぜこういう失敗が起こるのか。確かにデザインパターンで組み立てられたアーキテクチャは「

    今日のポエム: なぜ、その抽象化は失敗してしまうのか - Line 1: Error: Invalid Blog('by Esehara' )
    t-wada
    t-wada 2015/08/06
    "基本的には、なんらかの「抽象化」というのは、それを「如何にして利用するか」という側面から抜け出せないのではないか。そこから離れると、途端に悪い抽象化が入り込んでくるのではないか"
  • Webサービスのプログラミングに必要なことのだいたいは、スクレイピングに学んだ - Line 1: Error: Invalid Blog('by Esehara' )

    この記事を読み始める前に Rubyでやるんだったら、ちょうどそういうが出ているから、その買えばいいのではないでしょうか。 Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例 作者: るびきち,佐々木拓郎出版社/メーカー: SBクリエイティブ発売日: 2014/08/25メディア: 大型この商品を含むブログ (1件) を見る はじめに プログラミングを勉強し始めて、だいたい基礎的な文法を覚えたあとに、次に何をしようかな、と悩む人も結構多いみたいで、明確に「これを作りたい」という場合は、それを作ればいいとは思うんですけど、場合によっては、別段作りたいものが無く、漠然としたプログラミングをしたい、という熱意によって勉強しているという人もいるのではないかと思います。 で、もちろん「作りたいものがないのに、プログラミング勉強してどうするの」という意見もあるかとは思いますが、往

    Webサービスのプログラミングに必要なことのだいたいは、スクレイピングに学んだ - Line 1: Error: Invalid Blog('by Esehara' )
    t-wada
    t-wada 2014/08/30
    プログラミングの入門にスクレイピングが良いのではないかという話。確かに難易度のカーブがなかなか良さそう
  • ユニットテストを書かないことについて - Line 1: Error: Invalid Blog('by Esehara' )

    はじめに 最近は、同じ職場で働いている人に対して、『テスト駆動開発入門』のを貸したり、自分自身でも全く更地のところにユニットテストを書くという作業をやったり、あるいは実装中にもユニットテストを書かないと、コードを書く手が少し滞ってしまうくらいには、テストに依存している自分がいる。 さて、ここ最近で一連のテストの話が各方面から出ていて、それらの議論について興味深く感じる一方で、たとえば自分はそうだけど、「執拗にテストを書いているけれども、これで前に進んでいるんだろうが」という罪悪感みたいなのを抱えている人というのは、それなりにいるんじゃないかと。特にユニットテストを腐らせて、テスト自体を負債にしてしまった人であるなら特に。 ここ最近の、アジャイル開発であったりとか、あるいはプログラマのためのみたいなのを開いたりすると、たいてい「他のことは良いからテスト書け」と載っている一方で、見回してみ

    ユニットテストを書かないことについて - Line 1: Error: Invalid Blog('by Esehara' )
    t-wada
    t-wada 2014/01/14
    "ソフトウェアには「お金を稼ぐ」ということと「本来掛かった筈のお金を抑える」という側面がある" "ユニットテストは「本来掛かった筈のお金を抑える」ためのものの側面はある"
  • ORDER BY RAND()の代わりを実装する、あるいはMySQLでランダムにデータを取ってくる方法についてのメモ - Line 1: Error: Invalid Blog('by Esehara' )

    こんにちは。相変わらずBookableというサービスをこつこつとやっているのですが、前回に「ORDER BY RAND()を使うと重くなる」という話を書いたところ、知人から「それやめろ」という斧であったり、あるいは他の方面からアドバイスを頂きました(Thanks グニャラくん!)。 なんでORDER BY RAND()がダメなの?という話は、ちょっと息抜きに翻訳したものがあるのですが、まず問題としてMySQLの乱数を生成するコストが高いという問題がある様子。少なくとも全件に対して乱数を発行するし、そして並び替えも発生してしまうので、とにかく非効率であると。だからその辺はMySQLにまかせるのではなく、それを呼び出すプログラム側にまかせたほうが圧倒的に効率がよくなるようです。 例えば、RANDでやると、下のように件数が増えるにつれて負荷が膨大になっていきます。 djangoの場合、元々のOM

    ORDER BY RAND()の代わりを実装する、あるいはMySQLでランダムにデータを取ってくる方法についてのメモ - Line 1: Error: Invalid Blog('by Esehara' )
    t-wada
    t-wada 2013/07/10
    『SQLアンチパターン』の第15章「ランダムセレクション」がまさにこのトピックです。様々な方法が載っているのでぜひお読み頂ければと!! #sqlap
  • 1