はてなキーワード: オブジェクト指向とは
いやLispは最強のオブジェクト指向システムを持ってるんですが。
Lisp界ではハッシュテーブルとクロージャーとマクロがあればオブジェクト指向システムいらねというポールグレアムみたいな意見はスルーされて普通にオブジェクト指向システム使って書いてる人がほとんどですけど。
半分同感。
おっしゃる通りFW上で開発してる限り意識すべきはオブジェクト指向ではない。
オブジェクト指向を勉強すると小さなクラスをnewして〜メッセージをやり取りして〜継承して〜ってなるが、クラスとはユーザーが定義する単なる「型」。継承は親からの差分。これだけで良い。
現場において向き合うべきはいかに最小限の変数やコード量で実現するかが重要ってこと。
付け焼き刃の知識でオブジェクト指向が〜というヤツに限って、無駄なクラスを作りまくったり無駄なメソッドや変数が多い。
コピペプログラマはOOPとか余計なこと考えずに素直にFWの恩恵に乗っかっていれば良い。
オブジェクト指向の考え方は、対象物が1:1の関係じゃなくなったら基本的には必要だよ
オブジェクト指向言語でなくてもオブジェクト指向的な書き方をする。
例えばCのファイルIOの関数は、FILE *fpを使って操作するけど、あれだってオブジェクト指向だよ。
キチガイに刃物、ゴミプログラマに継承。危険なものは取り上げるべきだ。
オブジェクト指向プログラミングにおける継承は強力な手法であるが、これを正しく使えるプログラマは残念なことに極めて少ない。たいていの場合、継承を使うことで却ってプログラムの保守を困難にしてしまう。継承のアンチパターンの最たるものは、単なるメソッドやメンバ変数の共有のために継承を使うパターンだ。これを行うとデータが密結合になってバグの原因になり、プログラムを把握することも極めて困難になる。
そもそも、熟達したプログラマの感覚では、業務で書くアプリケーションの実装に継承を使うべき局面などほとんど無い。ライブラリ等のより低レベルな処理で仕様が確定しているものについては、継承が効果的となる場合もあるが、複雑なアプリケーションのロジックに継承を使うのはほとんどの場合、時期尚早な抽象化となる。
また、凡庸なプログラマが継承で実現したいと思うことは、ほとんどの言語でより適切な手段が存在する。
継承を誤って用いるプログラマが多いにも関わらず、実は継承の使い時ははっきりしている。以下は、一定水準のプログラマならば、誰でも答えられる質問である。これに答えられないプログラマは不勉強を恥じるべきである。
答えられない人、自分の答えが正解の内容と一致しているか即座に判断できない人は、継承を使うべきではない。医学知識ゼロの素人が外科手術をするようなものであり、非常識極まりない。
リスコフの置換原則は、オブジェクト指向の文脈で言えば、以下のようになる。
「Baseを基底クラス、DerivedをBaseの任意の派生クラスとするとき、Base型として生成されたオブジェクトをDerived型のオブジェクトに置き換えても問題なく振る舞うようにしなければならない」
ゴミプログラマが継承を使いたがる理由の99%は、以下である。
特に最近の技術にはまるっきしついていけてないためか、Ajax(今時Ajaxというような単語を出してしまったところがもうあれですが)などの非同期処理が必要なUIに関する設計が未だにJSPベースのものになっている。
さらに正規化、オブジェクト指向などモデリングに対する知識は皆無で、すべてがただの落書きになっている。
大手SIerは人を管理することが得意というが、管理すらできてなく押し付けてるだけである。証拠に誰が何をしているのか全く理解をしていないから実際の進捗と客先に報告する進捗の解離が甚だしい。我々からすると嘘の報告を客先にして、その結果客にコレコレと言われてしまったからどうにかして欲しいというような全くプロジェクトの進行とは無関係なことを言い出す始末。
この幼稚で非合理で理不尽な感情をそのまま頭の中に残すのは、近いうちにつくるリアリティのあるシナリオの下書きとして使う前に忘れてしまいそうでもったいないため記録しようと思う。
また、記録するだけだと正直味気ないためここで公開してみる。叩かれるかもしれないが。。。
私は大手Sierのシステム開発の部署に属する一次受け新人SEだった。
そんな経験を活かし、今後はここでたくさんの技術を身に着けエンジニアとしてのキャリアを花咲かせてやる!
期待に目を輝かせていた無知で愚かな新人に仕事内容を聞かれた先輩社員はこう言った。
大手Sierのシステム開発で技術に長けたエンジニアはほとんどいない。
私の経験では30人いる部署のうち、3人いればいいぐらいである。
ちなみにここでの技術に長けたエンジニアの定義だが、基本的にはこのような定義となる。
自分で何かシステムを作っていたらならもうここで技術を学ぶ事は何もないだろう。
何故大手Sierのシステムをエンジニアリングするという職場でそのような事が起きるのか。
実際の理由としてはこのような仕組みとなっているためだ。
こんな子たちを念頭に置きながら設計方針というこれまた作成者不明のドキュメントに伴いExcelで設計書を作っていく作業となる
コーディング知識のない人でもシステムが作れるように適応していった結果なのだろう
これらの仕組みを知る人は自社にはいなかった。
これは知っている人も多いかもしれない。自社でやるより単価が安いからという理由らしい。
たくさんのものを犠牲にしているため、単価が安いからという理由だけで丸投げするのは私は猛反対だが。
そして下請けはどうもこのブラックボックス化したフレームワークについて仕組みまで理解しているらしかった。
そんな理由で開発を丸投げする大手Sierのメンバーは私を含め生成されることとなる。
ちなみにおかしな話だが、この下請けにブラックボックス化されたフレームワークの仕組みをエンジニアとして質問してみたことがあった。返信は今も帰ってきていない。
「下請けにコーディングを丸投げし、設計を自分たちで行う」という文化はよく知られているかもしれない
しかしながら、ここで無知な私は何回か疑問に思ったことがある。
わざわざ答えを人に聞くよりも先に私達が作ったシステムは答えてくれた
どんな人間にも定量的で定性的なシステムは一番信用できると思った。
書きたいのいっぱいあるから叩かれたとしてもこの後いっぱい書くかもごめん。
時間 | 記事数 | 文字数 | 文字数平均 | 文字数中央値 |
---|---|---|---|---|
00 | 108 | 12149 | 112.5 | 56 |
01 | 94 | 12765 | 135.8 | 54 |
02 | 35 | 4414 | 126.1 | 38 |
03 | 21 | 2200 | 104.8 | 34 |
04 | 33 | 4208 | 127.5 | 50 |
05 | 19 | 1556 | 81.9 | 40 |
06 | 28 | 1950 | 69.6 | 47.5 |
07 | 66 | 6859 | 103.9 | 49.5 |
08 | 165 | 15617 | 94.6 | 40 |
09 | 213 | 19306 | 90.6 | 52 |
10 | 215 | 18347 | 85.3 | 48 |
11 | 248 | 25601 | 103.2 | 42 |
12 | 256 | 19813 | 77.4 | 45 |
13 | 228 | 20496 | 89.9 | 41 |
14 | 192 | 26262 | 136.8 | 42.5 |
15 | 212 | 16764 | 79.1 | 42 |
16 | 268 | 27773 | 103.6 | 45 |
17 | 229 | 20522 | 89.6 | 43 |
18 | 198 | 21496 | 108.6 | 44 |
19 | 160 | 14092 | 88.1 | 43 |
20 | 177 | 16101 | 91.0 | 34 |
21 | 236 | 28939 | 122.6 | 27 |
22 | 252 | 25896 | 102.8 | 36 |
23 | 151 | 23751 | 157.3 | 40 |
1日 | 3804 | 386877 | 101.7 | 42 |
クワーッ(7), イチナナ(6), 7発(8), チュプ(21), マミーポルノ(5), 偽ブランド(4), 投げ飛ばし(6), 釣銭(7), くさくさ(3), 平成3年(3), ハンドガン(3), 特定派遣(3), プラットフォーム(14), 爺(13), 健常者(20), 男尊女卑(14), キャバクラ(19), 出生(9), クレーマー(15), VTuber(11), 警官(20), V(16), ジジイ(16), ホスト(14), ゾーニング(20), 男女平等(12), Vtuber(18), 既婚(22), 店員(39), 同人(24), 黒人(42), 垢(19), キモ(52), 作家(23), 白人(22), 障害者(16), 発達障害(17)
■同人女は同人垢で結婚妊娠出産報告をするな /20200826205722(59), ■彼女が発達障害持ちであることを隠していた /20200825231023(38), ■「できる人」をバカにするのはもうやめよう /20200827104657(37), ■偽ブランド品を買い続ける母親 /20200827113038(20), ■経血サバイバル /20200827011835(15), ■女二次創作界隈の焼きマロ自演問題 /20200827140234(14), ■お前らはまだ本当のバーチャルホストクラブを知らない /20200827082812(14), ■集英社に関わる男性がヤバすぎる件 /20200827083708(12), ■単語を繰り返す言い回し /20200827160441(12), ■ジェンダーギャップが解消されるとどうなるか /20200825192900(11), ■義理の兄の中古自動車屋が潰れた話 /20200826164820(11), ■野良猫に餌付けすんじゃねぇーよ!クソが。 /20200826231801(11), ■増田っていつ「バカに見つかった」の? /20200826234802(11), ■お前ら少しくらい協力しろボケが /20200827142555(10), ■Vtuber狂いとホスト狂い /20200826195939(10), ■気付くと句点を使う僕は少数派になっていた。 /20200827084631(9), ■なぜゴリゴリマッチョイムズ丸出しの鬼滅の刃はフェミどもから攻撃されなかったのか /20200826200900(9), ■三国志入門におすすめのなにか /20200827205429(9), ■国公立大学医学部で一番入りやすい大学は徳島大学である。倍率2倍。 /20200827164058(8), ■anond:20200826205722 /20200827132300(7), ■キャバというよりオタクがキモいだけでは? /20200827125739(7), ■その分野の知識が無くても雰囲気で楽しめる作品ってあるよね /20200827083319(7), ■虫が嫌いで、旦那のことも嫌いになりそう /20200827071004(7), ■特定派遣の正社員になって10年が経った /20200827115616(7), ■オブジェクト指向がわからないあなたへ /20200827110007(7)
これをITの非専門家が読んでわかりやすいだろう、って思ってるとしたら相当やばいよ
そもそもプログラミングという行為がわかっていない非専門家に対して
「現実に物がありますよね。これをモデルにしてプログラミングする、それがオブジェクト指向です」
って言われて理解できると思ってるの?
モノという考え方は、18世紀の哲学者カントに遡ります。カントは純粋理性批判において、理性と経験によって認識できる以前の「物自体」という概念を提唱し、大陸の合理主義とイギリスの経験主義を統一しました。オブジェクト指向におけるモノとは、カントのいう物自体です。
しかもそのモノについていきなりカントを持ち出してくるとか正気の沙汰とは思えない。本当にカントの物自体の議論、経験論を踏まえた上で言ってる?それを相手が理解していることを前提としてるの?