ソフトウェア工学

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

10
同僚にインスピレーションを与えて、より良いコーディング手法を採用しますか?
で、私の時代遅れの同僚の取り扱い質問を、様々な人々がいる同僚に対処するための戦略を議論したくないチームで自分のワークフローを統合します。 可能であれば、現代の技術やツールに無知で、おそらく少し無関心な同僚を「教える」ためのいくつかの戦略を学びたいです。 会社の別の部分で、最近まで比較的孤立して働いていたプログラマーと仕事を始めました。彼は幅広い分野の知識を持ち、最も重要なことには、多くの候補者が欠けているように見える、優れた問題解決スキルを実証しています。 しかし、私が見た実際の(C#)コードはVB6時代への先祖返りです。手続き構造、ハンガリー語表記、グローバル変数(の乱用static)、インターフェースなし、テストなし、ジェネリックの不使用、スローSystem.Exception...アイデアが得られます。 このプログラマーは私よりもかなり古く、少なくとも第一印象では積極的な変化を積極的に求めていません。私はそれが主にトピックがどのようにブローチされるのかという問題だと思うので、私は変化に抵抗するとは言いません。 プログラマーは頑固な人である傾向があり、銃を燃やし、コードのレビューと厳格に施行されたポリシーを厳格に施行することは、私が望む最終結果をもたらさない可能性が非常に高いです。これが新しいプログラマーである若手のプログラマーである場合、「メンター」スタンスを取ることについては二度とは思いませんが、経験豊富な従業員を無知な初心者として扱うことには非常に警戒しています(彼はそうではありません-彼はただ分野の特定の進歩に歩調を合わせました)。 穏やかな説得と非物質的なインセンティブを介して、この開発者のコ​​ード品質基準をデールカーネギーの方法で高めるにはどうすればよいでしょうか?敵対的な状況を作り出すことなく、微妙な段階的な変化をもたらすための最良の戦略は何でしょうか? 他の人々、特にリード開発者は以前にこのような状況にあったことがありますか?どの戦略が興味を刺激し、ポジティブなグループダイナミックを生み出したのでしょうか?どの戦略が成功しなかったので、避ける方が良いでしょうか? 明確化: 質問のすべての詳細を実際に読むことなく、個人的な感情に基づいて回答している人が本当にいると感じています。次の点に注意してください。これは暗示されるべきでしたが、現在明示的にしています。 この同僚は、年齢のおかげで私の「シニア」だけです。彼の肩書き、影響範囲、または組織での年数が私のものを超えるとは言わなかったが、実際には、それらのいずれも真実ではない。彼はLOBプログラマーであり、メイン開発ショップに夢中になっています。それでおしまい。 私は新入社員でも、若手プログラマーでも、一晩で会社を変革するという壮大な計画を持った他の未熟なバカでもありません。私は基本的にソフトウェアプロセスを担当していますが、「リーダー」として働いた多くの人が知っているように、責任は必ずしも組織図と正確に相関するとは限りません。 私は、どうやって自分の道をたどるのか、地獄に行くのか、満水になるのかを人々に尋ねているのではありません。私が望むなら、それを行うことができ、最終的な結果として、この人はresり、そして/または辞めます。私は変化を促進する社会的で協力的な方法を探していることを理解してみてください。 「...グローバル変数...テストなし...投げるSystem.Exception」という言及は、問題が単なる表面的または審美的ではないことを実証することを目的としています。比較的小さなCRUDアプリで機能するプラクティスは、大規模なエンタープライズアプリで必ずしも機能するわけではありません。実際、これまでのコードで実際に統合テストに合格したものはありません。 質問を額面通りに受け止め、私が話していることを実際に知っていることを受け入れ、実際に尋ねた質問に答えるか、先に進んでください。 PS前提に反論するのではなく建設的なアドバイスを提供してくれた人々に心から感謝します。現実世界の体験の方法でもっと多くのことを聞きたいので、私はこれをしばらくオープンにしておきます。

14
ソフトウェアエンジニアが時間を追跡するように奨励する
同僚が問題の解決と機能の実装に費やす時間を追跡するように奨励するにはどうすればよいですか?これを行うソフトウェアがありますが、数字を入力しません。 過去の見積もりと実際に費やした時間を比較することで、チームがプロジェクトの見積もりをより上手にできるようにしたいと考えています。同僚はプロジェクトのスケジューリングにあまり関与していないので、同僚には個人的な利益が見られないと思われます。

9
コードで静的データベースデータを参照する最良の方法は?
多くのアプリケーションには「静的データ」が含まれています。アプリケーションの存続期間中に実際には変化しないデータです。たとえば、近い将来の固定リストになる可能性が高い販売エリアのリストがあるとします。 データベーステーブルでこの静的データを見つけることは珍しくありません(多くの場合、他のテーブルの外部キーで参照したいためです)。単純なサンプルテーブルには、主キーとして使用するIDと説明があります。たとえば、SalesAreaテーブルには(少なくとも)SalesAreaId列とSalesAreaDescription列があります。 現在、コードでは、テーブルの各行を同じように扱いたくない場合があります。たとえば、一部の画面でデフォルトの販売エリアを設定したり、一部のエリアに異なる数値を指定したり、ユーザーが他のエリアでできることを制限したりできます。 この静的データをコードで参照する最良の方法は何ですか?どうして? コード内の説明をハードコードします。これを使用して、必要なときにデータベースからSalesAreaIdを検索します。 コードにIDをハードコーディングします。これを使用して、必要なときにSalesAreaDescriptionを検索します。 「IsDefaultOnProductLaunchScreen」列などのように、目的ごとにテーブルに列を追加します(これらが多数ある場合があります)。 他の何か。 静的なデータベースデータを扱う際に、他に考慮すべき特別な考慮事項はありますか?たとえば、これらのテーブルに特別な名前を付けますか?

7
Pythonの生産性とJavaの生産性
SOで、Google AppEngineでの開発に最適なプラットフォームは、JavaとPythonのどちらであるかという質問に出会いました。多くの人々は、Python over Javaを使用することで得られる生産性の向上を誇っていました。PythonとJavaの生産性の議論について私が言うことの1つは、Javaには開発をスピードアップする優れたIDEがあります。 そのため、言語としてPythonを使用することを好みますが、特に新しいフレームワークを使用する場合、Javaと比較して生産性が大幅に向上するとは考えていません。明らかにJava対Pythonであり、使用できる唯一のエディターがVIMである場合、Pythonは生産性を大幅に向上させますが、IDEが方程式に組み込まれると、それほど明確ではありません。 Javaのメリットは言語レベルでのみ評価される場合が多く、多くの場合、時代遅れの前提条件で評価されますが、Javaには、JVM(多くの場合批判されますが大きな可能性を提供します)、優れたIDEとツール、膨大な数のサードパーティライブラリ、プラットフォームなど。 質問、Python /関連の動的言語は、しばしば話題になっている生産性を大幅に向上させますか?(新しいフレームワークの使用と中規模から大規模のアプリケーションでの作業を考慮して)。

7
「コードサンプル」はどのように表示されますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 ちょうどいい電話インタビューをしたばかりです(CakePHPに関連した立場のため、質問にとって特に重要なことではありません)。インタビュアーは私の履歴書と性格に感銘を受けたようです。しかし、最後に、彼は私の既存の作業プロジェクトからのコードサンプルをメールで送信するように頼みました。「あなたがひそかにひどいプログラマーではないことを確認するために! 私は自分のコードがそれ自体で成り立たないのではないかと心配しているわけではありませんが、私は専門家というよりは中級のプログラマーです。コードサンプルがその場で私を除外する場合、コードサンプルが落ちないことを確認するべき明らかな落とし穴は何ですか?第二に、これはおそらく答えるのが難しい部分です。コードサンプルのどの機能が印象的で、すぐにプログラマーに好意的になりますか? すべてのアイデアや提案を歓迎します!

3
ソフトウェアアーキテクト、ソフトウェアエンジニア、ソフトウェア開発者(プログラマー)の違いは何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 私はアメリカで最高の給与のかかる仕事についてのCNNの記事を読んでいます。ソフトウェアアーキテクトは、#1と表示されています。#9として記載されているソフトウェアエンジニア。また、ソフトウェア開発者(プログラマー)は#35にリストされています。コンピューター科学者をプログラマーに置き換えることは有効だと思いますか? これに先立ち、私は常に「ソフトウェアエンジニア」が経験豊富なプログラマーとチームリーダーの肩書きであると考えていました。しかし、「ソフトウェアアーキテクト」はどこに収まり、正確に何をするのでしょうか?私はCNNの説明を読みましたが、それらは本当に私を満足させないので、ここで素晴らしいユーザーベースからより徹底的で経験豊富な説明を得ることができると思います。 受け取ったすべての回答に事前に感謝します。

16
大学初日、ソフトウェア工学の学生に何を言いますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 来週の金曜日に、私がやったのと同じ大学に通うソフトウェア工学の学生たちと短い(30分)話をします。 コンテキスト: 場所はウルグアイのモンテビデオです 大学はレプブリカ大学(公立、自由大学)です ソフトウェアエンジニアリングプログラムには5年かかります(非常に上手で、早く仕事を始めない場合)。年間約800人の新入生、年間約80人の卒業生。特に最初の2年間は厳しい状況です。 それらのほとんどは、おそらくソフトウェアエンジニアリングやプログラミングが何であるかを知らないでしょう。 私の目標は、どういうわけか彼らにフィールドのアイデアを提供し、うまくいけば、成功する開発者になるために先の困難に耐えるように動機付けすることです。 質問は、これらの人々に何を伝えますか?
24 education 

8
RubyまたはPython?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 この質問は非常に主観的で自由自在です。それは、私が自分自身で研究し、自分で決断を下すべきだとさえ思えるかもしれません。しかし、私はそれをそこに置き、他の人からいくつかの考えを得たいと思います。 簡単に言えば、私はネズミレースで燃え尽きており、今年は自己資金でサバティカルに参加しています。その大部分は企業の仕事から離れて旅行することですが、新しいテクノロジーで遊んで、自己学習プロジェクトを行い、プログラミングの速度を維持したいです。プレッシャーがないときにプログラミング! ここにあります:私は生涯のC / C ++ / Javaプログラマーです。私はプログラミングのキャリア全体でこのファミリーの言語を扱ってきたので、少しかっこいいです。ですから、このグループとあまり構文的に関連していない言語を学びたいです。私が基本的に探しているのは、比較的汎用的で、楽しく学ぶことができ、C ++ / Javaとは異なるいくつかの新しい概念を持ち、優れたコミュニティを持つ言語です。2番目の考慮事項は、優れたWeb開発フレームワークがあることです。第三の考慮事項は、それが完全にアカデミックではないということです(読んでください:それを使用する現実世界の仕事があります)。 RubyまたはPythonに絞り込みました。Rubyの私の印象は、それが非常にWeb指向であるということです-それの唯一の実際のアプリケーションは、Webを行うためのサーバー側スクリプト言語としてです(主にRuby on Rails)。Pythonの印象はあまりありませんが、情熱的なファン層があり、かなり汎用性の高い言語であると思われる点を除きます。 TL; DRをできるだけ簡潔にまとめると、C ++ / Javaの人がプログラミングの新しい観点を習得するのに、どちらが良いでしょうか?そして、どちらがよりオープンで汎用的であり、幅広いアプリケーションに適用できますか?現時点ではRubyに傾いていますが、サーバーサイドのWeb言語としてのみ使用されているように見えるのではないかと心配しています。
24 learning  python  ruby 

11
jQueryの前にJavaScriptを学習する必要はありますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 私の意見では、JavaScriptを見ると、私のお茶ではないように見えました。jQueryに出会ったとき、私はそれが大好きでした。Nettuts +の15日間のjQueryスクリーンキャストを見て、1年後、jQueryのライブラリを含めずにWebサイトを開発することはないと確信しています。 私はこれが私を妨げていると感じたことは一度もありませんが、私の質問は、これが戻ってきていつか尻に噛み付くでしょうか?最高ではない)フレームワーク?他の誰かがこのアプローチを取りましたか?

7
TDD /テストのオーバーヘッド/メンテナンスの負担が大きすぎますか?
そのため、テストの価値を本当に理解していない人から何度も聞いています。物事を始めるために、私はアジャイルとテストのフォロワーです... 私は最近、製品の書き換えでTDDを実行することについて議論しました。現在のチームはどのレベルでも単体テストを練習しておらず、おそらく依存性注入手法やテストパターン/デザインなどについて聞いたことがないでしょうコードをきれいにするために)。 現在、私はこの製品の書き換えについて完全に責任を負っており、TDDのように試してみると、単にメンテナンスが悪夢になり、チームがメンテナンスすることが不可能になると言われています。さらに、それはフロントエンドアプリケーション(Webベースではない)であるため、テストの追加は無意味です。ビジネスドライブが変化すると(当然、改善を意味します)、テストは時代遅れになります。将来のプロジェクトはそれらを維持せず、彼らが修正するなどの負担になるでしょう。 現在、テスト経験のないチームのTDDは良く聞こえないことは理解できますが、この場合の私の主張は、周囲に練習を教えることができるということですが、さらに、TDDがより良い結果をもたらすことを知っていますソフトウェア。TDDを使用してソフトウェアを作成し、メンテナンスチームに引き渡す際にすべてのテストを破棄する場合でも、TDDを最初から使用しないよりも確実に良い方法でしょうか。 TDDを聞いたことがないチームのほとんどのプロジェクトでTDDを行うことについて言及したので、私は撃downされました。「インターフェイス」と奇妙な外観のDIコンストラクターの考えは、それらを怖がらせます... 通常、TDDを販売しようとするという非常に短い会話や、人々への私のアプローチについて、誰か助けてください。会社/チームにひざまずく前に、私は通常非常に短い議論の窓を持っています。
24 testing  agile  tdd  bdd 

6
オンラインユーザー名/ハンドルのプロ意識[終了]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 私は過去に、現在も続けて、多くのインターネットサイトでハンドル "thanatos"を使用し、それが利用できない場合(これは約50%発生します)、 "deathanatos"です。 「タナトス」は、ギリシャの神または死の擬人化の名前です(ギリシャのworld界の神、ハーデスと混同しないでください)。「Dea」は、数字に頼ったり発音したりする必要なく、優先ハンドルがすでに取られている状況でハンドルを機能させるための自然な遊び言葉です。私は何年も前にハンドルを採用しました。当時、私は今でも私のお気に入りであるエディス・ハミルトンの神話とピアーズ・アンソニーの「ペール・ホース」を読んでいて、その名前から生まれました。 ハンドルを作成したとき、私はかなり若かったので、オンライン中にプライバシーを大切にし、名前を明かしませんでした。私がより有能なプログラマーになったので、私はFOSSライセンスなどの下で、時には自分の名前で私的な作品をリリースしたいと思っています。これは、このハンドルを私の本名と結び付け始めました。私は就職活動を続けてきたため、ここ数年で自分の「ウェブイメージ」にますます気づきました。プログラマーとして、私は平均よりも大きいWebプレゼンスを持っていますが、疑問に思い始めました。このハンドル名はプロフェッショナルですか?プロの意味でハンドル名は重要ですか?「ブランド変更」する必要がありますか?(嫌いな名前や嫌な名前を避けたいのは明らかですが、「死」(私の名前が結び付けられている)などのトピックは適切ですか?眉をひそめるものは何ですか?) これをもう少しプログラマー特有のものにしようとするために:プログラマーはオンラインです—たくさんあります-そして私たちの何人か(そして私たちでない人)は「ウェブの存在」に重点を置く傾向があります。私は、慎重なプログラマー(またはオンラインで頻繁にやり取りする職業の人)がWebの存在を知っていると主張します。プログラマーだけに厳密に限定されているわけではありませんが、良くも悪くも、それは私たちの世界の一部です。

9
アドバイスが必要:技術を維持するか、MBAを取得しますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 これは非常に主観的な質問であり、自分自身でこれを決定するのに最適な人です...しかし、私はあなたの意見を探しています。 私はプロの開発者として5年の経験があります。私は数学でかなりのバックグラウンドを持ち、CSで工学の学士号を取得しました。私は、キャリアが成長が難しい段階にまだ到達しておらず、新しいスキルを習得しようと常に動機付けられているので、この出来事を非常に長い間予測していません。 私の友人の多くは、しかし最近MBAを取得しています...ハーバード大学やケロッグ大学などからではなく、単なる平凡な大学からです。しかし、彼らは仕事の経験がほとんどないかまったくないにも関わらず、私よりも太い給料を上陸させてきました。 MBAを追求するオプションがあり、財政を整える(そしてINSEAD / IEからMBAを計画している)という選択肢があるので、自分がやりたいことを売り飛ばしてMBAに行くのは理にかなっていますか?MBAを行うのにふさわしい年齢/経験グループにいることを考えると、後でMBAを行わなかったことを後悔しますか? 私は今やっていることと一緒にやっている人たちを絶対に愛していますが、このキャリアが経営学位を取得した後と同じくらい経済的に報われるかどうか心配しています。

16
コードは自己文書化されていると思いますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 これは何年も前に就職の面接で卒業生として出された質問であり、私の頭を悩ましているものであり、満足のいく良い答えを見つけることができませんでした。 問題のインタビュアーは白黒の答えを探していましたが、中間的なものはありませんでした。質問の背後にある理論的根拠について尋ねる機会はありませんでしたが、なぜその質問が開発者に投げかけられ、あなたがイエスまたはノーの答えから何を学ぶのか興味がありますか? 私自身の観点からは、Java、Python、Delphiなどを読むことができますが、マネージャーが私に近づいて、プロジェクトの進行状況を尋ねると、「コードは80%完成しています」と言いますあなたは私を撃shootingし始めます、私はこれが開発者によっていくつかのオフィスで発言されたことを聞きました)、その自己文書化はどのくらい正確ですか?この質問が奇妙に思われる場合はおologiesび申し上げますが、インタビューで誰かに質問される理由をよりよく理解するために、質問して意見を聞きたいと思います。

1
キャッチされない例外の後、Javaが成功して終了するのはなぜですか?
Perl、Python、C ++、またはTclプログラムが未処理の例外で停止するたびに、これらの言語ランタイムはプロセスにゼロ以外の終了コードを登録するように注意します。Eclipseベースのプログラムでさえ、起動中に失敗すると1を返します。java.exeしかし、標準で実行されるプログラムは、プログラムがSystem.exit()終了値で呼び出されない限り、どんなに突然終了しても喜んでゼロを返します。でもAssertionFailedErrorまたはがUnsatisfiedLinkError成功して終了として呼び出し元のプログラムに戻って報告されています。 もちろん、すべてのシステムにプログラムのリターンコードがあるわけではありませんが、UnixとWindowsはjava.lang.Process.exitValue()、子プロセスを保証するのに十分なほど重要でした。親プロセスの規約を順守することも保証されませんか? これは言語設計の欠陥ですか、それとも実装の欠陥ですか?それは良いアイデアだという議論はありますか?
24 java  exceptions 

14
ほとんどのWebサイトがポートレートモードでの表示に最適化されているのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 私はこれを理解できません。ほとんどすべてのモニターには、幅が高さよりもはるかに大きいアスペクト比がありますが、ほとんどすべてのWebサイトは逆の方向に正確に設計されていますか?私は実際にはWeb開発者ではなく、現時点で実験中ですが、この狂気は私を困惑させます!!! 編集:ポイントは、ウェブサイトの高さを制限したいということではありません。ポイントは、横向きモードで1920x1080を使用しているときに、利用可能なすべてのスペースを何らかの方法で埋めたいと思うことです。 編集2:これを見て、私が言っていることを理解してください

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