名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。アクセス解析のためGAを利用、Googleに情報を送信しています。商品紹介のためAmazonアフィリエイトを利用、Amazonに情報を送信しています。記事に関しては私が書いていない引用文を除いて自由にご利用ください。

しばらくの僕の予定(7月末まで)

登壇とか、イベントとかの予定をまとめる。なお、現状でなんの準備も進んでいない(お察しください)

登壇

6/27(木)

技術書典6!CoLabユーザーの技術書初チャレンジ感想LT【サポーターズCoLab勉強会】 - サポーターズCoLab

はじめての編集者として登壇することにした。このプロジェクト、表側にかけないくらいコミュニケーションやスケジュール感に問題があり、参加してもらった人には、大変ご迷惑をかけてしまうこととなってしまった。

そんな中でプロジェクトをやっていく、編集作業の大変さ、またコミュニケーションをどう取る? といったところを話していく予定。

技術書典7 開催のお知らせ - 技術書典ブログ もすでにサークル募集開始していますが、もしどうしようか悩んでいる人がいれば参加してください。経験談からになってしまいますが、精一杯のアドバイスを贈ります!

7/6(土)

Battle Conference U30 #2019 - connpass

これ実名義で募集がかかったので、実名義と併記かもしれません。(若干めんどいなと思ってしまったが…)

上京してから様々な活動に携わらせていただきましたが、その経験の話とか、視点の広がりとか、そのあたりを話していきたいと思います。(ポエム100%やんけ)

直近では TeckUp - connpass とか PyCon のコアスタッフの話をすることになるかも?

うまい感じに田舎者の上京→研修会場しか知らない世界→社内しか知らない世界→社外とも知り合う世界→利害関係無しで社外の人とと合う世界→小さなコミュニティメンバーになる→小さなコミュニティのスタッフになる→自分でコミュニティーを立ててみる→大きなコミュニティのスタッフメンバーとなる、ときているので、このあたりを整理して伝えられれば、それなりに役に立つモデルになるのかなと思っています(まだ暗黙知でしかないので、日程の余裕とはこの大きさを考えると、現状でこの状態は結構まずい)

まあ、直近だとこれを一番頑張るのかなと思います。

7/13(土)

TeckUp! LT大会#1 - connpass

これの運営しつつ、話せたらLTするつもり。題材は未定。

7/14(日)

無限LT会 #2 【まだLT事前に作ってんの!?】 - connpass

これ若干日程が怪しいんですが、登録してます。前回のコメントを見る限り楽しそうだったので、頑張ってネタをひねり出します。

執筆

7/27(土)

技術書同人誌博覧会

若干落としそうな気がすでにしていますが、Pythonのソフトウェア開発本を頑張って書く。(なんか全般的にいろいろなライブラリを押さえる本にしたい)

イベント

6/29(土)

多摩地区ノンジャンルもくもく会「たまもく」#4 at SEEDPLACE - connpass

もくもくします。ここの会場は広々としていてとても良いです。

7/3(水)

開発チームのリアルな裏側、全部話しちゃいます!powered by Qiita Jobs - connpass

結構楽しみにしている。Qiita Jobs は会社でも導入しているが、いろいろ方向性が見当たらないので、持ち帰りたいことが多い。

7/21(日)

プリッカソン #8 (プリリズ/プリパラ/プリチャン) - connpass

プリッカソンの時間だ〜〜〜〜〜〜〜ぷり!! なんかDBとAPIポイントができつつあるらしいので、フロント側なんか作ろうと思ってます(BotかAlexaかを真面目にやりたい)

まとめ

なんかそれなりに予定詰まっていますが、がんばりますということで。(6月はいろいろ予定が荒れていて大変なので、7/26終わったらゆっくり休みたい気持ち)

なお、8月末からビルコン、ISUCON、PyCon(スタッフなので全日です)、技術書典7とあり、休むことがかなわん模様。難しいですね。

最近Qiitaに書いた記事(2019/06/09)

そんなに真面目に書いていないが、これまでやったものの追従でないものは少しづつ外出しするようにしている。(逆に言えば、追従しているものについては、はてなブログとかでやってみた、で十分と考えてるのでこちらに書いている)

暇があれば、また書いていくと思います。(最近忙しいような気がするので、余裕があるかわかりませんが)

pytestに入門してみる

この辺を参照してみた。

qiita.com

qiita.com

www.magata.net

とりあえずハマったところ

Pipenvの dev-package に書いたので、インストール忘れた

pipenv install --dev するのを忘れてはいけない(戒め)

ディレクトリ構成

[06/08 20:42:19] $ tree                                                                                  (git)-[master]
.
├── PipFile
├── Pipfile.lock
├── src
│   └── script.py
└── tests
    ├── __init__.py
    └── test_script.py

自分のローカルは最終的にこうなっているのだが、途中まで何度やっても下記エラーが出続けた。

[06/06 22:29:10] $ pipenv run pytest                                                                     (git)-[master]
================================================= test session starts ==================================================
platform darwin -- Python 3.7.3, pytest-4.6.2, py-1.8.0, pluggy-0.12.0
rootdir: /Users/yumechi/python_practice/study/pre-commit
plugins: mock-1.10.4
collected 0 items / 1 errors                                                                                           

======================================================== ERRORS ========================================================
________________________________________ ERROR collecting tests/test_script.py _________________________________________
ImportError while importing test module '/Users/yumechi/python_practice/study/pre-commit/tests/test_script.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
tests/test_script.py:3: in <module>
    from src import script
E   ModuleNotFoundError: No module named 'src'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
=============================================== 1 error in 0.14 seconds ================================================

要はモジュールインストールに失敗しているのだが、これ tests/__init__.py がないことが原因だったらしい。てかなんで必要なんだ…? みたいなことを思ったが、これを足したら正しくテストが回るようになった。むずい。環境は3系を使っているので、必要ないと思っていた。

どうやら、この記事を見た限りでは、様々なユースケースに対応するため必要になるらしいということを理解した。(むずい)

qiita.com

リファレンスされてる記事はこれ。

blog.ionelmc.ro

ともあれ、 __init__.py を配置することでテストは無事に回るようになった。よし。

まとめと展望

pytest が動くようになったので、テスト駆動開発もこれで可能になりました。ということで。

最近自分自身のコードに対して感じていることとして、テスト不可なモジュール分割をしている可能性があるという可能性があり、インプット・アウトプットを変更することなくリファクタリングできました! ということが難しい状況が存在している。なので、失敗していないこと・影響していないことを保証しつつ、コードを改善していくことが難しいのである。(プログラミングスキルを上げるためには、そろそろこのあたりを自分自身で完結して出来なければいけない)。

テスト設計とか、ユニットテスト入門みたいな本を読み漁りつつ、もう少し良いコードを書けるようコード設計を考えていかなければいけないなあというのをしばらくの課題としてみたいと思った。