フロー状態に留まる

May 09 2023
(…または、私が単一ファイル プログラミングに夢中になった理由、そしてあなたもそうすべきです) 学校で、またキャリア初期の環境で私たちが聞かされる大きな嘘は、プログラミングが「得意」であるということは、問題を解決することであるということです。ますます難しい問題をよりエレガントな方法で解決します。真実はもっとありふれたものです。プログラミングが得意になるということは、ほとんど些細な問題の大量のセットを効率的に、迅速かつきれいに解決することです。

(…または、私が単一ファイル プログラミングに夢中になった理由、そしてあなたもそうすべきです)

学校やキャリアの初期段階で私たちが聞かされる大きな嘘は、プログラミングが「得意」であるということは、ますます困難な問題をよりエレガントな方法で解決することである、ということです。真実はもっとありふれたものです。プログラミングが得意になるということは、ほとんど些細な問題の大量のセットを効率的に、迅速かつきれいに解決することです。しかし、真実なのは、これを行う上で「フロー状態」がどれほど価値があるかということです。作業に没頭し続けることができるため、ドメイン間を素早く移行し、ユーザーからビジネス ロジックを経てデータ ストアに至るまでの状態の流れを追跡し、またその状態に戻ることができます。

多くの「優れた」プログラミング手法は複雑さを増します。

  1. モデル、ビュー、コントローラーを分離します。
  2. すべてのテストを並列ファイルとフォルダーに保存します。
  3. CSS をインライン化しないでください。CSS を、クラスと ID によって参照される個別の CSS ファイルの階層に保持します。
  4. CSS を記述することさえしないでください。プリプロセッサを使用し、中間言語から CSS を生成します。
  5. パッケージとモジュールのネストされた名前空間を使用し、それぞれが Thin_gs の名前付けに独自の標準規約を備えています。

調査尺度が平均的な人間の識別能力 (通常は 5 ~ 7 個の選択肢、9 個を超えることはありません) に対してプロットされるのとほぼ同じ方法で、より少ない種類のファイルに依存するフレームワークが、可能な限りフラットな階層で編成されます。新しい開発者にとっては簡単に慣れることができ、誰もが作業中にフロー状態を維持しやすくなります。

「優れた」プログラマは、PHP や JavaScript を「悪い」言語として非難するのが好きです。しかし、どちらも単純な「単一ファイル」パターンをサポートしていることで注目に値します。JavaScript は JSX を通じてこれを実行します。PHP では、すべての PHP スクリプトに任意の HTML を含めることができます。私は、単一ファイル開発の楽しさを Python で再現することにしました。これにより、「Notebook」Python データ サイエンス コミュニティ、「Boot Camp」ソフトウェア開発者コミュニティ、および Web アプリケーション開発の最前線の間の明らかな溝が埋まることが期待されます。

今後の数回のブログ投稿では、開発経験を簡素化および合理化するために私が採用してきた多くの「悪い」プラクティスについて説明します。さらに良いことに、私がその過程で発見、拡張、開発したさまざまなオープンソース ライブラリを発表します。