やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Pythonの学習が一向に進まないので対策を考える

時間がかかりすぎて本題に入れない。そろそろ限界。

目的

  • アウトプット促進
  • たのしいプログラミング生活

Python学習しようと思った経緯

  • つまらない繰り返し作業を自動化したい
  • 簡単なスクリプト言語であるPythonを使おう
  • 規模が大きくなる
    • 後戻り作業が増大する
      • 新規開発ができなくなる
  • 後戻り作業が増大する原因
    • 言語仕様を知らないまま開発を進めている
      • DRYなコードが書けず
        • 重複コードが増える
          • 修正箇所が増える
            • 修正の手間が増える
          • バグが増える
      • 言語仕様を途中で知る
        • 修正や丸ごと作り直し
    • 単体テストをサボる
      • Pythonは実行エラーが多い言語仕様。一度はコードを実行しないとエラーの存在すら判明しない
        • 後でバグが発覚
          • 利用範囲増大により修正作業増大
    • 設計できない
      • 作ってみないと見通せない
        • 後で丸ごと作りなおすことになる

つまらない定形処理を自動化するために、新しいことを学ぶ必要がある。

学習サイトを作ろうと思った理由

  • 学習したことを記録したい
    • 検索できるようにしたい
      • コピペですぐ使えるようにしたい
        • 時短
    • 実績の可視化をしたい
      • 作業の俯瞰
        • 進捗の確認
          • モチベ維持向上

サイト作成の方法

方法
ブログ はてなブログ
CMSサービス WordPress.com
静的サイトホスティング GitHub Pages
MiniBlog(text) Mastodon
MiniBlog(HTML) Tumblr
Webサーバアプリ node.js
ローカルサーバ 開発用サーバ
  • SNSは実名など本人確認できる個人情報を要求するため対象外

問題

ブログ

  • 重くて捗らない
    • 表示、編集、クリック、すべての動作が遅い
    • メモリ不足でフリーズする
  • 自由にHTML編集できない
    • テンプレートに制約がある
  • ナビのデータ構造を自由にできない
    • カテゴリという名のタグしかつけられない

CMSサービス

  • 重くて捗らない
  • 自由にHTML編集できない

静的サイトホスティング

  • HTML作成が大変すぎる
    • HTML手書き
      • 無謀
    • HTMLテンプレートエンジン(pug)
      • 記事を書くのが大変
    • 軽量マークアップ言語
      • 記事を書くのはいい感じ。でもナビなどサイトとしての体裁を作るのが大変
    • 静的サイトジェネレータ
      • 導入が大変
        • 仮想環境、実行環境、パッケージなどの用意
          • 依存関係を考慮する必要がある
          • ファイル容量膨大
          • 手順が多い
      • 学習コストが高い
        • OSをはじめとする実行環境における周辺知識が必要
        • ジェネレータを使うこなすための学習コスト
      • 思うようなサイトが作れない
    • PythonコードでHTML文字列をつくる
      • 考慮、実装すべきことが多すぎる
        • 一体いつになったら学習に入れるのか未知数

MiniBlog(text) Mastodon

  • 発言をバックアップできない
  • 発言を全文検索できない
  • HTMLが使えない

MiniBlog(HTML) Tumblr

  • 重くて捗らない
    • 表示、編集、クリック、すべての動作が遅い
    • メモリ不足でフリーズする
  • HTMLを自由に編集するのが大変
  • Markdownはスペース4つ書式なのが嫌
    • GitHub同様バッククォート3つで囲む書式がいい
      • 共通にしないとコピペできない

Webサーバアプリ node.js

  • サーバ用意するのが大変すぎ

ローカルサーバ 開発用サーバ

  • HTMLファイルをブラウザだけで見れるほうが良い

参考

  • https://github.com/kanazawarb/meetup/issues/576
  • http://dev.classmethod.jp/tool/git/github-issue-driven-dev/
  • http://dev.classmethod.jp/project-management/remote-work-with-github/
  • https://seleck.cc/610
  • http://qiita.com/awakia/items/c571e93e96a1ec28044f#%E6%A8%99%E6%BA%96%E7%9A%84%E3%81%AA%E3%83%95%E3%83%AD%E3%83%BC

結論

GitHubのIssueをやってみようか。

所感

新しいやり方に飛びついたらまた不満点が出て……の繰り返しをしたくない。品質は問わないから今すぐ楽にアウトプットできる方法がいい。