ソフトウェア工学

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

11
アプリの完成にリファクタリングまたは集中
進行中にアプリをリファクタリングしますか、それとも最初にアプリを完成させることに集中しますか?リファクタリングは、アプリappの進行が遅くなることを意味します。 アプリを完了すると、後でアプリのメンテナンスが非常に難しくなる可能性がありますか? このアプリは個人的なプロジェクトです。「機能と設計を推進するもの」にどのように答えればよいのか本当に分かりませんが、現在のソフトウェアの非効率性を解決することだと思います。私も最小限の使いやすいソフトウェアが好きです。そのため、いくつかの機能を削除し、役立つと思う機能を追加しています。

13
チームのすべてのメンバーが同じIDEを使用する必要がありますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 チームのすべてのメンバーが同じIDEを使用しなければならないと強制することは理にかなっていると思いますか? たとえば、すでにチームにいるすべてのエンジニアはIDE Xを使用します。2人の新しいエンジニアが来て、代わりにIDE Yを使用したいと考えています。 「混合IDE」チームでの経験はありますか?もしそうなら、それは何ですか?
23 ide  teamwork 

13
「機能する限り」は標準ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 私の最近の質問を参照してください: プログラミングは、底辺への競争における職業としてですか? 私の最後の店にはプロセスがありませんでした。アジャイルは本質的に、彼らが彼らのプロジェクトを開発または管理する方法について全く計画を持っていなかったことを意味しました。これは「やあ、ここにたくさんの仕事があります。2週間でそれをやりましょう。ペースが速くて機敏です」。 彼らは問題があると知っていたものをリリースしました。彼らは物事がどのように書かれているか気にしませんでした。数人の開発者がいるにもかかわらず、コードレビューはありませんでした。彼らはバグだと知っていたソフトウェアをリリースしました。 私の以前の仕事で、人々はそれが機能する限り態度を持ち、それは大丈夫です。基本的に仕様を調査している間に書いたコードの書き直しを要求したとき、彼らはそれを否定しました。コードが複数の場所で繰り返され、カプセル化が行われず、人々がコードを変更するのに長い時間がかかったため、コードを書き直したかったのです。 本質的に、私の印象はこれです:プログラミングは次のように要約されます: 最新のツール/テクノロジーに関する本を読む これに基づいてコードを一緒に投げ、会社が「カスタムコードを維持する」ことを望まないので個々のコードを書くことを避けます それを見せて、「それが機能する限り」次のことに進みます。 次の仕事はもっといい店を手に入れるといつも言ってきました。それは決して起こりません。これなら、行き詰まってしまいます。技術は常に変化します。ここでの唯一の専門的な開発が最新のMS Pressテクノロジーブックを読んでいる場合、10年で何を構築しましたが、さまざまなテクノロジーの表面的な知識ですか?私は心配しています: 専門的な基準を持つ最善の方法 この状況で有意義な知識と経験を開発する方法

3
オープンソースプロジェクトのどの段階で、コミュニティからの貢献を招待すべきですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 私のチームが開発する新しいオープンソース製品に貢献することを考えていました。できるだけ多くのコミュニティからできるだけ多くのサポートを得ることが奨励されていますが、これは多くの時間を費やし、オフィスの外にあるサードパーティがコード品質などに関して順調に進んでいることを確認できます。また、プロジェクトの開始時に、システムの設計、スパイクなどに関してコアチーム内で多くの非公式な議論が行われる可能性があり、これらをオンラインでコミュニティに参加させることは時間がかかり、議論はあまり効果的ではありません。 これにはもっと人間的な側面があり、おそらく検討する必要があります。設計プロセスへのコミュニティの関与を許可することは、プロジェクトの所有権の認識に関しても利点があり、初期の関与がコアの問題を拾う可能性が常にありますチームは気づいていません。 では、質問:オープンソースプロジェクトのどの段階で、コミュニティからの貢献を招待すべきでしょうか?

1
分散キューの問題の解決策は何ですか?
分散キューの問題を解決するさまざまな方法について、もっと詳しく学ぼうとしています。それで、私はすでにどんな製品、サービス、実装と研究論文があるかについて知りたいです。 実装は多くの課題に直面し、トレードオフを余儀なくされます。 順序が強いですか、緩いですか? べき等を入れていますか? 単一のマシンに収まるものよりも多くのキューを使用できますか? 単一のマシンに収まるデータよりも多くのデータをキューに入れることができますか? データを失う可能性がある前に、何台のマシンがクラッシュする可能性がありますか? ネットスプリットを許容できますか? ネット分割が修正されると、自動的にデータを調整できますか? クライアントがクラッシュした場合に配信を保証できますか? 同じメッセージが複数回配信されないことを保証できますか? ノードは任意の時点でクラッシュし、戻ってきて、ジャンクを送信できませんか? ダウンタイムなしで実行中のクラスターにノードを追加、またはノードからノードを削除できますか? ダウンタイムなしで実行中のクラスターのノードをアップグレードできますか? 異種サーバーで問題なく実行できますか? サーバーのグループにキューを「固定」できますか?(例:「これらのキューはヨーロッパのデータセンターでのみ許可されています」) 可能であれば、少なくとも2つのデータセンターにデータレプリカを配置することを確認できますか? 私は、どの実装でもそのすべてに「はい」と言うことができるという幻想は持っていません。さまざまな実装について聞いてみたいだけです。それらがどのように機能するか、どのようなトレードオフを行ったか、そしておそらく彼らが特定のトレードオフのセットを決定した理由。 また、上記のリストで見逃したかもしれない課題がある場合。

4
一人のプログラマーのためのアプリケーション/コードレビュー?
「リーズナブルな価格で」アプリケーションに関する優れた技術的なアドバイスを提供するサービスはありますか。多くのプロジェクトでは、私は通常、唯一の開発者です。時には、作業の一部を効率化、MVCインタラクションの改善などのために改善する必要があると思います。そのようなレビューを行います

13
趣味のプロジェクトをホストする最も安い方法は何ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 趣味のWebプロジェクト(コードではなく、Webアプリ自体)を配置するのに最適な場所は何ですか?通常、プロジェクトは次のようなものです。 a)人々がどのようにそれを取り入れているかを見るために、ビジネスの角度を探ることなく、興味深いアイデアを試したいだけです。 b)多くのトラフィックを期待していません c)すぐにスケーリングしたくない d)1つのテクノロジーに縛られたくない(さまざまなWebスタック、lang、libに慣れるために異なるプロジェクトを行いたい) Googleアプリエンジンは、このような探索的なものには非常に制限されているようです...アウトバウンドリクエストは10秒を超えることができず、すべてのリクエストは30秒で返される必要があるなどの制限があります。それらがオプションであるように。 Amazon EC2マイクロノードは1年間無料です。しかし、彼らはクレジットカード情報を要求しますが、最初に支払いをしていないときに配りたいかどうかはわかりません。 他にどのような無料/安価な選択肢がありますか?

12
テストを停止する時期を知る方法
これは非常に基本的な質問です。一部のソフトウェアアプリケーションには、アプリケーションのテストケースがほぼ無限に多数あります。これらすべてのテストケースをテストすることは実用的ではありません。テストをいつ停止するかをどのように決定しますか?(「お金がなくなったとき」を除く)。

17
なぜ正規表現は病的なほど魅力的ですか?
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 図表1、図表2、他の例を思い出すのは難しくないと思います。 問題は、問題を解決する方法が複数ある場合、PHPプログラマー(私は通常StackOverflowでPHPタグを参照します)が正規表現に関連するソリューションのヘルプを求めます。 場合でも、それは、あまり経済的になる場合でも、 PHPのマニュアルは(示唆リンクを使用するために)str_replaceどんなのではなく、preg_*またはereg_*全く空想の置換規則が必要とされていない場合機能。 誰かがこれがなぜ起こるのかについての手がかりを持っていますか? 誤解しないでください。私の親友の何人かは正規表現であり、Perlを軽deしていません。私が手に入らないのは、オーバーキルが明らかな場合(文字列を切り替える正規表現)またはコードの複雑さが指数関数的に増加する場合(PHPで htmlからデータを取得するための正規表現)

12
頻繁に休憩を取ることは、プログラミングの際に本当に有益ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 プログラマーがプログラミング中に頻繁に休憩を取ることが推奨されていることを読み続けていますが、私が見る通常の推奨事項は30分ごとに5分または1時間ごとに10分です。 試してみましたが、この5分間で何か面白いものを見つけることがよくあり、計画していたよりも長い間作業していたものから離れてしまいます。それか、私の心が何か他のものに集中しているので、仕事に戻るのが難しく、あまり集中しない。 プログラミング中に頻繁に休憩を取ることは本当に有益ですか?生産性を高めるのではなく、生産性を低下させるために何か間違ったことをしていますか?

11
同僚が96列のSQLテーブルを作成しました
私たちは2010年に、4年または5年以上の経験を持つソフトウェアエンジニアであり、96のフラッキングカラムを持つテーブルを設計しています。 私は彼にそれが悪夢になると言った。 MySQLをC#とインターフェイスするには序数を使用する必要があることを彼に示しました。 行よりも列の方が多い表は大きな臭いだと説明しました。 それでも、「この方法でもっと簡単になるだろう」というメッセージが表示されます。 私は何をすべきか? 編集* このテーブルには、センサーからのデータが含まれます。 Dynamic_D1X Dynamic_D1Y を備えたセンサー1があります [...] Dynamic_D6X Dynamic_D6Y [...] EDIT2 * さて、私はついにその仕事を辞めました。それは、他のプログラマーが何ヶ月も暗くなったときの兆候であり、管理者がこれが問題であることを認識していないときの別の兆候です
23 sql  code-smell 

5
なぜ文字列がそんなに遅いのですか?
高校での最初のプログラミングクラス以来、文字列操作は神話上の「平均的な操作」よりも遅い、つまりコストが高いと聞いてきました。なぜそんなに遅くするのですか?(この質問は意図的に広く残されました。)

1
Googleでの開発プロセスはどのようなものですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 彼らはどのツールを使用していますか?どのようなプロセスですか?コードに関してどのようなルールがありますか?彼らはどのようにコードをテストしますか?

12
GUIプログラマーは他のプログラマーに比べて過度の利点がありますか?
マネージャーや顧客は、自分が見ることができるものに感謝するのは簡単です。 私は、設計原則やその他のプログラミングのイディオムについて最低限の知識しか持たない平均的なプログラマーである多くのGUI開発者を見てきました。ただし、プログラマーが印象的な外観のユーザーインターフェイスを作成できる場合、これらの欠点は、特に経営陣と顧客によって特に気づかれません。私が知っている多くのGUI開発者は、保守できない悪いコードを書くことを犠牲にしてGUIを美化するのに何時間も費やしています。 一方、APIやビジネス機能、またはデータベースコード(SQLなど)を開発する中間層プログラマーは、具体的に示すものが何もないため、不利です。おそらく、コードレビューアまたはアーキテクトは、コードの優雅さ、優れたデザイン、スケーラビリティなどを高く評価するかもしれませんが、外の世界にとっては何の意味もありません。あなたのコードは何年も壊れることなく実行でき、維持が非常に簡単で、優れたパフォーマンスを発揮しますが、滑らかなGUIのような「すごい」を引き出すことはありません。 私の意見では、これに対する帰結は、GUIプログラマーが良いクリーンなコードを書くためのモチベーションが低いということです(そして、私はこれに重く賛成するつもりです)。 編集:ここでは、GUIプログラマーによって、本格的なWeb / GUIデザイナーではなく、Javaスイングプログラマーなどのフロントエンドプログラマーであることを説明する必要があります。 コミュニティの他のメンバーは同意しますか?
23 gui 

11
「あなたの最大の強み/弱みは何ですか」インタビューの質問の有効性[非公開]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 7年前に閉鎖されました。 現在、インタビューテーブルの反対側にいる自分自身を見つけている人として、これらの質問が雇用主の観点からどれほど役立つか疑問に思っています。私の同僚の何人かは、あなたが「彼らがどのように反応するか」を見ることができるので、彼らは良いと思うが、私はそれがあなたに何か有用なことを伝えるとは確信していない。 それはあまり快適な質問ではなく、意図的にではなくても、人々が答えをひねってしまう可能性があります 人々は彼らの最大の長所または短所を完全に知らないかもしれません(すなわち、彼らの仲間によってそれらを判断します) 強さが何であるかを説明することは、それを示すほど良くない 私はまだ候補者についてもう知りません 私の同僚の理論的根拠は、彼の最大の強みは「彼の知性」であると言った人や、弱点の質問を「私は一生懸命働いている」と言う人のように、ばかげた反応をする人を取り除くことができるということです。 」しかし、私はそのようなことを決定するより効果的な方法があると思います。誰かが賢いかどうかを見たいなら、技術的な質問をしてください。誰かが生産的であるかどうかを見たいなら、彼らの仕事の履歴を見てください。ストレスや変化の中で誰かがどのように反応するかを知りたい場合は、どのように対処したかを尋ね、具体的な例を求めてください。 インタビュアーの観点から、これらの質問に対する人々の考えは何ですか?彼らは候補者について本当にあなたに何を伝えますか、そしてより良い選択肢は何ですか?これを同僚にどうやって納得させるのですか?
23 interview 

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