ソフトウェア工学

システム開発ライフサイクル内で働く専門家、学者、学生向けのQ&A

4
New BSDライセンスの「非推奨条項」の目的は何ですか?
注:この質問は、「不快なBSD広告条項」に関するものではありません。New BSDライセンスにはその条項は含まれておらず、GPLと互換性があります。 私は自分のプロジェクトのNew BSDライセンスとMITライセンスのどちらかを選択しようとしています。BSDライセンスに次の条項が含まれていることを除いて、これらは基本的に同じです。 <組織>の名前もその貢献者の名前も、書面による事前の許可なしに、このソフトウェアから派生した製品を推奨または宣伝するために使用することはできません。 なぜこの節を使用したいのでしょうか?誰かがあなたのコードを使って有名なソフトウェアを作った場合、悪評を得るのは何が悪いのですか また、特定の名前でユーザーができることとできないことを決定することは、知的財産の領域外になりますか?

17
主任開発者を交代させるのは良い考えですか、悪い考えですか?
私は数ヶ月前に作成されて以来、組織的にフラットなチームで働いています。私のマネージャーは非技術的であり、これは私たちのチーム全体が意思決定に責任があることを意味します。 私のマネージャーは、リード開発者(タスクの単一の連絡先と単一の責任者)と私たち(紛争解決、組織的な技術ガイダンスなど)の両方のために、リード開発者を持つことにはいくつかの利点があることに気付き始めています。 チームがフラットであるため、1つの懸念は、1人のリード開発者を選ぶと他の開発者を落胆させる可能性があることです。開発者以外の人が、この問題を回避する方法として、開発主任を交代させることがマネージャーに提案しました。1人の開発者が1か月間、別の開発者が1か月間、というように続きます。 これはいい考えですか?なぜですか? これはすべての開発者を意味することに留意してください—すべての開発者は優れていますが、必ずしもリーダーシップに等しく適しているわけではありません。 そうでない場合、単に利己的な理由であるように見えることなく、このアプローチを避けることをどのようにお勧めしますか?

5
OpenIDは本当に悪いですか?
私は、Quoraでこの質問を見てきました。そこでは、多くの人がOpenIDが悪いと同意しているようです。 OpenIDは、ほとんどの人が本当に抱えていない問題に対して、これまでの人生で見た中で最悪の「解決策」です それから、その質問に言及しているOpenIDが失われ、Facebookが勝ったという記事やツイートを見ました。 OpenID(または少なくともその背後にあるアイデア)が好きなので、読むのは悲しいです。私は文字通りページのログイン/パスワードをもう1つ取得するのが嫌いです(とにかく忘れてしまいます)-それは私にとってかなり深刻な問題であり、同じ問題を抱えている多くの人々を知っています。したがって、OpenIdは優れたソリューションであると考えましたが、もうわかりません。 だから、問題はまだOpenIDを実装する必要がありますか、それは価値がありませんか?ユーザーを識別および認証するための(ユーザーの観点から)最も堅牢で便利な方法は何ですか?

4
使用するデータベースの種類をどのように決定しますか?
「NoSQL」という名前はあまり説明的ではないので、私は本当に嫌いです。データベースを教えてくれますていない私は、データベースが何でもっと興味ところです。このカテゴリには、データベースのいくつかのカテゴリが含まれていると思います。各データベースが最適なツールであるジョブの一般的なアイデアを取得しようとしています。 私がしたい(そしてあなたに作るように頼む)いくつかの仮定: これまでに存在したすべてのデータベーステクノロジーを平等に経験した優秀なエンジニアを何人も雇うことができると仮定します。 特定のデータベースをサポートするための技術的インフラストラクチャがあると仮定します(利用可能なサーバーと、そのデータベースをサポートできるシステム管理者を含む)。 各データベースには無料で可能な限り最高のサポートがあると仮定します。 経営陣から100%の賛同を得ていると仮定します。 問題を投げるのに無限のお金があると仮定します。 今、私は上記の仮定がデータベースの選択に関係する多くの有効な考慮事項を排除することを理解しますが、私の焦点は純粋に技術的なレベルで仕事に最適なデータベースを見つけることにあります。したがって、上記の仮定を考えると、質問は次のとおりです。各ジョブ(SQLとNoSQLの両方を含む)はどのジョブにとって最適なツールであり、その理由は何でしょうか。
31 sql  database  nosql 

8
UTF-8(および多分UTF-16 / UTF-32)以外の文字エンコーディングは非推奨ですか?
私の大嫌いな人は、文字セットをサポートするための山のようなコードを持つ非常に多くのソフトウェアプロジェクトを見ています。誤解しないでください、私はすべて互換性があるので、テキストエディタを使用して複数の文字セットでファイルを開いたり保存したりできることを嬉しく思います。私を悩ますのは、非ユニバーサル文字エンコーディングの急増が「問題」ではなく「適切なUnicodeサポート」とラベル付けされていることです。 たとえば、PostgreSQLとその文字セットサポートを選択します。PostgreSQLは2種類のエンコーディングを扱います。 クライアントのエンコード:クライアントとサーバー間の通信で使用されます。 サーバーのエンコード:データベースにテキストを内部的に保存するために使用されます。 多くのクライアントエンコーディングをサポートすることが良いことである理由を理解できます。UTF-8で動作しないクライアントは、変換を実行する必要なくPostgreSQLと通信できます。取得できないのは、PostgreSQLが複数のサーバーエンコーディングをサポートしている理由です。データベースファイルは(ほとんどの場合)PostgreSQLバージョン間で互換性がないため、ここではバージョン間の互換性は問題になりません。 UTF-8は、すべてのUnicodeコードポイントをエンコードできる唯一の標準のASCII互換文字セットです(間違っている場合はお知らせください)。私は、UTF-8が最高の文字セットであるという陣営にいますが、UTF-16やUTF-32などの他のユニバーサル文字セットに我慢します。 すべての非ユニバーサル文字セットは廃止されるべきだと思います。彼らがすべきではない説得力のある理由はありますか?

13
職に就く前に、潜在的な雇用主のコードの品質をどのように確認しますか?[閉まっている]
会社で働き始める前の私の経験では、コードベースを見る機会がありません(私は尋ねましたが、機密性の理由から、誰もが常にノーと言っていました、それは公平だと思います)。コードがどのような状態にあるかを知るために尋ねる最も重要な質問だと思いますか(結局、犬なら、毎日歩かなければならない貧しい不幸な人たちになるでしょう)? 更新: チェックリスト:尋ねる。 彼らがコードベースについてどう思うか。そして、あなたがそうするとき、表情とそれらが反応するのにかかる時間に細心の注意を払ってください。[アノン] 会社のCMMレベル[DPD]とは何ですか(レベル5が逆に聞こえるとしたら[Doug T]) 彼らが使用するライフサイクル[DPD](「アジャイル」と聞いた場合、鋭い質問をして「アジャイル」とは「アジャイル」または「カウボーイコーディング」を意味するかどうかを判断しようとします[Carson63000]) コード品質を評価するためにどのツールを使用していますか?[DPD] 開発に使用するツールは何ですか?[DPD](リファクタリングツールと継続的なビルドサーバーを探します) どのソースコード(バージョン管理)システムを使用しているのか、そしてフォローアップとして、なぜ使用するのかを尋ねることです。[ザカリーK]。 テスト手順はどのようなものですか?[Karl Bielefeldt](特にモックフレームワークを使用し、NUnit / JUnitのような確立されたフレームワークを通じて徹底的な自動化されたユニットテストに重点を置くチームを探します。テストが堅実なソフトウェア開発に不可欠であると考えていない場合は注意してください。専用のテスターを持つチームを探してください。 新しい開発者にはどのような割り当てが与えられますか?経験豊富な開発者ですか?[カールビーレフェルト] プロジェクトで何人が働いていますか?[カールビーレフェルト] リファクタリングは許可されていますか?励まされますか?[カールビーレフェルト] どのような品質関連のプロセスまたはアーキテクチャの変更が検討中ですか、または最近行われましたか?[カールビーレフェルト] 個人はモジュールに対してどの程度の自律性を持っていますか?[カールビーレフェルト] 新しいプロジェクト(グリーンフィールド開発)またはレガシープロジェクト(ブラウンフィールド開発)を開発しますか?(グリーンフィールドの開発は一般的にもっと楽しく、他の誰かのミスで片付けないので問題が少ないです)。 組織またはチームの従業員の離職率は高いですか?(多くの場合、これはコードの品質が低いことを示しています)[M.Sameer] 独自のプログラミングの問題。しかし、ジャークのように見えることは避けてください。[キラキラ] 開発者はどのように協力し、チーム間で知識をどのように共有しますか?(これはあなたの性格と一致するはずです;ソロとペアの作品の混合はおそらくあなたの社会的ニーズに一致する比率で最高でしょう) それらのデータベースは、第3正規形(3NF)にどれだけ近いか、そしてそれがどこで、なぜそれから逸脱するか?(彼らが「3NF ???」と言ったら、去る。そうでないなら、そうでない理由が十分あるかもしれないのなら、彼らが何であるかを見つけなさい)。 注: 約1週間後、コミュニティはそれが最良のものであると考えるため、Anonの回答を受け入れました。しかし、私は誰もが言いたいことがあると思います。

12
クライアントはどこにありますか?[閉まっている]
私の主な分野:ウェブ開発。 もちろん、誰もが自分の「ゴールドマイン」やその他のものを配ることは期待していませんが、自分のサービスを宣伝する場所を見つけるのに苦労しています。私と一緒に仕事をする開発者が1人いて、フリーランスのWebサイトにたくさんの幸せなクライアントがいます。 つまり、フリーランスのウェブサイトは、ばかげた料金に負けてしまったときに、あなたの命を奪ってしまうようです。価格よりも品質と説明責任に関心がある顧客を引き付けたい。 何か提案はありますか?私はこれでとても迷っています。 編集:200の賞金を追加-私のすべての「評判」。編集:50の2番目の賞金を追加 斬新なアイデアを聞いたことがあります。オープンソースプロジェクトで働き、「信頼できる開発者」セクションがある場合は、そのセクションで紹介されます。入力?

10
請負業者-利用可能な支払い条件?
私は請負業者として正しいことをしたかどうか疑問に思っています。基本的に私は3か月目になり、現在のクライアントは最初の1か月で支払いを台無しにしました。2か月目の支払いが遅れていることがわかりました。 これが私の最初の契約経験であるために、私が少しの財政状況になければ、それほど悪くはないでしょう。しかし、プリンシパルの問題として、私は彼らに歩み寄り、彼らが賃金を解決するまで戻ってこないだろうと彼らに話します。 私の一部は、これは非常に専門的なことではないように感じていますが、彼らが私の支払いを2回続けて台無しにするのは非常に専門的だとは感じていません。 私は正しい決断をしましたか?私はまだこれらの人々のために働き、仕事を楽しみたいと思っていますが、私はそれには財政を必要とする人生があります。 私は、クライアントを虐待するクライアントの周りの請負業者の行動に焦点を当てるように質問を表現しようとしましたが、これまでに投稿された回答の一部として、それは良い議論です。入ってくる答えは、さまざまな主観的な状況の周りで素晴らしいです。 更新: いくつかの回答への回答では、セットアップはMe-> Umbrella Company-> Clientです。私はUmbrella Companyの従業員であり、クライアントが支払わない限り支払われないという条件があります。したがって、クライアントがUmbrella会社への支払いが遅れることに気付いたとき、私はかなり怒っていました。 また、この例では、単に外に出ただけでは悪い動きだったと思います。それを処理する最もプロフェッショナルな方法は、私の問題を直属の上司に知らせてから、彼にそれを解決させることでした。それが制御不能になる前にそれを処理するチャンス。 それでも彼らの解決策に不満がある場合は、Umbrella Companyに、私は不満で外出する準備ができていると伝えることができました。後でわかったが、これを処理する他のもっと専門的な方法がたくさんあった。しかし、私は長い間契約しておらず、今まで経験したことのない状況に対して非常に感情的な反応がありました。私は、より専門的で成熟した対応が単なる外出以外の何ものでもなかったと確信しています。上司だけでなく、社内の他の人々や私自身にとっても困難な状況を作り出しています。 これまでのところ、絶対に素晴らしい答えです。経験豊富なアドバイスありがとうございます。

15
プログラマーは建設業界から何を学ぶことができますか?[閉まっている]
ソフトウェアの設計と開発の原則について同僚と話したとき、類推の最も一般的なソースの1つは建設業界であることに気付きました。私たちはソフトウェアを構築し、設計と構造をアーキテクチャと見なします。 学ぶ(または教える)ための最良の方法の1つは、類推を分析することです。他の類推は構築から引き出すことができますか? (ソフトウェアですでに一般的に使用されているかどうか)。 プログラミングコンセプトが構築コンセプトにどのように似ているかについて、説明または個人的な経験を提供してください。 [ アイデアに対する芸術と人文科学から得られたクレジットからプログラミングへの概念 ]

14
オブジェクトが参照渡しされるのはなぜですか?
OOを勉強していた若い同僚が、なぜすべてのオブジェクトが参照で渡されるのかと尋ねました。これは、プリミティブ型または構造体の反対です。これは、JavaやC#などの言語の一般的な特性です。 彼の良い答えが見つかりませんでした。 この設計決定の動機は何ですか?これらの言語の開発者は、毎回ポインターとtypedefを作成することにうんざりしていましたか?

11
実際のアプリケーションにLISP(の方言)を使用しますか?どこで、なぜ?[閉まっている]
LISP(およびScheme、Common LISP、Clojureなどの方言)は、かなり適切なプログラミング言語であるにもかかわらず、多くの業界からの支持を得ていません。(現時点では、彼らは牽引力を得ているようです)。 さて、これは質問に直接関係していません。生産プログラムにLISP方言を使用しますか?どのようなプログラムとその理由は?他のコード(Cなど)に統合される種類の使用法も含まれていますが、それはあなたの答えの意味であることに注意してください。幅広い概念が望ましいですが、特定のアプリケーションも同様に適切です。

14
あなたが見た開発者からの最も刺激的なスピーチは何ですか?[閉まっている]
直接リンクを貼ってください。 必須: オンラインで引き続き利用可能です(直接リンクしてください) 現在または以前の開発者からのスピーチでなければなりません スピーカーの人気は関係ありません 対象読者は他の開発者でなければなりません トピックがプログラミング(タスク)である必要はありません。ここでは、SOではなくP.SE内で一般的に展開しているテーマを探しています。 なぜ刺激を受けたのかを説明する (英語のネイティブスピーカー、質問を編集してください)

5
ソフトウェアジェネラリストのキャリアパスは何ですか?[閉まっている]
ソフトウェア名物の質問はこの質問に影響を与えました。 ソフトウェアジェネラリストは、スペシャリストと比較してどのくらい価値がありますか? 私がジェネラリストと言うとき、私は要件から展開までプロジェクトを引き受けることができ、ソフトウェア開発ライフサイクルのすべての段階で有能な人を意味します。すべての専門分野をまとまりのあるものにまとめることができる人。専門のジェネラリストは、自分の弱さを知っており、専門家に頼ることでそれらを埋めます-例:Oracleの専門家やUXの専門家。 ソフトウェアジェネラリストの究極のキャリアパスとは何ですか?

13
GITにジャンプする前にSVNを理解する必要がありますか?[閉まっている]
私は、自分自身を含めて誰もソース管理を使用したことがない部署で働いています。 私はコンセプトをプッシュしようとしています。SVNの調査に少し時間を費やしました。いくつかの基本を学びました。コマンドラインおよびTortoiseから作成/更新/チェックアウト/コミットできます。私はタグ付けと分岐の方法を学び始めていますが、それでも分岐とトランクなどの間の競合については多くの混乱を覚えています。書籍/チュートリアルと試行錯誤からのすべて。 私がオンラインで読んだgitことから、知るほうが良いように思えますが、より複雑です。自分を圧倒したくありません。gitに移動する前にsvnをマスターし続ける必要がありますか、それともgitにジャンプする方が賢明でしょうか? 両方のアプローチに賛否両論はありますか?
31 svn  git 

4
IDEとは何ですか?
最近、IDEなしでどの言語を使用していますかという質問を読みましたか?いくつかの回答で尋ねられた1つの質問は、「Notepad ++とIDEですか?」でした。 元の質問に対する回答の1つは「なし、私はvimを使用しています...」と述べており、vimはIDEであることを暗示しています。しかし、別の答えは、vimはIDEではないことを示唆しています。 それで、行はどこにありますか? メモ帳、ed、nanoはどうですか? 唯一の非IDEコーディング技法はバタフライ技法ですか?
31 ide 

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