Junya Fukuda

3.4K posts

Junya Fukuda banner
Junya Fukuda

Junya Fukuda

@JunyaFff

SOFTWARE ENGINEER @GROOVEXInc / NAGANO / Podcaster @rerefm / 共著書 「Python実践レシピ」https://t.co/Mnx6wWtT5w 翻訳「エキスパートPythonプログラミング改訂4版」

Katılım Mart 2011
519 Takip Edilen361 Takipçiler
Sabitlenmiş Tweet
Junya Fukuda
Junya Fukuda@JunyaFff·
Thanks for attending! Here are the slides for my talk "Event-Driven asyncio: A Case Study of Trio's API”. I'm really sorry for the short talk. I'll definitely make it up to you in the future! #PyConUS speakerdeck.com/jrfk/event-dri…
English
0
2
12
1.8K
Junya Fukuda
Junya Fukuda@JunyaFff·
本日発売です!AIは答えて教えてくれますが読むこちらは目が滑ってしまいがち。。AIをよりドライブさせるためにお手元にぜひ! gihyo.jp/book/2026/978-…
日本語
0
0
6
108
Junya Fukuda retweetledi
thinkAmi
thinkAmi@thinkAmi·
はてなブログに投稿しました 書籍レビュアーとして参加した「改訂新版 Python実践レシピ」が3/16(月)に発売されます - メモ的な思考的な thinkami.hatenablog.com/entry/2026/03/… #はてなブログ
日本語
0
2
5
151
Junya Fukuda retweetledi
GROOVE X LOVOT ソフトウェア開発チーム
SWエンジニア向けイベント『LOVOTech Night』まであと数日となりました! 3/17(火)19時半開始です。今回はYouTube配信によるオンラインイベントとなっています。 発表内容のうち、物体検出による人の骨格や様子を可視化した動画を抜粋しました。ご興味ある方は是非 groove-x.connpass.com/event/370504/ #lovotech
日本語
0
20
92
19.8K
Junya Fukuda retweetledi
Takanori Suzuki
Takanori Suzuki@takanory·
書籍「改訂新版 Python実践レシピ」が3月16日に出ます。Python 3.14対応+書き下ろしで大幅増量(512→592ページ)してます!!もしよかったら、お買い求めくださいーー amazon.co.jp/o/ASIN/4297154…
Takanori Suzuki tweet media
日本語
0
9
9
569
Junya Fukuda retweetledi
Lobsterr
Lobsterr@Lobsterr_·
明日配信のLobsterr vol.343🦞 公共インフラとしてのAI🇨🇭 / 企業がストーリーテラーを求めている🏢 / 共有体験としての短尺動画📺 / 書店チェーン逆襲と再上場                                    いま登録すると明日朝7時に届きます📨 lobsterr.co
日本語
0
2
10
1.3K
Junya Fukuda
Junya Fukuda@JunyaFff·
とても楽しかったですーー!ありがとうございましたー🍺 #Findy感謝祭2025
日本語
0
0
5
274
Junya Fukuda retweetledi
ばばしお🦕
ばばしお🦕@tokyo_887·
ご参加いただいた皆さま、ありがとうございました!お世話になっている方々に直接お礼を伝えられて嬉しかったです🥹🩵今回ご都合があわなかった方も、また別の機会にご参加いただけるようこれからも頑張ります💪🏼 #Findy感謝祭2025
ばばしお🦕 tweet media
日本語
0
21
58
6.3K
Junya Fukuda retweetledi
thinkAmi
thinkAmi@thinkAmi·
はてなブログに投稿しました 「JetBrains IDE プラグイン開発実践ガイド」が技術の泉シリーズから商業出版されました - メモ的な思考的な thinkami.hatenablog.com/entry/2025/11/… #はてなブログ
日本語
0
2
5
224
Junya Fukuda
Junya Fukuda@JunyaFff·
@nakayoshix おお!それはびっくりですね笑 なんだかうれしいです。asyncio使う場合は少し前に追加された TaskGroup というAPIもおすすめです〜 #task-groups" target="_blank" rel="nofollow noopener">docs.python.org/ja/3.14/librar…
日本語
0
0
1
25
中村 良幸 (Nakamura Yoshiyuki)
@JunyaFff こちらこそ、有益な資料で大変勉強になりました。本当にありがとうございます。 なお、先程別スレで展開していた非同期問題(笑)で、Copilotさんに色々と質問していたところ、二つ目の最後の方でなんと「trio」が登場してました! “pytest-asyncioやtrioなどのツールも検討” x.com/nakayoshix/sta…
中村 良幸 (Nakamura Yoshiyuki)@nakayoshix

では、私が日常的に使っているPythonでお願いします。 -------------------------------------------------- ありがとうございます、Yoshiyukiさん。Pythonでの非同期処理は、特にasyncioやaiohttpなどを使う場面でその本質的な難しさが現れます。ここでは、Pythonにおける非同期処理の難しさを具体例とともに掘り下げてみましょう。 🧵 Pythonの非同期処理が難しい理由と具体例 1. async / await の文法と実行モデルの理解 Pythonでは非同期処理にasync defとawaitを使いますが、これは単なる文法ではなく、イベントループという実行モデルの理解が必要です。 import asyncio async def fetch_data(): print("Fetching...") await asyncio.sleep(2) print("Done!") async def main(): await fetch_data() asyncio.run(main()) await asyncio.sleep(2)は非同期に2秒待つが、他の処理が同時に進められるわけではない。 asyncio.run()でイベントループを開始する必要がある。 👉 難しさのポイント:同期処理と見た目が似ているが、裏ではイベントループが動いている。 2. 並行処理と競合状態の管理 複数の非同期タスクを同時に走らせると、状態の競合が起こりやすくなります。 import asyncio counter = 0 async def increment(): global counter for _ in range(1000): counter += 1 async def main(): await asyncio.gather(increment(), increment()) asyncio.run(main()) print(counter) # 期待値は2000だが、実際はそれ以下になることも 👉 難しさのポイント:非同期でもスレッドセーフではない。asyncio.Lockなどで明示的に保護する必要がある。 3. エラーハンドリングの分散 非同期処理では、例外が非同期に発生するため、通常のtry/exceptでは捕捉しづらいことがあります。 async def risky_task(): await asyncio.sleep(1) raise ValueError("Something went wrong") async def main(): try: await risky_task() except Exception as e: print(f"Caught: {e}") asyncio.run(main()) このようにawaitの外側でtry/exceptを使う必要がある。 asyncio.gather()では、複数の例外が発生する可能性があるため、return_exceptions=Trueを使うことも。 4. デバッグとトレースの困難さ 非同期処理では、スタックトレースが分断されるため、どこで何が起きたかを追うのが難しくなります。 ログ出力のタイミングがズレる awaitの中で例外が発生すると、呼び出し元との関係が見えづらい 👉 対策としては、asyncio.run()の中でloggingを使った詳細なトレースや、contextvarsによるコンテキスト管理が有効です。 🧠 Copilot的アドバイス Pythonで非同期処理を扱う際は、以下のような設計指針が役立ちます: 明示的なロックと状態管理:asyncio.LockやQueueを活用 エラーハンドリングの一元化:try/exceptをawaitの外に置く イベントループの理解:asyncio.run()とcreate_task()の違いを把握 テストとデバッグの工夫:pytest-asyncioやtrioなどのツールも検討 もしご希望があれば、実際のユースケース(Web API呼び出し、ファイルIO、センサーデータの非同期取得など)に合わせたコード例もご紹介できます。どんな場面で非同期処理を使いたいか、教えていただけますか?

日本語
1
1
1
159
中村 良幸 (Nakamura Yoshiyuki)
先程から私のおすすめ欄で何故か「非同期」が話題になっており、そうした中でたまたまみつけたポストがこれだったんですが、これはまた素晴らしい資料ですね。 trioのことは全く知らなかったので、大変勉強になりました。Junya Fukudaさん、ありがとうございます!😇 (元 #非同期おじさん より)
Junya Fukuda@JunyaFff

本日の資料です!ありがとうございました 開発生産性IPAおいしかったです〜 speakerdeck.com/jrfk/robotutod… #techbaton_findy

日本語
1
1
3
343