私は Ruby を学んでいて、タイピングに関して大きな概念上の問題を抱えています。パラダイムを理解できない理由を詳しく説明させてください。
Ruby で行うように、コードを簡潔にするためのメソッド チェーンを使用しているとします。チェーン内の各メソッド呼び出しの戻り値の型を正確に把握する必要があります。そうしないと、次のリンクで使用できるメソッドを知ることができません。毎回メソッドのドキュメントを確認する必要がありますか?? 私は、この常に実行されているチュートリアル演習に取り組んでいます。コーディング中に自分が何を扱っているかを正確に知るのではなく、コードを実行するために、参照、推測、実行、失敗、修正、繰り返しのプロセスに行き詰まっているようです。これは、直観性という Ruby の約束に反しています。
サードパーティのライブラリを使用しているとします。もう一度、どの型がパラメーターを渡すことが許可されているかを知る必要があります。そうしないと失敗します。コードを見ることはできますが、メソッドが期待する型のコメントや宣言がある場合とない場合があります。メソッドに基づくコードは、型ではなくオブジェクトで使用できることを理解しています。しかし、パラメータとして渡すものはすべて、ライブラリが期待するすべてのメソッドを持っていることを確認する必要があるため、型チェックを行う必要があります。文字列、ハッシュ、クラスなどを与えることが期待されているかどうかを知るために、すべてがインターフェイスで適切に文書化されていることを願って祈る必要がありますか?
メソッドのソースを見ると、呼び出されているメソッドのリストを取得し、期待される型を推測できますが、分析を実行する必要があります。
上記のスタックオーバーフローの質問での議論は、「従わなければならないプロセスがある」以外には何も答えておらず、それらのプロセスは標準的ではないようです。従うべきプロセスについては誰もが異なる意見を持っており、言語には強制ゼロ。メソッドの検証? テスト駆動設計? 文書化された API? 厳密なメソッド命名規則? 標準とは何か、誰がそれを指示するのか? 私は何に従いますか?これらのガイドラインはこの懸念を解決しますかhttps://stackoverflow.com/questions/616037/ruby-coding-style-guidelines ? 役立つ編集者はいますか?
概念的にも私には利点がありません。呼び出されるメソッドに必要なメソッドを知る必要があるため、何かをコーディングするときに入力していることに関係なく. 文書化することにしない限り、言語や他の誰かに明示的に通知していません。次に、コーディング中ではなく、実行時にすべての型チェックを行うことになります。私はPHPとPythonのプログラミングを行ったことがありますが、そこでも理解できません。
何が欠けているか、理解していませんか? このパラダイムを理解するのを手伝ってください。