問題タブ [procedural-programming]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
functional-programming - 手続き型プログラミングと関数型プログラミングの違いは何ですか?
手続き型プログラミングと関数型プログラミングの両方についてウィキペディアの記事を読みましたが、それでも少し混乱しています。誰かがそれを核心まで煮詰めることができますか?
c++ - Accelerated C++ Practical Programming by Example の概念は今日でも有効ですか?
次の本を勧められました。
Andrew Koenig および Barbara E. Moo Addison-Wesley 著、例による加速された C++ の実用的なプログラミング、2000 ISBN 0-201-70353-X
この本の基本は、オブジェクト指向プログラミングはメモリに関して非常に浪費的であり、ほとんどのソースコードはこの方法で書かれるべきではなく、すべてのインライン関数呼び出しと手続き型プログラミングを使用するべきであるということです.
つまり、ほとんどのプログラミング本はミルクとほぼ同じ保存期間があることを知っていますが、クライアント/サーバーアプリケーション (データベース、サーバーなど) (デバイスドライバーやビデオゲームではない) をコーディングする場合は、面倒な手間をかけるだけの価値があります。速度を上げるためだけに保守不可能なコードですか?
それとも、クライアントの非常に古いマシンでアプリケーションを実行するだけの価値があるのでしょうか? または、単一のボックスでより多くのサーバーを実行できるようにするには?
language-agnostic - 手続き型プログラミングとOOPの開発コスト?
私はかなり強いオブジェクト指向のバックグラウンドを持っています。OODとOOPの利点は私にとって第二の性質ですが、最近、手続き型プログラミングの習慣に縛られた開発ショップにいることに気づきました。実装言語にはいくつかのOOP機能があり、それらは最適な方法で使用されません。
更新:私と同じように、誰もがこのトピックについて意見を持っているようですが、質問は次のとおりです。
手続き型プログラミング言語とオブジェクト指向言語を使用したソフトウェア開発のコストを対比する優れた比較研究はありますか?
一部のコメント提供者は、リンゴとオレンジを比較しようとすることの疑わしい性質を指摘しており、正確に測定することは非常に難しいが、おそらく完全に不可能ではないことに同意します。
oop - 手続き型プログラミングにはOOPに勝る利点がありますか?
[編集:]以前、私はこれを、OOPを使用する場合と手続き型プログラミングを使用する場合について、おそらくフレームが不十分な質問として質問しました。一部の回答は、OOPの理解に役立つことを求めていたことを意味します。それどころか、私はOOPをよく使用しましたが、手続き型アプローチをいつ使用するかを知りたいと思います。回答から判断すると、OOPは通常、より優れたオールラウンドなアプローチであるが、OOPアーキテクチャが長期的に再利用のメリットをもたらさない場合は、手続き型言語を使用する必要があるというかなり強いコンセンサスがあると思います。
しかし、Javaプログラマーとしての私の経験はそうではありませんでした。私が設計した大規模なJavaプログラムは、私が作成したコードの1/10で、Perlの第一人者によって書き直され、OOPの完全性のモデルと同じくらい堅牢に見えました。私のアーキテクチャでは、かなりの量の再利用が見られましたが、より簡潔な手続き型アプローチによって優れたソリューションが生み出されました。
ですから、繰り返しになるリスクを冒して、オブジェクト指向のアプローチではなく、どのような状況で手続き型を選択すべきか疑問に思っています。OOPアーキテクチャが行き過ぎであり、手続き型アプローチがより簡潔で効率的である可能性が高い状況を事前にどのように特定しますか。
誰かがそれらのシナリオがどのように見えるかの例を提案できますか?
手続き型プログラミングアプローチによってより適切に提供されるプロジェクトを事前に特定するための良い方法は何ですか?
c++ - 手続き型プログラムとオブジェクト指向プログラムの違いは何ですか?
私はプログラミングの初心者ですが、StackOverflow でさまざまなプログラミング アプローチに関する興味深い議論を読んでいます。手続き型プログラミングとオブジェクト指向プログラミングの違いについては、まだ 100% 明確ではありません。オブジェクト指向プログラミングはまだプロシージャ (メソッド) を使用しているように聞こえますが、オブジェクトがショーのスターであるため、すべてが異なって編成されています。しかし、手順を踏めば、同じことをすべて行うことができるように思えます。C の場合と同様に、同様の手続きをすべてライブラリに入れることができます。C のライブラリは C++ のオブジェクトに似ていると本当に言えませんか?
c - オブジェクト指向の世界から来た C に苦労していませんか?
プログラミングの問題を提示されると、頭の中で自然にそれらを論理的なオブジェクトに分解し始めます。誰が何の責任を負い、誰が何を所有し、誰が何から派生するかなど。
私はCに苦労しています.手続き型言語で物事を行う方法がわかりません。
経験豊富な C プログラマーは、設計時に自分のプログラムについてどのように考えるべきかを説明してくれますか?
たとえば、独自の Semaphore クラスを書きたいとします。当然、自分のプログラムにも Queue データ構造が必要になります。これも自分で書きたいと思います。これを Java または C# で行う必要がある場合は、簡単な Queue クラスを作成し、Semaphore クラスでその新しいインスタンスを作成するだけで済みます。
しかし、C にはオブジェクトがありません。Queue データ構造のすべての動作をインライン化する必要がありますか?
誰かが私を「手に入れる」のを手伝ってくれますか?
oop - パラダイムに従って、または言語が提供するツールに従ってソフトウェアを設計する必要がありますか?
質問を例で説明します.zendフレームワークでは、ビュークラスに機能を追加したい場合、ヘルパークラスと呼ばれるものを使用できます。
ヘルパー クラスは、各ビューで使用可能になる 1 つのメソッド (クラスの名前と同じ) を持つクラスです (リフレクションにより、ヘルパー メソッドはビュー メソッドによってラップされます)
。そのような各ヘルパーとリフレクションで遊ぶいくつかの追加のインクルード。どちらもパフォーマンスに影響します。
私の考えは、ビューに追加したいメソッドごとにヘルパーを開発する代わりに (それぞれ別のファイルに)、C スタイルの関数 (つまり、クラスの静的メソッドではなく、実際の関数) のリストを使用して 1 つのヘルパーを作成することでした。 View クラスでのみ使用されます (View ヘルパーは View にのみ含まれるため)。
したがって、これはいくつかのプロシージャルとオブジェクト指向を混合していますが、パフォーマンス上の利点は目に見えます。とにかく、ヘルパーは通常、状態を維持する必要のない単一のメソッドです...
ある人はこう言うだろう: 「手続き型を使えばパフォーマンスが向上する」, いいえ, 私は OO の利点をよく知っています. ただし, この小さな問題を除い
て.
c# - 異なる言語で書かれたサンプルプログラムを探す
OOP 言語と手続き型言語の違いを理解する方法として、C と C++、C#、または Java で記述されたサンプル プログラムを探していました。本当の違いを理解するのに役立つように、同じ問題に対するさまざまなアプローチを確認したいだけです。このようなチュートリアルをどこで見つけることができるか知っている人はいますか?
functional-programming - 副作用は良いことですか?
私はその言葉がかなり軽蔑的だと感じます。したがって、ウィキペディアの次の 2 つの文には驚かされます。
命令型プログラミングは、副作用を利用してプログラムを機能させることで知られています。関数型プログラミングは、副作用を最小限に抑えることで知られています。[1]
私はやや数学に偏っているので、後者は素晴らしいと思います。副作用の議論は何ですか?それは制御不能を意味するのか、それとも不確実性を受け入れることを意味するのか? 彼らは良いことですか?