ソフトウェア工学

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

4
GAEだけで、Rubyを介したPythonの学習を正当化できると思いますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 サーバーのセットアップ/購入やドメインの購入に関与する必要はないという事実を考慮して、事実だけでどちらかを選択するのに十分だと思いますか? 私は必ずしもGoogle App Engineで作業したいわけではありません。ホスティング/環境/などに関しては便利だと思います。そして、それがpythonを学ぶのに十分な理由かどうか疑問に思います。 いずれにせよ、私はpythonとrubyの間の議論を探しているのではなく、Google App Engineと、その価値が学習すべき言語を決定するのに十分であるかどうかについて探しています。

6
ユーティリティライブラリに最適なライセンスですか?
Javaで書かれた有用なものの小さなユーティリティライブラリがあり、オープンソースのリリースを計画しています。どのライセンスを使用するか迷っています。私はBSDライセンスをとても気に入っています。これは短くて理解しやすいものですが、製品のドキュメントに免責事項を含めることに関する条項は必要ありません。そのビットをドロップアウトすることを検討してください。 それでは、MITライセンスのほうが適していますか?BSDのような推奨禁止条項はありません。これは、私がBSDについて気に入っていることです。また、ソフトウェアの大部分の著作権表示を保持するというMITの条項は、ソースコードのみを参照しており、バイナリ形式やドキュメントが生成するものを参照していませんか? このトピックに関する他のSO質問を調査したところ、Apacheライセンスを推奨する人が数人いることがわかりました。簡単にスキャンしてみると、実際に私が望むもののほとんどがうまくいくかもしれませんが、その量の法的なものでさえ頭を痛めます(特にSOではなくベッドに寝る必要がある午前2時30分)。 基本的に私は何かが欲しい: 分かりやすい、 好きなようにコードを使用できますが、ソースコードに私の著作権と許可の通知を保管してください、 作成するドキュメント、マニュアルなどに私や私の製品の名前、著作権表示などを入れる必要はありません。 私や私の製品をあなたの製品のセールスポイントとして使用しようとしないでください(私の支持がとにかく重要になるとは限りません!) そして、合理的な方法で私のお尻をカバーします。:-) 編集:うわー、30分、すでにいくつかの良い応答!に応じて: 私は、できる限り「ミックスアンドマッチ」を避け、さらに別のオープンソースライセンスを作成したいと思います。標準ライセンスを使用すると、私たち全員にとって簡単になります。 コメントをカバーするお尻は頬に少し舌です。言及されているすべてのライセンスに含まれている保証の免責事項は、実際に私が話しているすべてです。 編集:MITライセンスのWikipediaページを読んで、ncursesがFSFによって承認された修正版を使用していることを発見しました。それが彼らにとって十分であるかどうか、私にとっては十分であると考えています。 Apacheライセンスを検討していましたが、GPLv2との互換性の問題は紹介したくなかった問題です。

9
学習のために開発するプログラムの提案[非公開]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け付けていません。 これらの非常にシンプルなHello Worldアプリとは別に、学習のために他のプログラムを開発してみる必要があります。私は来年ユニに入学しますが、その環境でどのようなプログラムが開発されるのでしょうか。 これは実際には言語固有のものではありませんが、主に現在使用しているものを知りたい場合 windows:C#/ WPF-私はポリでjava / vbなどを勉強しましたが、C#が進むべき道だと思います。 web:もちろんPHP / MySQL、Zend Framework / Doctrine、+ HTML / CSS / JS(jQuery)。pythonでgoogle app engineを試してみたい。 今のところ、私は考えています ToDoリスト APIなどと統合するアプリ。私が使用しているtwitter / tumblr テキストエディター-現在、マークダウンを使用して表示用のHTMLファイルを生成するテキストエディターを開発しようとしています(ブログエントリへのリンク)。開発を始めてからはあまり実用的ではありません。書式設定がなくHTML形式で編集する場合、直接編集できません ブログソフトウェア(Web用)

9
ユーザーはどのような間違いを犯しますか。また、アプリケーションを更新してそれらを処理するにはどうすればよいですか [閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 実際、この質問は、ユーザーエクスペリエンスの質を高め、回避可能なサポートコールを減らすためにとるべき注意事項に関するものです。

29
開発者の速度を低下させるものは何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け付けていません。 開発者が遅くなる傾向があるのは何ですか? 次の回答を投稿しないようにしてください。 現在は低速ですが、この機能では便利です。(TDD、リファクタリング、...) 気晴らしをリストしてください。

1
誰かのプロジェクト全体を誤ってオーバーホールしました。要求をプルするための受け入れ可能な方法はありますか?
便利な中央機能を備えたGitHubで素晴らしいプロジェクトを見つけましたが、エラー処理、ロギング、構成、およびセットアップの「研磨」には大雑把です。このプロジェクトは5年間そのままで、わずか数百行のコードです。それでも、かなりの数のウォッチャーと少数のフォークに注意を向けることは十分に有用です。 私の使用には特定の追加が必要でしたが、その前にいくつかのクリーンアップを行いました。その後、エンジニアに少し夢中になり、1週間かけて、ログシステム、大量のログ、自動セットアップ、コードから外部構成ファイル(およびそれらを読み取るコード)に組み込まれた構成を追加しました。さらに、私が見つけたバグ修正もいくつかあります。 私の変更はすべて合理的/良いものであり、視聴者が使用できるようにする必要があると思います。しかし、多くのコミットがあり、レポジトリが元々持っていたのとほぼ同じ数です(この一般的なものを維持するために数を避けます)。さらに、git blameは、この(小さな!)コードベースのほぼすべての行に触れたことを示しています。私はプロジェクトの管理を求めているわけではありませんし、自分がやったことの信用を求めているわけでもありません。しかし、選択を考えると、私の未知のgithubの分岐点に隠れることなく、誰もがそれらの恩恵を受けることができるように、私の変更をマージしたいと思います。 以前にプルリクエストを送信したことはありませんが、それらは小さくてレビューしやすいはずです。しかし、ここで私は去り、多くの変革的な変化を遂げました。 コミットメントは非常にクリーンで、全体を通して歴史を慎重に扱っていました。しかし、それらの多くは必然的にそれ自体の上に構築されるため、それらを複数のブランチ/プルリクエストに分けるのは難しいでしょう。たとえば、構成の外部化はいくつかの準備的なクリーンアップに基づいて構築され、それらの構成を設定するためのセットアップが一部存在し、ログはセットアップで作成された外部構成によって有効化および構成されます。この巨大な錠剤をより美味しくするために私ができることをしてください、私はそれがどうなるかわかりません。いくつかのコミットを分割することもできますが、大規模なオーバーホールはまだ大きなものです。 誰かのプロジェクトを誤ってオーバーホールした場合、どうすればよいでしょうか? これを行わず、自分の変更を自分のフォークに保持するように、レッスンを学ぶ必要がありますか?プルリクエストを行い、何が起こるかを確認する必要がありますか?説明で自分自身を説明する言葉をたくさん使うべきですか?特定の方法で提示する必要がありますか?

5
短絡評価が悪いのはいつですか?
もう少し明確にするために、私はさまざまな言語で多くの時間を費やしたと述べます。しかし、これまでは常に使用するか、まったくサポートしていませんでした。 現在、VB.netを必要とするプロジェクトで作業を開始していますが、ANDとANDALSOの両方の面でVB.netを提供しているようです。最初のものは短絡せず、2番目のものは短絡します。 だから、これはなぜだろうかと思いますか?このように設定すると、モードを切り替えたいことが頻繁に発生することを暗示しているようです。しかし、短絡回路を使用することが悪いことになるような状況は考えられません。 私はこれがより多くのオプションのものに入る可能性があることを知っているので、これを他の場所に置く必要がある場合は、どこにいるか教えてください。 私は少なくとも公式の答えがあればいいのにと思っていますが、両方のオプションがあるのは、可能な場合は常にShort Circuitを行うよりも良い理由についてです。

5
参照によって渡されたオブジェクトの変更は悪い習慣ですか?
過去には、通常、作成/更新されるプライマリメソッド内でオブジェクトのほとんどの操作を行ってきましたが、最近は別のアプローチを取っていることがわかりました。 以下に例を示します。Userエンティティを受け入れるリポジトリがあるとしますが、エンティティを挿入する前に、いくつかのメソッドを呼び出して、すべてのフィールドが必要なものに設定されていることを確認します。ここで、メソッドを呼び出してInsertメソッド内からフィールド値を設定するのではなく、挿入前にオブジェクトを整形する一連の準備メソッドを呼び出します。 古い方法: public void InsertUser(User user) { user.Username = GenerateUsername(user); user.Password = GeneratePassword(user); context.Users.Add(user); } 新しいメソッド: public void InsertUser(User user) { SetUsername(user); SetPassword(user); context.Users.Add(user); } private void SetUsername(User user) { var username = "random business logic"; user.Username = username; } private void SetPassword(User user) { var password = "more …

3
厳密な型指定を使用する場合、docblock typehintsは冗長です
私はかなり大きなプライベートコードベースを持っていますが、これは約10年にわたって進化しています。私はphpDocumentorを使用していませんが、オープンブロックプロジェクトではdocblockセクションを使用することが標準になっているため、リポジトリ内のすべてのパブリックメソッドにもdocblockを記述することを採用しました。ほとんどのブロックには、すべてのパラメーターと戻り値の型に関する小さな説明と型ヒントが含まれています。 静的解析の登場により、これらのタイプヒントは矛盾やバグの発見に大いに役立ちました。最近、PHPのtypehintsを使用して、可能な場合はすべてのパラメーターと戻り値の型ヒントを含むように、コードベース全体(PHP7.2で実行中)を変換しました。そして今、私は疑問に思っています...これらのdocblock typehintsは冗長ではありませんか?すべてのdocblockを絶えず変化するコードと同期させ、新しい情報を追加しないため、それらを完全に削除する方が良いのではないかと思っています。 一方で、ドキュメントを削除することは、それが冗長であっても気分が悪くなります。もう1つは、既にタイプヒントが付けられている日常的なタイプヒントの繰り返し禁止の原則を破りたいという気持ちです。
12 php  comments 

3
開発環境をDockerコンテナで実行する利点はありますか?
主にWindows上のVisual Studioを使用して開発しています。問題は、しばらくするとWindowsが行き詰まり、Windowsを再インストールする必要に直面することです。同様に、新しいマシンへの切り替えも問題です。 開発環境には多くの依存関係(追加のMSBuild構成ファイル、VS拡張、npm、Javaなど)があるため、Windowsの再インストールは苦痛です。複雑なシステムを持っているのは私一人ではないと思いますが、それを元に戻すにはおそらく1日はかかります。 私は実際にはDockerを使用していませんが、理論的にはWindowsコンテナで開発環境をセットアップし、それを出荷するだけです(たとえば、ラップトップにコピーして新しいWindowsインストールを入れてください) 。 私が説明していることは可能ですか?パフォーマンス、信頼性などの欠点はありますか?他の落とし穴?
12 docker 

2
いくつかのマイクロサービスが失敗した場合、それらを更新するソフトウェアをどのように設計しますか?
他のサービスが安定している間、ダウンまたはダウンするサービスを支援するために使用できる設計パターンまたはプラクティスはありますか? 3つのマイクロサービスがあり、そのうち2つが正常で、1つがPOSTの途中で停止した場合はどうなりますか?2つはPOSTを受け取り、1つは受け取りません。リクエストをサービスに発送しているため、取引ができないと思います。 そのためにどのように設計しますか?さまざまなデータベースに孤立したデータは必要ありません。

4
大量の入力データが必要な場合にマイクロサービスアーキテクチャにルールエンジンを組み込む方法
現在の状況 私たちは、マイクロサービスアーキテクチャでオンラインショッピングWebアプリケーションを実装しています(そして現在保守しています)。 要件の1つは、エクスペリエンスと最終的な注文をカスタマイズするために、顧客がカートに追加するものにルールを適用できる必要があることです。明らかに、ビジネスルールエンジンを導入する必要があり、このために特定の「マイクロサービス」を実装しました(まだそう呼べる場合)。 1年の間に、このルールエンジンはますます複雑になり、より多くのデータ(カートのコンテンツだけでなく、ユーザー情報、役割、既存のサービス、請求情報など)が必要になりました。それらのルールを計算します。 現時点では、shopping-cartマイクロサービスは他のマイクロサービスからこのデータをすべて収集しています。このデータの一部はで使用されますがshopping-cart、ほとんどの場合、主にルールエンジンのフィードに使用されます。 新しい要件 これで、同様の要件にルールエンジンを再利用する他のアプリケーション/マイクロサービスが必要になりました。したがって、現在の状況では、ルールエンジンを呼び出すことができるように、同じ種類のデータを送信し、同じマイクロサービスを呼び出し、(ほぼ)同じリソースを構築する必要があります。 そのまま続行すると、いくつかの問題に直面します。 誰もが(ルールエンジンを呼び出して)データのフェッチを再実装する必要があります(自分でデータを必要としない場合でも)。 ルールエンジンへの要求は複雑です。 この方向で続けると、多くの要求のためにこのデータをネットワーク全体に転送する必要があります(μsAがルールエンジンを呼び出すμsBを考えますが、Aはルールエンジンが必要とするデータの一部を既に持っています)。 shopping-cart すべてのデータ取得により巨大になりました。 おそらく多くのことを忘れてしまいます… これらのトラブルを回避するために何ができますか? 理想的には、ルールエンジンの複雑さを増やさないようにします。また、ボトルネックにならないように確認する必要があります。たとえば、一部のデータはフェッチに時間がかかります(10秒以上)ためshopping-cart、ルールを呼び出す前にデータが存在する可能性が高くなるようにプリフェッチを実装しましたエンジン、および許容できるユーザーエクスペリエンスを維持します。 いくつかのアイデア ルールエンジンに必要なデータをフェッチさせます。これにより、さらに複雑さが増し、単一の責任原則に違反します(さらに…)。 ルールエンジンがデータを取得する前にプロキシμsを実装します。 ルールエンジンが必要なすべてのデータを一度にフェッチするために呼び出す「データフェッチャー」μsを実装します(複合照会)。

1
サーバーとクライアント間でインターフェースを共有するのはなぜそんなに悪い考えなのですか?
HTTPサーバーとそのクライアントの間でインターフェースを共有する方法を見つけたとき、Spring Cloud Netflixのドキュメントを読んでいました。彼らはこの例をマイクロサービスに使用していますが、一般的なHTTP通信に拡張できない理由はありません: // The shared interface, in a common library public interface UserService { @RequestMapping(method = GET, value = "/users/{id}") User getUser(@PathVariable long id); } // The controller, on the server @RestController public class UserResource implements UserService { } // The same interface used for the client @FeignClient("users") public …

2
Java Spring for Beginnerを使用したRESTfulサービスの構造
私はJava Web開発スキルの点で比較的新しいです。APIについて私が少ししか理解していないことから、RESTfulサービスの良い候補になると思うプロジェクトがあります。私はこれがどのように構成されているのかを詳しく説明しようとしていますが、Google検索やすでに持っている資料を読むという点では実際にはどこにも行きません。この投稿が、このトピックに関する私の知識と仮定の観点から、いくつかの検証やリダイレクトをもたらすことを望んでいます。 私の現在の仮定は、RESTfulサービスが次の構造を持つことです。 データベースデータ(SQL)。 ORM(私はCPOと呼ばれる比較的人気のないORMを使用していますが、ほとんどの人はこれをHibernateに置き換えるだけです)。 ORMと通信してデータを取得するメソッドを持つJavaマネージャークラス クラス/クラスはハンドルがマッピングおよび使用を要求することをAのJavaコントローラ@ResponseBodyに指示する/ HTTP動詞を介してデータの処理方法のURLとアクションを処理(http://mysite.com/computers/dellがあるかもしれないGET単語「デル」とのリクエストURLは、Dellコンピューターに関する情報のJSON配列を返すパラメーターです)。 このサービスは、Spring Bootで作成するか、何らかの形で独立して他のアプリケーションから独立させる必要があります。 上記が正しいと仮定すると、(非常に基本的なレベルで)データを消費および使用するために任意のアプリケーションが使用できるRESTfulサービスがあります。 そこで、Webアプリケーションを作成するとします。コンピューターハードウェア情報に関するWebアプリを作成しており、Springを使用してこのWebアプリを作成しているとします。私の仮定は次のとおりです。 私は、JSPとしてHTML、CSS、およびJavaScriptインクルードを持つJSPとして多数のビューを持っています。JavaScriptは、必要に応じてこのアプリケーションのコントローラーへのAJAX呼び出しを処理します(以下)。 このWebアプリには、アプリのURLリクエストとルーティングを処理する独自のコントローラーもあり、コントローラーは、たとえば、ModelAndViewオブジェクトまたはそれらの行に沿ったものを使用して、RESTfulサービスのコントローラーと「通信」し、渡されるデータを取得します、表示するためにそのデータをビュー(Javascript、JSPなど)に戻します。 私は正しい道にいますか?RESTfulサービスには認証の側面もあることは理解していますが、概念的にはまだありません(そして、私のプロジェクトはプライベートネットワークで使用されるため、現時点ではセキュリティは優先されません)。 洞察、批判、知識、フィードバック、または明確化は大歓迎です。

5
リポジトリパターンが最新のORM(EF、nHibernate)で過剰すぎる場合、より優れた抽象化は何ですか?
私は最近、エンティティフレームワークのような強力なORMでリポジトリパターンを使用することに対して多くの議論を読みました。リポジトリパターンは作業単位機能とともにリポジトリに似た機能を組み込んでいるからです。 単体テストのような状況でパターンを使用することに対するもう1つの論点は、より汎用的な実装がIQueryableを活用するため、リポジトリパターンは漏れやすい抽象化であるということです。 リポジトリパターンの使用に反対する議論は私には理にかなっていますが、提案された抽象化の代替方法はしばしば混乱を招き、問題と同じくらいやり過ぎです。 Jimmy Bogardsのソリューションは、抽象概念を吹き飛ばすことと、彼自身のアーキテクチャを導入することの組み合わせのようです。 https://lostechies.com/jimmybogard/2012/10/08/favor-query-objects-over-repositories/ リポジトリが不必要になっている別の例....しかし、私のアーキテクチャを使用してください! http://blog.gauffin.org/2012/10/22/griffin-decoupled-the-queries/ 別の... http://www.thereformedprogrammer.net/is-the-repository-pattern-useful-with-entity-framework 私は、それ自体が設計されていない「過度に複雑な」リポジトリパターンアプローチの明確な代替物や代替物を見つけていません。

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