タグ付けされた質問 「reinventing-the-wheel」

24
車輪の再発明は本当に悪いことですか?
プログラミングにおけるその一般的な知識は車輪の再発明は悪いかであることを悪。 しかし、それはなぜですか? 私はそれが良いことを示唆していません。私はそれが間違っていると信じています。しかし、誰かが何か間違ったことをしている場合(プログラミングの観点から)なぜ間違っているのかを説明し、できない場合は、それが本当に間違っているかどうかを自問するべきだという記事を一度読みました。 それは私にこの質問につながります: 誰かが、言語/フレームワークに既に組み込まれている独自のメソッドを構築することにより、明らかに車輪を再発明しているのを見た場合。まず、引数のために、メソッドが組み込みメソッドと同じくらい効率的であると仮定しましょう。また、組み込みメソッドに気付いている開発者は、独自のメソッドを好みます。 なぜ彼は自分のビルトインを使用する必要があるのですか?

7
流なコーダーがグッドプラクティスを無視する場合、彼の流fluさは彼に反していないでしょうか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 私はかなり大きくてバグのあるアプリケーションに取り組んでいます-それが書かれている方法のために(詳細は省きますが、あなたが考えることができるほとんどの分野でルールに違反します)、大きなリファクタリングなしでそれを開発することはほとんど不可能です。 アプリの重要な部分は、インターン、n00bsなどによって作成されました。しかし、Master Developerの階級にプログラマーもいました。そして、謙虚に、彼が残したコードも、おそらくは別の方法で疑わしいです。 確かに、彼のコードはほとんどの場合、仕事を終わらせる傾向がありますが、通常はわかりにくく、車輪を再発明します(たとえば、通常のSQL dbバックアップを実現する大きなカスタムメソッド)など。基本的に、不必要な混乱と多くのオーバーエンジニアリング そして、他の資質を伴わない場合、高度に熟練したコーダーであること(私は意図的に「開発者」という単語をより広いスキルのセットを示すと仮定して使用しません)が実際には有毒であると考えるようになりました。 それが真実だと仮定すると、私が考えることができるいくつかの理由は次のとおりです。 簡単にコーディングしている場合、ライブラリや既存の機能などを使用せずに、その場で独自のソリューションを簡単にスナップアウトできる(または実際には短期的には)と感じます。 複雑なプログラムのメンタルイメージを簡単に維持できる十分な経験がある場合、それをモジュール、レイヤーなどに分割する傾向は低くなります。 私のポイントは、流なコーダーが偶然悪い開発者である場合、流fluさは後者を補うだけでなく、実際にはむしろより多くの害をもたらすということです。 あなたはそれをどう思いますか?それは本当ですか?

8
ホイールの再発明とは何を意味しますか?
以下のシナリオは、あなたの本の中で「車輪の再発明」として数えられますか? ソリューションは存在しますが、使用したい言語ではありません。既存のソリューションは、使用したい言語とクリーンで慣用的な方法でインターフェースすることができません。 原則として、既存のライブラリーに大幅な変更を加えて目的の機能を実行させることができますが、最初からやり直す方がおそらく簡単だと思います。 あなたが書いているものは、すでに行われているものと同じ1行の説明ですが、異なるニッチをターゲットにしています。たとえば、問題は以前に何十億回も解決された可能性がありますが、大規模なデータセットでは効率が悪く、コードは大規模なデータセットでうまく機能します。

4
均質なコードを抽出し、チームの共通コードを構築するためのアドバイス/アプローチ
私はカリフォルニア州で働いています。私の意見では、プログラミングチームは実際には「チーム」ではありません。通常、アプリケーション/システムのライフサイクル全体を通じてプロジェクトに単独で取り組んでいるからです。 最終的には、多くの開発者が「車輪を再発明」しています...私たちの大多数が同じOracle DBで作業しているにもかかわらず、独自のデータレイヤーを作成しています...独自のセキュリティスタッフを作成しています...オン。 私は従業員の考え方を変えることができず、チームプロセスの変更に関して現実的な野心はありません...しかし、私の目標は、少なくとも共通の建物を構築するために、チームをもう少し連携させることですすべての定型機能に使用できるブロック片。 明らかな利点は、すべてのユーザーが共通の部分に精通している場合、テストとサポートがはるかに保守可能であり、他の誰かがすでに行ったものと同じリポジトリを作成していない場合、本番までの時間が短縮され、より良いソリューションの提供に焦点を当てることができます私たちのアプリが解決しなければならない特有の問題に...など 私は合唱団に説教していると確信しています。 コツは、国家が変化を好まないこと、そしてその従業員を好まないことです。マネージャーは、摩擦を避けたいので、そのまま続けたいという理由だけで、しばしば新しいアイデアを無視します。 似たような質問がありますが、私が探しているのは、どのようにして同じような状況に直面したかに関するアドバイスと、「草の根」のような取り組みをより簡単に管理に取り入れる方向へのアドバイスです。 編集:いくつかのことを明確にするために: 私が探している範囲は、州政府機関のITショップです。私はいくつかの部門を超えて調整しようとはしていません。バイクに乗るように頼む前に、人々を補助輪から降ろしてください。 セキュリティはそれほど重要ではありません。ほとんどのアプリケーションは内部にあり、Citrixで配布されているWindowsフォームで記述されています(ほぼ)。ほとんどすべてのアプリケーションがOracleの同じエンタープライズテーブルを使用しています。話す。コラボレーションを妨げるべきではありません。 私は、NuGetフィードをセットアップし、いくつかの定型コードをパッケージ化し、Oracle用のいくつかのリポジトリを作成し、いくつかのメールを送信しましたが、フィードバックはほとんどありませんでした。私のチームの約3分の1がReSharperを使用していて、ヒントを添えて随時メールを送信しています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.