ソフトウェア工学

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

9
単独の開発者としての作業:コードを見直す
私は自分で作業する以外に選択肢がなく、自分の仕事を見渡したり、健全性をチェックしたり、アイデアをブレインストーミングしたり、ベストプラクティスについて話し合ったりするための適切な解決策を見つけることができません。 私はジェフ・アトウッドの記事で答えを得ると思った:プログラミングでは、One is The Loneliest Number、私はこのテーマで見つけることができる最高ですが、それは私の質問を繰り返したことが判明しました。 私はこのようなStack Exchangeサイトを知っており、Code Reviewは明らかに潜在的な答えですが、多くの人が理解するように、理想からは遠いです: すべての落とし穴をリストすることはできませんが、多くの場合、質問を定式化して自己完結型の問題にまとめると、多くの作業が必要になります。それ以外の場合にかかっていたよりも時間。また、詳細を隠して明確に定義された質問をすることで、誰かがあなたが考えていなかった問題を見つける可能性を排除します。また、指を置くことはできませんが、自由な会話の応答性は、私が考えることのできるテキスト形式のインターネットディスカッションとは一致しません。最後になりましたが、明白な理由から、プロジェクト全体を世界中に投稿して、残りの永遠を探したいとは思いません。 私のコードを見直すためにコンサルタントにお金を払う以外の答えはありますか?

10
文字を許可せず、パスワードの長さを制限する正当な理由はありますか?
パスワードを許可する長さを制限したり、特定の文字を禁止したりするサイトを数多く目にしました。パスワードの検索スペースを広げて長くしたいので、それは私に制限されています。また、それらがハッシュされていないかもしれないという不快な感覚を私に与えます。 そこにあるの良いアッパー長さを設定したり、パスワードの文字を除くいずれかの理由は?

4
Goはどれくらいの速度で移動できますか?
Goは、「金属に近い」状態で実行されるはずの数少ない言語の1つです。つまり、コンパイルされ、静的に型指定され、VMなしでネイティブにコードを実行します。これにより、Java、C#などよりも速度が向上します。ただし、Javaの背後にあるようです(プログラミング言語のShootoutを参照) 成熟度の低いコンパイラがこれに大きな責任を負っていると仮定していますが、他の理由はありますか?Goの設計に固有のものはありますか。たとえば、Javaよりも速く動作することを妨げるものはありますか。私はランタイムモデルについて非常に洗練された見方をしていますが、少なくとも原則として、ネイティブコードの実行のおかげで、Javaよりも速く実行できるはずです。

10
RoRの欠点は何ですか?[閉まっている]
私は現在、Web開発のためにどのサーバーサイド言語を学び、使用するかを決定しようとしています.x、y、またはzが良い理由に関する情報を得るのは比較的簡単ですが、それぞれの欠点を把握するのは難しいですそのうちの。 特に、他の特定の言語/フレームワークとは対照的に、Ruby on Railsの学習や使用にどのような欠点があるのか​​興味があります。

7
プロジェクトの開発中に頻繁に再設計しているのは悪い兆候ですか?
私が最初にプログラミングを始めたとき、私はいつか座ってすべてのクラスのUML図をスケッチすることでプロジェクトを開始するポイントに到達し、それに固執するだろうと思いました。私は数年前からプログラミングをしていますが、そのようにはなりません。プロジェクトを進めていくと、よくこう言っています 「ねえ、そうするためにクラスが必要です_ _。それまでは考えていませんでした。」 「待って、この関数は本当にこのクラスではなくそのクラスにあるはずです。私はそれを移動します。」 「これは実際には1つではなく2つのクラスになります。分割します。」 「これら3つのスタンドアロンクラスをすべて1つの抽象クラスから継承する必要があります。」 等、その他。 このようにデザインをやり直しているのは悪い兆候ですか?これは私が貧しいプログラマーであることを意味しますか、それとも普通ですか?




9
SWエンジニアリングのインタビューは、なぜ(研究インタビューに対して)不釣り合いに難しいのですか?[閉まっている]
まず、私に関するいくつかの背景。私はCSで博士号を取得しており、ソフトウェアエンジニアとR&D研究科学者の両方として、非常によく知っている大企業で仕事をしました。私は最近、過去に行ったように、両方のタイプの職に就職し、面接を受けました。 私の観察:SWエンジニアの就職面接は、CS研究者の就職面接よりもはるかに難しい方法ですが、研究者の仕事はより高額で、競争力があり、よりやりがいがあり、より面白く、より高い利点があります。 研究者向けの典型的なインタビューループを次に示します。 私の研究が研究室の研究と一致しているかどうかを確認するための電話インタビュー 対面:最近の研究について1時間(おそらく9か月分の作業に相当)プレゼンテーションを行い、聴衆からの質問に答えます 約5人の研究者との1対1の面接。そこでは、技術的な質問、関連する仕事に自分の仕事が合う場所、自分の仕事をどのように拡張できるかなど、仕事/出版物/特許に関して非常に合理的な質問をします。新しいエリア SWエンジニアの典型的なインタビューループを次に示します。 電話でのインタビュー。アルゴリズムに関する質問をし、コーディングを行う場合があります。かなり標準。 難解なC ++の特徴(例:多態的な仮想関数呼び出しの仕組み)、アルゴリズム(1ペアの頂点ですべてのペアの最短パスアルゴリズムを機能させる)についてF ***をドリルアウトするホワイトボードでの対面インタビュー、システム設計(データベースロードバランサーの設計)など。これは6〜7回のインタビューに続きます。とんでもない。 なぜ誰もがこれに我慢するのでしょうか?C ++の雑学について尋ねたり、自分自身を証明するコードを書いたりする意味は何ですか?SEのインタビューを、研究者のインタビューのように、自分がやったことについて話をしてみませんか? 物理学、化学、土木工学、機械工学などの他の分野の技術面接はどうですか?
39 interview 

11
ロギング:なぜ、何ですか?[閉まっている]
ロギングを大幅に活用するプログラムを書いたことはありません。私がやったことのほとんどは、例外が発生したときにスタックトレースをキャプチャすることです。 他の人はどれくらいログを記録するのだろうかと思っていました 作成しているアプリケーションの種類に依存しますか?ログは実際に役立つと思いますか?

4
Lispワークフローはどのように見えますか?[閉まっている]
私は現在Lispを学んでいます。LocomotiveBASIC-> Z80 Assembler-> Pascal-> C-> Perl-> C#-> Rubyという言語の進歩から来ています。私のアプローチは同時に: SBCL、QuickLisp、closure-html、およびdrakmaを使用して簡単なWebスクレーパーを記述します SICP講義を見る これはうまく機能していると思います。私はLispを合理的に簡単に読むことができるという点で、良い「Lispゴーグル」を開発しています。また、依存関係のQuicklispなど、Lispエコシステムがどのように機能するかについても感じています。 私は本当に欠けている何か、しかし、味付けLisperが実際にどのように感ある作品。 .NET向けにコーディングするときは、ReSharperとVisualSVNを使用してVisual Studioをセットアップします。私はテストを書き、実装し、リファクタリングし、コミットします。それから、ストーリーを完成させるのに十分なことが終わったら、AUATをいくつか書きます。その後、TeamCityでリリースビルドを開始し、テストとできれば承認のために新しい機能を顧客にプッシュします。インストーラーが必要なアプリの場合は、WiXまたはInnoSetupを使用します。明らかに、CIシステムを介してインストーラーを構築します。 だから、私の質問は:経験豊富なLisperとして、あなたのワークフローはどのようなものですか?あなたは主にREPLで働いていますか、それともエディターで働いていますか?ユニットテストはどのように行いますか?継続的インテグレーション?パッケージングと展開?あなたが机に座って、片方にコーヒーのマグカップを、もう片方にジョン・マッカーシーの額入りの写真を蒸しているとき、あなたはそれをどうしますか? 現在、私はLispコーディングを理解しているように感じていますが、Lisp開発ではありません...
39 lisp 

16
あなたのアイデアを秘密にしますか?なぜ?[閉まっている]
プログラマーには、革新的または少なくとも価値があると考えるいくつかのアイデアがあると思います。それは、この世界をより良くする新製品や新しい開発アプローチなどのアイデアかもしれません。 しかし、素晴らしいアイデアを実装し、宣伝/宣伝する必要があります。これには、多くの作業(概念実証、プロトタイプ、技術プレビューなど)と多くのお金(適切な広告、マーケティングなど)が必要です。数か月後、アイデアは頭の中に残りますが、他のことは何も行われません。なぜなら、それは一人の開発者にとって難しく、長く、高価で、時には不可能だからです。 一方、私たちのアイデアを共有し、そこから何かを作り、成功とお金を持っている十分なリソースを持っている中規模の会社を見るのは痛いでしょう。 それでは、あなたがほとんど実装できない、または特許を取得できないアイデアで何をしますか?ディスカッション掲示板や他の開発者と自由に話していますか?誰にも話すことなく、貴重なものとして保管していますか? アイデアを保持する場合、なぜそうするのですか?いつの日か、それらを実装して大きな成功を収めることができることを望んでいるというだけの理由ですが、それがユートピアであることを経験によって非常によく知っていますか?

13
ソフトウェアのスケジュールを定義するのが難しいのはなぜですか?
私の経験では、エンジニアに完了させるタスクを正確に見積もり決定させることは、歯を抜くようなものです。2〜3週間または3〜6か月の盗品の見積もりを与えるだけでなく、ソフトウェアスケジュールを定義する最も簡単な方法は何ですか?たとえば、顧客Aは2011年2月1日までに機能を希望しています。他のバグ修正が途中で必要になる可能性があることを知って、この機能を実装する時間をどのようにスケジュールし、追加のエンジニアリング時間を費やしますか?

14
チームリーダーとしてチームメンバーの尊敬を得る方法[終了]
チームリーダー(10人のチームなど)として新しい会社に雇用された場合、重要なことの1つは、チームのメンバーの尊敬を集めることです。初期の頃は、新しいチームリーダーはチームカルチャー、コードベース、およびビジネスドメインについて何も知らない可能性があります。つまり、完全な初心者です。 これについてはどうすればいいですか?やっていいことといけないことは何ですか?

16
IDEと標準エディターの使用を正当化するものは何ですか?[閉まっている]
私は自分の選んだテキストエディタ(vim、nano、gedit、poisonを選ぶ)を、最近のIDEよりも頻繁に使用していることに気付きました。 IDEのショートカットが埃っぽくなっていることに気付いた後、私はこれについて考え始めました。 その点について、IDEを使用せず、単にエディターに依存する理由は何ですか?

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