プログラミング

プロおよび熱狂的プログラマーのためのQ&A




27
セッターに「これ」を返すのは悪い習慣ですか?
Javaのセッターに「これ」を返すようにするのは良いことですか、悪いことですか? public Employee setName(String name){ this.name = name; return this; } このパターンは、次のようにセッターをチェーンできるので便利です。 list.add(new Employee().setName("Jack Sparrow").setId(1).setFoo("bacon!")); これの代わりに: Employee e = new Employee(); e.setName("Jack Sparrow"); ...and so on... list.add(e); ...しかし、それは一種の標準的な慣習に反します。セッターが何か便利なことをできるからといって価値があるのではないでしょうか。このパターンがいくつかの場所(JMock、JPAなど)で使用されているのを見てきましたが、一般的ではないようで、このパターンがどこでも使用されている非常に明確に定義されたAPIでのみ使用されます。 更新: 私が説明したことは明らかに有効ですが、私が本当に探しているのは、これが一般的に受け入れられるかどうか、および落とし穴や関連するベストプラクティスがあるかどうかについての考えです。Builderパターンについては知っていますが、私が説明しているものより少し複雑です。JoshBlochが説明しているように、オブジェクトを作成するための静的なBuilderクラスが関連付けられています。
249 java  design-patterns  api  oop 

19
HTML5:整数のみを取る数値入力タイプ?
私はjQueryツールを使用しています を介してHTML5検証を実装 Validatorを。これまでのところ、1つのことを除いて、うまく機能しています。HTML5仕様では、入力タイプ「数値」は整数と浮動小数点数の両方を持つことができます。これは、データベースフィールドが符号付き浮動小数点数である場合にのみ有効なバリデーターとなるため、信じられないほど近視眼的です(符号なしintの場合、「パターン」検証にフォールバックする必要があり、そのため、アップやダウンなどの追加機能が失われますそれをサポートするブラウザの矢印)。入力を単に符号なし整数に制限する別の入力タイプまたはおそらく属性がありますか?見つかりませんでした、ありがとう。 編集 わかりました、皆さん、時間と手助けに感謝しますが、多くの不当な賛成投票が行われているのがわかります。ステップを1に設定しても、入力が制限されないため、答えにはなりません。テキストボックスに負の浮動小数点数を入力することもできます。また、私はパターン検証を認識しています(元の投稿で触れました)が、それは質問の一部ではありませんでした。HTML5でタイプ「数値」の入力を正の整数値に制限できるかどうか知りたいと思いました。この質問に対する答えは、「いいえ、そうではない」でしょう。jQueryツールの検証を使用するときにいくつかの欠点が発生するため、パターン検証を使用したくありませんでしたが、仕様ではこれを行うためのより明確な方法が許可されていないようです。

30
一般的な言語の言語ブック/チュートリアル
ロックされています。この質問とトピックへの回答はロックされています。質問はトピックから外れていますが、歴史的に重要です。現在、新しい回答や相互作用を受け入れていません。 私が学びたい言語の優れた本/チュートリアルを見つけようと試み始めたのは、それほど前のことではありません。それでも、私が取り組んでいる新しいプロジェクトでは、比較的早く言語を習得する必要がある場合があります。この投稿の目的は、これらの言語に最適なチュートリアルと本のいくつかを文書化することです。私が見つけられる最高のものからリストを始めますが、皆さんがより良い提案/新しい言語で助けてくれることを願っています。これが私が見つけたものです: これは現在wikiで編集可能であるため、コミュニティに制御を委ねています。提案があれば、このセクションに入れてください。また、プログラマー向けの優れた書籍やオンラインリファレンスとして一般的なセクションも追加することにしました。もう一度、すべての推奨事項を歓迎します。 一般的なプログラミング オンラインチュートリアル プログラミングの基礎 Karl Seguin-Codebetterによると、そのC#ベースですが、アイデアは全面的に真実ですが、誰もこれを実際に投稿した人は誰もいないとは信じられません。 Unmaintainableコード書く方法あなたは、可能な限り最もunmaintableな方法でコードを書く方法を教え抗マニュアルを- 。これらの提案の多くがそれほど真実ではなかったとしたら、それはおかしいでしょう。 ウィキブックスのプログラミング節 -ジム・ロバートによって提案完了の様々な段階で、複数の言語に関する書籍/チュートリアルの量が多いなど だけで基本言語の感触を取得するには。 Books Code Complete-この本は言うまでもありませんが、言及するにはあまりにも多くの点で本当に素晴らしいです。 実用的なプログラマー -マスターコーダーと連携して作業するための次善の策は、彼らが知っているすべてを教えることです。 正規表現をマスターする -正規表現は、すべてのプログラマーのツールボックスに不可欠なツールです。Patrick Lozziが推奨するこの本は、彼らが何ができるかを学ぶための素晴らしい方法です。 でアルゴリズムC、C ++、およびJavaのあなたが深さに少しもKnuthの本を見つけた場合、すべての古典的なアルゴリズムを学ぶための素晴らしい方法- 。 C オンラインチュートリアル このチュートリアルはかなり簡潔で十分であるようで、資料を調べて、かなり良いようです。しかし、それが新しいプログラマーにとってどれほど友好的かはわかりません。 Books K&R C-確かに古典。すべてのプログラマがそれを読むべきだと主張されるかもしれません。 Cプライマープラス -初心者プログラマーのための究極のCブックであるとイムランによって提案されました。 C:リファレンスマニュアル -Patrick Lozziが推奨する優れたリファレンス。 C ++ オンラインチュートリアルcplusplus.com のチュートリアルが最も完成しているようです。ここで別のチュートリアルを見つけましたが、ポリモーフィズムのようなトピックは含まれていません。C出身の場合、このチュートリアルが最適です。 別の便利なチュートリアル、C ++ Annotation。Ubuntuファミリーではc++-annotation、Synapticからパッケージをインストールすることにより、複数の形式(pdf、txt、Postscript、およびLaTex)で電子ブックを入手できます(インストールされたパッケージはにあります/usr/share/doc/c++-annotation/。 書籍 C ++プログラミング言語-C ++プログラマーにとって重要です。 C ++ Primer Plus-元々はタイプミスとして追加されましたが、アマゾンのレビューはとても良いので、誰かがおかしいと言うまでここに置いておきます。 …


7
トラストストアとキーストア-keytoolで作成
キーストアは通常、秘密鍵/公開鍵を保持し、トラストストアは公開鍵のみを保持することを理解しています(また、通信する予定の信頼できる当事者のリストを表します)。まあ、それが私の最初の仮定なので、それが正しくない場合、私はおそらくうまくスタートしていません... しかし、keytoolを使用するときに、どのように/いつ店舗を区別するかを理解することに興味がありました。 これまでのところ、私はキーストアを作成しました keytool -import -alias bob -file bob.crt -keystore keystore.ks これにより、keystore.ksファイルが作成されます。yesボブを信頼していますか?という質問に答えますが、これがキーストアファイルを作成したのかトラストストアファイルを作成したのかはわかりません。ファイルをどちらかとして使用するようにアプリケーションを設定できます。 -Djavax.net.ssl.keyStore=keystore.ks -Djavax.net.ssl.keyStorePassword=x -Djavax.net.ssl.trustStore=keystore.ks -Djavax.net.ssl.trustStorePassword=x そして、でSystem.setProperty( "javax.net.debug", "ssl")セット、私は、信頼できる証明(ただし、キーストアのセクションの下)の下での証明書を見ることができます。私がインポートしている特定の証明書には公開鍵しかなく、それを使用してSSL接続を介してBobにデータを送信するつもりです(ただし、それは別の質問に任せるのが最善です!)。 ポインタや説明をいただければ幸いです。keytoolの出力は、インポートしたものと同じであり、1つはキーストアで、もう1つはトラストストアであるという規則になっていますか?SSLなどを使用する場合の関係は何ですか?
249 java  ssl  keytool  jce 

12
2つのjava.util.Datesを比較して、それらが同じ日にあるかどうかを確認する
私は2つDateのを比較する必要があります(例:date1とdate2)boolean sameDay、2つDateのsが同じ日に一致する場合はtrueを、そうでない場合はfalseを見つける必要があります。 これどうやってするの?ここには混乱の渦巻きがあるようです...そして、可能な限り、JDK以外の他の依存関係を引き込まないようにしたいと思います。 明確にするため:同じ年、月、日date1をdate2共有している場合sameDayはtrue、そうでない場合はfalseです。これにはタイムゾーンの知識が必要であることに気づきます...タイムゾーンを渡すのは良いことですが、動作がわかっている限り、GMTまたは現地時間のどちらでも使用できます。 再度、明確にするために: date1 = 2008 Jun 03 12:56:03 date2 = 2008 Jun 03 12:59:44 => sameDate = true date1 = 2009 Jun 03 12:56:03 date2 = 2008 Jun 03 12:59:44 => sameDate = false date1 = 2008 Aug 03 12:00:00 date2 = 2008 Jun 03 12:00:00 => …
249 java  datetime 

10
ブランチをヘッドに早送りする方法は?
私は長い間ブランチで開発した後、マスターに切り替えました。ログは示しています: あなたのブランチは167コミットで 'origin / master'の後ろにあり、早送りすることができます。 私は試した: git checkout HEAD 影響はありません。これは、マスターで中間コミットをチェックアウトしているためです。 マスターを頭に留める方法は?
249 git 

11
複数のGitHubアカウントとSSH構成
2つの異なるSSHキー/ GitHubアカウントをうまく連携させるのに問題があります。次の設定があります。 を使用して1つのアカウントからアクセス可能なリポジトリ git@github.com:accountname 別のアカウントからアクセス可能なリポジトリ git@github.com:anotheraccount 各アカウントには独自のSSHキーがあります。両方のSSHキーが追加され、設定ファイルを作成しました。設定ファイルが正しいとは思いませんが。をgit@github.com:accountname使用してアクセスされるリポジトリがを使用しid_rsa、git@github.com:anotheraccountを使用するように指定する方法がよくわかりませんid_rsa_anotheraccount。
249 ssh  github  ssh-keys 

11
Java:カンマ区切りの文字列を分割しますが、引用符内のコンマは無視します
私は漠然とこのような文字列を持っています: foo,bar,c;qual="baz,blurb",d;junk="quux,syzygy" コンマで分割したいのですが、引用符内のコンマは無視する必要があります。これどうやってするの?正規表現アプローチが失敗したようです。見積もりが表示されたときに手動でスキャンして別のモードに入ることができると思いますが、既存のライブラリを使用すると便利です。(編集:私はすでにJDKの一部であるか、すでにApache Commonsのような一般的に使用されているライブラリの一部であるライブラリを意味していると思います) 上記の文字列は次のように分割されます。 foo bar c;qual="baz,blurb" d;junk="quux,syzygy" 注:これはCSVファイルではなく、全体的な構造が大きいファイルに含まれる単一の文字列です
249 java  regex  string 

8
リモート(元の)Gitリポジトリの変更を確認する方法は?
質問 次のワークフローを実行するためのGitコマンドは何ですか? シナリオ 私はリポジトリからクローンを作成し、自分のローカルリポジトリにいくつかのコミットを行いました。その間、私の同僚はリモートリポジトリにコミットしました。今、私はしたいです: リモートリポジトリに他の人からの新しいコミットがあるかどうかを確認しますorigin。 最後のプル以降、リモートリポジトリに3つの新しいコミットがあったとしましょう。リモートリポジトリのコミット、つまりHEAD~3with HEAD~2、HEAD~2with HEAD~1、HEAD~1with を比較したいと思います HEAD。 リモートで何が変更されたかを知った後、他のユーザーから最新のコミットを取得したいと考えています。 これまでの私の発見 ステップ2の場合:私はキャレット表記知りHEAD^、HEAD^^等とチルダ表記をHEAD~2、HEAD~3等 ステップ3の場合、つまり、たったのgit pull。
249 git 



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