「オブジェクト指向」を含む日記 RSS

はてなキーワード: オブジェクト指向とは

2024-09-29

anond:20240929092551

計算機科学知識体系とネットワーク技術

計算機科学は、情報理論的基盤から実用的な応用まで、広範な領域カバーする学問です。以下に、計算機科学の主要な分野と、特にネットワークに関連するトピックを体系的にまとめます

1. 計算機科学の主要分野

1.1 アルゴリズムデータ構造

アルゴリズム設計: 問題解決のための効率的な手順の開発。

データ構造: データの整理と管理効率化するための手法

1.2 プログラミング言語コンパイラ

プログラミングパラダイム: 手続き型、オブジェクト指向関数型、論理型など。

コンパイラ設計: 高水言語機械語翻訳する技術

1.3 オペレーティングシステム

プロセス管理: CPUスケジューリングマルチタスキング

メモリ管理: 仮想メモリメモリ割り当て。

ファイルシステム: データの保存とアクセス方法

1.4 データベースシステム

リレーショナルデータベース: SQLによるデータ操作

NoSQLデータベース: 非構造データ管理

1.5 人工知能機械学習

機械学習アルゴリズム: 教師あり学習教師なし学習強化学習

深層学習: ニューラルネットワークによる高度なパターン認識

1.6 ソフトウェア工学

開発プロセス: アジャイルウォーターフォールモデル

品質保証: テスト手法バグトラッキング

1.7 セキュリティ暗号

暗号アルゴリズム: 対称鍵暗号公開鍵暗号

セキュリティプロトコル: SSL/TLSIPsec

2. ネットワーク技術

ネットワークは、情報の共有と通信可能にする計算機科学の核心的な分野です。

2.1 ネットワークの基本概念

OSI参照モデル: ネットワーク通信を7つのレイヤーに分割し、それぞれの機能定義

物理層: 電気信号ビット伝送。

データリンク層: フレーム転送エラー検出。

ネットワーク層: パケットルーティング

トランスポート層: エンドツーエンドの通信制御

セッション層: コネクションの管理

プレゼンテーション層: データ形式の変換。

アプリケーション層: ユーザーアプリケーション使用するプロトコル

TCP/IPモデル: 現実インターネット使用される4層モデル

2.2 ネットワークトポロジー

スター型: 中央ハブを介して各ノード接続

リング型: 各ノードが一方向または双方向に隣接ノード接続

バス型: すべてのノードが一本の通信ラインを共有。

メッシュ型: ノード間が多重に接続され、高い冗長性を持つ。

2.3 ネットワークプロトコル

IPInternet Protocol): データパケット化とアドレッシング

TCPTransmission Control Protocol): 信頼性のある通信提供

UDPUser Datagram Protocol): 信頼性よりも速度を重視した通信

HTTP/HTTPS: ウェブデータの送受信。

FTP/SFTP: ファイル転送プロトコル

SMTP/POP3/IMAP: 電子メールの送受信。

2.4 ネットワークデバイス

ルーター: 異なるネットワーク間のパケット転送ルーティング

スイッチ: 同一ネットワーク内でのフレーム転送

ブリッジ: ネットワークセグメントの接続

ゲートウェイ: 異なるプロトコル間の通信可能にする。

2.5 ワイヤレスネットワーク

Wi-Fi802.11規格): 無線LANの標準技術

Bluetooth: 近距離間のデータ通信

セルラーネットワーク: モバイル通信3G、4G、5G)。

2.6 ネットワークセキュリティ

ファイアウォール: 不正アクセスを防止。

IDS/IPS(侵入検知/防止システム): ネットワーク攻撃の検出と防御。

VPN仮想プライベートネットワーク): 安全リモートアクセス提供

暗号技術: データの機密性を保護

2.7 クラウドネットワーキング

クラウドサービスモデル: IaaSPaaSSaaS

仮想ネットワーク: ソフトウェアによるネットワーク構築。

SDNSoftware-Defined Networking): ネットワークの柔軟な管理制御

2.8 分散システム

分散コンピューティング: 複数ノードタスク分散処理。

ブロックチェーン: 分散型台帳技術

2.9 IoTモノのインターネット

センサーネットワーク: デバイス間の通信データ収集

IoTプロトコル: MQTT、CoAPなどの軽量プロトコル

2.10 ネットワーク管理モニタリング

SNMPSimple Network Management Protocol): ネットワークデバイス管理

ネットワークトラフィック分析: パフォーマンスセキュリティ最適化

3. ネットワーク技術の最新動向

3.1 5Gと次世代通信

帯域幅と低遅延: リアルタイムアプリケーションの実現。

エッジコンピューティング: データ処理の分散化。

3.2 SD-WANSoftware-Defined Wide Area Network

ネットワーク仮想化: 柔軟なWAN構築とコスト削減。

中央集中的な管理: ネットワークポリシーの一元管理

3.3 ネットワーク自動化AI

ネットワークオーケストレーション: 自動化された設定と管理

AIによるトラフィック最適化: パフォーマンスの向上と障害予測

3.4 ゼロトラストセキュリティ

信頼しない設計: 常に認証検証を行うセキュリティモデル

マイクロセグメンテーション: ネットワーク内部の細かなアクセス制御

4. 学習リソースと参考文献

4.1 推奨書籍

コンピュータネットワーク』 アンドリュー・S・タネンバウム著

TCP/IP詳解』 W. リチャード・スティーブンス著

ネットワークはなぜつながるのか』 戸根勤著

4.2 オンラインコース

Coursera: 「コンピュータネットワーク」、「ネットワークセキュリティコース

edX: 「Computer Networking」、「Cybersecurity Fundamentals」

4.3 標準化団体リソース

IETFInternet Engineering Task Force): ietf.org

IEEE Communications Society: comsoc.org

W3CWorld Wide Web Consortium): w3.org

2024-09-19

anond:20240919114904

昔はJavaマネだし嫌な感じのオブジェクト指向感強いしGUI微妙ものだったからそんな好きじゃなかったけど、最近は便利機能が色々増えててそんな悪くないよな

ただ.NETサポート期間短いから、実質無期限みたいな.NETFrameworkの方で作らざるを得なくてこれらの新機能が使えないのが困るところだけど

windows10の終了に合わせて.NETFramework廃止してくれればいいんだけど

2024-09-17

anond:20240917043049

うそクリーンアーキテクチャとかDDDとかオブジェクト指向とか全部嘘とか極端なこと言うやつは信じちゃいけない

クリーンアーキテクチャとかDDDとかオブジェクト指向とか全部嘘だよ

ソフトウェア業界で極端なことを言う人間は全員嘘つきだから、目の前の問題と要はバランスおじさんだけを信じろ

2024-08-21

anond:20240821125530

え、オブジェクト指向全盛期の民だけど、AIプロンプトと比べたら、モノつくりとしての面白さはオブジェクト指向の方が高いと思う。

いまの若者って作るのが面白くなくて可哀想だとは思ってる。

anond:20240821122228

プロンプトエンジニアリングこそが、プログラミングの醍醐味

まさしく粘土ねこねだ。

機械語とかオブジェクト指向とかよりも純粋プログラミングの楽しみに一番近い。

昔の時代の人々を憐れむぜ。

2024-05-18

anond:20240518203555

広島風お好み焼きインスタンスではない… の?

真面目に議論するなら、お好み焼きクラスとするかも怪しくなる。

オフトピだがね。

オブジェクト指向が栄華を極めたあの時代責任、関心、主体性、凝集、アイデンティティis-a has-a、… 研究者ギーク仙人らによって、あらゆる説明がされたが、結局、オブジェクト指向現実世界を捉える人間感覚の応用でしかなかった。

「モノ」と思える奴をクラスにすればいい。

それ以上でも以下でもなく、あとはプログラミング構造を整理するために有効に使えるケース・バイ・ケースの妥協点を探すことになる。どうモデリングすべきかの議論は収穫が少ない。いや、極めれば霧の向こうで信じがたい洞察垣間見れる可能性はあるにはあるが…、しかし多人数でソフトウェア維持管理するのが正解だと分かった今、属人性排除するためには霊感説明するよりシンプルに留めるのがベストプラクティスだ。

プログラマーの関心が関数型に移ったのは、そういう経緯もある。数学バックグラウンドに持つ関数型言語をバックグラウンドにする方が、ミーハー技術屋連中の興味を引けた。

2024-04-04

anond:20240404133919

利用者概念だけでもオブジェクト指向理解してないと、ノーコードはすぐ破綻するんよね^^;

しかも、ノーコードリファクタリングは物凄くやりづらいし。

ノーコード開発アンチパターンみたいなのが蓄積されて、普及していかないと、いろいろ厳しいでしょう。

2024-04-01

anond:20240401152026

今Rust使ってるのはよっぽど意識高い系ベンチャーGAMかってくらいなのよ

5年前ならともかく、今は全然そんなことはないです

ちゃんとしたプロエンジニアはRust以外にもたくさんメジャー言語経験があるし面接経験とかもあるのよ

それはそうですが、Rustがオブジェクト指向言語かどうかに関係ありませんね

インターフェイスがとか足切り質問であってそんな読めばわかること誰も重要視しないんだよね

「Rustがオブジェクト指向言語なのか?」という話題においては、traitがインターフェース機能をより一般化して強力にした機能であるとか、

そのあたりの方が「誰がどのプロダクトを作ったか」より遥かに重要ですね

実際にどんなサービスを作ったとかの話になるの

「Rustがオブジェクト指向言語なのか?」という話題においては、なりませんね

君その辺空っぽだよね

キミ、Rustの具体的な機能イディオムコーディングスタイルの話一切できてなくて、空っぽだよね

全部増田はいくらでもホラ吹ける自称だけ

anond:20240401150811

オブジェクト指向かどうか云々の話なんだから

テックカンパニーバックエンド不正検知のMLサービスにつながるSpringBootのサービスを置き換えました

より

pubで可視管理してtraitでインターフェース定義して、

ジェネリクストレイオブジェクトで多相する普通のRustのプログラムだよ~

の方が具体的だよ

前者はオブジェクト指向じゃなくて手続き型でも関数型でもなんでもできるんだから

関数型言語豪語するやつはバグが多い

別に関数型言語だろうがオブジェクト指向言語だろうが業務によって使い分けるけど

関数型言語をやたら主張してくるやつはめちゃくちゃバグが多い

普通に考えると型付けの関数型ならバグが少なくなりそうなのに実際には全くそんなこと無い

観察したことがある感じだとオブジェクト指向的に状態を整理するようなことが苦手で

それが嫌でオブジェクト指向から逃げて関数型を主張してくるので

根本的に体系的な物事の捉え方ができてないのでバグを量産する

例えば商品として服と靴があったとして、カートに入れたら服は税込みなのに靴は税抜きになってたりする

ちなみにオブジェクト指向をやたら主張してくるやつはバグは少ないけど開発がめちゃくちゃ遅い

俺の考えた最強のデータ構造模索し続けるし他人にもそれを求めるのでめちゃくちゃ面倒くさい

服と靴を買うだけのサイトなのに「靴磨きのサービスを追加する場合は?」みたいなことを考え始める

何事もほどほどがいいと思う

anond:20240401143235

Rust言語公式で「Rustはオブジェクト指向もできるよ!」ってアピールするための3つの主張の2番目が「カプセル化もできるよ!」なんだぞ

そこから考えれば

カプセル化オブジェクト指向本質の1つとみなされている」

カプセル化オブジェクト指向はなんの関係もない」

ではどちらが確からいか

2024-03-25

私の思うオブジェクト指向貴方の思うオブジェクト指向はなぜ違うのか

同じプログラマなのに話が通じないと思ったことはないでしょうか

どうやら私の思うオブジェクト指向貴方の思うオブジェクト指向は別のもののようだ

A君はウィキペディアを見ながら、カプセル化継承多態性だと言う

B君はC++/C#/Java等でプログラムを書くことだと言う

C君は OOPとOO は区別しろとか言ってくる

D君はこの世界のすべてはオブジェクトだと言う

E君はSOLID原則の方が大事だと言う

なぜかみんな見ている世界が違うようだ

どうしてこうなったのか

anond:20240325091743

俺もそんな意識高くないけど、オブジェクト指向が間違えづらいなんてこと無いでしょ

手続き無限に書き連ねたタイプの糞コード時間をかければ着実に直せるから精神ダメージはそこまでではないけど

ヤバい人が書いたオブジェクト指向副作用まみれで読めないし直せないし気が狂う

オブジェクト指向批判してる人は幸せ個人プログラマー

クソコード出会ってきた経験全然無いんだろうな

他人が書いたコードレビューした経験もなさそう

多分だけど業務ほとんどコード書いてなくて

オープンソース開発(笑)とか研究(笑)とかやってて

書いたとしてもモジュール化された完全に独立した部分か

周りがある程度優秀なプログラマーに囲まれててクソコードに遭遇してない

まぁ、幸せな人だと思うな

戦争を知らない平和時代プログラマー、という感じがする

プログラマー初級者〜中級者ぐらいのコードを見ると

「どうして人間はこんな愚かな発想でコードを書いてしまうのか」

という感想を持つし、その中でオブジェクト指向が一つの解だと理解する

人間は間違いを犯す生き物で、愚かな発想で愚かなコードを書いてしまう、という前提に立って

間違いにくく間違えることができないようにしよう、というのがオブジェクト指向の目指しているところであって

プログラムとは何か」みたいなアホみたいなことはこれっぽっちも考えてないよ

ただ、今後生AIが完全生成までは至らずとも広範囲サポートができるようになると

間違いを犯す心配はなくなるから新しいAI用の言語が生まれてくる気はするけどね

2024-02-10

継承ダメっていう話ってオブジェクト指向オブジェクトを物と思ってるのが諸悪の根源で、オブジェクトは物のことだと思ってるから物を継承させたがる。DigitalClock extends Clockとか。

継承は、というか正確にはオーバーライド機能だけど、インスタンス化したクラスが何であるのかで実際に実行される処理が変わるわけだからインスタンス化したクラスが条件になってる条件分岐みたいなもので、ifとかswitchで同じ条件が何度もプログラムに登場するのを消す目的使用するのが継承の正しい使い方だと思う。

2023-12-16

6年付き合った年上の彼女と別れた

自分には6年付き合った年上の彼女がいた。名前PHP学生の時からの付き合いで、自分にとっては初めての彼女だった。付き合った当初は全てが新鮮で、オブジェクト指向やSOLID原則大事なことは全て彼女から教えてもらった。(そう思われるかもしれないが、)時間が経って彼女の魅力が感じられなくなってしまったということはなくて、彼女は歳をとっても魅力的なままだった。むしろreodonlyプロパティEnum、null safe演算子など、新しい機能が導入されてますます綺麗になっていったように思う。最近ではジェネリクスさえ導入されたようだ。彼女は本当に努力家だ。


(褒められた話ではないが一応、彼女以外の女性を全く知らなかったわけではなく、TypeScriptという若い子と少し遊んでいたこともある。TypeScriptは昔からの知り合いのJavaScriptの妹で、大雑把な姉と違って几帳面で、少しオタク気質もある個性的な子だった。よく新しい型パズルを考案して楽しそうに話してくれたが、自分には正直よく分からなかった笑。)


そんな中でも基本的には6年間PHPとずっと一緒に過ごしてきた。前述の通り彼女に何か不満があったわけではない。ただ、彼女との将来に不安を覚えるようになってしまっていた。周囲に彼女と付き合っていることを話すと、「え、まだPHPと付き合ってたんだ?(昔は人気だったけど、最近はそうでもないよね)」みたいなことを、彼女のことをよく知らない人から言われたりもした。そこまで直接的ではなかったけれど。自分も、彼女以外の女性のことをほとんど知らずにずっと彼女と付き合っていて大丈夫なのかななんて思ってしまったりしていた。



結局自分PHPと別れて、新しい女性と付き合う決断をした。新しい彼女名前Go彼女若いのに自分の芯がしっかりしていて、みんなの憧れの格好良い女性といった人だった。そんな彼女と付き合いだして、最初は戸惑うことも多かった。


例えばこんな感じだ。

「え、Goって三項演算子とかデフォルト引数はないの?」

「ええそうよ。どっちもif文や可長変引数を使えば実装できるじゃない。私は興味ないわ」


また、今まで当たり前だと思っていたPHPの良さに気づくことも多い。PHPStanを使えば静的型付け言語と同じように型安全性担保できていたし、彼女Web FWには歴史が長いだけあって痒いところまで手が届く様々な機能が完備されていた。経験豊富こちらの要望をなんでも受け止めてくれるような包容力があったことに今更気づいた。


とはいえいつまでも昔の彼女を引きずっていてもしょうがない。Goにはこちらに積極的に合わせてくれるような包容力はないが、彼女なりの哲学を持っていてそれ故の美しさがあると思う。そして正直、まだ彼女10分の1も理解できていない。彼女が得意だという並行処理や、実行速度が求められるような処理も、自分はまだ実際に実装したことはない。でもこれからしっかり向き合って、Goのことをもっと理解して、実りのある交際にしていきたいと考えている。PHPと別れてGoと付き合う決断したのは自分なのだから

ログイン ユーザー登録
ようこそ ゲスト さん