本書はCC-BY-NC-NDライセンスによって許諾されています。ライセンスの内容を知りたい方はhttps://creativecommons.org/licenses/by-nc-nd/4.0/deed.ja でご確認ください。
ソフトウェアエンジニアにとって、不具合に対抗する最も一般的な方法は自動化されたテストを書くこと。 テストでは、書いたプログラムが誤った振る舞いをしないか確認する。 一口に自動テストといっても、扱うレイヤーによって色々なものがある。 今回は、その中でも最もプリミティブなテストであるユニットテストについて扱う。 ユニットテストでは、関数やクラス、メソッドといった単位の振る舞いについてテストを書いていく。 Python には標準ライブラリとして unittest というパッケージが用意されている。 これは、文字通り Python でユニットテストを書くためのパッケージとなっている。 このエントリでは、最初に unittest パッケージを使ってユニットテストを書く方法について紹介する。 その上で、さらに効率的にテストを記述するためにサードパーティ製のライブラリである pytest を使っていく。
はじめに コードは理解しやすくなければいけない。 リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice) 作者:Dustin Boswell,Trevor Foucher発売日: 2012/06/23メディア: 単行本(ソフトカバー) コードの保守性や可読性を高めるために我々エンジニアはどんなことができるでしょうか? テストを書く 推奨されているコードスタイルに準拠する コメントを書く DRY原則に則る 変更・拡張しやすく設計する ログを出力する・監視する 適切な命名をする etc... まだまだ意識すべきことはあると思いますが、上記の項目はエンジニアであれば恐らく一度は目にしたことがあるような内容であり、暗黙的に了承されたいルールです。 しかし、これらはただの心構えであり、体現するために実際には以下のような項目に落とし込む必要
ブロックチェーンの社会実装の勢いが止まらない。テック市場に特化したイギリスの調査会社Juniper Researchが、今年の夏に発行した調査レポートの結果によると、 大企業の65%がブロックチェーンの導入を検討しているか、導入している最中 大企業の50%程度がイーサリアム上で分散型アプリケーションを立ち上げを予定 大企業の25%程度はProof of Conceptを終え、商品化を終えたか、その段階に差し掛かっている (大企業=1万人以上) とのことだ。 え!導入比率、意外に高くない?国内でも例えば、つい昨日は日本経済新聞の朝刊にLINEがトークンエコノミー構想の詳細を明らかにしたことが話題になったりして、たまに見かけるけど、まさかここまで来ていたとは驚きだ。ここまで来てしまうと、そろそろ私のような一介のサラリーマンであっても、ブロックチェーンを理解しておかないといけない雰囲気が漂ってき
Project Python is a free interactive book that will teach you to code in Python, using graphics, animations, and games. You’ll also learn ways to solve classical computer science problems, principles of software design, and how to analyze algorithm performance. No prior experience required; you’ll write code to draw a smiley face by the end of the first chapter. By Devin Balkcom, with significant
最近になって、バッチ処理においてデータパイプラインを組むためのフレームワークとして Luigi というものがあることを知った。 これは、Spotify という音楽のストリーミングサービスを提供する会社が作ったものらしい。 似たような OSS としては他にも Apache Airflow がある。 こちらは民宿サービスを提供する Airbnb が作ったものだけど、最近 Apache に寄贈されてインキュベータープロジェクトとなった。 Luigi の特徴としては、バッチ処理に特化している点が挙げられる。 ただし、定期的にバッチ処理を実行するような機能はない。 そこは、代わりに cron や systemd timer を使ってやる必要がある。 また、本体もそうだけどデータパイプラインについても Python を使って書く必要がある。 今回は、そんな Luigi を一通り触ってみることにする。
なんかぼやぼやしているうちにひさびさの pandas エントリになってしまった。基本的な使い方については網羅したい気持ちはあるので、、、。 今回は データの連結 / 結合まわり。この部分 公式ドキュメント がちょっとわかりにくいので改訂したいなと思っていて、自分の整理もかねて書きたい。 公式の方はもう少し細かい使い方も載っているのだが、特に重要だろうというところだけをまとめる。 連結 / 結合という用語は以下の意味で使っている。まず憶えておいたほうがよい関数、メソッドは以下の 4 つだけ。 連結: データの中身をある方向にそのままつなげる。pd.concat, DataFrame.append 結合: データの中身を何かのキーの値で紐付けてつなげる。pd.merge, DataFrame.join 連結 (concatenate) 柔軟な連結 pd.concat ふたつの DataFram
by Matthew Seal, Kyle Kelley, and Michelle Ufford At Netflix we’ve put substantial effort into adopting notebooks as an integrated development platform. The idea started as a discussion of what development and collaboration interfaces might look like in the future. It evolved into a strategic bet on notebooks, both as an interactive UI and as the unifying foundation of our workflow scheduler. We’v
Errbot¶ Errbot is a chatbot, a daemon that connects to your favorite chat service and brings your tools into the conversation. The goal of the project is to make it easy for you to write your own plugins so you can make it do whatever you want: a deployment, retrieving some information online, trigger a tool via an API, troll a co-worker,… Errbot is being used in a lot of different contexts: chato
# -*- coding: utf-8 -*- """Example Google style docstrings. This module demonstrates documentation as specified by the `Google Python Style Guide`_. Docstrings may extend over multiple lines. Sections are created with a section header and a colon followed by a block of indented text. Example: Examples can be given using either the ``Example`` or ``Examples`` sections. Sections support any reStruct
今回のエンジニアブログを担当する藤岡です。 よろしくお願いします。 今回はcliffというライブラリを使用して、簡単なCLIツールを作ってみたいと思います。 CLIツールはバッチ処理、簡単な自作ツールを作成する際に役に立つかと思います。 cliffは3rd party製のPythonCLIアプリケーションフレームワークです。 複数のコマンドの追加、コマンドライン引数の解析、ログの出力等の機能を補ってくれます。 こちらにパッケージの情報が記述してあります。 pipを使用することで簡単にインストールすることが出来ます。 pip install cliff 今回は簡単な出力を出しながら、cliffの機能について触れていきたいと思います。 今回作成するツールのディレクトリ構成は以下のようになっております。 sample_app | |-- sample_app | |-- __init__.py
これまで、開発や運用時に使う、ちょっとしたコマンドラインツール、自動化スクリプトは、主にBashのシェルスクリプトで実装していたのですが、最近このような用途にはPythonを使うようにしています。 Bashスクリプトへの不満 スクリプトの実装方針 ポータビリティ重視のための縛りPythonプログラミング Tips __future__モジュールでバージョン2、3両方に対応させる バージョン2、3で異なるモジュールを、同じ名前で読み込む バージョン2、3を判別する関数を用意する よく使うスニペット 文字に色をつける 赤い文字でエラーメッセージを出力して終了する 外部コマンド実行する テキストをファイルに出力する ファイルに実行権限をつける スクリプトの同時、多重起動防止する コマンドライン・オプションの解析 HTTPリクエスト まとめ Bashスクリプトへの不満 Bashのスクリプト実装にお
Bash(Shell Script)、もう嫌:BashをPython3.xに置換するために調査した内容PythonShellScriptBashLinux 2020/04/10追記 BashからRubyやPython3に移行するため、 より多くの処理をBash <-> Ruby <-> Python3で比較しました(別サイトで紹介)。 前書き 本記事には、Bash ScriptをPython3.xに置換するために調査した内容を記載しています。 置換を考えた動機は、「300Step超のBash Scriptは、自分の首を絞める」と察したからです。 Bashの強みは理解しています。 組み込み環境を除けば、主要なディストリビューションでの動作が保証されていますし、 POSIX互換を意識して書けば、移植時の修正箇所が減ります。 何よりも多くの開発者にとって馴染み深く、それはScriptを修正できる
Welcome to Invoke!¶ Invoke is a Python (2.7 and 3.4+) library for managing shell-oriented subprocesses and organizing executable Python code into CLI-invokable tasks. It draws inspiration from various sources (make/rake, Fabric 1.x, etc) to arrive at a powerful & clean feature set. To find out what’s new in this version of Invoke, please see the changelog. The project maintainer keeps a roadmap on
【2021/1/11】2021年版を公開しました 【2020/1/9】2020年版もあります, こちらもよろしくおねがいします! 【2019/8/12】一部書籍のリンクを最新版に更新しました 【2018/12/24追記】最新版を公開しました!「Python本まとめ・2019年版 - Webとデータ分析を初心者が仕事にするまで - Lean Baseball」 機械学習にWebアプリ,そしてFintechと,今年(2017年)は昨年(2016年)以上にPython界隈が賑やかな一年でした. Pythonでお仕事と野球データ分析を生業としている@shinyorke(野球の人)ですこんにちは. このエントリーでは,そんなPythonの学び方・本が充実した今年から来年(2018年)に移るにあたり, 最短距離でPythonレベルを上げるための学び方・読むべき本の選び方〜2018 をまとめてみました.
この記事は、LIFULL Advent Calendar 2017の2日目の記事です。 おはようございます。新UX開発部の二宮( @ninomiyt )です。 LIFULLではデータ解析や最適化の用途、もしくはAWS Lambda上の簡易ツール実装用途などでPythonがそれなりに普及してきました。数値計算寄りの(いわゆるデータサイエンティスト的な)メンバーも今はPythonを使うことが多く、コード量としては小規模なプロジェクトが多く、簡単なAPIやバッチ処理の実装までやってもらうこともあります。 そのレビューをやっていく中で、「これ使うともっと簡単に実装できるよね」っていうライブラリがいくつかまとまってきたので紹介します。 click コマンドラインパーサー用のライブラリで、デコレータを使って関数を簡単にCLI化できます。 標準ライブラリのargparseがありますが、clickではバリ
なんか色々便利そうなショートカットとかコマンド見っけてたので備忘録的にメモ。% ついてるやつは Magic Function とかいうらしい。 関数実行のショートカット かっこは省略できるらしい。初めて知った。 「/」でさらに引数の「,」を省略。「,」で引数を文字列に変換。 # かっこ省略で実行 In [23]: sample 1, 2 -------> sample(1, 2) # さらに引数の「,」省略で実行 In [24]: /sample 1 2 -------> sample(1,2) # 引数を文字列に変換して実行 In [25]: ,sample 1 2 -------> sample("1", "2") 名前空間関連 %who, %whos, %who_ls, %reset を使う。 どの変数に何を入れたのか忘れてしまったときとか便利。めんどくなったらリセットも可能。 #
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く