ソフトウェア工学

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

1
LispとLaTeXの結婚-それは行われましたか?
私はが好きですがLaTeX、そのマクロシステムとロジックはどちらも複雑で弱くなっています。Schem / Lisp / Clojureなどの言語は、マクロが非常に得意です。lispファミリー言語で書かれたドキュメント全体が実行されると、LaTeXコードを生成してドキュメントを生成すると思います。これは以前に行われたことがありますか?リンクは?
9 lisp 

9
最近の卒業生は基本的なプログラミングの概念に精通していると思いますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 4年前休業。 大学で数年間プログラミングを勉強している人に期待することと実際に知っていることの間には大きな違いがあるようです。 面接で複雑すぎる質問をしているような気がしません。私の通常の質問のいくつかは: 参照型と値型の違いは何ですか? インタビュイーが自分の答えを実際に理解していないようである場合、または使用している用語がわからない場合は、int i = 0と書くとどうなるかを説明するように依頼して、詳細を調べます。メソッドでは、オブジェクトo = 0、オブジェクトo = new MyClass()などはどうですか... 基本的に、面接対象者をだましてコールスタックやヒープなどを教えてくれるようにできる限りのことを行い、言語にとらわれない概念にとどまろうとします。インタビュイーがC、C ++、またはc#をたくさんやったと私に言った場合、私は特定の言語と、場合によっては実装の詳細について詳しく説明します。 必要に応じて、インタビューの対象者に、コールスタックとは何か、または選択した命令型言語で関数に渡された引数が格納される場所を尋ねます。 ほとんどのインタビュー対象者は、コールスタックが何であるか、ボクシングの考慮事項はもちろんのこと、何も知りません。 抽象クラスとインターフェースの違いは何ですか?どちらを使用するべきですか? 通常、私はまた、いくつかの継承といくつかの抽象的なファクトリを使用することを目的としたユースケースを備えた小さなライブラリの設計を想像するように依頼します インタビュー対象者のほとんどは、実際の目的がどのような継承であるかをまったく知りません。彼らは通常、いくつかのキーワード(仮想、オーバーライドなど)を知っていますが、仮想テーブルが何であるかを説明することは言うまでもなく、それらをいつ使用するか本当に知りません。 事前にCVをスクリーニングしていますが、複雑なアーキテクチャを含む実際のプロジェクトで5年の経験がある人でも、面接対象者全員がこれら2つの質問に正しく答えることができるのは25%未満です。そして、私が適切に言うとき、私は「詳細」を意味しません...概念が何であるかについてのおおよその考えを持っているだけです。 後輩については、時間の整理の仕方がわからない人や、産業の構築プロセスなどに慣れていない人を雇っても大丈夫ですが、「コールスタック」は、コンピューターサイエンスを数年勉強した後、愚かであるか、やる気がなくなったか、大学を非常に賢く選択しませんでした。 私はここで過激すぎると思いますか?大学を卒業した後、これらの基本的な概念を学ぶことは一般的ですか?これらに精通しておらず、数年後に非常に優れたソフトウェアエンジニアになった人々をご存知ですか?そして、私の会社には才能のある人々を引き付けることに問題があると思いますか、それともあなた自身の雇用プロセスで同じ種類の問題を経験しますか? 編集。「即時型」については、通常はフランス語でインタビューを行うので、それはフランス語から英語への文字通りの翻訳でした。私の質問ではそれを修正しました。しかし、それでも、皆さんは私が何を意味しているのかを完全に理解していると思います。
9 hiring 

4
面接はうまくいきませんでしたが、まだ就職できました。新しいマネージャーとの関係をどのように処理しますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ソフトウェアエンジニアリングスタック交換のトピックになるようにします。 5年前休業。 私は最近採用されたポジションの一連の面接に参加しました。インタビューの過程で、6回に分けてインタビューを受けました。3つの技術面接と3つの状況/ビジネス面接。 私の2番目の(そして最も困難なインタビュー)の間に、今は私のマネージャーであるインタビュアーが、プログラミングの問題の解決策を一晩で提供するように頼みました。翌日に解決策を提出しましたが、面接官が期待したものではないことがすぐにわかりました。私はすぐに、正解を含む別のソリューションを追跡しましたが、インタビュー会社からそのように見なされました。 マネージャーが6か月の期間内にそのポジションの従業員を雇用していなかったため、この期間中に、裏側でインタビュープロセスが変更されたことがわかりました。 私は役職に就いたので、この特定の状況により、ここでの私の配置について、このマネージャーの口の味が悪いのではないかと少し心配しています(これは、新しい採用プ​​ロセスに時間がかかりすぎたため、彼の頭の上で行われたと思います)。 私は現在2か月以上働いており、このマネージャーと直接やり取りすることはありませんでした。私はうまくいったと信じており、私のチームリーダーから私の認識の賞賛と確認を受けました。 専門家の観点から、面接の履歴に注意しながら、上司にこれが確実に表示されるようにするにはどうすればよいですか? 回答ありがとうございます。

3
なぜ閉鎖についての話題が多いのですか?[閉まっている]
ここで何が質問されているのかを理解することは困難です。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 8年前休業。 開発者の間でクロージャーについての話題が多いのはなぜですか?私のキャリアでは、意図的にそれらを使用したことはありませんが、それらが何であるかを明確に理解していません。 UPD:明確にするために。問題は、なぜ最近、クロージャのコンセプトがそれほど話題になったのかということです。
9 closures 

5
Javaにおける冒とく的なフィルターのパフォーマンス
JavaベースのWebアプリケーションでユーザーの投稿から冒とく的な表現を除外する必要があります。クライアントはScunthorpe問題とClbuttic問題の両方を認識しており、その結果を受け入れています。どうか、検閲の欠如の利点についての議論を望まないでください。 2ビットのデータがあります。 ユーザーの提出物。500語程度になる可能性があります。 許可されていない単語を含む単一列のデータベーステーブル。このテーブルには何千ものレコードがある場合があります。 現在の解決策は私には間違っているようです: 起動時に、テーブル全体が静的String []に読み込まれ、シングルトンに(したがって、メモリに常駐します)。 ユーザーが送信するたびに、配列をループ処理し、.indexOf()を実行して、String []内の特定の単語が送信に表示されるかどうかを確認します。 表示される場合は、%$#@%スタイルの文字に置き換えます。これは、ユーザー送信をトークン化し、ユーザー送信全体をトークンとして(再度)ループし、見つかった単語の各インスタンスを置き換えることによって行われます。 このソリューションには輝きがあるかもしれませんが、私は懐疑的です。そして、しばらくそれを見たとき、私はそれを通り越す方法を見つけることができません。 質問は、私が聞いたことのないあいまいな単語を除外できなかったために解雇された後、将来の開発者が維持するために良いパフォーマンスを提供し、うまくいけば合理的に正気であるソリューションは何ですか?
9 java 

3
BDD:はじめに
私はBDDから始めて、これが私の話です。 Feature: Months and days to days In order to see months and days as days As a date conversion fan I need a webpage where users can enter days and months and convert them to days. 疑問があります... 何かをコーディングする前にシナリオを書くべきでしょうか、それとも最初にシナリオを書いてからコードを書いたり、シナリオをもう一度書いてからコードを書いたりするべきでしょうか... 以前にシナリオを作成する必要がある場合、私のステップを承認しても製品コードはまだ完了しませんか? いつコードをリファクタリングする必要がありますか?機能が完了した後、または各シナリオの実装後?

2
チームで悪いコードを書いている人を「中和」する方法は?
私はJoelOnSoftwareに関するこの記事をいつも気に入っていました。私は特に初心者だったときに関係することができました(それでも、私は常に1つになるつもりです)。 #4については、bozoを中和します。これを実際の職場で実際に実装するためのアドバイスはありますか?(少なくとも私たちのチームでは)誰かの悪いコードに対するバグを記録するほど簡単ではないようです。残りのすべての人のために何がうまくいきますか?
9 team  bug 

2
.NET(Visual Studio)では、いつ新しいアセンブリを作成しますか?
Silverlightアプリケーションに取り組んでいます。私はそれをいくつかのアセンブリに分割しました: ドメイン リポジトリー(Sterlingデータベースに存続するものすべて) UI ... これは私が学んだ方法ですが、疑問に思いました。DLLが再利用されないことがわかっている場合、それらを分割する必要がありますか?または、すべてを1つのアセンブリに配置し、フォルダと名前空間を使用して整頓できますか? アセンブリが多すぎるプロジェクトも見ました。適切な場所で名前空間を使用する代わりに。 それで、いつ新しいコードの一部に対して新しいアセンブリを作成するのですか?このテーマに関する良いリソースはありますか?また、コードを技術的に(ドメイン、データ、UIなど)に分割したり、機能的に(つまり、患者管理、患者医療、病院ロジスティクスなど)分割したりしますか?

5
時間に敏感なソフトウェアをどのようにテストしますか?
時間に依存するとは、たとえば、月に1回だけ実行されるスクリプト、または継続的に実行され、月に1回だけ特定の出力を提供するスクリプトを意味します。もちろん、多くのケースで単体テストを実行できますが、例外があります(私の理解では)。 私が最近遭遇した例は、毎月2日から最終日に実行されるようにcronジョブを設定することでした。これには、cronタブでシェルスクリプトを使用して、cronの正しい日を取得する必要がありました。 1 0 [shell command] * * [my script] 私はスクリプトに慣れておらず、シェルスクリプトにも慣れていなかったため、月末が来るのを待ってスクリプトが正しく実行されるかどうかを確認する以外に、スクリプトをテストする良い方法はありませんでした(実際、私の解決策はco-私がしたcronとシェルスクリプトについてもっと知っている労働者)。 ですから、時間に敏感なスクリプトをテストするための有用な回避策があるかどうか知りたいです。

2
CPOLライセンス。ソースコードを配布せずに商用アプリケーションで使用できますか?
CPOLライセンスを使用するhttp://www.codeproject.comのプロジェクトの使用を検討しています。セクション5eは言う: 「お客様は、このライセンスの条件に基づいてのみ実行可能ファイルとソースコードを配布することができます。また、配布する実行可能ファイルまたはソースコードのすべてのコピーに、このライセンスのコピーまたはそのUniform Resource Identifierを含める必要があります。そのような実行可能ファイルおよびソースコードを受け取った者は、このライセンスの条件がそのような実行可能ファイルおよび/またはソースコードに適用されることに同意するものとします。このライセンスまたは受信者の条件を変更または制限する作品に条件を提供または課すことはできません。本契約に基づいて付与される権利の行使お客様は、作品をサブライセンスすることはできません。お客様は、このライセンスおよび保証の免責事項に言及するすべての通知をそのまま保持する必要があります。実行ファイルまたはソースコードを、本ライセンスの条件に反する方法で作品へのアクセスまたは使用を制御する技術的手段と共に配布することはできません。」 ソースコードを実行可能ファイルに含める必要があるかどうかはわかりません。さらに悪いことに、GPLライセンスなどで自分のソースコードを利用できるようにする必要がある場合。 私にはっきりしない理由は、自分のソースコードを一緒にコンパイルして、「ソースコード」または「実行可能ファイル」を「配布」しているのかどうかわからないためです。
9 licensing 

2
UIプログラミングに適したパラダイム
これは、OOPはGUIプログラミングの正しいパラダイムではないと誰かが述べたOOPテクノロジーの死のコメントから来る、より具体的な質問(または実際には2つですが、それらは関連しています)です。 そことここでコメントを読んで、まだ学ぶべきことがあると感じています。どのプログラミングパラダイムが適切であると見なされ、なぜ他のパラダイムよりも優れているのでしょう(例として、例を示してください)。 タイトルと質問からtk-exampleを削除しました

9
Bitbucketと小さな開発会社
私は、Mercurialをバージョン管理システムとして機能させるための準備を進めています。驚いたことに、VCSを使用したことがないので、これは誰にとっても大きな取引です。バグを管理者の耳に入れて数か月した後、彼らはついに光を見て、共有フォルダーのネットワークで作業するよりもはるかに優れていることに気付きました。 これを展開する過程で、私は自分のものを管理するためのさまざまな戦略を考えており、私は「中央」リポジトリとしてBitbucketを使用することに傾倒しています。Bitbucketのプロジェクトはもっぱらプライベートプロジェクトであり、誰もがそこからプッシュおよびプルします。 私はさまざまな提案を受け入れていますが、誰もが同じような設定をしていますか?もしそうなら、あなたはどんな警告に遭遇しましたか?

4
「代替品」のトレーニング、どのように標準を施行するのですか?
これがこれを尋ねるのに適切なスタック交換サイトであるかどうかはわかりませんが、ここに行きます... 範囲 私は数百人の従業員を抱える小さな会社で働いています。同社の開発チームは小規模で、ビジュアルフォックスプロで作業しています。同社の特定の部門が、既存の請求システムを修正および強化するために「孤独なガンマン」として私を雇いました。多くのリスクと制限に悩まされていたAccessアプリケーションを正常に取得し、SQLサーバーバックエンドから駆動されるC#アプリケーションに変換しました。 私は最近学部を取得しましたが、決して専門家ではありません。それを補うために、マイクロソフト認定資格を取得すると.netとそれがどのように機能するかについて理解を深める必要があると感じました。 だから、9ヶ月前に通知してから3ヶ月前にようやく交換品が出てきました。彼らの役割は、C#で設計されたアプリケーションをサポートするために私が設計してきたことを学ぶことです。 交換 実務経験のない大学を出たばかりで、データに関連するあらゆることに対する最初の本能はリストボックスであり、現在もそうです...データが言及されるときはいつでも、リストボックスが置換の選択のコントロールです。これは、他のコントロールについて何度も説明しましたが、1つのフォームに5つのリストボックスが表示されているので、問題になりました。Classroomのエクスペリエンスは、ほとんどすべてのC ++コンソール開発でした。 したがって、私が懸念している例は、winformsアプリケーションです。ユーザーは、理由をテーブルにキー入力して後で選択する必要があります。厳密に型指定されたデータセットが存在することがわかっている場合、ツールボックスからデータソースをドラッグするだけで、これらすべてが作成されます。これは簡単な例ですが、データバインディングを使用することが重要です。 過去数か月間、強く型付けされたデータセット、その使用方法、および他のコントロールとの相互作用の場所について話してきました。データセット、バインディングソース、アダプター、およびデータグリッドビューに関連してどのように機能するか。このプロジェクトを引き渡した後、これらを実装する方法についての質問が予想されました。次に何が起こったのかというと、ただ床を下ろしただけです。 強く型付けされたデータセットのアダプタのインスタンスがフォームのアクティブ化イベントで作成され、テーブルが作成されてデータが入力されました。次に、このテーブルからリストボックスに行を手動で追加するループが作成されました。最後に、必要に応じて、更新のためにレコードがどのIDであったかを調べるために、変数を参照して保持しました。 彼らはあなたが尋ねる記録をどのように変更しますか?それも私の最初の質問でした。あなたはそれがどれほど単純であるか信じられないでしょう、あなたがそれをダブルクリックするだけで、彼らはそれを変更するために新しい値をポップアッププロンプトに入力します。データ入力演算子として、すべてのモーダルポップアップは私を完全に狂気にさせます。最終的なソリューションは、維持する必要がある100行のコードを超えています。 だから私の懸念は、これらのどれも沈んでいないということです...部門は彼らの時間の週20時間しか許可されていません。先週まで、運が良ければ週4〜5時間しか与えられませんでした。先週かそこらで、私は幸運にも10を手に入れました。 質問 私は何をしますか?! 私が去るまであと4週間あり、彼らはこのアプリケーションを完全に「サポート」しています。私はこの仕事とそれが私に与えた機会を愛していますが、私が私の翼を広げて、何か新しいものを見つける時が来ました。私は決して彼らが引き継ぐ準備ができていると確信しているわけではありません。 置換には「構成する」という技術的能力があると思いますが、学習する代わりに、これらすべてを手動で行うコードを書くだけです。置換が最終的に別の方法でコーディングしたい場合、それが機能する限り、それを見ると恐ろしいのでそれで大丈夫です。しかし、私は、彼らが設計したものをサポートするためのMUSTそれがどのように動作するかを理解するために、私は「魔法」は実現するためにコントロールやフレームワークを使用していますか。 このプロジェクトには約40のフォーム、30以上の奇数のテーブル、トリガー、ストアドプロシージャを含むデータベースがあります。それは労働と請求書、契約と予測の関係です...私がこのプロジェクトを始めたのは3年前ほど簡単ではなく、現在、部署はそれなしでは生き残れない立場にあります。 世界でどのようにして次のことを達成できますか?: 部署のマネージャーがやりたいことはできるが、できることを伝え続ける場合は、一貫した設計の標準または理解を強化する 代替をサポートするために必要なフレームワークとシステム設計の積極的な学習に取り組む方法を見つける 優雅にSRに知らせてください。週5〜9時間の管理では、部門、既存のプロセス、サポートする必要のあるアプリケーションについて学び、システムの潜在的な機能強化がどこにあるかを判断するには十分ではありません。 はい、私はこれがテキストの壁であることを知っています。私を読んでくれてありがとうございますが、私は何をすべきかわからないだけです。私にとって、この仕事はリファレンスの怪物であり、私が離れて物事がばらばらになると、物事は非常に悪く見えるでしょう。これをどのように処理しますか?

4
ベストプラクティス-ウェブサイト上の画像の処理
古いeコマースサイトをMVC 3に移植していますが、デザインの改善を活用したいと考えています。このサイトには現在、商品画像が3つのサイズで保存されています:サムネイル、中(リストに表示)、拡大して拡大表示。現在、正確なサイズの3つの個別の画像をアップロードする必要があり、サイトが期待するものと一致する3つの異なる名前を提供する必要があります。 サイズの大きいファイルを1つだけアップロードし、サイトで必要なサイズに縮小して、ユーザーの好み、フォームファクター(モバイル、iPadなど)に応じてサムネイルとリストのサイズを柔軟に変更したい、デスクトップなど)なので、同じ画像の多くのコピーが必要になる場合があります。私の質問は、画像を縮小してアップロード時に数回保存する必要があるかどうかです。その場合、適切なストレージ/命名規則は何ですか? もう1つのアイデアは、単一の画像のみを保存し、クライアントに提供する前にプログラムでサイズを変更することです。誰かがこれを行ったことがありますか、さらにいくつかのマシンサイクル以外のトレードオフは何ですか?メモリ内の一時イメージをクライアントに渡すにはどうすればよいですか(URLはありません)。

9
専用のLinuxボックスは何に使用されますか?
だから、これはおそらくほとんどの人にとって非常に基本的で明白な質問ですが、私のgoogle-fuは私を失敗させており、何かが私の頭を越えているようです。多くの人々が開発者のセットアップの中心的な部分として「専用のLinuxボックス」を持っていると言及していると聞いています。 私は約1年間web-devプログラミングを行っており、Unix / Linuxシステムでのプログラミングの利点を理解しています。しかし、「専用のLinuxボックス」が開発プロセスで果たす役割が欠けているようです。 なんらかのサーバーとして使用されていると思いますが、Linuxサーバーの実行専用のコンピューターが必要な場合はまだありません。私は単にナイーブで、開発者が使用するツールをLinuxで作業することを好むプログラマーの共通点を誤解していますか?ほとんどの開発者は「専用のLinuxボックス」を何に使用しますか?

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