X



実は「オブジェクト指向」ってクソじゃね?これデスマーチの原因じゃね?
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@涙目です。(北海道) [US]
垢版 |
2018/08/24(金) 19:29:03.98ID:GPtxw3E30?PLT(12015)

カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。

偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。

一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。

オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。

https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
0512名無しさん@涙目です。(東日本) [IT]
垢版 |
2018/08/25(土) 05:19:46.30ID:9LHcXBdi0
結局すべての考え方はなぜそうしたかを理解して適材適所で使うしかないんじゃないのかね。
よくわからんままに教条主義におちいってもよいものはできんわさ。
0514名無しさん@涙目です。(東日本) [IT]
垢版 |
2018/08/25(土) 05:43:08.82ID:9LHcXBdi0
プログラムを書くにはバカでは困るんだがね

コーダーとプログラマーは違うというといいのかもしれん。
COBOL時代のコーダーと今のプログラマーね。
プログラムの規模を行数で語るかどうかって差かもしれん。
0515名無しさん@涙目です。(東京都) [CN]
垢版 |
2018/08/25(土) 05:45:04.52ID:X8TnbwrZ0
フレームワークの作り手はカプセル化
必要だろ
書き換えられたら、フレームワークの動作が変わるからな
0516名無しさん@涙目です。(兵庫県) [US]
垢版 |
2018/08/25(土) 05:50:35.37ID:JoOVyS520
オブジェクト指向って要するに
入力と出力だけ決めといて挙動は全部ブラックボックス化するって話だよな
ブラックボックス指向でいいじゃん
0517名無しさん@涙目です。(東日本) [IT]
垢版 |
2018/08/25(土) 05:57:43.65ID:9LHcXBdi0
フレームワーク、OSとか考えるとそこと業務層のプログラムとは
違う気がするのです。
0520名無しさん@涙目です。(catv?) [ニダ]
垢版 |
2018/08/25(土) 06:32:15.97ID:erl+dEr00
>>203
勘違いにも程がある
0524名無しさん@涙目です。(catv?) [GB]
垢版 |
2018/08/25(土) 06:38:31.85ID:gOHY6Oe40
若者の間で Lisp が密かなブームらしい
0525名無しさん@涙目です。(新疆ウイグル自治区) [GB]
垢版 |
2018/08/25(土) 06:41:19.90ID:11By8zWP0
馬鹿とハサミは使いようって言ってな
0527名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/25(土) 06:48:29.39ID:IT1iAtVj0
オブジェクト指向に限らないが、仕様書、リファレンスが大事だと思うんだよね。

なぜ、こう作ったのか、こう設計した意図などをつぶさに書いとけば、製作者の意を汲める。

かっこつけてるのか、実は設計意図が曖昧なのを隠したいせいか、人から指摘されたくないせいか、そこらへんを自然言語で説明しない開発してると、引き継ぎも難しいし、修正やレビューも捗らない。
0528名無しさん@涙目です。(東日本) [IT]
垢版 |
2018/08/25(土) 06:50:20.80ID:9LHcXBdi0
>>527
Javadocとかコメントを適切に書いとけばいいって話はどうだろうか。
それとアジャイルだとドキュメントは後回しにされがちなにょうな。
0531名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/25(土) 06:54:40.82ID:IT1iAtVj0
>>528
アジャイルは良く分からないけど、チャット内容が仕様書代わりみたいなものなのかな?

Java docもコメントもミッチリ濃厚で余計なぐらいに想いのたけを書いた方がいいと個人的には思うな。

良いプログラムはコメントが要らない!って言う人もいるけど、そりゃある側面からはそう最適化されたコードはそうなんだろうけど。
そもそも、そう組んだ意図や、詳細設計の正誤までも判断するためには、たくさん情報がないとわからないというか。
0532名無しさん@涙目です。(大阪府) [ニダ]
垢版 |
2018/08/25(土) 06:57:08.78ID:ddJhcblh0
>>516
それぞれが勝手な設計をしてればそう

大先生が作った、処理の状況に合わせた
効率のよい理想的なモデルがあって
全員がそのモデルを、適切な処理で正しく使っていれば
効率はいいはず

という話だろw
だれがあんなの暗記してるんだよ
と個人的には思う
0535名無しさん@涙目です。(島根県) [US]
垢版 |
2018/08/25(土) 07:01:11.65ID:cxrRkP5N0
実は無能な上司が中途半端に
しかオブジェクト指向を理解してないことが
一番の原因だろしかもそれ指摘したら切れるるし
まあ人間関係を悪くするよオブジェクト指向は
0537名無しさん@涙目です。(庭) [FR]
垢版 |
2018/08/25(土) 07:09:24.06ID:Z77G+eh50
>>498
getter/setterでチェックして都合が悪い時は例外返せばいい
0538名無しさん@涙目です。(島根県) [US]
垢版 |
2018/08/25(土) 07:11:01.29ID:cxrRkP5N0
オブジェクト指向の肝は
プログラム言語を自然言語の曖昧さを
もって使用できることだと思うが
たしかにこれ自分が小規模(いつでも
自然言語でコミュニケーション可能)な
環境で仕事しているからかも 大規模だと
また違う感想でてくるだろうな
0539名無しさん@涙目です。(チベット自治区) [SE]
垢版 |
2018/08/25(土) 07:12:13.62ID:/ZQvD3U20
プライベートを触るってことは
誰かが作ったソースを別人が引き継いだってこと
そういうイレギュラーが発生してること事態が無駄でイチから作り直してもかまわん
そういう入れ替えが極めて容易にできるのがオブジェクト指向
だからデスマを生むどころかデスマ対応に強い
0540名無しさん@涙目です。(チベット自治区) [US]
垢版 |
2018/08/25(土) 07:14:39.98ID:RNmOtowT0
言語というか開発環境が数年ごとにコロコロ変わる
10年も経つと使ってたレポートツールが会社ごとなくなってたりする
全部作り直してたらオブジェクト指向がどうもクソもないわ
0542名無しさん@涙目です。(大阪府) [ニダ]
垢版 |
2018/08/25(土) 07:20:17.65ID:ddJhcblh0
大混雑する駅のホーム
cxrRkP5N0が、その真ん中で爆竹を鳴らす
ホームの人々の多くが立ち止まり、ふり返る
しかし、暫くするとホームはいつもの様子を取り戻す

こんなの従来の言語等では簡単にモデル化は出来ない!
それを簡単にモデル化できるのが、オブジェクト指向の肝だ!
0543名無しさん@涙目です。(チベット自治区) [SE]
垢版 |
2018/08/25(土) 07:21:20.56ID:/ZQvD3U20
>>541
細かくできるなら全部バラバラの部品にしたほうがいい
再利用できる可能性が最も高くなるから
超細かい部品を自由に使って任意のクラスを作ればいい
0544名無しさん@涙目です。(奈良県) [US]
垢版 |
2018/08/25(土) 07:21:59.05ID:Nw6A6qor0
>>529
「一番の原因はお客様の仕様変更だろ」まぁそうなんだが、それでは開発者失格だ。
悪いのは
・お客様に変更の判断を下させた事
・それによるリスク説明と代替え策で納得させられなかった事
・事前にその仕様を理解させなかった事
・事前にその要求や問題を聞き出せなかった事

下っぱなら、自分の所のPMや本当の意味でのSEが無能であった事を恨め
0545名無しさん@涙目です。(catv?) [US]
垢版 |
2018/08/25(土) 07:22:37.98ID:bWt/bxIB0
setterってJavaビーンのsetNameみたいなメソッドのこと?
それなら値の妥当性の検査はしないな。

オブジェクト生成して直後にオブジェクトの依存関係とパラメータを設定するんであれば、
コンストラクタもしくはinitメソッドか。そこでチェックすることはあるかも。

実行中にオブジェクトにパラメータ渡したり依存関係を追加・変更するんであれば、
setterは作らず別のメソッドを作りそうだ。changeStateとかaddNameとか。
setterで1つずつ渡すと、パラメータ間の相関関係もあって面倒だからまとめて渡すメソッド作るわ。

だが俺は底辺のWEB業務ロジックコーダーだから、そんな面倒なオブジェクト間の妥当性検査を実装する機会がない。
ライブラリも作らない。他のシステムと連携するオブジェクトも作らない。
作成したクラスはライブラリを除きすべて良く知ったクラスとして扱いsetterとgetterで中身はすべてオープン。呼び出し側が責任を持って中身を管理する。
妥当性検査をするのはHTTPリクエストの中身ぐらいだ。
無駄な検査をすればテストも増える。時間がかかる。金がかかる。そんなことをすれば誰も喜ばないどころか寧ろ罵倒される事態になる。
将来性のある汎用的なプログラムでもない。単なる使い捨てプログラム。
何か改修があれば、予算がついて調査・改修・テスト・リリースと行うだけだ。
0546名無しさん@涙目です。(島根県) [US]
垢版 |
2018/08/25(土) 07:29:34.81ID:cxrRkP5N0
>>542
まさにそうだとおもうが

ホームの人々の多くが立ち止まり振り返る

関数型だと
ホームの人々はそれぞれ違う振り返る方をするのを
いちいち記述しなければならないが

オブジェクト指向だと振りあえりメオッドで記述できる

これが曖昧さだとおもうが
0547名無しさん@涙目です。(東日本) [IT]
垢版 |
2018/08/25(土) 07:38:19.50ID:9LHcXBdi0
>>543
それをあんまりやりすぎるとすげー遅くなるよ・・・
それに結局なんのための部品だよ、これってレベルにまで落ちてしまう

いい加減ってのは難しいものだ
0549名無しさん@涙目です。(やわらか銀行) [CN]
垢版 |
2018/08/25(土) 07:48:51.86ID:W3DRTUOb0
オブジェクト指向の次のトレンドって何?

プログラム言語は最近あんまり進化してないように感じる。
0551名無しさん@涙目です。(千葉県) [US]
垢版 |
2018/08/25(土) 07:53:37.36ID:8YYkmcxD0
>>516
全然違うだろオブジェクト指向ってのは設計思想の話
オブジェクトって単位にプログラム作って入出力ちゃんと決めて動かすって話でだろ
プログラム自身を見えなくするブラックボックスでは無い
0552名無しさん@涙目です。(庭) [GH]
垢版 |
2018/08/25(土) 08:06:19.18ID:w9f1VLfn0
>>369
LinuxのmapはC++より高速らしいな
0554名無しさん@涙目です。(庭) [NL]
垢版 |
2018/08/25(土) 08:10:33.74ID:IBruQyJZ0
オブジェクト指向設計
オブジェクト指向言語による実装

この2つがある
オブジェクト指向設計をしてC言語で実装する事も可能

100%全部オブジェクト指向設計を反映させなくてもいい
0557名無しさん@涙目です。(埼玉県) [US]
垢版 |
2018/08/25(土) 08:23:45.92ID:/HTcTRSi0
 
ぶっちゃけ、privateって変数について言ってるんじゃねーんじゃね?

関数やメソッドについてprivateがあるのなら、そのprivateメソッドや関数は別クラスで管理できるだろうからそうしようって話なだけ

カプセル化とか関係ねーからwwwww

論外

 
0560名無しさん@涙目です。(広島県) [US]
垢版 |
2018/08/25(土) 08:57:55.13ID:TpFhS/kP0
規模の大きなシステムでないと恩恵が無い
意味不明なカタカナのパラメータが増えていく
0561名無しさん@涙目です。(広島県) [US]
垢版 |
2018/08/25(土) 09:01:00.51ID:TpFhS/kP0
使うかどうか?判らないルーチンまで設計しチェックしデバッグしなければならない。無駄な工数が増えるだけ
0563名無しさん@涙目です。(新疆ウイグル自治区) [US]
垢版 |
2018/08/25(土) 09:03:02.36ID:oOBic4UK0
デスマーチの原因の10割が無能or馬鹿
発注側も受注側も、せめて応用情報レベルの知識必須にした方が良い
無資格者は仕事に携われないようにしろ
0567名無しさん@涙目です。(catv?) [CA]
垢版 |
2018/08/25(土) 09:14:01.60ID:fpZ3Qq790
言語仕様なんてどれも使い方次第
0571名無しさん@涙目です。(埼玉県) [US]
垢版 |
2018/08/25(土) 09:37:38.61ID:/HTcTRSi0
setter/getterあっても、setter()についてだけなら俺様最高!みたいなインライン化できるだけだし

それよりもメソッドprivateにされた方が鬼畜すぐるからやめちまえが趣旨だろwwwww

 
0572名無しさん@涙目です。(catv?) [ニダ]
垢版 |
2018/08/25(土) 09:53:00.59ID:E2gykvvF0
でも真の敵はフレームワークだよね
0573名無しさん@涙目です。(アメリカ合衆国) [CN]
垢版 |
2018/08/25(土) 09:53:25.00ID:3twieEP90
>>1
正解。

実はオブジェクト指向、協業するときどうこうという理由上げる三流エンジニア崩れがよく使う言い訳なんだが、結局、複雑な仕組みなので、相互で齟齬が生まれ、手戻りがひどい。

関数型がもっともシンプルで良い。

逆を言えば少数でやるならオブジェクト志向も悪くないが、日本のバカSIは大人数でこれに手を出して、見事に手戻りだらけ。機能の追加もままならないから、高くついてる始末。
0576名無しさん@涙目です。(庭) [NL]
垢版 |
2018/08/25(土) 09:58:17.81ID:IBruQyJZ0
>>569
オブジェクトって言ってる時点でオブジェクト指向前提じゃね?

オブジェクトのコピーを作るとき参照してるオブジェクトがあったらどのレベルまでたどってコピーするの?

複数のオブジェクトをコピーしないといけないしコミットするまで排他制御しないといけないけどどうやって実現する?
全部コピーするだけのメモリとか確保できる?

関数型プログラムではどうするの?
0578名無しさん@涙目です。(庭) [CN]
垢版 |
2018/08/25(土) 10:02:24.71ID:/CYFpoEh0
初心者だが、インスタンスとかクラスとかプロパティとかいう、このスレで出てくる単語が分からない
だれか教えてくれ
0580名無しさん@涙目です。(庭) [NL]
垢版 |
2018/08/25(土) 10:17:00.06ID:IBruQyJZ0
>>574
それって関数型言語でも
callする関数の仕様を誤認してたら発生する問題じゃね?
プロジェクトマネジメントの問題だろ
0581名無しさん@涙目です。(庭) [DE]
垢版 |
2018/08/25(土) 10:32:47.21ID:nW1sDELG0
アセンブラで制御系ゴリゴリな人間にはイライラさせる指向
0582名無しさん@涙目です。(空) [US]
垢版 |
2018/08/25(土) 11:10:27.21ID:u0d1Vcq00
ぬこーん
0583名無しさん@涙目です。(catv?) [US]
垢版 |
2018/08/25(土) 11:18:14.62ID:t5E+X9Gv0
>>61
いっぱいメモリー有るんだし。
0584名無しさん@涙目です。(庭) [EU]
垢版 |
2018/08/25(土) 11:18:55.50ID:7O3VJdhl0
privateなぞ不要
0586名無しさん@涙目です。(埼玉県) [US]
垢版 |
2018/08/25(土) 11:32:04.87ID:/HTcTRSi0
 
>>576

同じ意味の値を複数の箇所で持つなバカ!!

で終わり

 
0587名無しさん@涙目です。(大阪府) [CL]
垢版 |
2018/08/25(土) 11:38:08.34ID:0MGnHfEu0
デスマーチの原因は作り方じゃなく、自分で仕様も整理できない無能クライアントと営業の口約束と昼真っからソープ行って石鹸の匂いプンプンさせて夕方帰社してくるPMだろ
0588名無しさん@涙目です。(空) [JP]
垢版 |
2018/08/25(土) 11:42:11.90ID:KwnTpyLd0
自分のこと棚上げしてウジウジ言ってる無能はプロジェクトに要らない
明日から居なくても困らない
0589名無しさん@涙目です。(catv?) [NL]
垢版 |
2018/08/25(土) 11:42:49.04ID:iq6DWT450
優れたプログラマのオブジェクトはアクセサが適切。
ダメなプログラマのオブジェクトはアクセサが不適切。
ダメなプログラマでも優れたプログラマのオブジェクトを使えば何も考えなくても組める。
優れたプログラマでもダメなプログラマのオブジェクトを使えばイチイチ中を確認しながらじゃないとバグる。
0593名無しさん@涙目です。(やわらか銀行) [CH]
垢版 |
2018/08/25(土) 12:00:50.95ID:MnqwYuoo0
>>13

いらんでしょ
単価高い仕事として残るよ
0594名無しさん@涙目です。(dion軍) [EU]
垢版 |
2018/08/25(土) 12:04:50.28ID:VYOKSPJq0
ところで美少女ウンコパラダイムの問題は解決したの?
0595名無しさん@涙目です。(東日本) [DE]
垢版 |
2018/08/25(土) 12:07:01.90ID:QGkh9gP+0
そこら中で車輪を量産しなくなっただけでも昔よりはマシだが、
正直車輪以外の何か(オブジェクト)を再生産してるケースは多いかも
当初から言われてたクラスライブラリーの学習コストは相変わらず

計算機科学者の夢とIT土方の現場とは全然違うってのが未だに変わってない
0596名無しさん@涙目です。(東日本) [DE]
垢版 |
2018/08/25(土) 12:08:04.57ID:QGkh9gP+0
>>587
業界長いけど、お風呂入れてもらったPMの話は聞いたことがない…
0600名無しさん@涙目です。(新疆ウイグル自治区) [SE]
垢版 |
2018/08/25(土) 12:20:29.60ID:scR4upUb0
>>588
明日は日曜日やぞ
0602名無しさん@涙目です。(新疆ウイグル自治区) [SE]
垢版 |
2018/08/25(土) 12:25:25.65ID:scR4upUb0
>>601
プライベートに隠蔽してたモノをpublicにすればデスマーチ始まるよ
0603名無しさん@涙目です。(禿) [US]
垢版 |
2018/08/25(土) 12:27:55.37ID:zHqmzKPo0
関数型ってつまり手続き型ってこと?
ずっと手続き型で作ってきてやっとオブジェクト指向覚えたのに
0608名無しさん@涙目です。(catv?) [US]
垢版 |
2018/08/25(土) 12:50:33.30ID:MfHceOaP0
>>561
使うかどうか分からないなら
そんなもん永遠に使わないから
作らない方がいいよ
使い回しできるオブジェクトなんて
ほんの一握りなんだしさ
0609名無しさん@涙目です。(大阪府) [ニダ]
垢版 |
2018/08/25(土) 13:17:30.19ID:ddJhcblh0
>>544

「前回、機能<乙>について、A案とB案で、B案を選択しましたよね」
お客様「いや、機能<乙>自体俺の勘違い。機能<悦>を作って欲しい」←勘違いって言ってくれっるだけマシ

こっちのプリセールス(調達)の内容を審査してGOを出したのはお客さん
審査に関してはこっちは口を出せない
0612名無しさん@涙目です。(千葉県) [JP]
垢版 |
2018/08/25(土) 13:54:54.75ID:KHxdqYWi0
美少女クラスの排便メソッドで管理しているprivateの宿便プロパティを直接触る必要が出るってことか
クライアントを説得して牛乳浣腸はあきらめてもらうほうがいいな
■ このスレッドは過去ログ倉庫に格納されています

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