2.1 项目的整体架构,项目搭建,也叫做 系统设计

如何深度理解整体架构设计? 一. 什么是架构和架构本质        在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。        Linux... 阅读详情



一个系统设计的例子:

3DM客户端系统设计

 

 

一、系统设计

 

1.1、整体架构

 

3DM客户端系统按照逻辑划分,主要分为四层,基础类库层,数据层,业务逻辑层,UI展示层。每个层次由不同的模块组成(图1)。


                                                                 

                                                                             (图1)

 

 

1.1.1、基础类库层

(简写)

 

功能说明:

 

包含的内容: 网络请求, JSON数据的解析

 

1.1.1.1、网络请求

 

选型:

        网络请求采用Apache HttpClient 进行网络请求的支持。

对于使用Volley类库的方式,就可以定义多种Request来完成Volley方式的请求。

       采用HttpClient可以更加灵活的定义各种网络接口请求,同时Android系统本身就包含HttpClient的实现。

 

1.1.1.2、JSON解析

 

选型:JSON解析需要针对服务器返回的数据格式进行处理,只要能够将JSON解析成为对象,并且能够更新到UI界面即可。经过分析,接口返回的数据无法适应FastJSON/GSON的常用解析方式,

因此最终确定 JSON 解析采用 org.json来进行。

 

 

 

1.1.2、数据层

1.1.2.1、数据实体定义

 

文字说明和类图,实际的字段参考03-服务器接口文档



 
每个实体要根据应用的内容来选择相应的字段。

 

1.1.2.2、数据库表设计

 

1.1.2.3、数据实体解析方式

 

 

 

 

 

1.1.3、业务逻辑层

 

1.1.3.1、服务器接口

 

1.1.3.2、请求任务的设计


 

 

 

 

1.1.4、UI展示层

1.1.4.1、UI整体框架

 

根据个人的分析与设计,来进行。

不推荐使用 TabActivity了。

 

 

 

1.1.4.2、顶部Banner的设计

 

循环显示几张图片,每一个点击之后,访问相应的内容。

 

滑动下面的列表,Banner跟着移动到上面去。

 

如果采用ListView + Header View的话,onItemClick 如果处理position变化。

 

1.1.4.3、UI性能的支持

 

Fragment的 onCreate, onCreateView, onResume 这三个方法对于数据加载的影响

 

需要进行优化。



++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

我自己的一些记录:个人理解

项目第一步:

1: 工具类,网络,支撑
这里的支撑,可以想象为例如greenDao的generator阿

例如ximalaya的项目:
现在我们先将第三方框架导入。这个其实是底层需要做的。(这个是第一步)
网络框架-》retrofit,retrofit2:convert-gson:2.0.0-beta3
图片加载-》fresco,fresco.0.9.0
数据库框架-》greendao,de.greenrobot:greendao:2.1.0

recyclerView-》com.android.support:recyclerview-v7:23.1.0
design->com.android.support:design:23.1.0


导入的时候可能需要它下载:
下载后的路劲是类似于:C:\Users\XUE\.gradle\caches\modules-2\files-2.1\com.facebook.fresco\fresco\0.9.0

因为数据库使用了greendao,所以数据库需要代码生成的。
新建一个model,选择Java Library,名字和classname 可以默认
Library name->lib
Java class name-> MyClass


然后路劲是在lib 下面的src-----》example下面的

----------------
注意了,如果是因为在同步的时候添加了东西,但是没有出来效果,例如刚才我在同步时的时候添加了model,但是在项目上面按F4的时候没有看到lib这个model,
这个时候只要点开右边的gradle菜单,点击上面的刷新按钮就好了。
----------------

点击项目,按F4,点击左边列表的lib,然后添加dependency,(这个也属于第一步)
选择de.greenrobot:greendao-generator:2.1.0
因为greendao 需要通过这个generator来生成DAO的文件。(是DAO文件吗?还是什么文件?)


项目第二步:

数据结构,解析


这个还需要


例如 需要涌动啊什么entity,例如,使用的是list还是map之类的。
例如ximalaya,我们就需要用到的数据结构是:




那么现在需要那些实体类呢:
发现的实体类:
热点图的实体类
推荐信息的实体类。
专辑实体类
音频实体类。
-------------------------
数据库里面的实体类一共是5个,
AlbumEntity.java
DiscoverEntity.java
FocusImageEntity.java
RecommendEntity.java
TrackEntity.java
----------
HomeEntity里面的包含了:




+++++++++++++++++++++++++++++++++++++++++++++
注意了,实例的名字一定要和json里面的名字一样,不一样就不会获取了。
private DiscoveryColumns  discoveryColumns;
        private RecommendEntity editorRecommendAlbums;
        private HotRecommendEntity hotRecommends;
        private FocusImages focusImages;
        private BulletArea bulletArea;
+++++++++++++++++++++++++++++++++++++++++++++

项目第三步:

adapter等 例如考虑到databiding的多布局的adapter,




宅急送 项目第一天 环境搭建 1. 项目分析1.1. 产品和项目区别?产品 先投资 ,做出产品, 再去销售 (QQ、 360 ) 项目 投标 ,分为甲方 (项目应用方)和乙方 (项目开发方), 甲方先给乙方 项目前期款, 交付项目后,收取尾款 。 1.2. BOS项目规模项目周期 : 1年多 纯编码时间 : 3个多月 , 项目组开发人员 :20多人 1.3. 系统分类OA 自动化办公 CRM 客户关系管理 ERP 阅读详情

相关推荐

AI中台系统设计方案探讨

集成JupyterLab、低代码建模工具(如H2O.ai)、预训练模型库(Hugging Face、PaddleHub)。:通过REST/gRPC接口封装AI能力(如OCR、语音识别),支持流量控制与鉴权(如Kong、Apigee)。:服务注册发现(Consul)、熔断降级(Hystrix)、监控告警(Prometheus+Grafana)。:分布式存储(如HDFS、Ceph)与对象存储(如S3、OSS),支持海量数据高速读写。加密传输(TLS)、动态脱敏(如数据掩码)、访问控制(RBAC)。

reset2021的博客 1035

项目架构简介

本文介绍后台应用的各种架构,以及各架构的优缺点对比。

SunnerChen的博客 1606

Java 版 B2B2C 商城技术搭建剖析

在应用层面,防止 SQL 注入、XSS 攻击、CSRF 攻击等常见的安全漏洞,对用户输入的数据进行严格的过滤和验证。通过合理运用 Java 技术和相关框架,结合业务需求,能够打造出一个高性能、高可用、安全可靠的 B2B2C 商城系统,为企业的数字化转型和业务发展提供有力支持。推荐功能基于用户的浏览历史、购买记录等数据,采用协同过滤算法或基于内容的推荐算法,为用户推荐个性化的商品,提高用户的购买转化率。在用户注册时,需对用户输入的信息进行严格的验证,如用户名、密码的格式验证,以及验证码的校验,防止恶意注册。

hunzi_1的博客 766

1-项目整体架构

关于我 曾经就职于蚂蚁金服,多年的后端开发经验,对微服务、架构这块研究颇深,同时也是一名热衷于技术分享、拥抱开源技术的博主。 个人技术公众号:码猿技术专栏 个人博客:https://chenjiabing666.github.io 前期一直在更新《Spring Cloud 进阶》这个专栏,很多读者觉得知识太杂了,想要我出个系统的实战项目将这些知识、中间件串联起来实战一下,这样能够加深理解。 在春节期间自己抽时间将新实战项目撸了起来,这是一个博客项目,系统架构如下图: [外链图片转存失败,源站可能有防盗链

码猿技术专栏 3857

48、机器人运动与系统设计:从足部顺应性到整体架构

本文探讨了足部顺应性对机器人姿势稳定性的影响,分析了足部尺寸与力分布的关系,并通过弹簧模型优化足部摆动以提升行走稳定性。同时,提出基于具身代理的机器人系统设计方法论,采用分层有限状态自动机和子系统转换函数构建系统架构,实现控制软件的关注点分离。研究还总结了足部设计与系统架构对运动性能和应用场景的综合影响,并展望了智能化、一体化和生物仿生等未来发展趋势,指出了技术、成本及伦理安全方面的挑战。

nginx7reverse的博客 73

01.项目总体概述与框架设计.rar

基于学员管理系统由于文件上传有大小限制,后续会继续上传

项目-整体架构

前端架构 用户请求到达网站应用服务器之前的环节 浏览器优化 浏览器本地页面缓存 合并http减少请求次数 页面压缩 CDN 将静态页面分发到离用户最近的cdn服务器 动静分离,静态资源独立部署 静态资源(js,css,网站logo,按钮...

Tech Station 3945

疾病负担研究(GBD)——如何使用joinpoint软件计算AAPC

疾病负担研究(GBD)——如何使用joinpoint软件计算AAPC

weixin_44240228的博客 1万+

第一章节:庖丁解牛!项目总体架构

摘要:Mementodb是一个兼容Redis协议的磁盘KV数据库项目,对外提供Redis接口,内部采用B+树索引和页管理实现持久化存储。项目采用模块化设计,包含核心存储引擎、索引层、内存管理、网络服务等模块。核心流程包括SET和GET操作,通过B+树索引定位数据页,支持缓冲池优化和异步磁盘IO。系统架构遵循分层设计原则,从网络层到存储引擎层逐级调用。该项目让用户以Redis方式享受数据库的持久性和大容量存储特性。

2301_81759468的博客 1026

“三进制”bonsai27b+NInfer=6g显存闪电侠(token真的自由了!)

本文将1.58-bit三元大模型Bonsai27B成功移植至NInfer推理引擎,并在RTX 4080 SUPER上实现100+ token/s的极速推理。通过自研补丁扩展NInfer支持Ada架构与三元量化格式,解决激活布局、行置换等关键bug,实测PPL 6.445,单流吞吐达96.7–130.8 t/s,20题基准得分16/20。附完整复现包(含文档、工具、源码补丁),零权重分发,助力垃圾显卡跑通27B级模型。

shensanshu的博客 1万+

STM32/GD32以太网开发避坑指南:ZLG EPORTM模块调试实战(含YT8512H配置)

本文针对STM32/GD32平台使用ZLG EPORTM模块进行以太网开发时遇到的常见问题,提供了详细的调试实战指南。重点解析了从传统PHY驱动迁移到YT8512H芯片的核心步骤,包括软件复位延时、RMII时钟配置等关键陷阱,并分享了LWIP集成与稳定性验证的实用经验,帮助开发者高效避坑。

rice5的博客 1163

《深入浅出SpringCloud》SpringCloud整体架构概览

什么是SpringCloud 目标 协调任何服务,简化分布式系统开发。 简介 构建分布式系统不应该是复杂的,SpringCloud对常见的分布式系统模式提供了简单易用的编程模型,帮助开发者构建弹性、可靠、协调的应用程序。 SpringCloud是在SpringBoot的基础上构建的,使开发者可以轻松入门并快速提高工作效率。 SpringCloud为开发人员提供了快速构建分布式系统架构的工具,例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,领导选举,分布式会话,集群状态等。

ysj_2021的博客 1838

【超详细】安装了anaconda后,Ubuntu18+COLMAP配置疯狂踩坑踩至魔怔的记录

本博客收集了博主在Ubuntu18系统中编译COLMAP所遇到的困难,提供了解决方法,也收集了目前网上大多数的坑,除此之外,也为Ubuntu18系统下COLMAP的安装提供了一种新的路径。

Stay_Foo_lish的博客 3511

系统设计、概要设计与详细设计的区别

最高层次的设计,关注整个系统的架构和组成。

2301_81882590的博客 3398

原生H5如何优雅拦截浏览器返回事件:全面屏侧滑退出的解决方案

本文深入探讨了在原生H5中如何优雅地处理浏览器返回事件,特别是针对全面屏手机侧滑返回手势的解决方案。核心是利用HTML5 History API,通过`history.pushState`方法在历史栈中插入记录,并监听`popstate`事件,从而实现在用户侧滑时平滑关闭全屏预览层而非直接退出页面,有效提升了移动端H5应用的原生交互体验。

i0j1k2l3m的博客 270

CH341的I2C流模式(StreamI2C)到底怎么用?从EEPROM读写到自定义设备,一篇讲清参数配置逻辑

本文详细解析了CH341的I2C流模式(StreamI2C)的使用方法,从EEPROM读写到自定义设备的参数配置逻辑。通过深入分析I2C协议基础、StreamI2C参数映射关系及典型设备配置示例,帮助开发者快速掌握StreamI2C的应用技巧,解决实际开发中的常见问题。

weixin_30932215的博客 449

分布式系统设计开源项目教程

分布式系统设计开源项目教程 1. 项目介绍 本项目是一个精选的分布式系统设计方法集合,旨在帮助软件工程师在面试中更好地解决系统设计问题。它涵盖了从 Instagram、Twitter 这样的社交媒体系统设计,到 Uber、Lyft 这样的出行服务系统设计,再到 Web 爬虫、云文件存储等多样化的系统设计案例。 2. 项目快速启动 为了快速启动本项目,您需要先确保您的开发环境已经准备好。以下是一个基...

gitblog_00952的博客 577

MLX90640 热成像 STM32

MLX90640 热成像

zhaocundang's blog 5007

ROS2机器人任务级导航仿真系统设计与实现(预告)

ROS2机器人任务级导航仿真系统设计与实现一、背景与意义随着机器人技术的不断发展和智能化需求的提高,机器人在各个领域中的应用越来越广泛。其中,机器人导航系统是实现机器人自主移动、完成各种任务的核心技术之一。传统的导航系统通常只关注从起点到终点的路径规划和控制,但在实际应用中,机器人往往需要执行更为复杂的任务,如多区域巡检、动态任务调整等。因此,设计和实现一个能够支持任务级导航的机器人系统具有重要的现实意义。二、研究目标与内容。

zhangrelay的专栏 2750

Coze智能体开发:扣子智能体设置多Agent模式

在扣子中创建智能体后,智能体默认使用单 Agent 模式。在单 Agent 模式下处理复杂任务时,你必须编写非常详细和冗长的提示词,而且你可能需要添加各种插件和工作流等,这增加了调试智能体的复杂性。调试时任何一处细节改动,都有可能影响到智能体的整体功能,实际处理用户任务时,处理结果可能与预期效果有较大出入。

王国平的博客 3712

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

技术文档的规划布局:如何确定文档的整体架构

技术文档的规划布局是文档质量的基础,合理的结构安排能够帮助读者迅速理解文档内容,并有效传达技术细节。在规划技术文档时,首先要明确文档目标与受众,结合文档类型设定章节结构,确保逻辑顺序清晰、层次分明。同时,通过突出重点和良好的导航功能,提高文档的可读性和实用性。掌握这些规划布局的技巧,将大大提升你的技术文档的质量和影响力。

HG的博客 2205

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

1. Tomcat整体架构及其设计精髓分析

tomcat:应用服务器+servlet容器server.xml开源的Java Web 应用服务器,实现了 Java EE(Java Platform Enterprise Edition)的部 分技术规范,比如 Java Servlet、JavaServer Pages、Java Expression Language、Java WebSocket等。Tomcat核心: Http服务器+Servlet容器Servlet规范:Servlet接口+Servlet容器。

俺就是菜的很的博客 1598

fe-interview前端低代码平台:可视化搭建系统设计

在当今快速迭代的互联网产品开发中,前端开发面临着巨大的挑战:业务需求变化频繁、开发周期紧张、人力资源有限。传统的编码方式虽然灵活,但重复劳动多、开发效率低。根据fe-interview项目中收集的6000+面试题数据显示,超过70%的前端开发者表示他们在日常工作中需要处理大量重复的表单、列表、弹窗等基础组件开发工作。 低代码平台(Low-Code Development Platform)正是为...

gitblog_00871的博客 631

【医疗健康项目】传智健康项目(一)

传智健康项目是一套医疗健康项目,包括前台预约系统以及后台管理系统,基于SSM实现,采用Dubbo+ZooKeeper部署。前台预约系统包括:用户登录、体检预约、短信验证、自动注册、套餐详情、预约成功展示等模块。后管理系统包括:用户登录、检查项管理、检查组管理、套餐管理、预约设置、会员数量统计、套餐占比统计、运营数据统计、运营数据统计导出Excel、PDF文件等模块。

Chovy_pyc的博客 1万+

彻底搞懂!Transformer整体架构 !!

今儿和大家聊一个非常重要的话题:Transformer整体架构,记得收藏!~Transformer编码器-解码器堆叠结构与信息流动路径,希望通过这部分内容,让大家理解Transformer的整体架构。

2401_85328934的博客 1092

IT项目管理之系统设计

IT项目管理之系统设计 项目于11月下旬开始进入系统设计阶段,一直到1月下旬提交系统设计说明书。而实际上只是最重要的终端系统进入系统设计阶段,知识库系统仍处在苦苦挣扎的需求分析阶段。 老实说,有系统设计阶段吗?我深表怀疑,因为包括很多过了CMM5的公司系统设计文档,要么是系统

博文视点(北京)官方博客 2019
上一篇: JSONView 插件的添加。给Chrom浏览器添加JSONView的插件
下一篇: ximalaya
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值