ソフトウェア工学

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

8
コードを単純にテストするのに長い時間がかかる場合、どのように効果的にプログラムしますか?
私のワークフローは、常に1つの論理ステップを記述してからプログラムを実行し、出力を検査することです。このプロセスは、大学での割り当てに非常に役立ちました。ただし、さらに開発を進めるにつれて、コードを単純にコンパイルして実行するのに1〜2分かかることがよくあります。例には、プログラムをマイクロコントローラーにアップロードすること、外部サーバーとの対話が必要であること、認証、ソフトウェアアーキテクチャ、または複雑さのために自動化を実装できないことが含まれます。 これらのタイプのタスクは、私が通常プログラムする方法には非常に不適切であり、効果的にコーディングするのが困難です。私は通常、多くの構文エラーと論理エラーを作成しますが、そのほとんどはテストで簡単に検出できます。ただし、このような長い待機時間では、この方法は時間がかかりすぎます。
16 efficiency  time 

5
JavaでScalaを使用する理由
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 私は完全に言語としてScalaに興味がありますが、それでも、どの会社もJavaからScalaに切り替える必要があるのか​​ということに苦労しています。ScalaはJVMの上にある単なるシンタックスシュガーですか、それともScalaにJavaよりも根本的な改善があり、実際のアプリケーションを改善するでしょうか?
16 java  scala 

4
C / C ++コードのレベルを向上させる
私は現在3〜4年間プログラミングを行っており、初心者とは呼べないように感じていますが、このサイトで質問を読んで、WTFについて話していると思いますか?最近、プログラミングの本を手にしたときも同じように感じています。 私はいくつかの初期プログラミング本を読みました。C/ C ++に関するものとゲームに関するものです。私は、非常に基本的なAI、シリアル、TCP / IPインターフェースなど、より複雑なものをいくつか書きました。 私はゲームプログラマになることを計画していますが、最近、組み込みシステム(シリアルインターフェイス)で作業する機会を得た後、組み込みシステムにある程度興味を持ちました。 私が見つけることができる中間C ++の本はないので、導入と初心者の本を完了した後、学習を続けるための資料を見つけることは非常に難しいとわかりました。 私の知識とスキルを成長させ、向上させるためにどのようなアドバイスをしますか?特定のリソースをいただければ幸いです。
16 c++  c 

8
Chromebook-プログラマーにとって興味深いですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 Googleは昨日(2011年5月11日)Chromebookを発表しました。これは確かに良いことですが、(javascript以外の)プログラマーのために購入するのが面白いかどうかはわかりません。 どう思いますか?たとえば、クラウドにJava IDEがありますか?コマンドラインでも?

2
すべての.NETの人が知っておくべき主なプラクティスと設計パターンは何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 プロのプログラマーとしての短い時間で、教育を受けたプログラマーによって書かれた多くのアプリケーションを、.NET 2.0ブックの最初の数章を読んでいるように見ました。 私が始めたとき、私はそれらのアプリケーションのほとんどを書きました! AWESOME .NETアプリケーションを作成するために重要な最大の設計パターンは何ですか? 素晴らしいとは、私も内側を意味します!

9
大学に行かずにプロのプログラマーになりますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 私は最近、私が以前に受け入れてくれた大学から拒絶されました。というのは、私は外国で高校を1年間過ごし、大学は他の国で受けた教育を認めることに興味がなかったからです。このため、非常に寛大な奨学金が枯渇し、教育への資金提供は疑わしいです。私はまた、私が露骨な外国人嫌いであると考えるものを実証したシステムの一部になることをためらっています。 私がやりたいのは、「ネジ大学」と言って、自分でストライクし、驚くべきことをして、みんなを驚かせて、自分で作った億万長者になることです。状況の現実は、私が高校を2週間中退いており、プログラミング入門コースに相当する自習経験に相当することです(ただし、学習と改善を余儀なくされていますが)。法案、そして私は雇用者が私を真剣に受け止めるのに苦労するだろうというこっそりの疑いを持っています。 私が理解しているように、あなたは学位なしでそれを作ることができるというのはかなり一般的な信念ですが、私のような人はどうやってそれをしますか?オフィスに足を踏み入れて「正式な教育を受けていませんが、最低限のスキルはありますが、働きたい、学びたいです。仕事をください」と言ったら、誰も真剣に受け止めてくれませんか?
16 skills 


20
デッドコードを書くことは有用ですか?
デッドコードを書くのは便利だと思いますか? 「何らかの操作を行う2つのロジックがある場合、他のロジックコードをコメント化したり、コードを削除したりする代わりに、操作に影響しないためデッドコードにする」と言う人もいます。 例:- if(true){ // logic - 1 } else { // logic - 2 // dead code } 本当ですか? 私は通常、デッドコードを書くのではなく、2番目のロジックを削除するだけです。
16 java 

6
Vimキーマッピング/プラグインXCode?
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 私は、主にルビーとC#でWebを扱う開発者です。 iOSとMacの開発をいじり始めたいです。 過去数ヶ月間、私はキーバインディングのセットに流/になろうと試みてきました(vi / vimはちょうどいい感じだからです)。 私はWindowsのVisual Studioに素晴らしいViEmuをインストールしています。これにより、Visual Studioのパワートイと並んで、たくさんのvimのすばらしさが得られます。 xcodeにはこのようなものがありますか? MacVimをデフォルトのエディターとして設定できることは知っていますが、xcodeのココア認識をすべて失うことになるので、あまり興味はありません。 もちろん、他の選択肢は、最小の共通分母に進み、emacsに切り替えることです(macキーバインドはemacsに非常に基づいているため)が、あまり長く考えないでください。:P
16 xcode  mac  vim 

4
開発した新しい(オープンソースの)ライブラリに関する情報をどのように入手できますか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた3年前。 私は、他の人が使いたいと思うライブラリを実装した個人プロジェクトを仕上げています。詳細を説明しすぎることなく、ライブラリは、特定の種類のファイルを解析するためのクロスプラットフォームインターフェイスを提供します。これは、以前は(少なくともこの言語では)存在していませんでした。このプロジェクト自体は面白くてやりがいのあるものでしたが、無知のために他の開発者に考慮されなかったのは残念だと思います。 このライブラリに関する言葉を適切に広めるにはどうすればよいですか? 私の現在の計画は: ソース、ドキュメント、使用方法、サンプルを含むWebページをホストする 「このツールはどこにありますか?」という質問をするSOの質問に答えます。 関連分野のいくつかの主要メンバーに連絡し、彼らに率直に言ってください これらの手順は合理的だと思いますか?あなたは他に何をしますか?

4
他の開発者とネットワークを張る方法は?
ネットワーキングの機会を見つけるため、またはユーザーグループや他の開発者会場でのネットワーキングのために、どのような提案をしますか? たとえば、コードキャンプに行った場合、そこにいる他の開発者とネットワークを作ろうとしますか?どうやってやるの?昼食時に知らない人に近づいて自己紹介をしますか? 私は最近、ユーザーグループ会議に参加しましたが、やや退屈だと感じました。実際に他の人と話をしている人はごくわずかでした。ほとんどの参加者は、自分自身を守っていたようです。これは開発者にとって典型的なものですか? 私はネットワーキングが得意ではありませんでした。おそらく、知らない人を中心にやや内向的になっているので、ネットワーキングは私の長所ではありません。しかし、私は間違いなくもっと分岐して他の開発者に会いたいです。

8
ユーザーが自分で要件をまとめて取得できるようにするか、それらを一緒にガイドしますか?
誰もがこのようなことを経験したと確信しています。プロジェクトを持っているクライアントと会議に参加します。彼らは念頭に置いて/いくつかの要件と彼らが欲しい/必要なもののあいまいな理解を持っていません。この時点で、2つのオプションがあるようです。 1)ユーザーに、「わかりました。まだ説明することさえできなければ、私はあなたのために何かを構築することはできません。あなたが望むものを知ってから数週間で一緒に戻ってみませんか」。 2)ユーザーと数回会って、良いole Socraticの方法でユーザーをガイドすることで、ユーザーが望むものを理解するのを助けます。「Xを追跡する必要がありますか?」、「Yはどうですか?」、「機能Zが必要ですか?」 最初のオプションでは、他の人の仕事をしたり、精神力を獲得したりすることはありませんが、ユーザーは一貫した仕様をあなたに決して提示しないかもしれませんし、期限が近づき続けると永遠にかかるかもしれません。2番目のオプションでは、ビジネスアナリストになるために多くの時間を浪費し、おそらく二度と使用しないビジネス知識を頭の中に詰め込む必要がありますが、次のような仕様が出てくる可能性が高くなります。理にかなっています。 私にとって、これは開発の最も困難な側面の1つであり、この感情の中で私は一人ではないと感じています。あなたの経験では、これらのオプションのどれがよりよく機能する傾向がありますか?

2
代数データ型の用途は何ですか?
私は代数データ型について読んでいます(Richard Minerichのおかげで、この概念のこの素晴らしい説明を見つけました)。私は和の種類や製品の種類などの概念を理解していると思いますが、パターンマッチングを指定する以外に、代数的データ型がどのように役立つかについてはあまり理解していません。パターンマッチングを超えたADTで他にできることは何ですか? 編集:私は開発者がオブジェクトで行うことができないADTで何ができるかを尋ねていません。ADTで許可されている他の操作があるかどうかを尋ねています。たとえば、ADTが採用されている場合、関係するタイプについて追加の推論を行うことができますか?ADTは、それなしでは不可能な、ある種の型分析を容易にしますか?

6
唯一の開発者であることとその結果[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 私は会社で唯一の開発者です。プログラミング(ASP.NET 4.0、jQuery、およびSQL Server 2008)を行い、データベースとWebサーバーを管理しています(win 2008 r2)。 自分が好きなことを実行する自由を楽しんでいると同時に、すべてを悪い方法でやることができると感じています。アジャイルなどの方法ではなく、SDLCダイアグラムは使用しません。複数の小さなプロジェクトを処理します。私は自由な時間を使って最新のテクノロジーに遅れずについていき、新しいものを学び、テストしています。私はこれを過去7年間やっています。 私の懸念は、より多くの開発者がプロ​​ジェクトに関与している会社に仕事を切り替えたときに、調整するのがどれほど難しいかということです。 私はデザインパターンに従っていないので、仕事を探したり、新しい仕事に慣れるときに、私と対戦しますか? あなたが考えることができる他の長所/短所はありますか?

11
より良いエラーの説明を送信するようユーザー/顧客に教える方法
多くの場合、アプリケーションのエラーを報告している顧客またはユーザーに対処する必要があります。ほとんどの場合、コンテンツは次のような役に立たないものです。 エラー!!! xは機能しません 多くの情報なしで。 問題を解決するために、私はそれらのすべての詳細を要求する必要がありますが、多くの場合、問題自体を修正するよりも時間がかかります。他の人は、リンク(システムにアクセスできます)などを送信できますが、スクリーンショット(エラーではなくデータレコード)などの理想的ではない形式で情報を送信します。 プロセスを両方の側で簡単にするために、ユーザー/顧客に問題をより詳細に説明するようにどのように伝えますか? 編集する この質問は、ログおよびエラー情報のプログラムによる収集を達成する方法よりも、ソーシャルスキルに関するものです。これは優れたソフトウェア設計の一部である必要があるという事実を知っています。

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