ソフトウェア工学

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


19
プログラマーが複数のプロジェクトに同時に取り組むことは正常ですか?
現在の仕事には、2つのプロジェクトがあります。1つ目は非常に巨大なシステムであり、2つ目はそれよりも小さいが大きなものです(最初のプロジェクトは12年間、2番目は4年間開発されています)。 最初は、最初のプロジェクトのみに取り組んでいて、それに慣れようとしていました。それから私は2番目のプロジェクトに移り、そこで試みたので、最初のプロジェクトについての私の知識は日陰になりました。今、私は両方のプロジェクトに同時に取り組む必要があります。 どちらもJavaを使用しているにもかかわらず、異なるフレームワークを使用しており、理解するコードとビジネスロジックの量が非常に大きいため、私は本当に両方のプロジェクトを頭に入れることができません。 私の専門知識は非常に不自由になりましたが、それは普通であり、それに慣れる必要があります。単一のプロジェクトでのみ作業する場合はどうなりますか?または、懸念を提起するべきですか、それとも雇用主を変えるべきですか?

7
ゾーンに入る方法は?それはどのくらいかかりますか?以前はどのようなステップを踏んでいますか?[閉まっている]
ゾーンに入ることは、楽しく実りの多いプロセスです。優れたソースコードを作成し、ゾーンにいる間に行われた作業から多くの満足を得ています。しかし、どのようにして「ゾーン」に入るのでしょうか?特定のプロセスに従っていますか?メールシステム、モバイル、その他のありふれた非生産的なアプリケーションの切り替えとは別に、他にできることはありますか?

17
プログラマーの責任章[非公開]
だから、プログラマーの権利章典についても聞いたことがあるし、XPにも同様の概念があります。 最近、人々の権利について多くのことを耳にしますが、彼らの責任についてはあまり聞いていないのが一般的な不満です。それは彼らがすべきことであり、彼らは口に合わないと感じるかもしれないが、プロとして責任を持って行動するプログラマーをそうでない人々から分離するものである。 私は主に、口に合わないものと起こりにくいものに興味があります。これは、プログラマーの90%が実際に実行したいもの(常にリファクタリングしてソース管理を使用するなど)ではなく、プログラマーが回避して回避する傾向があるものです。 それでは、プログラマーの責任章には何が記載されるべきでしょうか?

7
Haskell AND Lisp vs. Haskell OR Lisp [終了]
現在、C、C ++、およびPythonを使用してコーディングしています。関数型プログラミング言語を使いたいと思っていますが、今はHaskellに傾倒しています。ここで「Haskell vs Lisp」戦争を始めたくありません。私が知りたいのはこれです:主に関数型プログラミングに触れるためにHaskellを学んだ場合、後でLispを学ぶことでどんな利益が得られますか?

8
専門能力開発は会社の時間に行うべきですか?
小さなコンサルティング会社で初めてパートタイムのソフトウェア開発者として、私は自分のソフトウェア開発の知識を深めるために時間を整理するのに苦労しています-それが本を読んでいるか、StackOverflowの一般的な質問に追いついて、技術を研究しています徹底的に使用している、またはHacker Newsのフロントページに続いている。自己割り当ての学習時間から得られた結果を見ることができますが、専門能力開発を通じて得られたスキルと知識をリストして実証することは困難です。 同社にはPDポリシーが定義されていないため、何か成果物を今すぐ実現するためのプレッシャーがたくさんあります。コンサルタントのために働くとき。私は同僚が何をするかを確認しましたが、彼らは自己改善に時間を割くようには見えません。特定のMSDNリファレンス、コードサンプルなどを必要に応じて検索し、与えられた問題を処理するだけです。 PDのポリシーは、規模や文化の異なる企業によって異なることを認識しています。私のような企業は、おそらくちょっとしたケースです。私はよりベテランの開発者からの意見や経験を聞きたいです。特に、チームまたは会社でPDポリシーを選択する必要がある人。 また、PDが完全に存在していても、PDへのより根本的なアプローチについても学びたいと思います。他の人が何をしようとしているのかを見るのはいつも面白いです。 完全な要約ではありませんが、私が尋ねようとしているのは: 企業がPD時間を割り当てることは一般的ですか、または推奨されますか? 開発者の知識とスキルを最新のものにすることは誰の責任ですか? パートタイムの勤務スケジュールは、PD勤務時間の割合を下げるべきですか? 開発者は、開発者以外の同僚に、ブログや本を読むことは純生産的であることをどのように示すことができますか? ブログや本を読むことは、実際には生産性が高いのですか?(参考文献を歓迎) ブログを書くことはPDの方法として効果的ですか?(ハッカーニュースの最近のテーマ) ここでどの質問をする必要があるか正確にはわからないので、これは一種の広範な質問です。したがって、私が対処していない関連する問題についての考えは大歓迎です。

28
過去数十年間の人類にとって重要なアルゴリズムはどれですか?[閉まっている]
過去数十年で人類に最も貢献した最も重要なアルゴリズムはどれですか? これは、開発者が知るべき一般的な知識だと思いました。 更新: 可能であれば、特定のプログラミングアルゴリズムに対する回答を保管してください。 最も重要なもののリストを取得したいのですが、回答ごとにアルゴリズムが1つだけです。 アルゴリズムが重要かつ重要である理由を述べることを考慮してください...

5
「頻繁に」マージする方が良いのですか、それとも機能ブランチの大規模なマージが完了してからですか?
複数のブランチが開発されていると言う、AとBだけでなく、増分「バグ修正」ブランチC。 今Cはすでに「完成」しており、マスターにマージされています。AそしてB、まだ開発中であり、(おそらく)別のバグ修正ブランチがmasterにマージされる前に修正されません。 C新しい機能ブランチにできるだけ早くマージすることをお勧めしますか?新しい機能がmasterできるだけ近くにあるように?それとも、新しい機能を完成させてからマスターにマージするだけで、独自の「世界」で開発することをお勧めしますか? とにかく競合が発生するため、それらの修正に時間を費やす必要があります。

5
C#List <>での.Any()の使用法は何ですか?
私は同僚とこれについて議論してきましたが、C#で、.Any特定のの使用が何であるかを理解できませんでしたList&lt;&gt;。 次のステートメントのように、配列内の要素の有効性を確認できます。 if (MyList.Any()){ ...} //Returns true or false これはまったく同じです if (MyList.Count() != 0) { ... } if声明の意図についてより一般的で読みやすく明確です。 最終的に、私たちはこの考えに固執しました: .Any() 使用することもできますが、同様に機能しますが、プログラマの意図についてはあまり明確ではなく、その場合は使用しないでください。 しかし、これは正しくないように感じます。私たちは何かを見逃しているに違いありません。 私たちは?
40 c#  array  list 

6
RESTful APIで応答として配列を返す最良の方法は何ですか?
このようなリソースがあるとします book: type: object properties: author: {type: string} isbn: {type: string} title: {type: string} books: type: array items: book したがって、誰かがGET本のリソースを作成すると、次のように返されます [{"author": "Dan Brown", "isbn": "123456", "title": "Digital Fortress"}, {"author": "JK Rowling", "isbn": "234567", "title": "Harry Potter and the Chamber of Secrets"}] 職場の誰かから、推奨されるRESTプラクティスは、常にJSONオブジェクトとして応答を返すことであると聞きました。つまり、スキーマbooksは次のようになります。 books: type: object properties: list: type: array items: …
40 rest  json 

3
AngularJS:複数のng-appsを使用したWebアプリケーションの構造化
ブロゴスフィアには、AngularJSアプリの構造化ガイドラインに関するトピックに関する以下のような記事があります。 http://www.johnpapa.net/angular-app-structuring-guidelines/ http://codingsmackdown.tv/blog/2013/04/19/angularjs-modules-for-great-justice/ http://danorlando.com/angularjs-architecture-understanding-modules/ http://henriquat.re/modularizing-angularjs/modularizing-angular-applications/modularizing-angular-applications.html ただし、ガイドラインとベストプラクティスについてまだ触れていないシナリオの1つは、複数の「ミニスパ」アプリを含む大規模なWebアプリケーションがあり、ミニスパアプリはすべて一定量のコードを共有している場合です。 ng-app同じページに複数の宣言をしようとする場合については言及していません。むしろ、私は、独自の独自のng-app宣言がある大規模サイトのさまざまなセクションを意味します。 Scott AllenがOdeToCodeブログで次のように書いています。 あまりうまく対処できていないシナリオの1つは、同じ優れたWebアプリケーションに複数のアプリが存在し、クライアントで共有コードを必要とするシナリオです。 推奨されるアプローチ、避けるべき落とし穴、またはあなたが指し示すことができるこのシナリオの良いサンプル構造はありますか? 更新-2015年9月10日 興味深い組織戦略を持つプロジェクトの1つに、MEAN.JSとそのモジュールフォルダーがあります。 https://github.com/meanjs/mean https://github.com/meanjs/mean/tree/master/modules 別の例は、ASP.NET Music Store SPAの例です。 https://github.com/aspnet/MusicStore https://github.com/aspnet/MusicStore/tree/master/src/MusicStore.Spa/ng-apps

17
毎日のスタンドアップ-はい、またはいや?[閉まっている]
毎日のスタンドアップミーティングはどれほど価値があると思いますか(またはそうでないと思いますか)? あなたがそれに慣れていない場合、これはスクラムの支持者の一部である毎日の会議を指します(および他のいくつかのアジャイル方法論)。アイデアは、15分のタイムボックスで毎日会議を開催し、全員が立ち向かわなければならないということです(人々がそのポイントになるように促すため)。 会議では、部屋を歩き回って各自が次のように言います。-昨日あなたがしたこと-本日あなたがすることを計画していること-進行の妨げや障害 この実践には価値があると思いますか?誰かがそれをした場所で働いたことがありますか、あなたはどう思いましたか?

1
null対REST APIレスポンスのキーの欠落[終了]
私のアプリケーションでは、一部のユーザーは姓を教えてくれますが、他のユーザーは教えません。REST APIレスポンスでは、どのボディが優先されます: 「ヌル」値の場合: {"firstName": "Bob", "lastName": null} または、不足しているキー: {"firstName": "Bob"}
40 rest  api-design  json 

5
関数型プログラミングの文脈で貧血モデルについて話すことはまだ有効ですか?
DDDの戦術的なデザインパターンのほとんどはオブジェクト指向のパラダイムに属し、貧弱なモデルは、すべてのビジネスロジックがオブジェクトではなくサービスに置かれ、一種のDTOになっている状況を表します。言い換えると、貧血モデルは手続き型の同義語であり、複雑なモデルにはお勧めできません。 純粋な関数型プログラミングの経験はあまりありませんが、DDDがFPパラダイムにどのように適合し、その場合に「貧血モデル」という用語がまだ存在するかどうかを知りたいです。 更新:Recentlry は、このテーマに関する本とビデオを公開しました。

6
SQLのリファクタリングが容易ではないのはなぜですか?[閉まっている]
新しい開発者が長い関数を書くことは誰もが知っています。進歩するにつれて、コードを小さな断片に分割するのが上手になり、経験がそうすることの価値を教えてくれます。 SQLを入力します。はい、SQLのコードについての考え方は、手順についてのコードについての考え方とは異なりますが、この原則は同じように思えます。 次の形式のクエリがあるとします。 select * from subQuery1 inner join subQuerry2 left join subquerry3 left join join subQuery4 いくつかのIDや日付などを使用する これらのサブクエリはそれ自体が複雑であり、独自のサブクエリを含む場合があります。他のプログラミングコンテキストでは、複雑なサブクエリ1〜4のロジックは、それらすべてを結合する親クエリに一致するとは考えられません。私が手続き型コードを書いている場合にそれらが関数であるように、それらのサブクエリはビューとして定義されるべきであるように非常に簡単です。 では、なぜ一般的な慣行ではないのでしょうか?なぜこれらの長いモノリシックSQLクエリを頻繁に書くのですか?なぜ手続き型プログラミングが広範な関数の使用を奨励するように、SQLが広範なビューの使用を奨励しないのか。(多くのエンタープライズ環境では、ビューの作成は簡単にできるものではありません。要求と承認が必要です。他のタイプのプログラマーが関数を作成するたびに要求を送信しなければならないと想像してください!) 私は3つの可能な答えを考えました: これはすでに一般的であり、私は経験の浅い人々と仕事をしています 経験豊富なプログラマーは、手続き型コードを使用してハードデータ処理の問題を解決することを好むため、複雑なSQLを作成しません 他の何か

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