プログラミングの話を聞いてると、たまに「コードの再利用は聖杯だ!」みたいな感じで言われたりするよね💡
「なんだかすごそうだけど、そんなに簡単にうまくいくものなの?」って、わたしは最近ちょっと疑問に思ってたんだ😳
そもそも「コードの再利用」って?
簡単にいうと、一度書いたプログラムの部品を何度も使いまわすことなんだよね✨
例えば、同じ計算したり、同じ見た目のパーツを別の場所で使い回すときに便利だし、時間も節約できそう!って思うよね🧠
でも、実はこの「使い回し」、万能じゃないんだよね〜💭
使い回してみたら結局めんどくさかった話
わたしの友達も仕事で「よし、コードを再利用しまくろう!」って張り切ってた時期があったんだけど…
だんだん「この部分変えたいけど、前に作ったコードと違うから直しにくい〜」って嘆いてたのを聞いて、なるほどなーって思ったんだ🥺
同じコードでも、微妙に用途が違ったり、環境が違ったりすると
「ちょっと変えるだけ」なのに、修正がめちゃめちゃ複雑になることがあるんだって👀
コード再利用のイイトコと気をつけたいトコ
イイトコ💗
- 作業の効率アップ🎀
- バグを一度直せば複数の場所に反映👍
- 見た目や機能の統一感が出る✨
気をつけたいトコ💭
- 使い回すコードが複雑すぎると理解しづらい😵💫
- ちょっと違う使い方をすると調整が大変🥺
- 何度も修正が必要になると労力が増える😳
だから「コード再利用は聖杯」じゃないんだなぁ〜
つまり、「コード再利用が良いこと」ってのは間違ってないけど、思ってるほどカンタンでも万能でもないんだよね💬
ちゃんと「この部分は使い回しても問題ないかな?」って考えながらやらないと、あとで自分が困ることになっちゃうかも💡
たまに「とにかく再利用!」って頑張りすぎる人を見るけど、
わたしは「使い回せるところは使い回すけど、そのままじゃムリなら柔軟に手直しする」くらいの気持ちでいいと思うな〜って思ったんだ🌸
もし「再利用ってなんか難しい…」って感じてたら、
あまり肩肘張らずに「コードってそのまま使えることもあれば調整がいることもある」って思えば、気持ちが楽になるかもよ🤔❣️
ちょっと散歩しながら考えたことだけど、
コード再利用についてのモヤモヤ、わかってもらえたらうれしいな〜🥰✨
コメント
ハンナ
venv? 本物のプロは依存関係をグローバルで管理するよ。 /s
ハンナ
わざわざ新しく作る意味ある?
グレース
NodeJSそっくりだね。
リリー
Pythonの標準ライブラリにも膨大なコードがあるし、Python自体はCで作られてるんだよね。
ノーラン
機械語でコード書けないならプログラマーじゃないよ。 /s
サム
Anacondaのせいでcondaからvenvに全部変える羽目になった、マジでムカつく。
クリス
Pythonは豊富な標準ライブラリがあるから、依存は少なくて済むことが多いよ。 NodeやRubyとは違う感じだけど、似たようなプロジェクトもあるかもね。
ベン
Pythonプロジェクトは依存の中からコードを探す宝探しみたいだ。
ハンナ
GradleとかCargo、Bundlerは最高だけど、pipだけは本当に嫌い。 Pythonのパッケージ管理はカオスだよ。
ロバート
典型的なPythonの経験談だよね。
ジョージ
`sudo pip3 install -r requirements.txt &> /dev/null` (⌐■_■)
ハンナ
一方でnode_modulesはこんな感じ。
ハンナ
いや、これはnode_modulesの話だよ。
グレース
たぶんnodeのプロジェクトのこと言ってるんじゃない?
サラ
Python使ってるけどvenvって何か知らないや。