プログラマの雑談部屋 ★24

■ このスレッドは過去ログ倉庫に格納されています
1仕様書無しさん
垢版 |
2018/01/15(月) 03:10:30.67
プログラマは
こちらで雑談してください。
ユーザ、SEが馬鹿過ぎる、
上司が陰険だからもう辞めたい、
もう少しまともな仕事に転職したい、
彼女が欲しい、
などなど愚痴、妬み、妄想などなんでもどうぞ。
拘り押付け系ガイジ
(else禁止、継承不要、設計書不要ガイジ)、
コピペガイジは出入書込禁止
※前スレ
プログラマの雑談部屋 ★19
http://medaka.2ch.net/test/read.cgi/prog/1509711456/
プログラマの雑談部屋 ★20
http://medaka.2ch.net/test/read.cgi/prog/1510833848/
プログラマの雑談部屋 ★21
http://medaka.2ch.net/test/read.cgi/prog/1512205653/
プログラマの雑談部屋 ★22
http://medaka.2ch.net/test/read.cgi/prog/1513600297/
プログラマの雑談部屋 ★23
http://medaka.2ch.net/test/read.cgi/prog/1514877593/
2018/01/15(月) 20:22:21.33
>>41
OracleのLastDayだったかで2100年と
2400年に対応したカレンダー組んだことあるけど、
その会社なくなってしまった。
2018/01/15(月) 20:40:30.24
>>11
単純に脳みそのパラダイムが違うだけだろ
そいつは一人だけOOPの世界に生きてるけど、他の連中はそうではない
OOPできる奴とできない奴は絶対にチームを分けなきゃいかんのだが、PMが素人じゃしょうがねえか
2018/01/15(月) 20:48:40.08
>>11
良し悪しはともかく単純にどんなコードか興味がある
実際のものに似せたコードをgistなり適当な場所に張り付けてくれ
2018/01/15(月) 20:52:19.29
周りに合わせてスタイルを変えるってそうとう難しいよ
普通に将棋を指せる人間が全くのドシロウトの打ち筋を模倣してくださいつっても無理でしょ?
プログラムもそれと同じ
ある程度のスキル差があると下手なコードは書きたくても書けなくなる
5重にネストした分岐
10パターンを超えるスイッチ
100行を超えるメソッド
全く関連性のないビジネスがミックスインされた正体不明のクラス
正規化とは無縁のデータベース
模倣しろって言われてもどうすりゃいいんだって頭抱えるしかないよこんなの
2018/01/15(月) 21:02:23.13
>>30
流用≒コピペ改変という意味で言ってるならパラメタライズして1回書けば終わりじゃん?
N回コピペしたら最低でもその処理の保守コストがN倍になる
依存ツリーまで辿ったらNのオーダーじゃ済まない
2018/01/15(月) 21:09:21.47
無能集団が多数決で有能を潰す村社会日本
2018/01/15(月) 21:13:46.51
空気読んだら同じ給料もらえるならいいけどな
もらえねえんだろうな
2018/01/15(月) 21:22:01.47
問題はそのうち1か所だけ修正入れたいってなったときだ
2018/01/15(月) 21:25:21.01
>>49
1箇所だけ呼び出し先を別のクラスなりメソッドに置き換えるだけ
問題になるわけがない
2018/01/15(月) 21:31:42.53
そのメソッドは新規モジュールだから
コピペならなおしたとこだけテストすればいいが
共通化してあると新規部分として丸々テストしないといけない
2018/01/15(月) 21:35:40.64
>>51
修正箇所とそれに依存するコードのテスト
新規作成箇所とそれに依存するコードのテスト

影響範囲は同じ

モジュール化してあればテストそのものが容易になるので低コスト
コピペじゃテストの範囲や仕方を考えるだけで絶望的
2018/01/15(月) 21:48:00.27
影響範囲が同じでも
新規作成と一部修正じゃ
必要なテストケースの数がちがう

モジュール化でテストしやすくなるなら
部分ごとに同じモジュールを配置したっていい
2018/01/15(月) 21:53:38.21
たとえ一箇所でしか使わないモジュールでも、
モジュールとしての意味構造を持たせようと努力する

ただ、なんでもかんでもデザパタでどうでもいいインターフェースを挟むのは、異論があるかもしれないね、コストもゼロではないし
2018/01/15(月) 21:55:42.23
わからねえかなぁ
根本的に必要なテストボリュームは変わらない
どこをどうやってテストするのかがはっきりわかって簡単なのがモジュール
どこをどうテストするかはっきりせずテストそのものも難しいのがコピペ
これ常識

コピペするってことはその処理が別の処理に埋め込まれてしまうってこと
そうなると本来修正したかったことだけを分離してテストすることができないからテストの手間がめちゃくちゃ増える
2018/01/15(月) 21:56:49.45
関数ごとコピペしたら?
2018/01/15(月) 22:11:55.77
元の内容から遠い話題なら議論はやめようぜ
2018/01/15(月) 22:16:59.09
そう、>>7 >>11 のいうラッパーの多いコードというのが、実際どんなものか見てみたいものだねえ
2018/01/15(月) 22:22:40.33
>>7
コードうp汁
2018/01/15(月) 22:25:45.45
コピペもモジュール化もどっちもわかるんだよね
モジュールったって今回に使えるようになってる保証もないし
必要もない既存部分をいじってぶっ壊して文句言われるのは場所によっては最悪だ
一発で信用を失って終了の可能性もある
とするとこの環境でモジュール化の選択肢はない

コピペはまあ言わずもがなの問題が起きるが
範囲がコピペ部分に限定できるし
既存部分を壊すことはない
ってメリットもある

どっちもトレードオフの問題で
どちらを選択する可能性がある
って結論以外ねーだろこれ
議論にならない
2018/01/15(月) 22:29:32.97
>>60
クソレガシー相手の商売は大変だね
テストも整備されてないコードベースとかどんだけ金積まれてもお断りだわ
62仕様書無しさん
垢版 |
2018/01/15(月) 22:30:23.08
>範囲がコピペ部分に限定できるし
>既存部分を壊すことはない

ダウト
2018/01/15(月) 22:31:33.39
>>58
やたらすげー勢いでラッパ作るソース見たことねぇ?
クラスも小粒でプロパティ1つ増やすのにクラス1個作っててそれが何の為かどこにも書いてなくてキレる
明らかに脳みそに異常がある奴のクラスの作り方
クラス図書かせたら回路図みてーになった
DBからデータ取ってくるだけなのに不思議
2018/01/15(月) 22:32:56.51
>>61
環境をバカにするのはやめろ
どうせお前一人がきたって何もできねぇだろ
2018/01/15(月) 22:33:49.57
>>62
キチガイレスやめろ
お前の話は聞きたくない
2018/01/15(月) 22:35:24.25
JUnitやってると
コピペの圧力と関数化の欲求の間で悶え死ぬ
2018/01/15(月) 22:36:23.14
>>63
それValueObjectだろ
ちゃんとしたシステムだと基本中の基本だぞ?
2018/01/15(月) 22:38:29.98
>>67
把握できないぐらいクラス図
回路図みたいにしちゃって一体誰にとって何がいいの?
2018/01/15(月) 22:40:43.30
>>67
それって誰がそう主張してるの?
2018/01/15(月) 22:41:55.97
ValueObjectめんどい
アンラップしないといろんな演算子とかメソッドが使えなくなるし
それなりに便利にしようとおもったら
使うかどうかもわかんないメソッドいっぱいつくらないといけない

個人用に作るには重すぎる
2018/01/15(月) 22:48:50.32
>>68
ValueObjectを理解してないな
値だぞ値
お前は1とか"Hello, world!"って値をクラス図で配線するのか?しねーだろ
2018/01/15(月) 22:50:37.06
ValueObjectで頭をかかえる私大文系w
意味のある固まりで構造化された美しさが分からない

日本人の曖昧文化では抽象性の高いプログラミングに適正がないんだろうな
ジャップランドではこんな馬鹿が上に立っているんだw
2018/01/15(月) 22:54:52.91
>>71
は?
でもソース読むときクラスはクラスなんだからクラス図に書けや
んでこのクラスはゴミクラスだから重要なクラスはこれとこれとこれですって説明しろよカス

あんまり細かいクラスを作っちゃうから粒度がわからない
これやっても詳細設計書が整備されてれば問題は起きない
問題はなんの資料も書かないくせにこれやるとどこで何やってるのかさっぱりわからない
2018/01/15(月) 22:57:35.74
日銭をかせぐのにあくせくしているので
高邁な美しさにまで心を配る余裕がないのです

ライブラリ設計者になれたらそういうの作りまくってやるのに
現実は雇われ土方
扱うのはBeanばっかりで
凝集度の高いオブジェクトの自作とは縁がありません
2018/01/15(月) 22:57:40.23
>>73
もっかいいうぞ?
お前はintやstringをクラス図にいちいち全部書いて配線するのか?
するならもう匙を投げるしか無いので話は終わりだ
しないならValueObjectも同じことだと知れ
2018/01/15(月) 23:01:00.62
>>73
この手のOOPをまったく理解してない残念な人ってやけに設計書を崇拝するよね
おそらくプログラムに構造らしい構造が全く無いから設計書で情報を水増し冗長化しないと理解できないんだろうな
ということを考えるとやっぱり設計書不要論は正解なんだろうな
OOPが設計の本質ってことを理解できない人がついてこれないだけでさ
2018/01/15(月) 23:05:08.82
C#の構造体はクラス図に書かなくていいぞ
クラスじゃないからな
2018/01/15(月) 23:17:26.94
>>75
世界中で使われて安定性が実証されてどこでも使える言語の基本クラスと
どこの馬の骨がつくったかわからん思い付きクラスを一緒にしていいわけあるか

バグったらまず疑わなきゃいけないし
改修するとき影響範囲を見なきゃいけないし
2018/01/15(月) 23:25:12.80
>>78
よお馬の骨
2018/01/15(月) 23:29:06.38
おまえはちがうのか?
2018/01/15(月) 23:30:59.18
>>78
もうちょい理解してからしゃべろう
2018/01/15(月) 23:33:56.89
>>78
だよね
俺も同意見

みんなが知ってる共通クラスと
個別に作ったのとじゃ
全然扱いが違うよ
2018/01/15(月) 23:36:35.09
>>75
お前が作ったクラスは粒度も役目もなんもかんもわからないんだよ
絶対説明してもらわないとあかんよ
2018/01/15(月) 23:40:07.93
>>83
ValueObjectは粒度も役目も明確
お前がわかってないだけ
2018/01/15(月) 23:42:23.93
役目は個々のクラス名から明らか
粒度はエンティティの構成要素
わかりやすすぎわろた
2018/01/15(月) 23:44:32.41
>>85
そんな保証ないじゃん
2018/01/15(月) 23:45:13.30
>>30
そういう流用は参照による流用かメンテしない前提だろ
コピーしたらメンテってどうするの?
2018/01/15(月) 23:48:25.69
>>86
イミフ
2018/01/15(月) 23:50:52.58
>>84
ここでその構造を使う正当性が俺にはわからない
何を狙ってその仕組みを入れたの?
その仕組みを入れてあるところとないところの違いは何なの?
2018/01/15(月) 23:52:43.99
例えば本来ならその仕組みを入れるべきところに入れてない箇所があったとしたら
俺にそれが判断できる明確な線引きはあるの?
2018/01/15(月) 23:54:31.35
匿名クラスとか使えない言語なのかな
2018/01/16(火) 00:01:29.20
>>89
責務を明確にしてカプセル化で防御する
オブジェクト指向の基本だ

stringじゃ何でも表現出来すぎて責務が曖昧すぎる
stringには注文番号でも従業員名でもなんでも入ってしまう
これじゃそいつの正体がまったくわからないし何をやりたいのかも曖昧だ
そいつに適用可能なオペレーションも多すぎて利用者は簡単に間違える
注文番号オブジェクト.substring(1, 5)果たしてこれは注文番号にとって正しいオペレーションなのか? わからない…

一方で
class OrderNo {
private string asText;
... (略)
}
class EmployeeName {
private string asText;
... (略)
}

といったValueObjectを使えばそれが注文番号や従業員名であることが明確になる
適用可能なオペレーションはクラスのメソッドとして厳格に定義されるので利用者が間違えることもない
注文番号オブジェクト.substring(1, 5)が注文番号にとって正しくないオペレーションなら実行することはおろかビルドすらできない
もし仮に正しいオペレーションならIDEが補完をしてくれるドキュメントコメントで説明を表示してくれる
実にエレガントだ
美しい世界へようこそ
2018/01/16(火) 00:05:44.74
OrderNoはフォーマットとか桁数とかあるからまだわからんでもない

EmployeeNameてw
2018/01/16(火) 00:15:49.74
>>93
従業員名の最大長はint maxなのか?
従業員名に任意のシンボルを含んでも問題ない?
ファーストネームとラストネームの区別はない?
ロケールによって文字列表現を変更したりしない?

思考停止しないでもう少し考えようぜ
たかが従業員名でも君が考えている以上にドメイン知識は隠れてるものだよ
2018/01/16(火) 00:18:43.43
>>92
そんなの仕様書に書いておいてくれればいいよ
2018/01/16(火) 00:22:13.40
誰を対象にしてソースに対策を入れてるのかわからない
なんも知らん奴がソースをいじることを想定してガードを入れてるバカに見える
2018/01/16(火) 00:24:36.01
>>95
仕様書に書いてあるだけじゃ間違えるんだよ
どんなに仕様書を充実させたっていざコーディングするときにはただのstringだ
人間はstringにできることはなんだってやってしまう可能性がある
2018/01/16(火) 00:27:57.85
>なんも知らん奴がソースをいじることを想定してガードを入れてるバカに見える

まったく違う
すべてを完全に理解して絶対に間違えない人間だけでチームが構成されているわけではないという前提でガードしてるんだよ

というか文字通り何も知らない新規要員が途中参加することもあるってことを想定できないって仕事で開発したことないのかな?
2018/01/16(火) 00:33:08.96
>>97-98
は?すっげーバカに見える
2018/01/16(火) 00:35:32.79
>>99
反論できなくなっちゃった?
2018/01/16(火) 00:36:51.73
>>100
あーいやもういいや
なんかイスカンダルあるといいな
って奴らみたいだし
2018/01/16(火) 00:40:04.63
敗北宣言きたんで寝ますね
2018/01/16(火) 00:42:49.74
だってもうなんのためにプログラム組んでるかわからないじゃない
2018/01/16(火) 01:20:02.49
抽象的思考能力に劣る日本人には仕方ないんだろw
自分が理解できないものを無意味と考える所に文系っぽい馬鹿さがあるんだよw

ValueObjectはジャップと違って白人様が考えたんだからな
抽象性で日本人は欧米中韓に極めて劣る
日本発の発明も文明も無いのがその証拠w
2018/01/16(火) 01:42:35.55
笛吹けども踊らずか
106仕様書無しさん
垢版 |
2018/01/16(火) 05:44:38.28
>というか文字通り何も知らない新規要員が途中参加することもあるってことを想定

おまえら、お客さんのお金で遊んでるん?
107仕様書無しさん
垢版 |
2018/01/16(火) 05:46:49.92
class EmployeeName{} てw
108仕様書無しさん
垢版 |
2018/01/16(火) 05:51:32.80
>>106
> おまえら、お客さんのお金で遊んでるん?

あたりまえのことを聞くとは、おまえプログラマじゃないな?
もしかして馬鹿ユーザか?

客からもらった金は、もう俺らの金であって客の金じゃねーよ!
そして金もらって仕事するかどうかは契約による。
SES契約だったら、もう何もしないでずっと遊んでいるに決まってるじゃん?

請負い契約だったら必死でやるけど、
いまどき請負契約で受けるわけねーだろボケ!
2018/01/16(火) 07:05:13.39
遊んでいたら契約切られる
やっていけないよ
2018/01/16(火) 07:52:22.66
その値をDBに突っ込むときとかファイルに書き出すときに
どうしてんか気になる
2018/01/16(火) 08:05:48.02
valueobjectパターンってクラス激増するからあんま好きじゃない
2018/01/16(火) 08:52:36.89
insert into emp (empID, empName)
values (nextval('empID_seq'),$emp_Name);
2018/01/16(火) 09:27:52.79
>>110
クラス内での話でメソッドの戻り値とかは仕様に従って言語の型に戻してるんじゃないか
そうでなければ修正を要求できるだろ
114仕様書無しさん
垢版 |
2018/01/16(火) 11:15:56.26
>>108
>客からもらった金は、もう俺らの金であって客の金じゃねーよ!

なんだ? この泥棒。 はれのひの従業員かな?
2018/01/16(火) 11:38:34.00
>というか文字通り何も知らない新規要員が途中参加することもあるってことを想定

これガイジに入れていいレベルで
何やってるのか意味不明だろ
116仕様書無しさん
垢版 |
2018/01/16(火) 12:36:35.39
しっかし、ガードが使えないと途端にコードって糞になるな。

ロジック組み上がる度にちゃんとリファクタしていかないと、目も当てられない状況になるっていうか、
なってるクソコード大杉だろ。
2018/01/16(火) 12:36:41.49
>>109
残業60以上してれば働かなくても大丈夫
118仕様書無しさん
垢版 |
2018/01/16(火) 12:44:23.84
>>117

残業60も必要な現場はこっちから切ろうぜ。
2018/01/16(火) 12:54:40.46
>>116
リファクタっていうかリストラ対象だろ
120仕様書無しさん
垢版 |
2018/01/16(火) 15:38:05.44
>>118
そのとおり!
2018/01/16(火) 19:06:38.84
どこ行っても導入教育まともにやらないよな
設計書の場所だけ告知して放置だもん
122仕様書無しさん
垢版 |
2018/01/16(火) 19:36:35.27
時間外労働違反SEの皆様へ

お客様からの契約時間外稼働のクレームで大迷惑しております!

残業見積は止めてもらえませんか?
無能残業は止めてもらえませんか?

能力あったら残業なんかしませんよ!
急いで失敗するのは迷惑なんですよ!

能力不足のSEに残業代払うなんて納得できません。

SE適性ないから辞めるなり残業断って学習されたらいかがですか?
不健康や低知能なSEが増えて優秀なSEに負担なんですよ。
非婚や離婚のSEが増えて共働きSEに迷惑なんですよ。

訴えるなら経営者でなく残業見積する無能SEを訴えて下さい。
こちらこそ訴訟や休職のSEの増加で大損害なんですから。

経営者より
2018/01/16(火) 19:38:01.56
>>121
安心していい
このプロジェクト設計書ねーから!
2018/01/16(火) 19:45:00.43
>>123
仮にその状態をAとする
2018/01/16(火) 19:50:39.01
設計書はありません
有識者も忙しいので既存コード見て真似してやってください
だいたいこんな感じ
2018/01/16(火) 19:52:37.24
イザナミだ
2018/01/16(火) 20:11:56.31
どんな仕事でも設計書いらねえとは言わないけどさ
遊びじゃないんだからコスパ意識してほしいよな
適当にモデル定義してスキャフォールディングしてちょちょいと手入れりゃ終わり
みたいなカスみたいなシステムなのに何週間も設計書と格闘してる無能な働き者ほんと邪魔
2018/01/16(火) 20:16:16.81
>>127
経験上カスはお前の方が該当しそう
どんな小さい仕事も侮ると何やってんだかわからなくなるよ
2018/01/16(火) 20:18:56.26
>>128
取るに足らない仕事に全力投球して真っ白に燃え尽きるがいいさ
2018/01/16(火) 20:24:10.32
スキルによって生産性100倍変わるからなこの業界
俺はGoogle社員の1%も仕事できねえと思うけど
そんな俺からみても1%も仕事できないやつが履いて捨てるほどいる
ニートでも私大でも文系でもお構い無しで採用しちゃうから底辺がヤバイことになってる
2018/01/16(火) 20:26:50.58
結局は成果が有になるか無になるかはまわりの気分次第
ITはそれが顕著

恐ろしい業界や…
2018/01/16(火) 20:28:59.27
まあ正直、設計書が目的になってる感はある
2018/01/16(火) 20:42:21.63
>>115
新人だって望んでない
売られてきただけ
2018/01/16(火) 20:43:15.52
高卒理系エンジニアをモノ扱いする日本のIT業界はゴミ
2018/01/16(火) 20:45:21.22
正直100倍生産性出したって給料変わらないんだったら

自分の思う美しいコードを残して死ぬのと
馬車馬のように人にこきつかわれて自分で糞だと思うものを量産して死ぬのと
どっちがいい?
136仕様書無しさん
垢版 |
2018/01/16(火) 20:45:27.45
>>127
スキャフォ知らない開発会社も存在する
5分+日本語化で出来る物を
設計1週間、実装3日かけて不具合たんまりでドヤしてる
なんだこれ?
2018/01/16(火) 20:47:36.30
粒度でもめる
立ち上げメンバーは設計軽視でソースがすべて
新規参画者は設計に書いてない暗黙知の明文化を要求
管理者は完璧に細かくすべての項目が記載されたものを要求
2018/01/16(火) 20:57:10.52
>>136
設計一週間は実装に何つかおうがかかるだろ
2018/01/16(火) 21:15:30.20
>管理者は完璧に細かくすべての項目が記載されたものを要求

これやらないと理系や優秀な後輩に追い抜かれちゃう
自分より有能なやつらにいかにして無駄な時間を使わせるかが肝
2018/01/16(火) 21:22:51.84
設計は考えをまとめるプロセス
設計書はまとめたものを備忘録として残したもの
この基本に立ち返るとコードとホワイトボードの組み合わせが最強とわかる

ホワイトボードで考えをまとめる
まとめたものを即座にコードとして残す
超合理的
エクセル(笑)
2018/01/16(火) 21:25:17.28
>>137
うちと逆だな
立ち上げメンバーは完璧に細かくすべての項目が記載されたものを要求(めちゃくちゃ時間かける)
新規参画者は設計に書いてない暗黙知の明文化を要求
管理者は最終的に設計書にはろくなことが書いてないと悟りコードだけを信じるようになる
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況