6
ワンライナー対読みやすさ:コードの削減を停止するタイミング [閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 2年前に閉店。 環境 私は最近、より良いフォーマットのコードの作成に興味を持ちました。そして、「コードを実行するための独自の「最良の」方法はもちろんないため、「良い慣行と見なすのに十分な人々によって承認されたルールに従う」という意味です。 最近はほとんどRubyでコードを書いているので、リンター(Rubocop)を使ってコードの「品質」に関する情報を提供し始めました(この「品質」はコミュニティ主導のプロジェクトruby-style-guideで定義されています)。 場合によってはコードの効率がコードの記述方法によって実際に影響を受ける場合でも、コードの効率についてではなく、「フォーマットの品質」のように「品質」を使用することに注意してください。 とにかく、すべてのことをして、私はいくつかのことを実現しました(または、少なくとも覚えていました)。 一部の言語(特にPython、Rubyなど)では、優れたコードのワンライナーを作成できます。 コードのガイドラインに従うことで、コードを大幅に短くすることができますが、それでも非常に明確です。 ただし、これらのガイドラインに厳密に従うと、コードがわかりにくく/読みやすくなります。 コードはいくつかのガイドラインをほぼ完全に尊重し、それでも品質が低い場合があります コードの読みやすさはほとんど主観的です(「私が明らかにすることは、仲間の開発者にとって完全に不明瞭かもしれない」) これらは単なる観察であり、もちろん絶対的なルールではありません。また、コードの読みやすさと以下のガイドラインはこの時点では無関係に見えるかもしれませんが、ここでのガイドラインはコードの1つのチャンクを書き換える方法の数を絞り込む方法です。 次に、いくつかの例を挙げて、すべてをより明確にします。 例 単純なユースケースを見てみましょうUser。「」モデルを持つアプリケーションがあります。ユーザーはオプションでありfirstnameかつsurname必須とemailアドレスを。 私は、メソッド「書きたいnameその後、名前を返します」(firstname + surname少なくとも、彼の場合は、ユーザーのを)firstnameまたはsurname、本、またはそのemail代替値としていない場合。 また、このメソッドでuse_emailパラメーターとして" "(ブール値)を使用して、フォールバック値としてユーザーの電子メールを使用できるようにします。このuse_emailパラメーターは(渡されない場合)デフォルトで" "になりますtrue。 それをRubyで記述する最も簡単な方法は次のとおりです。 def name(use_email = true) # If firstname and surname are both blank (empty string or undefined) # and we can use the email... if (firstname.blank? && …
14
ruby
syntax
formatting