banner

ブログ

Jan 14, 2024

再利用、削減、リサイクル (コード): 持続可能なソフトウェアの活用

ジェイコブ・マシソン著

再利用可能なソフトウェア コンポーネント (RSC) の可能性と品質は、Web の持続可能性と「グリーン」デジタル製品の見方に影響を与える可能性があります。 ただし、RSC はソフトウェア企業またはテクノロジー企業のイノベーション サイクルの中で最も目立たない側面の 1 つであり、多くの場合、ビジネス バレルの最下位に留まります。 「再利用可能なコンポーネント」という用語は、テクノロジーやイノベーションの取り組みに関与していない人にとっては専門的すぎますが、最小限の労力で作業を完了したいと考えているプログラマにとっては(当然のことですが)曖昧すぎます。 数行のコードをコピー&ペーストすると、持続可能な開発に影響を与える可能性があります。これは、意図的か否かにかかわらず、「効率的か?」という主な質問に従うためです。 わかりやすいですか? モジュール式ですか? 費用対効果は高いでしょうか?

当然のことながら、企業は最初の 3 つの質問が 4 番目の最後の質問にどのような影響を与えるかに興味を持っています。 しかし、逆説的ですが、ほとんどの企業は、収益への影響を測定する順序を逆転させることを望んでいません。 ソフトウェアの再利用性についての情報と認識がさらに広まれば、最初の定義として、「ソフトウェアの再利用は、新しいソフトウェア開発に携わる組織のニーズを満たすソフトウェア コンポーネントを再利用するための事前計画に依存している」ことが明らかになるでしょう。コンテキスト。」 計画、関与、および戦略的デザインは、コンポーネントベースの Web デザインをはるかに超えています (コンポーネント: Web サイトまたはアプリケーションにアクセスしたときにユーザーに表示されるあらゆる要素を考えてください)。

設計におけるモジュール化、ノーコード プラットフォーム、および Vue.js や Laravel などの人気のある技術スタックを使用した既製ソリューションの台頭は、単なるソフトウェア関連の現象ではなく、製品の多様性に対する消費者の需要の高まりへの対応です。製品の寿命と関連性を保証しながら、非常に短い期間で使用できます。 実際、一般的な設計原則に適用すると、「したがって、設計におけるモジュール性は、製品とそのコンポーネントの設計境界を選択することと定義できます(…)。その結果、設計の機能とタスクが内部で相互依存し、独立するようになります」モジュール間で。」

特にテクノロジーでは、特にフロントエンド、バックエンド、製品開発、UX/UI などの専門チームを置くことによってデザインの境界が決定されることがよくあります。 これらの境界にはさまざまなバリエーションが存在する可能性があります。 ほとんどのソフトウェア会社は、エンドユーザーとの対話性、および設計要素自体間の対話性を確保する目的で機能要素が開発されるポッド状の構造を選択します。 Vuetify や Bootstrap などのよく知られたコード ライブラリやスタイル ライブラリの多くは、設計原則 (可読性やアクセシビリティなど) をそのまま維持することを目的としています。

ソフトウェアの持続可能性の測定は、多くの場合、コスト/利益の追跡や再利用経済モデルを意味します。 最も基本的なレベルでは、持続可能性は、新しいコード行が何行書かれたかによって測定できます (人間の労力、時間、専門能力だけでなく、読み込み時間、レンダリング、帯域幅の使用量も犠牲になります)。 1992 年に遡っても、この概念は決して新しいものではありませんでした。プロジェクトで作成された新しいコード行の数に関連して、再利用の正味コストと正味再利用のメリットを追跡するための具体的な指標があります。 現在、モデルベースのアプローチ、アルゴリズム予測、機械学習の使用など、ソフトウェアの持続可能な開発のための保守と進化の開発サイクルを測定するための自動化モデルが提案されています。 しかし、中小企業にとって新しいソリューションの導入にはコストがかかる場合があります。

この問題に応えて、研究者の Maggo 氏と Gupta 氏は、持続可能なソフトウェアのこのあまり目立たない側面について次のように語っています。「ソフトウェアの貯蔵庫を構築し強化するために使用できる、再利用可能なソフトウェア コンポーネントをゼロから開発するには追加コストが必要です。」 この追加コストを回避するには、リソースを集約せずに実装できる 5 つの要素のプロセス評価が鍵となります。

複雑:これは、ソフトウェア システムのアーキテクチャ、設計、実装の複雑さを測定します。 ここでの目的は、モジュール式で再利用可能でよく整理されたコードを作成することで複雑さを最小限に抑え、開発者が既存のシステムを理解し、保守し、構築することを容易にすることです。

ローリング ストーン カルチャー カウンシルは、インフルエンサー、イノベーター、クリエイターのための招待制コミュニティです。資格はありますか?

料金:長期的な経済的実行可能性とは、Web サイトやアプリケーションを完全に再設計することなくカスタマイズできることを意味します (変更可能性にも関連します)。 ソフトウェア設計への初期投資は、B2C 構造でも C2C 構造でも中期的な利益をもたらすのに十分である必要があります。

安定性:安定性では、アプリケーションや Web をスケールアップまたはスケールダウンする必要がある場合に、システムの安定性、安全性、回復力を確保するために、信頼性の高いテスト済みのコンポーネントを使用し、ホスティングとデバッグに関するベスト プラクティスに従うことが重要です。

変更可能性:再利用可能なソフトウェア コンポーネントと持続可能なソフトウェア設計は、変化に対応し、新しい要件に従って迅速な変更を提案する必要があります。 モジュール性と柔軟性を念頭に置いてソフトウェアを設計することにより、持続可能性により、コア機能を中断することなく更新または再構成できるコードが促進されます。

適時性:これは、妥当な期間内にソフトウェア製品を提供する能力です。 これは、コードの再利用やワークフローの合理化などの効率的な開発手法を評価して、開発プロセスを加速し、企業が市場トレンドや消費者のニーズにさらに敏感に対応できるようにすることを意味します。

ハダースフィールド大学の研究者らは、鍵の 1 つは設計とソフトウェアのチームの統合にあると述べています。 統合とは、「システムの基本構造を大幅に変更することなく、最小限のコストで将来の変更に最大限対応できるように設計する」ことです。 これらの研究者らは、「ソフトウェア集約型システムのアーキテクチャ設計上の決定に関する知識が容易に失われ、それがメンテナンスと進化のコストの増加、および設計の侵食につながる(…)」ことを示しました。

言い換えれば、開発者は、機能を維持しながら、低コストで最小限の変更に耐える設計システムを使用する必要があると提案しています。 そのためには、関心事の分離や概念的な整合性など、設計原則に関して確立された社内および国際的な規制を遵守する必要があります。 そのため、実装に成功したソフトウェア参照アーキテクチャ (つまり、ブートストラップ) は、特定のソフトウェア システム ファミリまたはビジネス ドメイン内で持続可能なソフトウェア アーキテクチャが何ができるかの例として機能することができます。 技術的知識は、正しく実装されていれば、確かな設計原則と組み合わせることで再利用可能ですが、技術的な時間の試練に耐えられるでしょうか?

複雑さ: 私に資格はありますか? コスト: 安定性: 変更可能性: 適時性:
共有