タグ付けされた質問 「readability」

読みやすさは、コードがどれだけ簡単に読み理解できるかを測定します。

3
GPLでリリースされたソースコードは人間が読めるものでなければなりませんか?
で別の質問への応答、ポスターが示唆GPLの下で: ...空白を除去したバージョンではなく、人間が読める[コード]を提供する必要があります... 読みやすさは主観的なものであり、GPLによって明示的に要求される可能性は低いと思われます。それは...ですか?

7
プログラムで非常に多くのルールとマジックナンバーを管理するにはどうすればよいですか?
私はプログラミングに多少慣れており(私は貿易で機械エンジニアです)、ダウンタイム中に工場周辺のさまざまな人々からの入力に基づいて(solidworks)パーツを生成する小さなプログラムを開発しています。 わずかな入力(正確には6つ)に基づいて、それぞれ最大12個のパラメーターを取ることができる何百ものAPI呼び出しを行う必要があります。すべては、パーツを処理するすべての人にインタビューした後に収集した一連のルールによって生成されます。私のコードのルールとパラメーターのセクションは250行で、成長しています。 だから、コードを読みやすく管理しやすくする最良の方法は何ですか?すべてのマジックナンバー、すべてのルール、アルゴリズム、およびコードの手続き部分をどのように区分するのですか?非常に詳細で詳細なAPIに対処するにはどうすればよいですか? 私の主な目標は、誰かに私の情報源を渡して、私の入力なしで、私がやっていることを彼らに理解させることです。

8
コードの簡潔さや読みやすさを好みますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 言語のショートカットを使用して、コードをより簡潔にすることができます。 たとえば、三項およびヌルの合体演算子はコードの量を減らすことができますが、間違いなく読みやすさを損ないます: C#の場合: Person newGuy = new Person(); if (boss == null) { newGuy.Boss = GetDefaultBoss(); } else { newGuy.Boss = boss; } 機能的に同等です: Person newGuy = new Person(); newGuy.Boss = boss ?? GetDefaultBoss(); しかし、明らかにもっと冗長です。 簡潔さと読みやすさの点では、どこで線を引きますか?

4
JSPスクリプトレットが悪いのに、なぜJSXが良いのですか?
React.jsは、コンポーネントと要素のツリーを構築するためのXHTMLのような構文としてJSXを提供します。JSXはJavascriptにコンパイルされ、JSX固有のループまたは条件を提供する代わりに、Javascriptを直接使用します。 <ul> {list.map((item) => <li>{item}</li> )} </ul> まだ説明できていないのは、JSPで類似のコンストラクトが悪いと考えられる場合、なぜこれが良いと考えられるのですか? JSPのこのようなもの <ul> <% for (item in list) { %> <li>${item}</li> <% } %> </ul> はのようなタグで解決される読みやすさの問題と見なされます<c:forEach>。JSTLタグの背後にある理由は、JSXにも適用できるようです。 XHTMLのような構文(山括弧、ネスト)とJava / Javascript(中括弧、コンマ、括弧)を切り替えていない場合は、読みやすくなります。 レンダリング関数内で使用可能な完全な言語とプラットフォームがある場合、そこに属さないロジックを入れることを思いとどまらせることはほとんどありません。 JSXが異なる理由を考えることができる唯一の理由は次のとおりです。 Javaでは、間違ったことをするインセンティブがありました。JSPはホットリロードされるので、JSPにコードを入れて再構築/再起動のサイクルを避けようとしました。保守性は、即時の生産性のために犠牲になりました。スクリプトレットを廃止し、テンプレート構成体の固定セットに制限することは、実質的に保守性を強化する方法でした。JSの世界にはそのような歪みはありません。 JSPとJavaの構文は、<% ... %>Javaコードと要素の生成を区別するための余分な要素や、foreach概念やファーストクラスの機能を持たないJavaのネイティブな構文(最近まで)に不格好です。JSXでループと条件にネイティブJavascriptを使用する構文のペナルティはゼロではありませんが(私の意見では)、JSPほど悪くはなく、ループと条件にJSX固有の要素を導入することを保証するのに十分なほど悪くはありません。 私が見逃している何か他のものがありますか?

6
TDDの使用時に機能または機能を削除する方法
TDDに関するテキストでは、リファクタリングのステップ中に「重複の削除」または「読みやすさの向上」についてよく読みます。しかし、未使用の関数を削除する理由は何ですか? たとえばC、メソッドa()とを持つクラスがあるとしましょうb()。今私はそれにf()追いやられる方法を持つことが良いと思うC。実際、定義/記述された単体テストを除くf()すべての呼び出しを置き換えます。これはもう必要ありません-テストを除いて。b()b() 削除してb()、それを使用したすべてのテストを削除するだけでいいですか?その部分は「読みやすさの改善」ですか?

1
Bootstrap 3がcamelCaseをダッシュ​​に変更する理由-読みやすいですか?
すべてのラクダケース名を v3.0でハイフン付きの名前に変更するというBootstrapの決定の背後にある理由は何なのでしょうか。私はグーグルで検索し、数冊の本を調べましたが、私はどちらかの方法しか意見を見つけることができません-確かなデータはありません。 キャメルケースの変数名がダッシュよりも読みやすいことを示唆する研究はありますか、それとも個人的な好みの問題ですか?

5
記述的な命名と80文字の行[クローズ]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 私はこれらの2つの価値あるプログラミング慣行を頻繁に耳にします。(1)コードの行は80文字以下である必要があり、(2)変数、メソッド、クラスなどにわかりやすい名前を使用します。 、彼らはしばしばお互いのトレードオフのようです。コードを80文字/行未満に保つと、よりわかりにくい名前を使用することになります(特に各インデントが4文字としてカウントされるPythonでは)が、より説明的な名前を使用すると、80文字を超える行になります。 だから、私の質問は、これらの2つのアドバイスのうち、どちらを選択する必要があるかを守ることがより重要ですか?私はこれを独立した(趣味の)プログラマーだと思っていますが、もっと重要なのは、大企業で働くソフトウェアエンジニアの観点からです。

4
プログラミング言語が冗長か簡潔かを判断する方法は?
プログラミング言語は、多くの場合、冗長または簡潔であると説明できます。 私の理解では、冗長言語は読みやすく、理解しやすく、簡潔な言語は簡潔で簡潔ですが、読むのはより困難です。定義で考慮すべき他のものがありますか? 今日の一般的なプログラミング言語の多くは冗長であるように思われ、これらの用語2つの用語は、ある言語を他の言語と比較して多かれ少なかれと表現するためにのみ使用されます。 プログラミング言語が他の言語よりも冗長/簡潔であるかどうかをどのように判断しますか? 例:C#はJavaより冗長ですか?

4
多くのパラメーターを持つ単一のメソッドと、順番に呼び出す必要のある多くのメソッド
私は多くのこと(シフト、回転、特定の軸に沿ったスケーリング、最終位置への回転)を行う必要がある生データをいくつか持っていますが、コードの可読性を維持するためにこれを行う最善の方法はわかりません。一方では、必要なことを行うために多くのパラメーター(10以上)を備えた単一のメソッドを作成できますが、これは悪夢のようなコードです。一方、それぞれ1〜3個のパラメーターを持つ複数のメソッドを作成することもできますが、正しい結果を得るには、これらのメソッドを非常に特定の順序で呼び出す必要があります。メソッドが1つのことを行い、それをうまく行うことが最善であると読んでいますが、順番に呼び出す必要のある多くのメソッドがあると、見つけにくいバグのコードが開かれるようです。 バグを最小限に抑え、コードを読みやすくするために使用できるプログラミングパラダイムはありますか?
16 java  readability 

7
C#、Javaなどの数学指向コードの読みやすさを改善するにはどうすればよいですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 CプログラマとC#プログラマの両方として、私がC#で気に入らないことの1つは、数学関数の冗長性です。たとえば、サイン関数、コサイン関数、またはべき関数を使用する必要があるたびに、Math静的クラスを追加する必要があります。方程式自体が非常に単純な場合、これは非常に長いコードにつながります。データ型を型キャストする必要がある場合、問題はさらに悪化します。その結果、私の意見では、読みやすさが低下します。例えば: double x = -Math.Cos(X) * Math.Sin(Z) + Math.Sin(X) * Math.Sin(Y) * Math.Cos(Z); 単純に反対 double x = -cos(X) * sin(Z) + sin(X) * sin(Y) * cos(Z); これは、Javaのような他の言語にも当てはまります。 この質問に実際に解決策があるかどうかはわかりませんが、C#またはJavaプログラマーがMathコードの可読性を向上させるために使用するトリックがあるかどうかを知りたいと思います。ただし、C#/ Java / etc。MATLABなどの数学指向の言語ではないため、理にかなっています。ただし、場合によっては数学コードを記述する必要があり、読みやすくすることができれば素晴らしいことです。
16 java  c#  math  readability 

4
プログラマーがなじみのない言語のコードをどの程度理解できるかに関する研究?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 言語Xを知っている経験豊富なプログラマーが、言語Yを使用して有能なプログラマーによって書かれたコードを、XおよびYなどの広く使用されているさまざまな言語でどれだけよく理解できるかについて、真剣な研究はありますか? もちろん、プログラマーが1つの言語しか知らないので、現実の世界はそれほど単純ではありません。私たちが知りたいのは、たとえばC#でプロジェクトを行い、いつかFortranとAlgolだけを知っている古い物理学者がそれを見ると、彼らにはどの程度意味がありますか?それらのいくつかのランダムな句読点を無視すると、数学的な部分はうまく読み込めます。または、Pythonの専門家が私の賢いRubyスクリプトの欠陥を見つけることができますか? 表面的な構文のレベルから、オブジェクト、テンプレートのメタプログラミング、機能などの壮大な概念のレベルまでの問題がある可能性があります。あるプログラマーが「外国語」のコードのすべての構文の詳細を完全に理解することや、ある壮大な概念の宗教に従うことを期待しているわけではありませんが、主な制御の流れをどこまで得られるのか、その場所を見つけること画面に何かが描かれ、その色やサイズを決定する場所で、車を運転するようにプログラムされたロボットが、完了時にエンジンをオフにすることを確認します。 質の高い研究には、出版された学術研究、ある業界グループまたは大手ソフトウェア会社からの公式レポートが含まれますが、ワークショップやクラスの経験豊富なリーダーやその他の情報源による体系的な公平な観察を行います。短いブログ、シングルケースの例、逸話には興味がありません。(まあ、良い読みをするなら、いくつかの逸話かもしれません。)

6
定数としてゼロ?
最近、このプログラミングのイディオムに出会いました。 const float Zero = 0.0; これは比較で使用されます: if (x > Zero) {..} これが実際よりも効率的であるか、読み取り可能または保守可能であるかを誰でも説明できますか? if (x > 0.0) {..} 注:この定数を定義する他の理由を考えることができますが、このコンテキストでの使用について疑問に思っています。

6
C#は読みにくくなっていますか?
C#の進歩に伴い、多くの言語機能が追加されました。それは私にとって読めなくなってきています。 例として、Caliburn.Microコードから次のコードスニップを考慮し、ここで: container = CompositionHost.Initialize( new AggregateCatalog( AssemblySource.Instance. Select(x => new AssemblyCatalog(x)) .OfType<ComposablePartCatalog>() ) ); さて、これはほんの小さな例です。 私にはいくつかの質問があります: これは一般的な問題または既知の問題ですか? C#コミュニティは同じことを見つけていますか? これは言語の問題ですか、それとも開発者が使用しているスタイルですか? 他のコードをよりよく理解し、この方法でコードを書くことを避けるための簡単な解決策はありますか?
15 c#  readability 

4
try catch-blocksの良い使用法は?
私は常にこれに取り組んでいます... try / catchingと、ホットポテトのようにコールスタックにスローバックされるタブ、ブラケット、例外のこのわいせつな混乱にならないコードとの適切なバランスを見つけようとしています。たとえば、SQLiteを使用する現在開発中のアプリがあります。SQLite呼び出しを抽象化するデータベースインターフェイスと、データベースに出入りするものを受け入れるモデルがあります。したがって、SQLite例外が発生した場合は、モデル(呼び出し元)に投げ込まれます。 )、AddRecord / DeleteRecord / whateverを呼び出した人に渡す必要がある人... エラーコードを返すとは対照的に、エラーコードがなど、忘れられ、無視することができますので、私は(許可され、私は例外は基本的に処理する必要があるのに対し、例外のファンだ可能性があり、私はよ...キャッチし、すぐに移動します)確かに、私が今していることよりも良い方法があるはずです。 編集: 私はこれを少し異なって表現する必要がありました。私は異なるタイプなどとして再スローすることを理解しています。私の質問は...そうするとき、どのようにコードをきれいに保つのが最善ですか?しばらくすると、私にとって非常に混乱し始めます。

6
多くの言語が名前付きパラメーターをサポートしないのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 関数を呼び出すときに、次のように書くことができれば、コードの読み取りがどれほど簡単になるかを考えていました。 doFunction(param1=something, param2=somethingElse); 欠点は考えられませんし、コードがずっと読みやすくなります。配列を唯一の引数として渡し、配列キーをパラメーター名として使用できることはわかっていますが、それでも読み取りは難しくなります。 私が見逃しているこの欠点はありますか?そうでない場合、なぜ多くの言語がこれを許可しないのですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.