Skip to content

Instantly share code, notes, and snippets.

@keko5342
Last active July 21, 2020 20:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save keko5342/c150fc30a17d79607035080dfc4467c5 to your computer and use it in GitHub Desktop.
Save keko5342/c150fc30a17d79607035080dfc4467c5 to your computer and use it in GitHub Desktop.
ポートフォリオ2

はじめに

本ポートフォリオでは自作の作品について紹介させていただきます。

作品名及び概要

今回紹介させていただく作品は以下の作品です。

  • listManager

TwitterAPIと連携した画像ビューワとリスト管理機能により、好みのユーザ(主にイラストレータ)を手軽に探すことのできるWindowsアプリケーション

言語:Python3.6 フレームワーク:なし 主なライブラリ:tkinter,pillow,sqlite

本作品は個人製作です。設計から開発まで全て自分で行い、テストはサークルの友人に協力してもらいました。

作品紹介(listManager)

本作品は友人からコミックマーケットというイベントの準備として、Twitterで絵師さんをまとめたリストを作ったのだが肥大化してしまい困っている。という相談を受けて製作しました。

製作期間は2017年春頃から2017年夏前です。友人に提供したところスムーズに絵師さんをチェックできてうれしいとの声をいただきました。

機能

本作品は以下の機能を備えています。

  • Twitterへのログイン
  • 他ユーザの投稿画像の閲覧
  • 他ユーザのフォロー及びリストへの追加/削除

スクリーンショットと使用方法

本作品の使い方は非常にシンプルです。

  1. まずはアプリを起動するとWebでTwitterへのログインを促されるのでログインしPINコードをアプリへ入力
  2. 左のユーザタブでリストのユーザを選択
  3. 真ん中のイラストタブで画像の傾向をチェック
  4. 右のマネージタブで分類分け

TwitterのWebクライアントだと画像を見るためには数回のページ遷移と画像を閲覧するためのスクロールが必要ですが、本製品では2クリック程でその作業を終えることができます。

苦労した点や工夫点など感想

本作品を製作するにあたって一番苦労した点は起動時間の改善です。

本作品はPythonの勉強を兼ねて製作したのですが、Pythonは動作が遅いことで有名です。

なんと、改善前のアプリは起動に3分もかかっていました。驚きの遅さです。

その起動時間をリファクタリングとテストを繰り替えし5秒ほどまで縮めることに成功しました。(180秒→5秒,36倍の高速化)

起動の高速化にもっとも貢献したことはfor文の内包表記でした。記法の違い一つで起動時間が数秒減っていたので驚きの連続でした。

高速化を兼ねて行ったリファクタリングでは、リーダブルコードという著名な書籍を参考にして動作の改善と可読性の向上に努めました。

作りっぱなしにするのではなく、自分にも他人にも優しいプログラムを作ることの重要性を学ぶことができました。

コードについて

私のGitHubアカウントのlistManagerというリポジトリ(新規タブで開いてください)で公開しています。

listManager.pyがメインモジュールになっています。socks.pyは導入モジュールの影響で追加していますが自作のプログラムではありません。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment