ソフトウェア工学

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

8
ソリッド、貧血ドメインの回避、依存性注入?
これはプログラミング言語にとらわれない質問かもしれませんが、.NETエコシステムを対象とした回答に興味があります。 これがシナリオです:行政用のシンプルなコンソールアプリケーションを開発する必要があるとします。アプリケーションは、車両税に関するものです。これらの(のみ)次のビジネスルールがあります。 1.a)車両が自動車で、所有者が最後に税金を支払ったのが30日前であれば、所有者は再度支払う必要があります。 1.b)車両がバイクで、所有者が最後に税金を支払ったのが60日前であれば、所有者は再度支払う必要があります。 つまり、車がある場合は30日ごとに支払う必要があり、バイクがある場合は60日ごとに支払う必要があります。 システム内の各車両について、アプリケーションはそれらのルールをテストし、それらを満たさない車両(プレート番号と所有者情報)を印刷する必要があります。 私が欲しいのは: 2.a)SOLID原則(特にオープン/クローズド原則)に準拠します。 私が欲しくないのは(私が思うに): 2.b)貧弱なドメイン。したがって、ビジネスロジックはビジネスエンティティ内に配置する必要があります。 私はこれから始めました: public class Person // You wanted a banana but what you got was a gorilla holding the banana and the entire jungle. { public string Name { get; set; } public string Surname { get; set; } } public …
33 c#  .net  design  architecture 

11
継続的インテグレーションを行うときにコードレビューを行うタイミング
継続的インテグレーション環境に切り替えようとしていますが、コードレビューをいつ行うべきかはわかりません。継続的インテグレーションについて読んだことから、1日に何度もコードをチェックインしようとしているはずです。これは、まだ完全ではない機能を意味していると思います。 質問は、コードレビューをいつ行うかです。 コードをチェックインする前にそれを行うことはできません。1日あたり複数のチェックインは言うまでもなく、毎日のチェックインを実行できないプロセスが遅くなるためです。 また、チェックインしているコードがコンパイルされるだけで機能が完全ではない場合、ほとんどのコードレビューは機能の完成時に最もよく行われるため、コードレビューを行うことは無意味です。これは、機能が完了したときにコードレビューを行う必要があることを意味しますが、その未レビューのコードはリポジトリに入りますか?

14
ネイティブJavaScript開発にはどのような利点がありますか?[閉まっている]
ネイティブJavaScriptと比較した場合、jQueryの開発がどれほど簡単かを考えると、jQueryのようなライブラリを完全に見捨てる理由は何ですか? これは、jQueryに制限があるのか​​、遅いのですか?つまり、jQueryがネイティブjavascriptと比べて非常に簡単な場合、人々はまだ純粋なjavascriptを使用しなければならない理由は何ですか?

9
将来の校正コード
私が仕事をしている開発者は、「将来のためにこれを追加しました」または「いつか欲しいと思うので、これを行うのは良い考えだと思う」といつも言っています。彼らが将来の変化を予測しようと積極的に取り組んでいるのは素晴らしいことだと思いますが、それは不必要であり、決して必要ではないかもしれないので非生産的なコードを書くリスクがあると考えるのは仕方がありませんそれのために新しい)。適切で整理されたコードを書くだけでは、将来の校正の議論は無効ですか?

9
パフォーマンスレビュー中の給与の引き上げについて[終了]
現在、今後のパフォーマンスレビューでジレンマに直面しています。約1年前に会社を始めたとき、プログラミングスキルと知識に対する認識をできる限り正直にしようとしました。優れたプログラマーおよび開発者とみなされるコーディング能力と比較したコーディング能力に基づいて、知覚されるスキルを決定しました。そのため、私が提供された給料は当時満足していたものです。 仕事に就くとき、そしてその中にいる間は正直が重要だと信じているので、問題はありません。また、仕事に就いたら、雇用主に信じるように与えたものよりも上手くいけば、それが私の業績に反映されると信じています。 同時に別の開発者が雇われました。私たちは両方とも、同じプロジェクトで同じタスクセットを実行するために雇われました。数か月前、私はこの人が私よりもかなり賢明であることがわかりました。今、プロジェクトの中で、この人はプログラミングスキルやビジネスの知識においても私よりずっと下にいることに気付きました。プログラミングタスクで何度も彼を助け、彼のコードをレビューし、より良いソリューションを提供し、私たちが取り組んでいるプロジェクトについての概念を説明しなければなりませんでした。私たち二人が同時に始めたとしても。 自分の名前を直接言及せずに、または自分が何をしているのかを知らずに、少なくともこの人に匹敵するように(レビュー中に)給与を引き上げるにはどうすればよいですか。私がやった仕事に基づいてそれを正当化する場合、彼らが私に比較パッケージを提供しない場合はどうなりますか?もっと欲しいのか、それとも貪欲なのか?
33 management 

11
開発者は詳細を暗記する必要がありますか?[閉まっている]
多くの場合、アプリケーションに関することを忘れます。私はテーブル名やクエリが何をしたかを覚えておらず、欲しいものを得るために検索します。チームリーダーは、使用するテーブル名を記憶することになっていると言った。 開発者は、データベース内のテーブル名、クラス名などを記憶する必要がありますか?そして、答えが「はい、いつも」である場合、それらのことを覚えておくにはどうすればよいですか?
33 skills 

4
MVC / RESTは、他のユーザーに属するリソースに対して403または404を返す必要がありますか?
リソースベースのサイト(MVCアプリケーションやRESTサービスなど)で作業する場合、クライアントGETがアクセスできないリソースをクライアントが試行する場合、主に2つのオプションがあります。 403、クライアントが無許可であると言う; または 404は、リソースが存在しない(または見つからなかった)ことを示します。 一般的な知恵と慣習は真実で応答することであるようです-つまり、403。しかし、私はこれが実際に正しいことかどうか疑問に思っています。 安全なログインシステムは、ログイン失敗の理由を決して知らせません。つまり、クライアントに関する限り、存在しないユーザー名と誤ったパスワードの間に検出可能な違いはありません。これの目的は、ユーザーID(またはさらに悪いことに、電子メールアドレス)を検出できないようにすることです。 プライバシーの観点からは、どのリソース誰かが伝えを見て、リアリティショー(サバイバーが、私は思う)の受賞者を出した前記私は事件を思い出してる404を返すように多くの方が安全と思われるしなかっ上に存在しますサイトvs. 403がシリアル番号やアカウント番号などの機密情報を提供する可能性があることを心配しています。 404を返さない説得力のある理由はありますか?404ポリシーは他の場所でマイナスの副作用を引き起こす可能性がありますか?そうでない場合、その慣行はより一般的ではないのはなぜですか?

6
localstorageはどれくらい安全ですか?
質問はそれをすべて本当に言っています。サービスを提供したいのですが、自分でデータをデータベースに保存したくありません。ハッキングなどの最近のすべてのニュースで、クライアントがデータを完全に制御できる方が良いように思えます。 問題は、保存されているデータが潜在的に機密であるということです。私がやろうとしていたことは...クライアントがウェブサイトを訪れたときに、「あなたはパーソナルコンピューターか公共のコンピューターか」という質問がありました。公共のコンピューター上にある場合、サイトはアクセスを拒否します。 それらがパーソナルコンピュータ上にある場合、パスワードを設定するように求められます。すべてのデータは、このパスワードで暗号化されます。これは明らかに安全ではありません。暗号化方法はJavaScriptであり、パスワードはプレーンテキストであるため、経験豊富なユーザーがlocalStorageでパスワードを見つけてデータにアクセスすることは可能だと思います。 しかし、これはあまり問題ではないと感じています。あなたがパーソナルコンピュータを使用している場合、これが起こる可能性はわずかです...誰かがコンピュータ上の特定のユーザーアカウントにアクセスする必要があり、誰かがサイトについて知る必要があります...誰かが理解する必要がありますlocalStorageとそのアクセス方法。機密データは、身元を危険にさらすようなものではありません。これは、ほとんどの人が一般に公開したくないものを記録するだけです。 本当に問題なのは、localStorageは十分に安全なのか? 追加の質問.. localStorageを消去するのはどれくらい難しいですか?ユーザーが誤ってデータを消去するのは望ましくありません。 最後に-サイトにアクセスできるパスワードを持っているかのように、データを暗号化/復号化する価値さえあります。

16
コンピューターサイエンスカレッジの学位は、雇用可能性を損なうことはありますか [閉まっている]
コンピューターサイエンス、インフォマティクスなど、大学の学位を取得していない多くの実行可能なプログラマーがいることがよくあります。 成績の悪い教育と大学の学位の重要性(特にプログラマー)についての記事をもっと読んでいるので、大学の学位は私の雇用可能性を損ないますか?(卒業したときから4年後の会計も) PS UCアーバインに行きます。学校自体は学位の重要性において重要ですか?

6
雇用主は、その開発者が低賃金で過小評価されていることを認めています。別れの時間?[閉まっている]
私の雇用主は最近、3〜5年の経験を持つC#開発者の募集を掲載しました。ポジションの要件と期待は、給与決定の基準までは公平でした。報酬はC#の経験にのみ依存し、他の言語やフレームワークでの長年のプログラミング経験は無関係であり、考慮に入れられないと考えられることが明確に述べられました。フラグを立てて舵を取る。ソフトウェア開発は特定の言語よりもはるかに多く、単一の言語での経験に対して誰かにお金を払うことは、優れた開発者を雇用するための非常に近視眼的なアプローチであると説明しようとしました(ソフトウェア会社の人事部にこれを伝えています) 。 回答:「必要な言語以外の言語で多くのプログラミング経験を積んでいるため、「高給」を期待する開発者へのインタビューに時間を浪費しています。」ここで一番の問題は、「高給」=市場レートです。いくつかの真剣な議論の後、彼らは本質的に、会社の誰も彼らのスキルに対して市場レートの近くで支払われておらず、それについてできることは何もないことを認めました。経営幹部は、従業員が監視下で長年にわたって証明されたスキルに対してのみ支払われるべきという考え方を持っています。エントリーレベルの開発者は$ 38K未満でピックアップされ、3年後には5万に達する可能性があります。別の興味深い発見(関連性は低い)-「促進された」人々より高い責任に対しては昇給しません。「昇進」とは、個人の役割を調整して、「強さ」に合うように調整することです。これは、すでに支払われているものです。 これらの厳しい真実を人事部から直接聞いた後、私は自分自身を探しているほとんどの人々が、業界で何をしているのかをよく知っている新しい雇用者をすぐに探し始めると思います(この会社は他の多くの企業で失敗しています)方法、しかし私は本を書きたいと思わない)。ただし、ここに私のジレンマがあります。 これは、私がこれまで1年しかかからなかった最初の公式ソフトウェア開発職です。私の以前の3年間の職務は、ソフトウェア開発など、多くの職務を遂行した非常に小さな会社でした(公式の職務記述書ではありませんが、そのために一生懸命努力しました)。私は、現在資格がある地元の求人を特定しました。そのほとんどは、現在よりも少なくとも50%多く支払っています。質問は、ジャンプするには早すぎますか?エキサイティングなプロジェクトが不足することなく、現在のポジションで貴重な経験を得ています。作業環境は非常に快適で、多くの人から、短期間で成し遂げることができたもの(価値があること)について、Cレベルのスタッフの注目を集めていると言われています。ただし、滞在には明確な機会費用があり、今年、他の場所で稼げる可能性のある上限に達するまでに3〜5年待たなければならないことを確実に知っています。また、理由に関係なく、「ジョブホッパー」は危険なラベルであることも認識しています。 更新:私は別の会社でオファーを受け入れたばかりで、より多くの支払いを行い、さらにクールなプロジェクトを行っています。洞察に満ちた回答をありがとう。

12
プログラミングの基礎が強力であれば、どのプログラミング言語でも簡単に習得できます。事実または神話?[閉まっている]
プログラミングの基礎がかなり優れている人であれば、どんなプログラミング言語でも簡単に学べるというのは本当ですか? プログラミング言語とは、PHP、Perl、Rubyなどのアジャイルでダイナミックな言語を指しますが、遠い昔のプログラミング言語ではありません。 私は、Java、Groovy、およびFlexについてのみある程度取り組んできました。だから、私はアマチュアプログラマーでありながら、速い学習者であるという事実を考えると、大まかに言って、そのような言語のいずれかに足がかりを得るのにどれくらい時間がかかりますか?

10
スクラムチームは、計画会議でインフラストラクチャタスクをどのように考慮しますか?
スクラムチームは、計画会議で開発/インフラストラクチャタスクをどのように考慮しますか? 一見、エンドユーザーの価値を提供しないため、ユーザーストーリーのようには見えません。 ただし、それらをタスクとして特定のユーザーストーリーに添付することも意味がない場合があります。たとえば、タスクが「Bambooのセットアップ」であるとします。チームが手動でビルドおよびデプロイできるため、ユーザーストーリーを完了するためにそのタスクは必要ありません。そのため、ユーザーストーリーを完了するのにこのタスクは必要ないため、ユーザーストーリーに添付しても意味がありません。 したがって、これは、これらのタスクがユーザーストーリーになることを示唆しています。しかし、その後、チームストーリーがそれらを指し示している場合、プロダクトオーナーがバックログに対して速度を知りたいので、これに奇妙な速度が変更されます。
33 scrum  planning 


9
ユニットテストを書く前にコードを書くことの欠点は何ですか?
最初に単体テストを作成してからコードの作成を開始することをお勧めします。しかし、私にとっては、逆の方がはるかに快適だと感じています-実際にコードを書いた後、より明確になったと感じているので、コードを書いてからユニットテストを書いてください。コードを作成してからテストを作成すると、テスト可能なデザインの作成に専念しても、コードを少し変更してテスト可能にする必要がある場合があります。一方、テストを作成してからコードを作成すると、コードが形成されるときにテストが頻繁に変更されます。 テストの作成を開始してからコーディングに進むための多くの推奨事項がありますが、逆にコードを作成してから単体テストを行う場合のデメリットは何ですか?

14
ソフトウェア会社で残業はどのように認識されていますか?[閉まっている]
ソフトウェア会社で時間通りに仕事を辞めるとどうなりますか? これに対処する専門的な方法は何ですか? [編集上の追加] 問題は、標準的な労働時間についてであり、明示的に求められることなく余分な時間を費やさないことです。ソフトウェア会社やソフトウェア開発者の役割で、余分な時間を勤務することは標準ですか、それとも予想される仕事ですか?現地の法律または契約で指定された標準時間しか働いていない場合、同僚や同僚にどのように認識されますか?

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