はじめに コードは理解しやすくなければいけない。 リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice) 作者:Dustin Boswell,Trevor Foucher発売日: 2012/06/23メディア: 単行本(ソフトカバー) コードの保守性や可読性を高めるために我々エンジニアはどんなことができるでしょうか? テストを書く 推奨されているコードスタイルに準拠する コメントを書く DRY原則に則る 変更・拡張しやすく設計する ログを出力する・監視する 適切な命名をする etc... まだまだ意識すべきことはあると思いますが、上記の項目はエンジニアであれば恐らく一度は目にしたことがあるような内容であり、暗黙的に了承されたいルールです。 しかし、これらはただの心構えであり、体現するために実際には以下のような項目に落とし込む必要
Cython ―Cとの融合によるPythonの高速化 作者:Kurt W. SmithオライリージャパンAmazon 目次 目次 はじめに Cythonとは PythonとC言語を組み合わせるメリット 参考記事 ステップ1: C言語のコードを書く ステップ2: C言語のコードをラッピングするCythonコードを書く ステップ3: Cythonコードをビルドするsetup.pyを書く ステップ4: コンパイル・ビルドする ビルドする際のハマりポイント ステップ5: ユニットテストのPythonコードを書く 今後の課題 はじめに 自分は普段の仕事でC言語のプログラムを実装するのがメインです。しかしながら、今の職場にて自分が実装したC言語のソフトをデバッグするためには、実際のコントローラに書き込んでからベンチシミュレータで動かす、くらいしか方法がありません。 いちいちコントローラに書き込んだりす
はじめまして。ピクシブで広告関連のプロダクトを開発しているeastです。今回は、社内で運用している広告配信サーバーの負荷テストを実施したので、その話をしたいと思います。 経緯 ピクシブの広告配信サーバーは、pixiv本体を中心に複数のサービスに対して広告配信を行なっています。現在私はこの広告配信サーバーの大規模改修を行なっているのですが、先日ついに広告配信サーバーの改修がほぼ完了したので、試しに負荷試験を行なってみたいと思い立ちました。 目標は毎秒1万リクエスト ピクシブの広告配信サーバーへのリクエスト数はDailyで 4〜6億req もあり、これは毎秒平均に直すと約 5,000RPS(Request Per Second) になります。さらに、ピークタイムである休日の深夜帯には 12,000RPS にも達します。つまり新しい広告配信サーバーにも、毎秒12,000のリクエストを捌く性能が必
こんにちは、鈴木です。 20 万行を超えるアプリケーションのほとんど全てのソースコードを変更し、テストを行わずに本番リリースしました。 「それってテストいるんですか?」問題 いきなりですが質問です。ソースコードを 1 バイトでも変更したら再テストする必要はあるでしょうか。「絶対に再テストすべき」という方もいれば、「状況によるしケースバイケースかな・・」という方もいらっしゃると思います。 ケースバイケースと考える方は、どのような場合にテストを行わなくて良いと考えるでしょうか。例えば、コメント内の誤字を修正した場合はどうでしょうか。ローカル変数の名前を typo していたので修正した場合、デッドコードを削除した場合はどうでしょうか。 こんなことがありました ある日、Python のソースコードを眺めていると、「# $Id」のような CVS 時代のコメントがありました。いまやソースコードは Gi
来たる10月8日(祝)池袋サンシャインシティ2F展示ホールDにて開催される「技術書典5」にて、私たちThunder Clawは『ほぼPythonだけでサーバーレスアプリを作ろう』を頒布いたします。 本日サークルサイトもオープンし、いよいよ近づいてきたなーというところですね。 techbookfest.org 先日、もう一人のメンバーであるちぃといつさん(@7pairs)のブログでも紹介させていただきました。 技術書典5で『ほぼPythonだけでサーバーレスアプリをつくろう』を頒布します - ねことくまとへび 私たちの本の大きな特徴は2つ。 一つはタイトルどおり、ほぼPythonだけで作られているという点。 画面のコーディングやツールなどを一部を除いて、実装からテストに至るまで全てがPythonです。もともと可読性の高い特徴がある言語ですので、これからawsを触ろうとしている方にも踏み込みや
作るもの ヒーローを管理する Lambda Function を書きます。ヒーロー情報は DynamoDB の ヒーローテーブルに格納するものとします。リポジトリは以下。 * Python Lambda SAM + SAM Local Project コーディング作業 すべてはコードを書くところから始めます。いきなりプロジェクトルートにファイルを置いて書き始めるのも良いですが、後々テストやデプロイも行うことになるので少し整理してみます。以下のようにしました。 . ├── buildspec.yml ├── deploy.sh ├── docker-compose.yml ├── environments │ ├── common.sh │ └── sam-local.json ├── integration_test.sh ├── requirements.txt ├── src
Welcome to Faker’s documentation!¶ Faker is a Python package that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in your persistence to stress test it, or anonymize data taken from a production service, Faker is for you. Faker is heavily inspired by PHP Faker, Perl Faker, and by Ruby Faker. _|_|_|_| _| _| _|_|_| _| _| _|_| _| _|_|
概要 現在に至るまで、UnitTestの実行はvim-quickrunかC-Zで戻ってからターミナル叩いてた。 現状だとVimでテスト駆動開発するのにつらみがある。 テスト用の設定を作り込むときが来たのだ。 ちな実行するのはPythonのUnitTest 現状の問題点 :QuickRun QuickRunはテスト全体実行しかできない。と思う(テストランナーではないからね) 頑張ればできるのかもしれない。 時間のかかるテストとか遅いテストだと全体実行を何度もするのはつらい。一つのメソッドだけとかサクッとやりたい。 ターミナル実行 ターミナルに戻るのはだるい。 ターミナルでクラス単位やメソッド単位のテストを実行するには、パッケージ階層を打たなきゃいけない。つらい。 QuickFixでRedに飛びたいよね。ターミナルのエラー見る→Vim戻る→ターミナルにエラー見に戻るとか愚行だよね。 :make
python ベースのテストフレームワーク。ネットワークテスト自動化に特化した(ネットワークだけではないが)作られている。 DevNet : pyATS (メインページ)pyATS ドキュメント(英語)CiscoDevNet GitHub レポジトリ(サンプルコード等)CiscoDevNet/pyats-sample-scripts CiscoDevNet/pyats-ios-sample CiscoDevNet/pyats-coding-101CiscoDevNet/pyats-plugin-examplesCiscoDevNet/pyats-gui-sampleCiscoTestAutomation/solutions_examplesDocker イメージ(DockerHub)ciscotestautomation/pyatsDocker File の GitHub レポジトリCis
ユニットテストを書くとき、テスト対象が何か別のコンポーネントに依存していると、テストが書きにくいことがある。 例えば、その依存しているコンポーネントがまだ開発の途中で無いとか、あるいは異常系などテストしたい状況を作りにくかったり、実行にすごく時間がかかるなどなど。 そんなときは、依存しているコンポーネントをテストダブルと呼ばれる代替品で置き換えてやると良い。 Python にはバージョン 3.3 から標準ライブラリにテストダブル用のパッケージ unittest.mock が取り込まれた。 使っている Python のバージョンが 3.3 未満のときは PyPI から mock をインストールする。 これは基本的にバージョン 3.3 で導入された unittest.mock と同じもの。 $ pip install mock まずはテストを書くための題材だけど、このブログのスクレイピングにす
隣の席の人がテスト強化週間とか抜かしていたので自分もちゃんと理解するために なるべくわかりやすく まとめてみようと思います。 この記事は 2015 tech-yuruyuru アドベントカレンダー - 15日目の記事です。 2015 tech-yuruyuru アドベントカレンダー (2015/12/01 00:00〜)# 2015 #tech-yuruyuru アドベントカレンダー #tech-yuruyuru のアドベントカレンダーです。 テーマは特に決まっていません。好きなことを書いてください。 * 参加したい日の参加枠に参加登録してください * 2 日以上参加したい場合は、フィードで宣言してください ## カレンダー 1. @pjxiao: VPC のプライベートサブネットについて解説 2. @pjxiao: mDNS を使いローカルマシン内の仮想環境に接続する 3. @pjxia
- はじめに - 「Webスクレイピングで情報を収集する」という内容は多い。 しかし、Webスクレイピングのコードは肥大化しやすいだけでなく、細かな変更が多くなる。 テストを書いて変更の影響をちゃんと見ておく必要性が高い。 unittestとhttp.serverを使ったテストの実装についてメモしておく。 参考:python - How to stop BaseHTTPServer.serve_forever() in a BaseHTTPRequestHandler subclass? - Stack Overflow - http.server - http.serverはPython 2.xではSimpleHTTPServerと呼ばれていたもの。 (http.serverよりSimpleHTTPServerの方がググラビリティ高いかも) Webサービス等の開発用にローカルサーバとして
前回のエントリでdoctestの実行方法についてコメントで教えていただいたので新たに書き直しました。 まず昨日のエントリで私が書いていたコードは def main(initial=u"あ", inputsource=multi_input_reader()): u""" 正常パターン >>> main(inputsource=[[u"アフロ", u"ローマ字", u"ジントニック"], [u"クラス", u"スルメ"]]) 最初のもじは「あ」です アフロ ローマ字 ジントニック --次は4語目です。-- クラス スルメ --次は6語目です。-- 終了です """ usedwords = {} print (u"最初のもじは「" + initial + u"」です") for wordsU in inputsource: try: for (furigana, word) in Parall
まーたしばらく記事書いてなかったびっくりだ。筆無精にもほどがある。 さてさて。最近家ではPythonばかりいじっております。 もっぱらDjangoでWebアプリ作成。慣れるとなかなか楽しい。 このPython、海外だとメジャーな言語なんですが日本じゃ非常にマイナーな存在。ぐぬぬ。おかげで日本語の資料が出てこない。ほとんど英語。まぁいいけど…。日本語の「Pythonやろうよ!楽だよ?」って記事が少ないので、ちょっとヨイショ記事を書こうと思います(・∀・) 細かい文法とかすっとばして、いきなりタイトルの内容に入りまーす。 Pythonだと単体テストがもんっのすごく書きやすい。 = いいペースでプログラムを作っていける。 そこにVimも混ぜるとなお素晴らしい。 実例。例えば hoge.py というファイルに関数addを作ります。 [python] #!/usr/bin/env python #
かっこ悪くて面倒でもテストコードを書こうを読んで。 私は職業プログラマではありませんが、unittestでテストを書きながらコーディングすれば良い物が出来るという体感はありました。で、カバレッジって何だ?どうやって測るんだ?って思って調べてみると、Pythonではcoverageパッケージを使えばC0: 命令網羅率(ステートメントカバレッジ)が簡単に測れるとのこと。 それでは昔作ったPython製ライブラリ(PyAmazonCloudDrive)でやってみよー! coverageのインストール easy_installするだけ C:\temp>easy_install coverage Searching for coverage Reading http://pypi.python.org/simple/coverage/ Reading http://nedbatchelder.com
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く