`
eric_weitm
  • 浏览: 242712 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

架构设计思考

阅读更多

架构设计思考
    一个大项目需要有人做全局的架构设计,也就是需要所谓的架构师,通过几个项目的历练,现对架构的设计做一些思考的整理。
一、架构设计要做的事情
    1、横向切分抽象的层次和功能间的依赖关系,假设实现语言是java,产出可能是子工程、包名、子包名、接口名等。这一部分也涉及到选用哪些开源的组件或代码
    2、纵向的切分子系统、子模块、服务等
    3、各个部分间的交互和解耦,包括service层面的,也包括一个子系统内部的
二、客户端包括哪些可交互的东西
    touch等硬件事件、UI和效果、timer等时间相关的逻辑、logic系统、model、网络交互
三、客户端几部分之间的交互和设计
    MVC分离:硬件事件和UI交互(如果os已经封装好了控件很简单、如果没有封装好,需要自己设计event系统);UI被动刷新,是logic的观察者和反应者;logic(一般是单例或static函数)由timer、网络和UI(比如是否看过等UI上面的逻辑)驱动;timer和网络自我驱动,并分发事件;model为logic服务,提供cache、序列化、反序列化、加解密、持久化等服务;实际上核心就是一个观察者模式
四、android客户端的横向切分
    1、基础功能
        common
        common.nio
        common.log
        common.compression
        common.security
        common.security.md5
        common.security.rsa
        common.security.des
            .
            .
            .
    2、服务封装
        service.net
            NetworkState isWIFIConnected之类的
        service.http
            AsyncWWW等,可以考虑 loopj框架
        service.asyncIO
        service.cache
            MediaScanner
            DiskLruCache
            CacheManager
        service.webview
        service.versioncontrol
            SOManager
        service.sdk
        service.sdk.share
        service.sdk.share.weixin
        service.sdk.share.weibo       
        service.sdk.pay
        service.sdk.pay.alipay
        service.sdk.push
        service.sdk.push.baidu
        service.sdk.login
        service.statistics
            Device
    3、某一类app具有的服务,如视频app需要的服务
        service.video.nativeplayer
        service.video.ad
        service.video.p2p
        service.video.thumbnailer
        service.video.subtitle
        service.video.danmaku
        service.video.drm
        service.video.grey
    4、app的mvc架构
        frame
    5、具体的app实现
        app
        app.base
            BaseActivity
            ActivityManager
            BaseActivityLogic
        app.impl.models
        app.impl.logicSystem
        app.impl.service
        app.impl.api
        app.impl.api.net
            HttpClient
            MsgFactory
        app.impl.ui
        app.impl.ui.fragment
        app.impl.ui.animation
        app.impl.ui.activity
        app.impl.ui.adapter
        app.impl.ui.custom
        app.impl.ui.custom.control
        app.impl.ui.custom.view
            AsyncImageView
        app.impl.ui.custom.layout

五、服务端包括哪些东西
    数据持久化、cache、model、logic、网络框架和异步IO、timer
六、服务端几部分之间的交互
    持久化、cache为model服务;网络和timer驱动logic;一般server会切分为service,service内部都是事件回调的触发logic,logic基于model等实现所谓的逻辑
七、基于TCP的服务端横向切分
    1、基础封装
        common
        common.nio
        common.log
        common.compression
        common.security
        common.security.md5
        common.security.rsa
        common.security.des
        common.executer
        common.tcpPool
        common.scheduler
        common.asyncIO
        common.IDGenerator
        common.route
        common.timer
    2、服务和组件的封装
        component.netty
            AsyncTcp
        component.redis
        component.redis.connectionPool
        component.mysql
        component.mysql.connectionPool
        component.load
        component.config
        component.bootstrap
        component.loadbalance
        component.heartbeat
        component.sql
        component.rpc
    3、基础聚合
        base.app
        base.service
    4、具体服务的实现
        app
        app.base
        app.impl
        app.impl.subsystem

分享到:
评论

相关推荐

    软件架构设计分层模型和构图思考.docx

    软件架构设计分层模型和构图思考 软件架构设计是一个复杂的问题,需要架构师具备系统思维、结构化思维、编程思维等多种思维模式。架构设计的核心作用是建立业务现实世界和抽象的 IT 实现之间的一道桥梁,要求架构师...

    百度林仕鼎:架构设计的一些思考

    根据提供的标题、描述以及部分文档内容,我们可以提炼出关于架构设计的重要知识点,主要涉及存储、分布式、服务和计算模型等方面。 ### 架构设计的重要考量因素 #### 1. **存储设计** - **数据布局**:数据如何在...

    思考软件-创新设计 A段架构师的思考技术

    《思考软件,创新设计——A段架构师的思考技术》介绍当今全球正蔚为风潮的设计思考(Design Thinking)技术,陪伴你从目前的编程或设计岗位进入架构设计(A段和B段),踏上灿烂的软件(程序)生涯的新旅程。...

    现代架构设计需求和方案思考

    ### 现代架构设计需求和方案思考 #### 传统稳定架构设计方案的局限性 在传统的架构设计中,人们往往采用一种稳定不变的设计方案来应对不断变化的业务需求。这种设计通常包括分层架构(如数据层、服务层、中间件层...

    嵌入式系统软件架构设计.pdf

    比较全面的阐述嵌入式系统软件架构设计的资料,pdf版本,文字版,完整无广告。 本课程是针对嵌入式软件开发的特点,讨论架构设计的思路和方法。试图给大家提供一种思想,启发大家的思维。框架,自动化代码生成和...

    系统架构设计师真题(2009-2018年).zip

    《系统架构设计师历年真题详解》 系统架构设计师这一职业在信息技术领域中扮演着至关重要的角色,他们负责设计和规划企业或组织的信息系统结构,确保其高效、稳定且易于扩展。为了帮助备考者深入理解这一职位的要求...

    互联网技术架构设计原则 技术架构设计原则

    在互联网技术领域,架构设计是构建高效、稳定且可扩展系统的基石。本文将深入探讨互联网技术架构设计的一些核心原则和概念,旨在提升架构思维并优化系统设计。 首先,我们需要理解“道”与“术”的关系。道是事物的...

    架构设计经典书籍

    在IT行业中,架构设计是构建复杂软件系统的关键环节,它涉及到如何组织和管理代码,以及如何确保系统的可扩展性、可维护性和性能。这两本经典书籍——《设计原本》和《架构之美》提供了深入的洞察力,帮助读者理解并...

    2022年系统架构设计师考试真题.zip

    《2022年系统架构设计师考试:深度解析与备考指南》 系统架构设计师考试是一项针对信息技术专业人士的重要认证,旨在评估和验证考生在设计、构建和优化复杂系统架构方面的技能和知识。2022年的考试无疑是对考生们...

    百度林仕鼎:架构设计与架构师(演讲稿)ppt

    标题和描述中的“百度林仕鼎:架构设计与架构师(演讲稿)”明确指出了本次分享的主题聚焦于架构设计及其对于架构师角色的意义。在IT领域,尤其是软件开发和系统构建过程中,架构设计扮演着至关重要的角色,它不仅...

    架构设计文档实例

    总结,架构设计文档实例为我们揭示了一个成功的核心支撑系统背后的架构思考和决策过程。通过对各个方面的深入剖析,我们可以学习到如何构建一个稳健、可扩展且高效的系统,这对于任何IT专业人士来说都是宝贵的知识...

    系统架构设计师-真题附答案(2013-2018).zip

    《系统架构设计师考试真题详解》 在信息技术领域,系统架构设计师是一个至关重要的角色,他们负责设计、规划和实施复杂的计算机系统,确保系统的高效、稳定和可扩展性。为了培养和选拔这一领域的专业人才,我国自...

    前端团队管理 前端基础架构的实践和思考 共22页.pdf

    前端团队管理与前端基础架构的实践和思考 前端团队管理是指在软件开发过程中,负责前端开发的团队如何更好地发挥职能作用,提高团队的效率和质量。本文将探讨前端团队的职能转变、前端基础架构的构建和实施,以及...

    架构设计一些思路

    本篇将基于标题"架构设计一些思路"和提供的标签"源码"、"工具",结合压缩包内的文件名,探讨一些架构设计的实践与思考。 首先,我们看到一个名为`HttpClientUtil.java`的文件,这通常意味着它是一个HTTP客户端工具...

    系统架构设计师历年真题2009-2018有答案和解析.rar

    《系统架构设计师历年真题2009-2018有答案和解析》这个压缩包文件是针对软考(全国计算机技术与软件专业技术资格(水平)考试)中"系统架构设计师"这一高级职称的备考资源。这个压缩包包含自2009年至2018年间的全部...

    系统架构设计师考试辅导资料

    《系统架构设计师考试辅导资料》是一份全面的备考资源,包含三部分:《系统架构设计师教程(第4版)》、《历年系统架构设计师考试试题分类精解(综合知识篇)》以及《历年系统架构设计师考试试题分类精解_案例分析与...

    2011年下半年 系统架构设计师 试题及答案详解.rar

    《系统架构设计师试题及答案详解》是一份针对2011年下半年系统架构设计师考试的重要参考资料。这份压缩包包含了综合知识试题、案例分析以及论文题目及其详细的解答,旨在帮助备考者全面理解和掌握架构设计的核心概念...

    系统架构设计师考试大纲(2009版)

    考试分为三个科目:信息系统综合知识(选择题)、系统架构设计案例分析(问答题)和系统架构设计论文(论文题),总时长为360分钟,全面考察考生的理论知识、实际操作能力和独立思考能力。 考生在备考过程中,不仅...

Global site tag (gtag.js) - Google Analytics