プログラマの雑談部屋 ★274
■ このスレッドは過去ログ倉庫に格納されています
ChatGPTにCording interviewの相手して貰うとか出来るかな >>716
本気なら対策コース有るで
interviewcake.comとか >>713
俺もそう思っていたが実際は逆だった
駆け出しから進歩してないんだ大半の連中は
みんながエクセルで手続き型スパゲッティ疑似コードを書いてる
そこでオブジェクト指向だのなんだの言っても煙たがられるだけ ワイ「gitHubActionsとterraformでノンストップデプロイ実現したお」
お客たま「すげーな じゃリリース手順書かいて印鑑もらってきて」
ワイ「・・・・・・・イエッサー」 わからんでもない
ただその糞溜まりから抜け出す時に必要になるで みんな手続き型に戻る
時代はREST
オブジェクト志向は間違いだった 正しいオブジェクト志向はExcelVBAだけ
データに処理がついてる オブジェクト指向が間違いとされる理由は、
できるヤツにしかできないから。
属人化しやすいからコストダウンにはつながらない。 ExcelVBAでオブジェクト指向で書かんといかんなんて意識したことない セル一つ一つが明らかにオブジェクトなのに意識しなくてええなんてむしろ理想的やん 「このソースをオブジェクト指向にしてください」って
ChatGPTにやってもらえばいいんじゃね? 動的型付けなのにDimで変数宣言を強要してくる実に面倒くさいVBAさん >>723
俺は勉強したけど周りも勉強してていつか環境が変わると信じて留まってしまった
大きな間違いだった 今どき、オブジェクト指向なんて言わなくても
オブジェクトだらけじゃんw VBAはオブジェクト指向だから使いやすいんじゃん
オブジェクト無かったらどんだけ覚えること増えると思ってんのよ
意識してないかもしれんけどプロシージャもほとんどイベント書いてるだけだろ 好みのパラダイムが異なる人同士でチームを組むと大失敗する法則に名前をつけて業界で誰でも知ってるレベルに啓蒙したい とりあえずわかってることと言えば、
自分でブロック崩しやゲーム電卓などのチャチゲー作った際に、
これはオブジェクト指向で作っております、みたいなことは
とてもとても自分からは言えないな、恥ずかしくて。 オブジェクト指向は設計手法だー
と何度言えば
思考でもいいわ 順々に処理してくと考えるな
機能単位で処理を分ける考えだけでもいいから持っとけ >>731
つかVS codeのコメント使えばやってくれるんじゃね OOPやデザインパターンの目的はカプセル化による分割統治であってOOPやパターン自体が目的になってはいけない
分割統治する必要がない(将来の変更が少ない/分割統治しなくても設計/テスト時の負担が低い)なら別に適用せんでもよろしい
DDDで全部メッセージングでやりましょう、みたいなポリシーで全部疎結合にしましょう、とか良いアイデアだとは思うけど若干手段先行してる感ある だってお
今の現場クソでお
PGの頭に全部DB_connectって書いてあんだよ
クソコード製造機のワイでも目を覆いたくなる惨状!! ポイントテーブルからポイントが1000ポイント以上残ってる情報を読んで、
半年間利用の無いユーザをユーザーテーブルから読んで、ユーザーの年齢が60歳以上で、住んでる地域が、⚪︎×市の場合に、買い物実績テーブルに買い物実績があるユーザーを画面に一覧表示して、ボタンを押したらAマーケットでポイント利用促進の案内をSMSで通知する
みたいな処理って、いちいちオブジェクト思考で考えないで、手続き型でダラダラ書くよね 言語? Javaで十分だろ。
オブジェクト指向対応って謳ってるようだし。 >>755 ← この人解ってるわ
そうオブジェクト指向対応言語なんだわな >>752
嘘だろ?
列挙する、表示する、広告を送る、の少なくとも三つに分けるだろ
その三つだけなら関数でもいいけど大きなシステムだとスパゲティ化を防ぐために構造化しないと保守性墜落すんじゃん
これだから土方は
後釜のことまで考えてコーディングしないからいつまで経っても評価上がらないんだぞ データベース が デーブスペクター に見えたから休もう >>744
手続き型もそうじゃん、関数で分ければいいじゃん なぜ書けないんだよw
列挙メソッドを持つモデルクラス(他にも多くのメソッドがある)
表示を受け持つビュークラス
メッセージを送るモデルクラス OOPとかけまして、プログラマーの日常とときます
そのこころは、クラスを書いて暮らすでしょう えっ、クラスをかいてコード組むことかオブジェクト思考なの どっちに転んでも悪くなるやつだという強い予感があった ていうかユーザー一覧画面を処理ごとに作ってるのかよ
うわぁ。。。 ね
なんで業務用システムを
毎回毎回1から作ってるのか >>764
そうだよ
何だと思ったんだ?
継承必須とか思った? >>762
その列挙メソッドを持つクラスってのは、少なくとも3つのテーブルから情報を取得して情報をフィルタして結果を返すラッパークラスだろ
しかも、よっぽどうまく設計しないと、この処理でしか使えないという
そして、本人は上手く設計したつもりでも、他のチームメンバーからは誰からも利用されることのないボッチクラスになる可能性が高い
この程度の処理は、インターフェースとかクラスとか使って無駄に複雑に書かれるより、手続き型で素直に書かれてた方がメンテもしやすかったりするんだよなぁ >>769
ラッパークラスじゃなくフィルタリングメソッドな
ほんと基礎からわかんねーんだな
ここまで話にならんやつは新人でもなかなかおらんわ >>768
そんなの日本だけだよ、普通はパッケージを使うよ
日本は独自でやりたがるんだよ、日本は終身雇用だからね >>771
えっと、お前プログラミングできないだろ >>752
ユーザーリポジトリクラス
ポイント数でユーザー検索する仕様を表現するクラス
半年利用がないでユーザー検索する仕様を表現するクラス
年齢が60〜◯×市って条件を判定するポリシークラス
買い物実績でユーザー検索する仕様を表現するくらす
SMSを送信するクラス
Aマーケットでポイント利用促進の案内メッセージを作るクラス >>769
データベースとのやり取りをするクラスが使われないわけあるか
逆にそれをチーム毎に独自に作るとかどんだけ底辺の話をしてるんだ えーあー工場があって車があってタイヤがあるのがオブジェクト至高 なんかいいソフト思いつきませんか
犬の餌みたいに与えられる業務案件はもういやだ >>758
世の中にはUIからのアクションごとに実質一つの関数でまかなう書き方する会社がごまんとあるんやで
ユーザdtoやポイントdtoにvo的な60歳以上や1000ポイント以上みたいな判定プロパティは持たせても、メインの処理は一本手続きや >>775
それはさすがに分けすぎ
設計のセンスのないやつって実在するんだ >>779
dtoがオブジェクトなことから説明が必要な感じ? >>782
お前はまず入門しろ
言ってることが素人以前だ >>775
列挙するだけなら3つのテーブルJOINして検索するSQLを発行するリポジトリクラス1つで済むけどな >>779
アクションはUIからデータを取り出して最小限の入力チェックを行い、サービスを呼び出し、サービスの戻り値をUIに書き戻すだけ、だって教わらないのかね?世の中の平均的プログラマってさ >>784
構造体はオブジェクトの実装でしかないぞ プログラミング言語なんて1,2つでよくて契約とるところから一人でできることのが大事 >>781
dddじゃなくてトランザクションスクリプトあるいは貧血ドメインモデルやでって言いたかった
トランザクションスクリプトもoopだろって言われればまあそう ファンクションキー毎に200行くらいあって
内容がほとんど同じで、キーによって微妙に違う所がある
そんなコピペ方式の実装を見たことがある 何万件ものデータ扱うならDBとか意味あるけど
たかだかすうひゃ >>758
一度も仕事したことない奴の感想文すぎて草
ビジネスロジックが抜け落ちてる >>787
そりゃ世間はコントローラアクションからドメインクラスを呼び出すのが作法になってるからだが、はっきり言ってトランザクションスクリプトしてるとボイラーテンプレートだしな。
まあ実際にはサービスクラスpublicメソッド呼び出しにaopしてるからコントローラはその呼び出しになってるけど >>793
「少なくとも」という日本語から説明が必要な感じ? >>783
俺のはDDDに忠実な、スタンダードな設計
DDDをよく理解せずに、リポジトリとかサービスって、言っとけばいいんだろ?
みたいな、浅い理解の仕方だと、仕様とか、ポリシーといった概念が抜け落ちて、しまうんだ
すると、リポジトリにやたら複雑な検索を実行するメソッドとか、同じ条件判定が、あちこちにコピーされる、といった、なんとも残念な、エセDDDになってしまう ユーザクラスを生成してポイントと
履歴をテーブルから取得でええんじゃね?
よくあるパターンだとserviceで判定してactionにSMS通知フラグを
返しやるみたいな >>796
さすがに条件の一つ一つをオブジェクトにするのはアホだわって話が通じないところを見ると真正だな? >>796
正直うちは基幹システムメインだから仕様変更多くなくてdddにする意義が見いだせなくてなー... >>796
SQLである程度絞らないとメモリに大量に読み込んでロジックで抽出する富豪的な書き方になるだろ
まぁ今はそれでも許される時代になったのか >>786
ううむ、バッドプラクティス
そのまま進むと、リポジトリの責務が際限なく膨らみ、様々なビジネスロジックの置き場と化す
悪いことはいわん、お若いの
リポジトリはシンプルに保つのじゃ
なお、CQRSで割り切って、短いキャンペーンの間なら、表示までは、テキトーなSQLでええやろ、ならおk
ずっと残すものは、綺麗に作れ。これ大事 >>798
一回のキャンペーンの条件に過ぎないものを全部オブジェクトとしてハードコーディングするのはさすがにアホだよね >>798
彼が言いたいのは仕様をDRYしろって大原則が抜け落ちるとdddのメリットの9割が消えるってのが主張したいことだろ
結果的に条件が横断的な仕様なら個別に別れてなきゃいかん >>804
60歳をハードコーディングすることのどこがDRYだw マイクロサービスはそうするよ
という肯定意見がないのでこのスレはその程度なのだろう 何万件ものデータ扱うならDBとか意味あるけど
たかだか数百件扱うのに導入する意味が分からないよ >>798
一つ一つとか関係ない
それが業務で定義されてるのなら、どんなに小さくても、作るのだ
システムは、気持ち、で開発するのではない
業務、ドメインを再現するのじゃ
それがDDDなのじゃよ 条件をオブジェクトにするやつって複数のキャンペーンにどう対応するんだろう
全部クラス化するのか? >>808
とりあえず入門しろ
お前の想像とは全然違うものだから >>810
要件定義からの仕様書からの詳細設計書だが? >>799
変更が多い時に最も大切なことはテストだろう
テストしやすいようにDDDしよう >>809
クラス化しても、後でそれでカバーできない条件ってのが絶対出てくるから、クラスの書き直し、それに依存してるコードの修正、そしてテストも失敗するから、大量のテストの修正ってパターンだな DBにする理由は永続化でデータ件数とかより
こっちかなと
テキストとかCSVで保存すると排他制御とか
行単位では出来ないし、何がどれやら作った人にしか解らなくなる 検索条件の一つ一つをクラス化しなきゃいけないと思ってるやつは電卓を作るときはボタンの一つ一つを全部クラス化しなきゃいけないとか思ってそうだな
Value Objectを知らんのだな ■ このスレッドは過去ログ倉庫に格納されています