※アドブロック等の広告非表示プラグインやアドオンを利用している場合、一部のコンテンツが表示されなくなったり、サイト全体のレイアウトが崩れたりする場合があります。

※広告を非表示にして閲覧する場合、
当サイトでは下記のブラウザを推奨しております。

BraveBrowser
BraveBrowser

下手なプログラマは何故コードを共通化したがるのか…

1 2021/03/31(水) 11:05:56.070
本当に保守しづらくなるからやめてほしい

2 2021/03/31(水) 11:07:21.807
共通化ってなんですか

3 2021/03/31(水) 11:08:16.823
本物のプログラマはサブルーチンを使わない
main() にすべて詰め込むのが正しいお作法

5 2021/03/31(水) 11:10:00.334

>>2
同じ処理をするコード・同じパターンを持つコードをクラスや関数にすること

>>3
アホ

6 2021/03/31(水) 11:10:18.914
>>3
どこのコボラーだ。
000 名無しさんのおすすめ
4 2021/03/31(水) 11:08:26.932
同じコードのコピーがあちこちある方が保守大変なんだが

7 2021/03/31(水) 11:10:21.954
>>4
共通化しない = コピペじゃないよ

13 2021/03/31(水) 11:13:51.311
>>7
共通化しないって事は似たような処理作る時に元のコードコピーしてちょっと変えて、みたいな作り方するって事だろ?
そっちの方が保守大変って言ってるんだが

14 2021/03/31(水) 11:15:45.005
>>13
ほとんどのケースでそっちの方がマシです

8 2021/03/31(水) 11:11:28.907
共通化が悪いんじゃなくて、共通化するセンスが絶望的なんだろ

12 2021/03/31(水) 11:13:30.258
>>8
そもそもセンスの良いプログラマには「共通化」という考え自体がないと思う

9 2021/03/31(水) 11:11:46.834
既存処理への影響が大きいので同じような処理をコピペして新たに作成しよう!←これ

36 2021/03/31(水) 11:28:15.655
>>9
基本的に変わらない部分はもちろん共通化してるけど、例外的なやつはこれになるよね
そして、例外が多くなると
まぁ、あるあるだよね

10 2021/03/31(水) 11:11:49.193
明日、プログラミングスレに来て下さい
本物のType-Level Generic Programmingによる共通化を見せてあげますよ

11 2021/03/31(水) 11:12:02.063
共通ソースなんてバカなことしない。
使いもしないコードも入れるなんて非効率でバカらしいからな。
必要なコードだけ拾って自分の中に組み込む。
そうすればカスタマイズするにも足を引っ張りも引っ張られもしない。
作業に見合った生産コード数にもなる。

15 2021/03/31(水) 11:15:59.564
よく分からないけど標準ライブラリとか使わない派閥の人ですか…?

16 2021/03/31(水) 11:16:16.339
>>15
使うけど

17 2021/03/31(水) 11:17:11.093
>>16
つまり標準ライブラリ作者は下手なプログラマだったのか…

18 2021/03/31(水) 11:17:41.979
じゃあ何を持って共通化を攻撃しているのかこちらには伝わりませんね
もっと深堀りして下さい
19 2021/03/31(水) 11:18:21.116

共通化しない = コピペ

って考えになるのは、なぜだろう

・良い作法が当たり前に身についているから、共通化の弊害はレベルが低すぎて全く念頭にない
・悪い作法(= 共通化)を良い作法だと勘違いしている

のどちらか。おそらく後者だろう

20 2021/03/31(水) 11:19:15.502
是非を論じる前にあなたが論じようとしている問題のドメインが極めて不明瞭であることが明らかになりました
ステップを一つ戻って下さい

21 2021/03/31(水) 11:19:17.532
共通化された処理の部分工数削られて金も減らされて何が嬉しいんだ?

22 2021/03/31(水) 11:19:18.087
これはセンスなさそうな奴だな
お前多分プログラマーに向いてないよ

23 2021/03/31(水) 11:19:29.793
まあわかる
テスト範囲洗い出すだけでも大変になる

25 2021/03/31(水) 11:20:27.846
どうせ小規模にも満たないような数行のプログラムしか作らないやつなんだろ

26 2021/03/31(水) 11:21:34.271
見つけるの面倒だからやめてほしい
処理はちゃんと都度書くべき

27 2021/03/31(水) 11:22:50.890
コード修正するたびに類似した箇所を全部修正してまわるつもりなんだろうか
複数人での開発だとメンテナンス不可能だろ

29 2021/03/31(水) 11:23:37.663
>>27

28 2021/03/31(水) 11:23:03.609

似たコードを共通化すると、将来プログラムが成長したときに
結局共通化したコードは別の処理だったことが判明

・それを利用している箇所をすべて直す(OCPに反する)
・その関数やクラス内で処理を切り替える(SRPに反する)

のいずれかを強いられる
だからコードは共通化してはいけない

40 2021/03/31(水) 11:33:06.776
>>28
設計の問題を転嫁すんな
構造化プログラミングも理解できないようなクズに設計させるなよ

30 2021/03/31(水) 11:26:18.178
場合による
何度もコミットされてその都度レビューに晒されて鍛えられる部分は共通化のメリットが大きい
一度コミットされたら何年もそのままの部分はよく分からなくなるから後で修正する人が困る
共通化したらしたでその処理を他の人も使わなければ意味がない

31 2021/03/31(水) 11:26:36.271
ライブラリ使っといて共通化は悪とか矛盾してるだろ
一切使わないで作ってから主張しろよ

35 2021/03/31(水) 11:27:43.343
>>31
ライブラリは共通化のためのものじゃないぞ

39 2021/03/31(水) 11:29:44.449
>>35
じゃあなんのためなの?

32 2021/03/31(水) 11:26:51.624
結局共通クラス作っても、それのバージョンがまたあるんでしょ?
で、こっちのプロジェクトはバージョンいくつので、こっちのはバージョンいくつので、て結局ファイル単位では丸々コピペになる。
で共通クラスを新しいの使おう、で何だか表示変わっちゃったとか操作変わっちゃったで取説も作り直し。
33 2021/03/31(水) 11:27:12.145
設計がクソなだけじゃん

37 2021/03/31(水) 11:28:34.296
>>33
そうです
「共通化」を基準にすると悲惨な設計になります

34 2021/03/31(水) 11:27:22.995
なるほど、「似ている」コードを共通化することに問題があるということですね
しかしあなたの気持ちを伝えるにしてもまだ修飾語が足りない気がしますが…

38 2021/03/31(水) 11:29:40.186

> ライブラリ(英: library)は、汎用性の高い複数のプログラムを再利用可能な形でひとまとまりにしたものである。

共通化だと思いますが…極論を言うのはおやめになったほうがいいのでは…

43 2021/03/31(水) 11:34:55.283

>>38
・再利用のため
・処理の実装を隠蔽するため

ほとんどの人が同意すると思うぞ

45 2021/03/31(水) 11:41:16.565
>>43
いやいや、再利用するために共通化してるんだろ
共通化せずに再利用可能にする方法って何???

41 2021/03/31(水) 11:33:42.952
「共通化しようとするな!!」
具体的な例も出さずに共通のルールとくろうとしてるお前はそりゃ共通化なんて使わないほうがいいぞ😅

42 2021/03/31(水) 11:33:51.056
Googleは全てのソースコードが単一のリポジトリで管理されてて、自分が書いたコードを色んな人が再利用するから自然と鍛えられるんだと思う
一人の人間が書いたコードなんてたかがしてれてるんだから、みんなで一つのコードを鍛えていくっていう文化が必要なんだろう

44 2021/03/31(水) 11:35:48.438
共通化するのはいいけど
共通化する部分のテストくらいは書いてほしい

46 2021/03/31(水) 11:41:57.659
一般通念として「再利用可能なプログラム」を「共通化されたプログラム」とも呼んでいいと認識しているはずですが…?
ほとんどの人が同意とは?それによってライブラリが共通化のためでないことに同意するんですか?
論理的に回答していただきたいですが…

47 2021/03/31(水) 11:46:36.451
描画関係のコードとか大きい上に数百回単位で呼ばれるのもザラなのにベタ書きとかどんな嫌がらせなのか