組み込み開発の「方法論」

1. 新しい本を手に

ここに画像の説明を挿入
今日、新しい本「方法を語る」(通称「方法論」)を手に入れました この本の著者はデカルトですが、この本はデカルトがいかに理性を駆使してさまざまな分野で真理を追求したかを紹介しています。
ここに画像の説明を挿入

ルネ・デカルト(1596年3月31日 - 1650年2月11日)は、フランスの有名な哲学者、数学者、物理学者です。彼は近代西洋哲学の創始者の一人でもあり、彼の哲学思想はその後のヨーロッパ人に深い影響を与え、ヨーロッパの「合理主義」哲学の基礎を築きました。デカルトは数学者としての業績で最もよく知られています。彼は現代数学の基本ツールである座標系を発明し、幾何学と代数を組み合わせて解析幾何学を生み出しました。

2. デカルト法の 4 つの原則

ここに画像の説明を挿入
デカルトが要約した4つの原則は次のとおりです。

1つ目は、自分が明確に認識していないものは決して素直に受け入れないということです。つまり、性急な判断や先入観を避けるように注意し、まったく疑うことができないほど明白に提示されたもの以上のことを自分の判断に加えないように注意してください。
2つ目は、私が検討するすべての困難な問題を、可能な限り必要な部分に分割し、1つずつ解決することです。
3 つ目は、最も単純で理解しやすいオブジェクトから始めて、最も複雑なオブジェクトを理解するまで徐々にステップを上げて、順番に思考を実行することです。順序を設定します。
最後は、あらゆるケースにおいて、可能な限り包括的に検討し、可能な限り広範囲に漏れのないように検討することです。

デカルトの 4 つの原則を分析してください。
1 つ目: 知らないことはすべて疑い、権威を受け入れない。
ルール 2: 複雑な問題を単純な問題に分割し、個別に解決します。
ルール 3: 解決しやすい問題から始めて、単純な問題から複雑な問題まで並べます。
第4条:問題が解決したら、一緒に総合的にテストする。

3. 組み込み設計でデカルト手法を使用する方法

私は組み込みエンジニアです。知識とアクションの統一を達成するために、デカルト手法を組み込み設計に適用するにはどうすればよいですか? 私たちはデカルトの 4 つの原則を吸収し、進化させます。

最初の原則の核心は、注意深く導入することです新しく導入されたコードは、公式に提供されたコードであっても、レビューしてテストする必要があります。
2 番目の原則の核心は分割統治ですコードを複数の独立した関数に分割するタスク。パーティションと呼ばれます。
3 番目の原則の中心となるのは、階層化です各タスクを単純なものから複雑なものまで複数のシステム層に分割します。
4 番目の原則の核心は透明性ですコードを設計するときは、コードの総合的なテストを考慮し、コードの透明性を高め、テスト スクリプトを設計し、コードを完全にテストする必要があります。

3.1 慎重な導入

新しく導入されたコードはすべて、個別にレビューしてテストする必要があります。公式に提供されたコードであっても、独立したテストが完了するまではプロジェクト コードに直接統合することはできません。公式ライブラリでも問題が発生する場合があります。

2022 年 4 月 5 日に、JavaScript ライブラリ is-promise が更新されました。最新バージョンは正しい ES モジュール標準に従っていなかったため
、is-promise を参照する 300 万以上のフロントエンド プロジェクトで問題が発生しました。この問題は、 JavaScript エコシステムは混乱しています。

3.2 分割
統治 分割統治とは、ソフトウェア全体をその機能に応じて複数のタスク (モジュール) に分割することであり、複雑で困難なタスクを複数の単純で達成しやすいタスクに分解することができます
分解された各タスクは特定の機能を完了します。各タスクは、自分が担当する機能のみに注意を払い、他のタスクの機能には注意を払いません。各タスクには、特定の機能を実行するために関連するコードがすべて含まれている必要があります。これにより、タスクは他のタスクに依存せずに独立して実行でき、高い凝集性を実現できます。
ここに画像の説明を挿入
下の図は、ゲートウェイ プロジェクトのエンジニアリング ファイルです。この図から、プロジェクト全体が「分割統治」戦略を採用していることがわかります。プロジェクト全体を複数のタスクに分割し、各タスクは独立した機能を完了し、それぞれのタスクは独立した機能を完了します。タスクは他のタスクに依存しません。
ここに画像の説明を挿入

3.3 階層
階層とは、複雑なソフトウェア機能が複数の合理的なサブシステム層に水平に分割できることを意味し、システム層は単純から複雑、具象から抽象まで多岐にわたります
システムの関連部分は、同じ独立した層にグループ化されます。上位層の機能を実現するには下位層の機能を呼び出して応答を得る必要があり、隣接する任意の 2 つの層はクライアントとサーバーの関係に準拠します。下位層は上位層にサービスを提供し、上位層の呼び出しの結果を返します。つまり、下位層の関数が上位層にサービスを提供します。通常、下位層は特定の操作を完了する責任を負い、上位層は通常、抽象的なビジネス操作を完了します。
ここに画像の説明を挿入

階層構造規則:
1. n 番目の層は、その下の n-1 番目の層にのみ依存します
2. n 番目の層は、n+1 層に依存しません
3. n 番目の層は、n+1 層にのみサービスを提供します
4 . n 番目の層 n-1 層によって提供されるサービス階層化をインターフェースを通じて使用することは、タスクを低レベルから高レベルに抽象化することを意味します。

以下の図はゲートウェイプロジェクトのエンジニアリングファイルであり、各タスクが階層的な戦略を採用していることがわかります。通常、タスクは 3 つの層に分けられ、第 1 層はプロセッサのレジスタに関する操作を完了し、第 2 層は制御ロジックに関する操作を完了し、第 3 層はビジネスに関する操作を完了します。
ここに画像の説明を挿入
3.4 透明性
透明性とは、コードの動作が検出でき、コードに暗い隅や隠れた深さが存在しないことを意味しますコードのあらゆる動作をテストでき、コードには未知の動作がありません。言い換えれば、コードの内部ロジックを外部からテストできます。テスト中に、フィードバックに従って結果を予測できます。コード。

おすすめ

転載: blog.csdn.net/li_man_man_man/article/details/131712906