タグ

ブックマーク / aish.dev (3)

  • Pythonのhasattr()は遅い? - Atsuo Ishimoto's blog

    Pythonには、オブジェクトにある名前の属性が存在するかどうかをチェックする hasattr という組み込み関数があります。 例えば、リストオブジェクトに append という属性が存在するかどうか確認するときは、次のようにかきます。 In [57]: L = [] print(hasattr(L, 'append')) print(L.append) True <built-in method append of list object at 0x7fbc80542d80> リストオブジェクトには append という属性が存在し、メソッドだということ

    Pythonのhasattr()は遅い? - Atsuo Ishimoto's blog
  • N+1問題におけるORMの重たさについて - Atsuo Ishimoto's blog

    tl;dr¶ボトルネックはちゃんと測定して把握しないとダメだよ。 N+1問題¶DjangoRailsなど、ORMを利用するWebフレームワークなどの開発では、よく 「N+1問題」 というのが話題になります。ORMでは、あるモデルが参照している別のモデルを参照するとその時点でSQLが発行されてしまうため、気が付かないうちにパフォーマンスが低下する場合がある、というやつですね。 Django¶例えば、Djangoで次のようなモデルがあったとき、 class Table1(models.Model): text = models

    N+1問題におけるORMの重たさについて - Atsuo Ishimoto's blog
  • プログラムは分割しようという話 - Atsuo Ishimoto's blog

    Python.jp Discordサーバを始めてから、早いものでもう2年ほど経ちました。登録者は2700名ほどで、初心者の質問なんかもちょくちょく流れてきます。 で、結構いろんな質問を見てるんですが、初心者はもちろん、プログラミングを始めてからけっこうたつような人でも、質問の内容がどうも怪しい、という人がいます。コンピュータやプログラミングの知識以前に、なにか問題を解決するときに、解決するための基礎的な手順ができていない感じの人たちです。プログラミングというのはある意味で問題解決の連続ですから、これがうまくできないとなかなか先に進めません。 なかでも、「問題を分割しない人」 というタイプの人が、プログラミングの勉強に苦労している人たちにはかなり多い感じがしています。 独学でプログラミングを覚えると、最初はこういった手法に気が付きにくいかもしれませんから、簡単にやり方を説明してみようと思いま

    プログラムは分割しようという話 - Atsuo Ishimoto's blog
  • 1