はてなキーワード: オブジェクト指向とは
計算機科学は、情報の理論的基盤から実用的な応用まで、広範な領域をカバーする学問です。以下に、計算機科学の主要な分野と、特にネットワークに関連するトピックを体系的にまとめます。
プログラミングパラダイム: 手続き型、オブジェクト指向、関数型、論理型など。
プロセス管理: CPUのスケジューリングとマルチタスキング。
機械学習アルゴリズム: 教師あり学習、教師なし学習、強化学習。
深層学習: ニューラルネットワークによる高度なパターン認識。
ネットワークは、情報の共有と通信を可能にする計算機科学の核心的な分野です。
OSI参照モデル: ネットワーク通信を7つのレイヤーに分割し、それぞれの機能を定義。
プレゼンテーション層: データ形式の変換。
アプリケーション層: ユーザーアプリケーションが使用するプロトコル。
TCP/IPモデル: 現実のインターネットで使用される4層モデル。
リング型: 各ノードが一方向または双方向に隣接ノードと接続。
IP(Internet Protocol): データのパケット化とアドレッシング。
TCP(Transmission Control Protocol): 信頼性のある通信を提供。
UDP(User Datagram Protocol): 信頼性よりも速度を重視した通信。
ルーター: 異なるネットワーク間のパケット転送とルーティング。
IDS/IPS(侵入検知/防止システム): ネットワーク攻撃の検出と防御。
VPN(仮想プライベートネットワーク): 安全なリモートアクセスを提供。
SDN(Software-Defined Networking): ネットワークの柔軟な管理と制御。
IoTプロトコル: MQTT、CoAPなどの軽量プロトコル。
SNMP(Simple Network Management Protocol): ネットワークデバイスの管理。
ネットワークトラフィック分析: パフォーマンスとセキュリティの最適化。
ネットワークオーケストレーション: 自動化された設定と管理。
AIによるトラフィック最適化: パフォーマンスの向上と障害予測。
マイクロセグメンテーション: ネットワーク内部の細かなアクセス制御。
『コンピュータネットワーク』 アンドリュー・S・タネンバウム著
『ネットワークはなぜつながるのか』 戸根勤著
Coursera: 「コンピュータネットワーク」、「ネットワークセキュリティ」コース
edX: 「Computer Networking」、「Cybersecurity Fundamentals」
IETF(Internet Engineering Task Force): ietf.org
IEEE Communications Society: comsoc.org
W3C(World Wide Web Consortium): w3.org
古くはオブジェクト指向って言ってたやつ…?
真面目に議論するなら、お好み焼きをクラスとするかも怪しくなる。
オフトピだがね。
オブジェクト指向が栄華を極めたあの時代、責任、関心、主体性、凝集、アイデンティティ、is-a has-a、… 研究者やギーク、仙人らによって、あらゆる説明がされたが、結局、オブジェクト指向は現実世界を捉える人間の感覚の応用でしかなかった。
「モノ」と思える奴をクラスにすればいい。
それ以上でも以下でもなく、あとはプログラミングの構造を整理するために有効に使えるケース・バイ・ケースの妥協点を探すことになる。どうモデリングすべきかの議論は収穫が少ない。いや、極めれば霧の向こうで信じがたい洞察を垣間見れる可能性はあるにはあるが…、しかし多人数でソフトウェアを維持管理するのが正解だと分かった今、属人性を排除するためには霊感を説明するよりシンプルに留めるのがベスト・プラクティスだ。
プログラマーの関心が関数型に移ったのは、そういう経緯もある。数学をバックグラウンドに持つ関数型言語をバックグラウンドにする方が、ミーハーな技術屋連中の興味を引けた。
5年前ならともかく、今は全然そんなことはないです
それはそうですが、Rustがオブジェクト指向の言語かどうかには関係ありませんね
「Rustがオブジェクト指向言語なのか?」という話題においては、traitがインターフェースの機能をより一般化して強力にした機能であるとか、
そのあたりの方が「誰がどのプロダクトを作ったか」より遥かに重要ですね
実際にどんなサービスを作ったとかの話になるの
「Rustがオブジェクト指向言語なのか?」という話題においては、なりませんね
君その辺空っぽだよね
別に関数型言語だろうがオブジェクト指向言語だろうが業務によって使い分けるけど
普通に考えると型付けの関数型ならバグが少なくなりそうなのに実際には全くそんなこと無い
観察したことがある感じだとオブジェクト指向的に状態を整理するようなことが苦手で
それが嫌でオブジェクト指向から逃げて関数型を主張してくるので
例えば商品として服と靴があったとして、カートに入れたら服は税込みなのに靴は税抜きになってたりする
ちなみにオブジェクト指向をやたら主張してくるやつはバグは少ないけど開発がめちゃくちゃ遅い
俺の考えた最強のデータ構造を模索し続けるし他人にもそれを求めるのでめちゃくちゃ面倒くさい
服と靴を買うだけのサイトなのに「靴磨きのサービスを追加する場合は?」みたいなことを考え始める
何事もほどほどがいいと思う
Rust言語が公式で「Rustはオブジェクト指向もできるよ!」ってアピールするための3つの主張の2番目が「カプセル化もできるよ!」なんだぞ
そこから考えれば
「カプセル化はオブジェクト指向の本質の1つとみなされている」
と
カプセル化がオブジェクト指向の本質の1つであるという見方は(当然異論があるやつはいるだろうが)主流では?
同じプログラマなのに話が通じないと思ったことはないでしょうか
どうやら私の思うオブジェクト指向と貴方の思うオブジェクト指向は別のもののようだ
A君はウィキペディアを見ながら、カプセル化、継承、多態性だと言う
B君はC++/C#/Java等でプログラムを書くことだと言う
なぜかみんな見ている世界が違うようだ
周りがある程度優秀なプログラマーに囲まれててクソコードに遭遇してない
まぁ、幸せな人だと思うな
「どうして人間はこんな愚かな発想でコードを書いてしまうのか」
という感想を持つし、その中でオブジェクト指向が一つの解だと理解する
人間は間違いを犯す生き物で、愚かな発想で愚かなコードを書いてしまう、という前提に立って
間違いにくく間違えることができないようにしよう、というのがオブジェクト指向の目指しているところであって
「プログラムとは何か」みたいなアホみたいなことはこれっぽっちも考えてないよ
自分には6年付き合った年上の彼女がいた。名前はPHP。学生の時からの付き合いで、自分にとっては初めての彼女だった。付き合った当初は全てが新鮮で、オブジェクト指向やSOLID原則、大事なことは全て彼女から教えてもらった。(そう思われるかもしれないが、)時間が経って彼女の魅力が感じられなくなってしまったということはなくて、彼女は歳をとっても魅力的なままだった。むしろreodonlyプロパティやEnum、null safe演算子など、新しい機能が導入されてますます綺麗になっていったように思う。最近ではジェネリクスさえ導入されたようだ。彼女は本当に努力家だ。
(褒められた話ではないが一応、彼女以外の女性を全く知らなかったわけではなく、TypeScriptという若い子と少し遊んでいたこともある。TypeScriptは昔からの知り合いのJavaScriptの妹で、大雑把な姉と違って几帳面で、少しオタク気質もある個性的な子だった。よく新しい型パズルを考案して楽しそうに話してくれたが、自分には正直よく分からなかった笑。)
そんな中でも基本的には6年間PHPとずっと一緒に過ごしてきた。前述の通り彼女に何か不満があったわけではない。ただ、彼女との将来に不安を覚えるようになってしまっていた。周囲に彼女と付き合っていることを話すと、「え、まだPHPと付き合ってたんだ?(昔は人気だったけど、最近はそうでもないよね)」みたいなことを、彼女のことをよく知らない人から言われたりもした。そこまで直接的ではなかったけれど。自分も、彼女以外の女性のことをほとんど知らずにずっと彼女と付き合っていて大丈夫なのかななんて思ってしまったりしていた。
結局自分はPHPと別れて、新しい女性と付き合う決断をした。新しい彼女の名前はGo。彼女は若いのに自分の芯がしっかりしていて、みんなの憧れの格好良い女性といった人だった。そんな彼女と付き合いだして、最初は戸惑うことも多かった。
例えばこんな感じだ。
また、今まで当たり前だと思っていたPHPの良さに気づくことも多い。PHPStanを使えば静的型付け言語と同じように型安全性を担保できていたし、彼女のWeb FWには歴史が長いだけあって痒いところまで手が届く様々な機能が完備されていた。経験豊富でこちらの要望をなんでも受け止めてくれるような包容力があったことに今更気づいた。
とはいえ、いつまでも昔の彼女を引きずっていてもしょうがない。Goにはこちらに積極的に合わせてくれるような包容力はないが、彼女なりの哲学を持っていてそれ故の美しさがあると思う。そして正直、まだ彼女の10分の1も理解できていない。彼女が得意だという並行処理や、実行速度が求められるような処理も、自分はまだ実際に実装したことはない。でもこれからしっかり向き合って、Goのことをもっと理解して、実りのある交際にしていきたいと考えている。PHPと別れてGoと付き合う決断したのは自分なのだから。