ソフトウェア工学

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

6
ハードコアプログラマーとしてのMATLABとRの存続[終了]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 私は筋金入りのプログラマー向けの言語でのプログラミングが大好きです。(私のお気に入りはPythonとDです。)MATLABはエンジニア向けで、Rは統計学者向けです。これらの言語は、筋金入りのプログラマーではなく、筋金入りのプログラマーのように思わない人向けに設計されたようです。私はいつもそれらを使用するのがやや厄介だと感じており、ある程度までその理由に指を置くことができません。ここに、私が特定したいくつかの問題を示します。 (両方):真のプリミティブが存在しない範囲でベクトルと行列を極端に強調します。 (両方):基本的な文字列操作の難しさ。 (両方):ハッシュテーブルや「実際の」、つまり型パラメトリックでネスト可能な配列などの基本的なデータ構造のサポートの欠如または不便さ。 (両方):コードをベクトル化するために後ろに曲がらない限り、インタープリター言語の標準でも本当に遅いです。 (両方):彼らは外の世界と相互作用するように設計されていないようです。たとえば、どちらも起動に時間がかかるかなりかさばるプログラムであり、単純なテキストフィルタープログラムを簡単に作成できるようには設計されていないようです。さらに、適切な文字列処理がないため、非常に標準的な形式以外のファイルI / Oはほとんど不可能になります。 (両方):オブジェクトの向きは非常にボルトで締められたように見えます。はい、できますが、Cのオブジェクト指向よりもはるかに慣用的な感じはしません。 (両方):参照型を取得するための明白で簡単な方法はありません。ポインターまたはクラス参照はありません。たとえば、これらの言語のいずれかで独自のリンクリストをどのようにロールするかはわかりません。 (MATLAB):単一のファイルに複数のトップレベル関数を配置することはできません。非常に長い関数とカットアンドペーストコーディングを奨励します。 (MATLAB):整数は最初のクラス型として存在しないようです。 (R):基本的な組み込みデータ構造は、高すぎるレベルであり、文書化が不十分であるように思われ、同様であるが低レベルのデータ構造での私の経験を考えると、期待どおりに機能しないようです。 (R):ドキュメントはいたるところに散らばっており、閲覧や検索が事実上不可能です。悪いドキュメントのためにしばしばノックされ、まだかなりアルファっぽいDでさえ、私が知る限りではかなり優れています。 (R):少なくとも私が知っている限りでは、良いIDEはありません。繰り返しますが、小さなコミュニティを持つかなりアルファっぽい言語であるDでさえもうまくいきます。 一般的に、十分に包括的なライブラリが存在する場合、MATLABとRはより汎用的な言語の単純な古いライブラリに簡単に置き換えることができると感じています。これは、ライブラリ作成者向けの多くの機能を含む新しい汎用言語では特に当てはまります。 なぜRとMATLABは私にとってとても奇妙に見えるのですか?これらの言語が筋金入りのプログラマーにとって奇妙なものになるかもしれないと気づいた他の大きな問題はありますか?それらの使用が必要な場合、いくつかの良いサバイバルのヒントは何ですか? 編集:私が得たいくつかの答えから1つの問題を見ています。データを分析するときは、パイプライン全体を組み込む1つのスクリプトを作成することを強く好みます。これは、汎用言語を使用する必要があることを意味します。スクリプトを記述してデータを「クリーンアップ」して吐き出し、次に別のスクリプトを作成して完全に異なる環境で読み返す必要があるのは嫌いです。まったく異なるアドレス空間を備えた異なる言語と、残りの部分が大きな摩擦の原因であると考える方法。さらに、接着剤層が存在することは知っていますが、それらは常に恐ろしく複雑で摩擦の原因になるようです。
25 languages  r  matlab 

12
「コーディングするだけなので」単体テストを使用したくない同僚
同僚は単体テストを使用することを嫌がり、代わりに簡単なテストを選択してユーザーに渡し、すべてがうまくいけばライブで公開されます。言うまでもなく、いくつかのバグは解決されます。 私はユニットテストの使用について考えるべきだと言いましたが、彼女はより多くのコードを書かなければならないことに気づいたら、それに対してすべて反対しました。これにより、特に彼女のコードがスパゲッティであり、機会があればリファクタリングしようとするので、何かを変更し、出力が同じであるかどうかを確認することができません。 それでは、私にとって最善の方法は何ですか?

5
C ++ヘッダーファイルが嫌いな場合はどうすればよいですか?
私はいつもヘッダーファイルについて混乱していた。それらはとても奇妙です。.cppを含まない.hファイルをインクルードしますが、.cppも何らかの方法でコンパイルされます。 最近、私はチームプロジェクトに参加しました。もちろん、.hと.cppの両方が使用されます。 これが非常に重要であることは理解していますが、複数のクラスのそれぞれにあるすべての関数宣言をコピーアンドペーストすることはできません。 2ファイルの規則を効率的に処理するにはどうすればよいですか? それを支援するツールはありますか、または以下の例のような1つのファイルを.hと.cppに自動的に変更しますか?(特にMS VC ++ 2010の場合) class A { ... Type f(Type a,Type b) { //implementation here, not in another file! } ... }; Type f(Type a) { //implementation here } ...

15
複数のプログラミング言語を知る必要性にどのように対処しますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 私は比較的若いプログラマーです。私は23歳で、プロとして約5年間プログラミングを行っています。 私がCで始めたほとんどのプログラマーのように、x86アセンブリを楽しみながら学んだ後、C ++がプログラミングの世界で私の最大の情熱であることがわかりました。CおよびC ++を使用したプログラミングでは、プラットフォーム固有のAPI、ライブラリ、およびフレームワークを習得する必要がありますが、それぞれの学習には常に研究と実験が必要です。私の地域の需要は基本的にこれらの言語に対するものなので、しばらくしてからJavaとC#に移行する必要がありました。これらの言語を使用してWeb開発の世界に入り、JavaScriptを学ぶ必要がありました。.NET Framework向けの開発は最初エキサイティングでしたが、Microsoftに縛られていると常に感じていました(そしてもちろん.NET FrameworkがLinuxから私を追い払っていました)。デスクトップ開発では、QtでC ++を使用して.NETで実行したことはほぼすべて実行できましたが、Web開発では、代替手段を探す必要がありました。すぐにDjangoを見つけ、Djangoを使用できるようにPythonを学習しました。最近、Objective-Cを使用したiOS開発を学んでいます。 これまでのところ、これらのすべての言語を習得するのはかなり簡単でした(C ++は私をよく訓練していました)が、いつかすべてを追跡できなくなるのではないかと心配しています。明確にするだけです。私が学ばなければならなかった唯一の言語はC#とJavaでした。プログラミングと新しいことを学ぶのが大好きなので、他のすべては楽しみのために学びました。また、デスクトップ、Web、およびモバイルの開発でスキルを維持したいです。 私の質問は次のとおりです。複数のプログラミング言語をどのように追跡しますか?(つまり、これらの言語の変更を追跡し、スキルを鋭く保ちます)および:十分なプログラミング言語のようなものはありますか?

22
C(またはC ++)の使用方法を学ぶことは、優れた(優秀な)プログラマーになるための要件ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 私が最初にプログラミングの方法を学び始めたとき、本当のプログラマーは眠っている間にアセンブリを書くことができました。コンピュータサイエンスの本格的な教育には、アセンブリを使用したプログラミングのトレーニングと実践が含まれます。それはその後変わっており、アセンブリを含むコンピューターサイエンスの学位が含まれている場合、それが1つの課題と1つの章に委ねられ、4年間の学校教育の合計2週間の作業になります。 C / C ++プログラミングも同様のパスをたどっているようです。C ++で2週間以上プログラミングをしておらず、どこかの本でCしか読んでいない大学卒業生にインタビューしても、私はもう驚かない。最も深刻なCS学位には、かなりの時間の学習と一方または両方の言語の使用が含まれているようですが、傾向は明らかに学校でのC / C ++の実施が少なくなる傾向にあります。 CやC ++のコードを1行も読み書きすることなく、良い仕事をするキャリアを作ることは明らかに可能です。 これらすべてを考えると、努力する価値のある2つの言語を学習していますか?彼らは優れている必要がありますか?(「包括的な教育にはおそらく適切な言語の選択が重要である」などの明確な非言語固有のアドバイスに加えて、「プログラマーのキャリアを通じて新しい言語を試し、学習し続けることはおそらく良い考えです。灰色のセルを引き伸ばす」)

10
チームでSCRUMを使用するよりも、より形式的で軽量なプロセスを使用する必要があるのはなぜですか?
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 SCRUMまたはその派生物は、おそらくソフトウェア開発を管理するための良い方法であることを理解していると言って、質問を始めたいと思います。すべての大企業と私のマネージャーがそれを使用している、または使用しているようであり、私はそのすべての経験について本当に議論することはできません。しかし、私は「理由」とすべての読書を理解するのに苦労しています。職場での公式のSCRUMトレーニングでさえ、私のために仕事をしていません。それはすべてレトリックです。そこで私は答えを求めてここに来ました。 これまで、私は4〜5人のメンバーからなるチームで非常に効果的かつ完全に自己組織化し、トレーニング、方法論、または特別なソフトウェアを必要とせずに開発してきました。キューブでのディスカッション、アドホックミーティング、1対1のコードレビューのみ。私は現在、SCRUMが進むべき道であり、それに付随するすべてのものであると言われている職場の立場にいます。彼らが私にSCRUMを説明するとき、私はこのようなものを読みます: プロセスとツールを介した個人と相互作用 包括的なドキュメントよりも機能するソフトウェア 契約交渉を介した顧客コラボレーション 計画に従うことによる変化への対応 それは素晴らしいことですが、それはすべて私にとって常識のように思えます。なぜこれが成文化される必要があったのですか?そして、私は方法論が変化への対応に役立つと言われています。どのような具体的なSCRUMの側面により、以前はアドホック会議、キューブディスカッション、および開発者計画会議で達成できなかったほど柔軟に対応できますか?彼らは、2週間ごとに作業成果物、またはスプリントを用意する必要性を説明しています。私の特定のプロジェクトでは、「クライアント」は存在せず、ソフトウェアは1年以上は完成しません。その間は、毎月またはそれ以下で上級管理職にデモを行うだけでしょう。では、なぜ隔週ごとに成果物が明示的に必要なのでしょうか?チーム全体が次のスプリントのストーリーとタスクをレイアウトするスプリント計画会議の重要性を強調しています。これは、私が過去に開催した即席の計画会議と同じです。なぜ隔週月曜日に発生しなければならないのか、そして、なぜチーム全体が関与しなければならないのですか?私はすべてのメンバーが製品を「所有する」という概念を理解していますが、実際には、各ストーリーをタスクに分割するのに実際に貢献できるのはごく少数の個人のみであり、他のメンバーはただ見過ごしています。 繰り返しますが、私は大多数の人々がこのプロセスの背後にいることを理解しています。理由を理解したいだけです。私の問題は、これらのことをすでに実践していて、それらを不必要に成文化することを好まないことですか?または、これらの手法が不適切に行われているため、これらの手法の利点をまだ見ていませんか?任意の実数この上、個人情報やアドバイスが、私が受信に使用しています熱弁は対照的に、非常に高く評価されるだろう。
25 scrum 

8
HTML 5仕様の完成になぜそんなに時間がかかるのですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 私はこれを読んでいて、1つの文が私の目を引きました(強調鉱山): イアン・ヒクソン、HTML 5父親XHTMLの最大の批評家、行動志向幼児仕様だから2022年まで成人に達していないだろう、それのいくつかは、今日使用することも可能です。 本当?それは本当にHTML 5開発サイクルですか?なぜそんなに時間がかかるのですか?今から11年後まで最終的なものにならないほど、正しいことを非常に難しくしているのはなぜですか?
25 html5 

10
有限状態マシンの例[終了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 有限状態マシンの良い例を探しています。言語は特に重要ではなく、良い例です。 コードの実装は便利です(一般化された擬似コード)が、FSMのさまざまな使用法を収集することも非常に便利です。 例は必ずしもコンピューターベースである必要はありません。たとえば、Mike Dunlaveyの鉄道ネットワークの例は非常に便利です。

8
仕事以外で生産性をどのように維持しますか?(プログラミングスケジュール)[終了]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 私はプログラミングを楽しんでいますが、職場でのプログラミングはそれだけです。プログラミングに対する私自身の興味をさらに発展させたいと思います。週末を通して、週末に小さなプロジェクトを完了したり、プログラミング関連の本を仕上げたりすることを想像しています。しかし、実際には私はしばしば期待に応えることができません。私はしばしば1つまたは2つの章の読書を行い、さらにコーディングを減らします。現実には、ネットサーフィン、テレビを見たり、友人を訪ねてリラックスしたりすることに時間を費やします。週末だからです。しかし、日曜日の夕方になると、週末をよく振り返り、時間の使い方にがっかりします。 私の質問は、仕事以外でどのように生産性を維持するのですか?一部のプログラマーは、空き時間にプログラミングを気にかけないと思います。とはいえ、大多数のプログラマー、特にスタックエクスチェンジでは、プログラミングに情熱を持っていると思います。 週末のプログラミングを費やす必要がありますか、それとも多くの時間を費やした場合、燃え尽きてプログラミングを再送しますか? 空き時間にプログラミングを行うにはどうすればよいですか?スケジュールを設定する必要がありますか?どのくらいの時間を費やすべきですか?最も重要なことは、どのようにそのスケジュールに従うのですか?先延ばしにするのは人間の性質だけです。 ここにはたくさんの質問があります。仕事以外でどのように集中していたかに関係するものに気軽に答えてください。私はプログラミングに情熱を注いでいますが、40時間のプログラミングの後、その熱意を維持するのは難しいかもしれません。

8
Pythonインタビューの質問[終了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 Pythonプログラミングを含むインターンシップのために2週間以内にインタビューします。 誰が私が磨く必要がある可能性のある領域を提案できますか?Pythonのオープニングのインタビューでよく尋ねられるものを探しています。私がもう一年以上この言語をやっているという事実とは別に、私は彼らが私に尋ねることができることを認識できません。 CやC ++のインタビューのように、文字列の反転からリンクリストの作成に至るまで、多くの質問がありますが、Pythonのインタビューの場合、私は無知です。 個人的な経験や提案を歓迎します。
25 python  interview 

12
音楽は生産性を向上させますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 あなたがオーディオの背景が単に気を散らすものなのか、それともプログラミング中に助けになるのかを知りたかったのです。 私にとっては、次のように機能します。 擬似コードを書いているとき、またはドキュメントを調べずに書くことができる言語で私の心の中に非常に明確な手順を実装しているとき、バックグラウンドで音楽を演奏すること(非常に簡単な電子機器、ほとんど)が私を助けます私のコーディングにある程度のリズムを取り、手順が簡単な場合は、退屈が引き起こす気晴らしを回避します。 問題が発生した場合、またはバグを修正する必要がある場合は、気が散ります。 また、曲が本当に規則的で、私がそれに集中しないように十分に知っている場合、コードに再び集中する前に貴重な数秒を無駄にすることがある予期しない環境ノイズを排除します。 ガイドラインのチェックリスト:1、2 3私は思う。4間違いなく。5それを実現したい。6 Doch(英語では回答の二重否定を明確にする方法を実装する必要があります)

12
理解できないコードをレビューする方法は?
私は会社の開発を改善する役割を与えられました。私が最初に始めたかったのは、コードレビューでした。 弊社には3人のプログラマーがいます。私はWebプログラマーです。私の既知の言語は主にPHP、ActionScript、JavaScriptです。他の2人の開発者はVB.netで内部アプリケーションを作成します ここ数週間、コードレビューを行っています。VBコードを理解するのは難しいと思います。だから彼らが何をしているのかを言うとき、ほとんどの部分で私は彼らの言葉を受け入れなければなりません。 間違っているように見えるものを見つけた場合は、自分の意見を説明し、私が知っている言語の1つでどのように対処するかを説明します。 時々 、私の提案は歓迎しているが、「これはそれを行うための最善の方法であるように、多くの時間が、私は物事を聞いています。この」には適用されませんまたは言語「このまたはそのような性質の似たもの言語」。 これは真実かもしれませんが、言語を知らずにこれらの主張を確認または反論する方法がわかりません。 可能な解決策の1つはvbを学習することであるため、より良いコードレビューを行うことができます。私は本当にvbを学ぶことに興味がありません(特に自分のプロジェクトで学ぼうとしている他の技術のリストがあるので)そしてこれを最後の手段として残したいのですが、それはオプションです。 私が思いついた別のアイデアは、彼らは両方ともC#に興味があり、私もそうです。しかし、それは私たち全員にとって新しいことです。私たち全員がペットC#.netプロジェクトで協力し、それからお互いのコードをレビューすることの利点について考えました。 コンサルタントを雇ってコードレビューを提供する可能性もあると思います。 この状況で私が何をすすめますか。

9
チームが近い将来拡大するソロプログラマーへのアドバイス[非公開]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 4年間、私は小さな会社のソロ開発者でした。ニッチ業界で確立された製品がいくつかあります。私たちはすぐに1-2人の開発者を雇用する予定であり、それはおそらくここでの動作を変えるでしょう。 「本物の」タイトルは持っていませんが、このチームを「担当」します。私がやりたいのは、会社のために非常に組織的で生産的なプログラミング部門を設立することです。私は大学でこの単独の仕事を手に入れたので、この業界のプログラマーとして熟達しましたが、チームプログラミングの経験はあまりありません。右足でスタートすることが重要だと感じています。 今のところ、私、数台のコンピューター、SVNサーバーだけです。チームをゼロから構築するための一般的なガイダンスを探しています。

9
高性能コンピューティングで最も使用されているプログラミング言語は何ですか?なぜ?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 HPCでは多くのFortranが使用されていると思いますが、それがレガシーの理由だけのためかどうかはわかりません。 ガベージコレクションやランタイムポリモーフィズムなどの最新のプログラミング言語の機能は、速度が重要なのでC#、Java、C ++がどこから来るのかわからないため、HPCには適していません。 何かご意見は?

13
データベースが言語機能として統合されないのはなぜですか?
外部SQL(または他の)データベースに接続するのではなく、一流の言語機能として組み込みデータベースを備えたプログラミング言語はありますか?そのような機能の欠点と利点は何ですか?そのような機能はどのように見え、プログラムの方法をどのように変えるでしょうか?

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