問題タブ [code-structure]

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.

0 投票する
3 に答える
2481 参照

c++ - メソッドをヘッダーで自動的に並べ替えるにはどうすればよいですか?

ヘッダーファイルのメソッドを.cppファイルと同じ順序で並べ替えるのは良いスタイルですが、多くの場合、この順序は開発中に粗雑になります。

cppファイルのメソッドをヘッダーファイルで指定された順序に並べ替えるにはどうすればよいですか?

0 投票する
9 に答える
2283 参照

java - 大規模なレガシーJavaプロジェクトのクリーンアップ

私は巨大なJavaプロジェクトでいくつかの作業を行うように割り当てられており、開発者の数回の反復の影響は明らかです。標準のコーディングスタイル、フォーマット、命名規則、またはクラス構造はありません。Javadocを使ったクラスに出会うのは良い日であり、ユニットテストは幸せな空想です。

これまでのところ、プロジェクトに参加している人たちは、私たちが取り組んでいるクラスの既存の慣習に適応して「溶け込んで」いますが、ある程度の秩序と一貫性を課す時が来ています。

それは大変な挑戦であり、私は人々がそのような仕事について持っているかもしれないアドバイスを探しています。特に効果的な戦略や、注意すべき落とし穴はありますか?試してみるのもいい考えですか?

編集して追加:プロジェクトが悪いという印象を与えたくありません。実際、プロジェクトはしっかりと設計されており、大部分はよく書かれています。それはちょうどその年齢とメンテナンスの必然性を感じています...

0 投票する
1 に答える
406 参照

android - Android アプリの構造に関する質問

私は現在、MapView を利用してオーバーレイを追加するアプリケーションに取り組んでいます。基本的に、一度にオーバーレイ リストが 2 つを超えることはありません。

これが私がやろうとしたことです...

ItemizedOverlay クラス (MyFriendOverlay) を拡張し、その拡張クラス内にプライベート ArrayList オブジェクトを作成して、オーバーレイをアタッチします。でも; 解決方法がわからない問題に遭遇しました。このコード セグメントを見ると、次のようになります。

ImageView mapMarker = new ImageView(getApplicationContext()); mapMarker.setImageResource(R.drawable.markertrp);

myPointsToShow = new myFriendOverlay(mapMarker.getDrawable(), getApplicationContext());

ここでわかるように、ドローアブルに基づくアイコンを使用して ImageView を作成しました。この後、ItemizedOverlay からの拡張クラスができました。コンストラクターでは、ドローアブルとコンテキストの 2 つのパラメーターを取ります。

私が知っていることから、以下のコンストラクターが必要です (おそらく変更できます):

public myFriendOverlay(Drawable defaultMarker, Context context)

ここでの問題は、myPointsToShow の新しいインスタンスを作成し続けることです。これは、拡張クラスで使用したい ArrayList があるため、オーバーレイを直接制御できるためです。毎回新しいものをインスタンス化することで、リスト自体に実際に追加することはありません。

要するに:

私が望むのは、アプリケーションに 2 つのポイント (A と B) があり、たとえば B に対して新しい場所が検出された場合、オーバーレイ リストから B を削除し、新しい場所に置き換えることだけです。そしてAも同様です。簡単にするために、インデックス 0 を A に、インデックス 1 を B に付けて、2 点にまたがらないようにします。

必要なコンストラクターの問題のため、これに対する解決策を思いつくことができません。おそらく、私はそれについて一生懸命考えすぎています...

フィードバックをお寄せください。:)

読んでくれてありがとう。

0 投票する
7 に答える
377 参照

coding-style - コード構造: 可読性を高めるために多くの関数を使用する必要がありますか?

私の質問は Bash と PowerShell スクリプトを念頭に置いていますが、他の言語にも当てはまると思います。

関数の目的は、同じ (または非常に類似した) タスクを複数回実行することだと理解しています。これにより、スクリプト内のコードの量が減り、保守も容易になります。

それを念頭に置いて、スクリプトが関数を 1 回だけ呼び出すことがわかった場合、その関数が functionとして存在する理由はありません。代わりに、関数のコードを取得して、その関数が呼び出されている場所に配置する必要があります。

それをすべて言ったので、ここに私の質問があります:

複雑なスクリプトがある場合、各関数が 1 回しか呼び出されない場合でも、コードの各セクションを独自の関数に移動する必要がありますか? これにより、スクリプトの読みやすさが大幅に向上します。これは、そのロジック (関数) がすべてスクリプトの上部にあり、実行の流れがスクリプトの下部にあるためです。50 行のコードが 1 行で表されるため、スクリプトが何を行っているかを理解しやすくなります。

他の人はこれをしますか?このアプローチには欠点がありますか?

0 投票する
3 に答える
1243 参照

asp.net-mvc - ASP.NET MVC3のコントローラーの既定の基本クラスとしてカスタムクラスを設定できますか?

自分で作成したカスタム基本クラスからすべてのコントローラーを継承したいと思います。新しいコントローラーを追加するたびに行を変更できますが、そこに設定されるデフォルト値をどこかで指定できればもっと良いでしょう。そうすれば、これを忘れることを心配する必要がなくなり、後でプロジェクトに追加される他の人々がより簡単に時間を過ごすことができます。

これを達成する方法はありますか?

0 投票する
3 に答える
1480 参照

python - ステートフルPythonモジュールを使用してテスト分離を正しく実現するにはどうすればよいですか?

私が取り組んでいるプロジェクトは、Pythonパッケージとしてラップされたビジネスロジックソフトウェアです。アイデアは、さまざまなスクリプトまたはアプリケーションがそれをインポートし、初期化してから使用するというものです。

現在、初期化を行い、さまざまなことを設定するトップレベルのinit()メソッドがあります。良い例は、db接続を使用してSQLAlchemyを設定し、後でアクセスできるようにSAセッションを保存することです。これは、私のプロジェクトのサブパッケージ(つまり、myproj.model.Session)に格納されているため、モデルをインポートした後、他のコードが機能するSAセッションを取得できます。

簡単に言えば、これは私のパッケージをステートフルなものにします。私はプロジェクトの単体テストを書いていますが、この安定した動作にはいくつかの問題があります。

  1. テストは分離する必要がありますが、私のパッケージの内部状態はこの分離を破ります
  2. メインのinit()メソッドの動作は状態に依存するため、テストできません。
  3. 将来のテストは、よく知られているモデル状態(たとえば、事前に入力されたsqlite インメモリデータベース)を持つ(まだ書き込まれていない)コントローラー部分に対して実行する必要があります。

現在の構造はBest(possible)Practice(tm)ではないため、どういうわけかパッケージをリファクタリングする必要がありますか?:)

それをそのままにして、毎回すべてをセットアップ/ティアダウンする必要がありますか?完全な分離を実現する場合、つまり、すべてのテストでデータベースを完全に消去して再入力することを意味しますが、それはやり過ぎではありませんか?

この質問は、実際には全体的なコードとテストの構造に関するものですが、その価値については、テストにnose-1.0を使用しています。Isolateプラグインがおそらく役立つことはわかっていますが、テストスイートで奇妙なことをする前にコードを取得したいと思います。

0 投票する
5 に答える
254 参照

model-view-controller - MVC最も適切な正しいコントローラーにアクションを配置する

特定の状況でアクション/ビューを作成する場所を決定するためのベストプラクティスのアプローチは何であるかを考えていました。

ユーザーが多くのビデオを持っている場合

ユーザーの動画を表示するためのアクション/ビューを作成するのに最適な場所はどこですか?

したがって、ユーザーアカウントページの[マイビデオ]リンク内にありますか

  1. users/my_videosアクションを作成して表示するだけです。
  2. videos/my_videosアクションを作成して表示します。
  3. または、ほとんどの場合、検索機能を備えたコントローラー/ビデオのアクション/インデックスがすでにあります。この受け渡しを使用するだけで、ユーザーIDを渡すことができます。

どんな考え/アドバイスも大歓迎です

ありがとう

レオ

0 投票する
4 に答える
4746 参照

php - PHPアプリケーションの構造

私はウェブサイトを作り始めました、そしてすぐに私は私のコードが混乱していることに気づきました。PHPでプログラミングしてからしばらく経ち、それ以来OOPを学びました。この観点からすると、C#またはJavaでアプリケーションを作成するのは非常に簡単ですが、PHPは私に問題を引き起こします。

私は以前、(phpで)すべてを1行から別の行にプログラムし、メソッドの数を最小限に抑え、クラスをまったく使用していませんでした。では、メソッドにはどのくらいの量を含める必要があり、このクラスはどこに置く必要がありますか?

例: account.phpがあり、ユーザー情報を更新したい。では、誰かがデータを送信したことを確認した後、if(isset($_POST[..次に何をしますか?以前は、のようにすべてのチェックを行ってから、$email=CheckForRisksOrSomething($_POST["email]);mysqlを更新していました。

これは私に質問をもたらします、私はクラスUserを作成するべきですか、そしてそれはどのメソッドを含むべきですか?また、user.phpがユーザーのプロファイルを表示すると仮定して、このクラスをどこに保存する必要があります

クラスにいくらあるべきか、次のようなファイルで使用する必要があります。

また、Someclassはどこに保存する必要がありますか?

したがって、ayoneが、次の機能(ファイル、クラス、場合によってはメソッド)を構造化する方法の例を教えてくれます。

  • ユーザー(登録、ログイン、アカウントの編集..)
  • コメント付きの写真
  • ニュース(コメント付き)
  • 管理

これはもちろん一例ですが、私は自分の混乱を続けて、3日後にそれを見て、ただ顔をしかめて、そこに何を書いたのか疑問に思います。ええと、私は今日すでにそれをしました、それが私が尋ねている理由です。


2016年2月24日編集

これは古い質問ですが、提案されているように、フレームワークを調べてください。設定には少し時間がかかるかもしれませんが、開発速度は向上しますが、コードは素晴らしくクリーンで、はるかに安全です。私は個人的にLaravelを使用しています。

0 投票する
3 に答える
41 参照

php - アクティビティリスト/ログを実行する方法/コーディング方法

さて、この質問はコーディング手順についてではありませんが、このアクティビティリストをコーディングするための優れたクリーンな方法のように、私は構築する予定です。

このアクティビティリストには、ページ上のすべてのアクティビティが含まれます。

したがって、基本的に、ページで行われるすべてのアクションで、関数のようなものを呼び出して、それinsertActivity($stuff)に関するアクティビティを挿入します。たとえば、何かをしただけです。

今、私はコーディング方法を考えています、どうすればいいですか?

dbの行に「あなたは何かをした」というメッセージを表示する必要がありますか、それともphpファイルで番号1が「あなたは何かをした」を表すと定義する番号を含める必要がありますか?

メッセージがdbに保存されていない場合、後ですべてのアクティビティメッセージのメッセージを編集するのに役立ちます。たとえば、メッセージを「何かを食べただけ」に変更する必要がある場合などです。

アクションの保存の前後に関数を呼び出すこと、このアクションをアクティビティリストにログインすること、またはその他の好ましい方法について前に述べたように行う必要がありますか?

私が念頭に置いていたのは、insertActivity()は、取得した入力($ stuff)によって、アクティビティをデータベースに挿入するだけでよいということでした。

これを行うためのシンプルでクリーンなコーディング方法に本当に感謝しています。

0 投票する
1 に答える
1165 参照

node.js - node.jsのアプリケーション構造?

私は、WebアプリケーションがwarファイルとしてデプロイされるJavaWebコンテナーに精通しています。

Node.jsでCSS、JS、HTML、画像(など)をデプロイする方法がわかりません。どのようにこれを行うのですか?

Node.jsについての知識は非常に限られています。前もって感謝します!