Architecture Design - 1 What is Architecture

S32 Design Studio v1.1深度解析:Power Architecture嵌入式开发环境实战指南 集成开发环境(IDE)是嵌入式软件开发的核心工具,它通过整合编辑器、编译器、调试器等组件,为开发者提供高效的工程实践平台。其工作原理在于深度理解目标硬件架构,并提供针对性的工具链支持,从而显著提升代码开发、调试和部署的效率。在汽车电子和工业控制等高可靠性领域,一款优秀的IDE对于保障项目成功至关重要。S32 Design Studio for Power Architecture v1.1正是这样一款专为NXP Power Architecture处理器(如MPC57xx系列)设计的深度定制化环境。它基于E 阅读详情

     "Software architecture is the structure or structures of a software program, which comprise software elements, and the visible external properties of these elemets and the relationship among them."

        --------by Bass, Clements, and Kazman (2003) as follows.

So, when we learn an architecture of a program, we can learn from the sides below:

   1  Structural perspective or static perspective or component based perspective

   2  dynamic perspective

   3 funtional and non functional.

   4 deployment perspective.

 1  Structural perspective or static perspectiven or component based

      In this perspective, software architecture consists of multiple components, which are self-contained and ecapsulated some information. A component is either a composite object composed of other objects or a simple object. A component provides an interface through which it communicates with other components. All information that is needed by one component to communicate with another component is contained in the interface, which is separate from the implementation. Thus, a component canbe considered a black box, because its implementation is hidden from other components.Components communicate with each other in different ways using predefined communication patterns.

     A sequential design is a program in which the components are classes and component instances are objects (instances of the classes); the components are passive classes without a thread of control.A component is self-contained; therefore, it can be compiled separately, stored in a library, and then subsequently instantiated and linked into an application.

   In a concurrent or distributed design, the components are active (concurrent) and capable of being deployed to different nodes in a distributed environment. In this design, concurrent components can communicate with each other using several different communication patterns (see Section 12.3), such as synchronous, asynchronous,brokered, or group communication. An underlying middleware framework is typically provided to allow components to communicate.

    In UML, this is class or object diagram.

2 Dynamic perspective:

    The dynamic view of a software architecture is a behavioral view, which is depicted on a communication diagram

 3 deployment view:

    The deployment view of the software architecture depicts the physical configuration of the software architecture, in particular how the subsystems of the architecture are allocated to physical nodes in a distributed configuration.

4  funtional and non functional

  funtional:  functionality provided by the architecture

  nonfunctional: quality of the functionality provided


Reference:

  <<software modeling and design>>  -Hassan Gomaa


Feature-Sliced Design 与 3 种主流前端架构深度对比:DDD、Clean Architecture、原子设计 本文深入对比了Feature-Sliced Design (FSD) 与领域驱动设计 (DDD)、整洁架构 (Clean Architecture) 和原子设计 (Atomic Design) 这三种主流前端架构的异同。通过分析核心设计理念、依赖管理、代码组织方式和技术实现细节,帮助开发者在不同业务场景下选择最适合的架构方案,提升项目的可维护性和开发效率。 阅读详情

相关推荐

S32 Design Studio for Power Architecture 2017.R1:汽车MCU开发环境配置与实战指南

集成开发环境(IDE)是嵌入式开发的核心工具,它通过集成编译器、调试器和项目管理功能,为开发者提供高效的代码编写与调试平台。其工作原理是基于项目配置和工具链集成,将源代码编译为目标机器码,并通过调试接口与硬件交互。在汽车电子和工业控制等高可靠性领域,一个稳定、深度适配的IDE能显著提升开发效率,确保代码质量与实时性。S32 Design Studio for Power Architecture 2017.R1正是恩智浦(NXP)针对其Power Architecture系列MCU(如MPC57xx/56x

dfuw13072的博客 449

Introduction

1.what is Architecture?

Dream Fighter 771

S32 Design Studio for Power Architecture开发实战:从环境搭建到高级调试

在嵌入式系统开发中,集成开发环境(IDE)和GNU工具链是工程师构建稳定可靠应用的核心基础。IDE通过集成编辑器、编译器和调试器,为代码开发、构建和验证提供统一平台,而GNU工具链(如GCC、GDB)则以其开源、可定制和跨平台特性,成为许多专业领域的首选。这套组合的技术价值在于显著降低开发门槛、提升代码可移植性,并能通过丰富的插件和社区支持进行功能扩展,尤其在对成本敏感且代码规模庞大的工业控制与汽车电子领域优势明显。本文以恩智浦Power Architecture微控制器为具体应用场景,深入解析如何基于S3

dfuw13072的博客 403

DISTRHO Plugin Framework (DPF):一站式音频插件开发框架完全指南 [特殊字符]

你是否想要创建专业的音频插件,但被复杂的跨平台兼容性困扰?DISTRHO Plugin Framework (DPF) 正是你需要的终极解决方案!这个强大的音频插件开发框架让开发者能够轻松构建支持多种格式的专业音频插件,包括LV2、VST2、VST3、CLAP等。无论你是音频处理新手还是经验丰富的开发者,DPF都提供了简单易用的C++ API,让你专注于音频算法本身,而不是繁琐的平台适配工作。

gitblog_00899的博客 1106

S32 Design Studio IDE:Power Architecture多核MCU开发实战指南

集成开发环境(IDE)是嵌入式系统开发的核心工具,它通过集成编译器、调试器和项目管理功能,将代码编辑、构建、调试等环节无缝衔接。其原理在于提供统一的软件框架,抽象底层硬件细节,从而提升开发效率和代码可维护性。在汽车电子和工业控制领域,针对特定处理器架构的专用IDE技术价值尤为突出,能够实现对复杂内存映射、外设寄存器和多核通信机制的原生支持。这类工具广泛应用于雷达处理、电机控制等高可靠性嵌入式系统开发场景。以恩智浦S32 Design Studio IDE为例,它深度集成了针对Power Architectu

weixin_30413765的博客 330

ServiceOriented Architecture: Analysis and Design for C

作者:禅与计算机程序设计艺术 1.简介 Service-Oriented Architecture (SOA) 是一种新的面向服务的架构模式,它把应用程序功能按照服务拆分成离散的模块或组件。各个服务之间通过消息传递进行通信。通过这种方式,开发人员可以只关注于单一职责的功能,降低耦合度,提高复用性,并可靠

AI天才研究院 192

探索函数式编程的奥秘:《Functional Design and Architecture》项目推荐

《Functional Design and Architecture》是一本关于静态类型函数式编程语言(如Haskell、F#、OCaml、PureScript、Elm、Scala)软件设计的权威书籍。本书旨在为读者提供全面的函数式编程知识,并介绍一套完整的构建真实世界应用的方法论。通过深入探讨函数式架构、设计模式、设计原则以及实际应用案例,本书帮助开发者掌握如何在函数式编程中实现高效、可维护的

gitblog_00011的博客 505

Functional-Design-and-Architecture:我的书《功能设计与架构》的代码和材料

功能设计与架构 我的书《功能设计与架构》(第1版和第2版)的代码和材料 FDaA第一版,自行出版 (仅_e-book;无法再在全球范围内提供纸质书,请参阅) FDaA第二版,曼宁出版物 我们正在与Manning Publications合作编写第二版。 这本书是关于什么的? 该书着重于以下主题: 从FP角度进行架构建模,需求分析,子系统设计; 领域建模中的嵌入式和外部DSL; 单声道作为具有效果的子系统; 免费的monads作为功能接口; 其他类型的功能接口; FP中的控制反转(使用免费的monadic eDSL); UML,SOLID,GRASP等主流技术和方法的适用性; 与不纯子系统的交互。 参考文献清单 伴随项目 仙女座计划 这是专门为该书创建的第一个项目。 它在一个模拟飞船SCADA系统的独立应用程序中展示了本书的构想。 注意:该项目已经过时了。 从那时起,Ha

软件工程 实践者的研究方法 第13章答案

Problem: Using the architecture of a house or building as a metaphor, draw comparisons with software architecture. How are the disciplines of classical architecture and the software architecture similar? How do they differ? Answer: 592-10-1P SA Code: 44

1万+

从零到飞:在Ubuntu 22.04上为你的无人机搭建PX4-Autopilot开发环境

本文详细指导在Ubuntu 22.04上搭建PX4-Autopilot开发环境,涵盖系统依赖安装、源码获取、编译目标选择及Gazebo仿真测试。通过优化构建过程和调试技巧,帮助开发者快速为无人机部署稳定的飞控系统,实现从仿真到实机的平滑过渡。

weixin_26878995的博客 489

电脑卸载神器Revo Uninstaller Pro,彻底清残留,终身无限制使用

打开软件后,它会自动扫描并列出电脑里所有已安装的程序,小到各种插件、大到专业设计软件和驱动程序,哪怕是隐藏的系统组件,都能给你扒出来,还会自动分类整理,加上搜索功能能快速定位目标软件,就算是电脑小白,也能轻松上手。卸载彻底无残留:能直接代替系统自带的 “添加 / 删除程序”,不光能正常卸载软件,还会通过内置卸载程序配合残留扫描,把软件留下的残留文件、垃圾还有注册表项都扫得明明白白,扫描强度有三档可以选,想清理得多干净都能自己定,删除之后电脑立马清爽不少。电脑用久了是不是越来越慢?

qq_75153390的博客 1741

Chapter1:What Is Design and Architecture?_《clean architecture》notes

What Is Design and Architecture?

C/C++ 763

逆向实战:Soul聊天协议加密与Frida绕过检测

本文详细解析了Soul聊天协议逆向分析的全过程,重点介绍了如何利用Frida绕过应用的反调试检测机制。通过静态分析定位关键SO库,并编写Frida脚本动态Hook线程创建函数,成功实现对抗。文章还进一步追踪了基于DES算法的加密流程,并探讨了协议数据结构的解析方法,为移动应用安全研究提供了实战参考。

2w3e4r5t6y的博客 1131

《Digital Design and Computer Architecture》7.4 多周期CPU(1)

《数字设计与计算机结构》多周期CPU 7.4.1 多周期数据通路 我们还是像上次一样,从存储器和结构状态开始设计CPU,如图7.16 。在设计单周期CPU时,指令存储器和数据存储器是分开的,因为指令和数据的读取是在同一个周期中进行的。现在,我们把指令和数据存储器结合起来。这是可以实现的,因为我们可以在一个周期中读取指令,然后在另一个周期中读写数据,同时PC和寄存器中的值保持不变。我们将通过不断添加模块来分析每一条指令的每一步工作,从而逐步搭建数据通路。新添加的连线用黑色线标出(新的控制信号用蓝色标出),已经

优快云_Ady的博客 1914

QMT量化交易实战:如何用通达信预警数据自动买卖股票(附完整Python代码)

本文详细介绍了如何利用QMT平台结合通达信预警数据实现股票自动化交易,提供完整的Python代码实现。通过实时监控通达信预警板块文件,系统自动执行买卖操作,提升交易效率。文章涵盖系统架构设计、数据对接、信号处理、订单执行等核心模块,适合量化交易初学者和通达信用户参考实践。

weixin_29251567的博客 677

【深度学习驱动流体力学】采集OpenFOAM仿真数据作为AI模型训练数据集与卷积神经网络搭建到预测(一站式完整代码实现)

采集OpenFOAM仿真数据作为AI模型训练数据集与卷积神经网络搭建到预测(一站式完整代码实现)

源代码杀手的博客 1413

AADL(Architecture Analysis and Design Language) 结构分析和设计语言

文章目录一、AADL的诞生二、AADL简介2.1 构件描述2.2 构件的种类2.2.1 软件构件2.2.2 硬件构件2.2.3 组合构件2.3 特征2.4 属性2.5 扩展三、AADL的研究现状3.1 需求阶段的AADL研究3.2 设计阶段的AADL研究3.2.1 AADL语言扩展3.2.2 AADL形式语义3.2.3 AADL模型分析与验证3.3 实现阶段的AADL研究3.3.1 基于AADL的模型驱动开发3.3.2 代码生成3.4 部署与后开发阶段的AADL研究 一、AADL的诞生 UML等ADLs(.

qq_42717239的博客 5139

【WRF编译-Lab1】使用自动脚本编译WRF:错误总结

WRF编译过程及错误总结

WW、forever的博客 82

S32 Design Studio for Power Architecture + 风河编译器 生成库文件

本文描述了使用powerpc版本的S32DS和风河编译器生成静态链接库。库文件可在新工程中加载调用,详见参考1。对于其他版本的S32DS和编译器也有参考价值。

weixin_54978309的博客 644

21、深入了解SELinux安全系统与/proc文件系统

本文深入探讨了SELinux安全系统与/proc文件系统的原理及实际应用。详细介绍了SELinux的安全上下文、域转换、运行模式、角色管理以及策略查看工具seinfo的使用;同时解析了/proc文件系统的结构与功能,涵盖进程信息查看、系统资源监控及性能优化方法。结合SELinux与/proc的协同应用,提供了系统问题排查流程与安全管理最佳实践,帮助用户提升Linux系统的安全性与稳定性。

ik678901234的博客 61

【调优】OpenClaw从零开始高阶调优之skill篇

本文详细解析了OpenClaw技能系统的核心机制。首先介绍了技能的分层加载逻辑,按照优先级从高到低依次为:工作区专属技能、全局共享技能、出厂自带技能和自定义路径技能。通过流程图展示了从扫描到注册的完整加载流程,并解释了同名技能覆盖规则。随后深入剖析了SKILL.md文件结构,包含YAML元数据定义技能属性和Markdown正文说明使用方法,以公众号写作技能为例展示了具体配置。文章还提供了技能优先级切换的实用技巧,帮助用户灵活管理不同版本的技能。

海兰 239

CPP-Summit-2020 学习:System Architecture And Design

定义:空间是定义可能性的关注梯度(gradient of concerns)。 用数学的角度理解,如果空间是多维的,每一个维度对应一个关注点,那么空间 SSS 可以表示为一个向量空间: S=(c1,c2,…,cn) S = (c_1, c_2, \dots, c_n) S=(c1​,c2​,…,cn​) 其中 cic_ici​ 表示第 iii 个关注点,nnn 是关注点的数量(维度)。空间会影响:空间通常是 N 维的,即多维的,每个维度对应一个不同的关注点。 空间的隐含性 (Space implies)

虾球 1293

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

System Design & Architecture 1

• The UI/UX team refined 改进 the design of the dashboard to improve user experience and accessibility 可访问性 across different devices.元素在空间、页面或屏幕中的安排或设计,特别是在结构、对齐和组织方面,以实现有效的沟通。在审查了提出的架构之后,该团队提出了改进建议,以确保系统具有更好的容错性和负载平衡。UI/UX团队改进了仪表板的设计,以改善不同设备的用户体验和可访问性。

weixin_42714245的博客 658

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Design Compiler:使用analyze/elaborate命令读取RTL设计

本文详细阐述了Design Compiler中analyze与elaborate命令的使用方法。analyze用于语法检查并生成中间文件(如.pvl、.syn),可通过-work或-library指定存储路径;elaborate则构建设计层次结构,优先使用link_library中的设计,并支持参数覆盖(-parameters)。建议在elaborate后显式调用link和check_design以确保设计完整性。

保持终身学习的能力,温故而知新 3654

Clean-Architecture-And-Domain-Driven-Design-Solution-Template 的安装和配置教程

Clean-Architecture-And-Domain-Driven-Design-Solution-Template 的安装和配置教程 1. 项目基础介绍和主要编程语言 本项目是一个基于整洁架构(Clean Architecture)和领域驱动设计(Domain-Driven Design,简称DDD)的解决方案模板。它旨在提供一个清晰、模块化的项目结构,帮助开发者在构建复杂应用程序时保持代...

gitblog_00940的博客 414

digital design and computer architecture 大纲

maybe 最好的digital design book,抓紧时间看完!

CHRIStopheraa的博客 1108
上一篇: Artificial Intelligence: A modern approach 3rd--Learning notes
下一篇: 关于回溯剪枝算法的讨论
metasearch
博客等级 码龄21年 158粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值