タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

Pythonとprogrammingとunittestに関するraimon49のブックマーク (16)

  • 自動テストはなぜうまくいかないか?乗り越えるためには何が必要か? - Qiita

    リファクタリングの鶏卵問題 ソースコードがクソなので綺麗にしたい。 リファクタリングしたい。 しかし、リファクタリングが出来ない。 リファクタリングが出来ないのは、テストが無いからだ。 よし。じゃあテストを書こう。あれ、テストが書けない? そのようなテストが無く、書き換えられないことによる矛盾や憤りは皆さん何百回と感じてきたと思います。 しかし、この「テストが出来ない」ということを言語化するのは、非常に難しいと思います。それは、「テストが出来ない」には実は2つの視点があります。 質的にテストが困難なモジュールで、誰がやってもテストが書けない。 質的にモジュールはテスト可能だが、自分の実力が足りず、自分ではテストが書けない。 1.のようなテスト困難なモジュールは誰がやってもテストは書けないです。しかし、問題は、「テストを書きたい」と思ったとき、「自分がそれほどテストに詳しくない」という場

    自動テストはなぜうまくいかないか?乗り越えるためには何が必要か? - Qiita
  • 「スマートPythonプログラミング」という本を書きました - CUBE SUGAR CONTAINER

    表題の通り Pythonを書いたので、そのご紹介です! スマートPythonプログラミング: Pythonのより良い書き方を学ぶ 作者: もみじあめ発売日: 2016/03/12メディア: Kindle版この商品を含むブログ (1件) を見る どんななの? ひと言で表すと、自信を持って Python を書けるようになるためのです。 スマートPythonプログラミングなので、略してスマパイって呼んでください。 こんな人におすすめ なんとなく書いてなんとなく動いているコードに不安を覚えている方 入門書は読み終わったけど次に何をして良いか分からない方 Python の初心者から中級者にステップアップしたい方 ベストプラクティスとかアンチパターンって言葉が好きな方 上記に当てはまる方には、書が少しでも参考になると思います。 どんなことが書いてあるの? 自分が Python を学び始めた

    「スマートPythonプログラミング」という本を書きました - CUBE SUGAR CONTAINER
  • An Introduction to Mocking in Python | Toptal®

    How to Run Unit Tests in Python Without Testing Your Patience More often than not, the software we write directly interacts with what we would label as “dirty” services. In layman’s terms: services that are crucial to our application, but whose interactions have intended but undesired side-effects—that is, undesired in the context of an autonomous test run. For example: perhaps we’re writing a soc

    An Introduction to Mocking in Python | Toptal®
  • Go言語で API サーバーを開発する | カメリオ開発者ブログ

    こんにちは!白ヤギの開発者、森です。 白ヤギではいま API サーバーを Go 言語で開発しています。 皆さんも Go の話題をよく見聞きするようになっていると思います。今回は白ヤギの業務でどんな風に Go を使って開発しているかの一端を紹介します。 余談ですが、先日、大学の先生とお話ししたときにこんな話を伺いました。その先生は学生にプログラミングを教えているそうですが、何割かの学生は及第点に届かないそうです。しかし、そういった学生がプログラミングの素養がないかというとそういう訳ではなく、プログラミングを学ぶ上でその学生にとって何が理解を促すのかが違うだけなのだと仰っていました。教える側として全ての学生が習得できるプログラミング教育というのを見つけられていないのが悔しいといった話をされていました。 何かを学ぶというのを一般論では語るのは難しいということかもしれません。そのため、私はこうい

    Go言語で API サーバーを開発する | カメリオ開発者ブログ
    raimon49
    raimon49 2015/05/30
    GoにあってPythonにないもの、PythonにあってGoにないもの
  • 研究者流 コーディングの極意 言語処理学会第19回年次大会(NLP2013) チュートリアル資料(岡崎担当分)

    言語処理学会第19回年次大会 (NLP2013) チュートリアル資料(岡崎担当分) 岡崎 直観 東北大学大学院情報科学研究科 okazaki at ecei.tohoku.ac.jp http://www.chokkan.org/ @chokkanorg 研究者流 コーディングの極意 1 研究におけるコーディングの極意? • 今回のチュートリアルをきっかけにサーベイ – ソフトウェアエンジニア向けの指南書は存在 – でも,研究者向けの資料は数少ない • 自分が修士課程の頃は完全に我流だった – 複数文書自動要約のプログラムをすべてC++で実装 – *NIXを使うスキルはなく,すべてWindows上で実行 – 今から考えると,無駄だらけの実験作法だった • ほとんどの大学では実験の講義があるが… – 研究のためのコーディング作法は教えてくれない 2 繰り返される残念な光景 • 論文の締切前日

    raimon49
    raimon49 2015/01/07
    言語処理に限らず、普遍的で参考になる話。
  • Dropboxは全部Pythonで信頼性の高いソフトウェアを作った(後編)~PyCon APAC 2013

    Pythonユーザーが集まり、情報交換し、交流するためのカンファレンス「PyCon APAC 2013」が9月13日、14日に都内で開催されました。PyCon APACはこれまでシンガポールで開催されており、今回初めて日で開催されました。 (記事は「Dropboxは全部Pythonで信頼性の高いソフトウェアを作った(前編)~PyCon APAC 2013」の続きです) Pythonは遅いのか? でもたぶん、あなたのアプリはCPUによって制約されているわけではないでしょう。ごく限られた分野、例えばゲームとか科学計算ではないのならば、多くの制約はハードディスクやネットワーク、もしくはメモリから来ているのではないでしょうか。 それにもしも当にCPUによって制約されているのであれば、そういうアプリはだいたいCやC++で書かれているとは思うけれど、Pythonにも選択肢はあって、それはCyth

    Dropboxは全部Pythonで信頼性の高いソフトウェアを作った(後編)~PyCon APAC 2013
  • コード内で「現時刻」を気軽に取得してはいけない | Nekoya press

    日付を扱う処理についていろいろまとめたついでに、わりと簡単なことだけど知らないと落とし穴にハマる系のネタを。 日頃いろいろな処理を書いていて、現時刻を扱うこともは少なくないはずです。ですが、これを適当にやっていると困ることが多々あります。 実行中に「現時刻」を元にした処理がい違う 例えばこんなコード。ログ集計とかやってるイメージです。 class Analyzer(object): def analyze(self): logfile = datetime.datetime.now().strftime('my_log_file.%H') self.save(self.analyze_logfile(logfile)) def save(self, result): now = datetime.datetime.now() self.result[now.hour] = result

    raimon49
    raimon49 2013/07/09
    テスタビリティの観点から 使い回すにしても変数名で悩むんだよね
  • Python 2 から Python 3 への移植 — Python 3.3.6 ドキュメント

    概要 With Python 3 being the future of Python while Python 2 is still in active use, it is good to have your project available for both major releases of Python. This guide is meant to help you figure out how best to support both Python 2 & 3 simultaneously. もしあなたが標準 Python ライブラリではなく拡張ライブラリでの移植手段を探しているならば Python 3 への拡張モジュール移植 を参照してください。 If you would like to read one core Python developer’s take on w

    raimon49
    raimon49 2013/05/07
    >第一に、堅牢なテストスイートを持つことです。
  • PyPy における Python のパフォーマンスチューニング

    これは PyPy Advent Calendar の記事です。PyPyのコアディベロッパーである "Maciej Fijalkowski" 氏のブログ "Analysing python's performance under PyPy" の抄訳+αです。 Python の一般的なパフォーマン解析のモデルは、"プロファイラを実行して、ボトルネックを探し出し、それを最適化するか C で書き直す" ことです。しかし PyPy ではこのアプローチだけでは不十分です。なぜなら、 多くの大規模アプリケーションで、プロファイラはフラットです: PyPy のトランスレーションツールチェーン、Twisted、モダンな Web サーバ等が良い例です ボトルネックを発見したとしても、それが特定の関数内でのみ遅いのか、複数の関数が関係しているのか明確になるわけではありません。どうすれば遅くて、どうすれば速くなる

    PyPy における Python のパフォーマンスチューニング
    raimon49
    raimon49 2012/04/18
    継続的な計測のできる環境を用意するのが出発点。
  • minimockの使い方 - 今川館

    pythonのモックとしてminimockというライブラリがある。 日語のドキュメント・ブログが見当たらないので使い方をここに書いておく。 minimockを構成するモジュール mock関数 -- モックを当てる。 restore関数 -- 当てたモックを解除する。 Mockクラス -- mockより詳細にモックを当てるために使うオブジェクト。 mock関数とrestore関数でモックを当てる・解除するというのはわかりやすい。 しかし、複雑なケースではMockオブジェクトを使う必要があるのでここで説明する。 あと、minimockを使う上ではまりやすい点を書く。 基的な使い方 minimockの基は モックに差し替えるモジュールをインポートする。 mock関数を呼ぶ。或いはMockインスタンスを代入する。 使い終わったらrestoreで戻す。 である。 例えば、以下のphilosop

    minimockの使い方 - 今川館
  • データ駆動テストを nose と pytest でやってみた - forest book

    pytest で初めてテストを書いてみました。 今度こそ帰るー、py.test を使って初めてテストを書いた、評判通りすごく良い 2012-02-07 19:48:52 via TweetDeck @t2y noseと比べた感想とか聴きたいです。 2012-02-07 19:55:04 via web to @t2y @methane @t2y テストがこけたときまともなレポートをはくのがpy.testのいいところ 2012-02-07 19:56:34 via twicca to @methane nose と比べて、データ駆動テスト *1 *2 の違いが大きかったのでまとめてみます。 準備 以下の素数判定を行うテスト対象関数があるとします。 PRIME = {2: True, 3: True, 4: False, 5: True, 6: False, 7: True} def is_p

    raimon49
    raimon49 2012/02/11
    pytestの方がレポートが親切で--pdb-failureオプション付ければ止めてデバッガ起動できる。
  • PythonでWebアプリ開発入門のススメ Flask/MongoDB - mizchi log

    TwitBlogin! http://twitblogin.com/ とか作ったことだし、そこそこ開発環境整って、今なら思いつく限りのサービスはさっくり実装できそうだったのでPython初心者向けに書いておく。 少しでもPythonユーザが増えれば幸い。 対象は Python の基的な構文程度はわかるけど、具体的に何から手をつけていいかわからない人 目次 Apache/WSGI/MongoDBの環境構築 flask [ Sinatra風ウェブアプリケーションフレームワーク] pymongo [ MongoDBラッパー ] werkzeug [Web Application デバッガ] jinja2 [ HTMLテンプレートビルダー ] pyquery [ jQuery風HTMLパーサ ] nose [ TDD ] 細かいライブラリの使い方とかPython体の言語仕様とかは適当にぐぐって

    PythonでWebアプリ開発入門のススメ Flask/MongoDB - mizchi log
    raimon49
    raimon49 2011/02/15
    Sinatraの影響を受けたマイクロフレームワークFlask。これだけセットになってる解説は余り無いので分かり易い。
  • https://www.freia.jp/taka/blog/736

  • ログ解析ツールを作る - forest book

    ログ解析ツールを作っててノッテきてつぶやいたら、 ログ解析ツールを python で書いているときの嬉しさを誰かに共有したい、当に簡潔に書けて便利なんだよ 2010-11-18 20:29:14 via TweetDeck @t2y 例題とかみてみたいです。 2010-11-18 22:37:54 via TwitBird to @t2y と言われたのでオプションで指定した条件のログを抽出する簡単なサンプルを作ってみました。あくまで私はこんな感じで実装しましたが、他にもっと良いやり方があったら教えてくださいm(_ _)m 私の使い慣れている言語が Python と bash シェルスクリプトと C 言語(嘘です、慣れてません!)しかないので、この中で言えば Python しか選択肢がないですよねというのが当のところでした(^ ^;; 先ずはログ解析のサンプルプログラムを紹介します(要:

    raimon49
    raimon49 2010/11/24
    コマンドラインツール サンプル
  • Unit Test vs Functional TestそしてClean Code - masayang's diary

    Agile2008でもらったゴムバンドを未だに手首につけている。確かBob Martinだったと思うが、テスト駆動開発と「Clean Code」の関係について熱く語っていた年だ。 メソッドは短く。 メソッドが実現することは一つ。 あるメソッドのテストに色々と条件を設定しているのなら、それはClean Codeではない。 だが我々はその基を簡単に忘れてしまう。色々とテストのための道具が揃ってきたせいもあろう。基を忘れて一つのメソッドに色々と詰め込みすぎるとテストが大変になる。Mockがあっても、だ。Fixture使うのはさらに大変だし、Seleniumとかで入力から何から条件を与えるのはもっと面倒。そしておそらく抜けが発生する。 最近、内職でPython使ったアプリを組んでいるのだが、今回は上記「基」を徹底するようにしている。例えばこんなコードがある。 def nearby(reque

    Unit Test vs Functional TestそしてClean Code - masayang's diary
  • エキスパート Python プログラミング — エキスパート Python プログラミング v0.9 documentation

    1章: 始めよう¶ Pythonのインストール Pythonの実装系 Jython IronPython PyPy その他の実装 Linux へのインストール パッケージインストール ソースコンパイル Windows へのインストール Python のインストール MinGW のインストール MSYS のインストール Mac OS X へのインストール パッケージインストール ソースコンパイル Python プロンプト インタラクティブプロンプトのカスタマイズ iPython: より良いプロンプト setuptools のインストール 動作原理を理解する EasyInstallを使ったsetuptoolsのインストール distutilsにMinGWのフックを入れる 作業環境 エディターと補助ツールを使う コードエディター Vimのインストールと設定 その他のエディタを使う その他のバイナ

    raimon49
    raimon49 2010/06/03
    目次が濃すぎる。チャレンジしたい。
  • 1