iOS平台(移动平台)架构问题

尴尬的遭遇

自己从内心觉得对项目分层是一种非常好的思想,于是便在网络中寻找有关iOS项目分层的资料. 无奈,网络中关于iOS的项目架构资料非常少(最后证明我大方向走错了了,架构应该是独立于平台的,所以"iOS"的架构资料是找不到的),就算有几篇博文,也是自己琢磨出来的野路子.(个人思想比较保守,不够权威的东西不能让我信服,而事实上,每个人都能看到那些博文是有过度设计的问题的)

后来尝试在 code4app群里讨论这个问题,结果群里几个发言活跃的群友对这个架构问题"免讨论"

然后在 "跟MJ完虐iOS3.0"这个群中,更是遭到了红果果的嘲笑:MVC就够了,还分什么层?

并无刻意谈论群友,只是想拿事实举例:现在相当一部分开发者,对架构和分层这个东西认知不足.然后, 自己深知分层的好处,虽然有些灰心,但不至于放弃.最终,发现了Martin Fowler写的 <<企业应用架构模式>>一书,顿觉豁然开朗.

对于移动设备来说,分层是否有必要?

我最早是做java的,接触到的项目比较大,会有架构设计. 那么转到移动,就会考虑,移动是否也真的需要架构设计

只要是软件,就会有需求的变更,那么分层就显得非常有必要了. 即,我们需要为自己的软件留一条"后路",解耦合,让其可扩展.

低耦合企业级系统架构涉及及移动平台的分层架构设计

从大方面来讲,架构是必要的,关键是怎么去执行.

一个系统,采用什么样子的结构,有哪些组件,组件之间什么关系,和环境之间有什么关系,这都是设计架构(或者分层)需要考虑的问题.

目的都是为了建立低耦合的企业级应用系统,低耦合的系统的好处是细化开发较色,提高开发效率,提高扩展性

需求是经常变化的,导致了系统不能满足需求变化的需求,因为是强耦合的,模块与模块之间,类和类之间.

低耦合的好处太多了

  • 可扩展性强
  • 效率高
  • 适应用户需求的变化

这样我们系统维护工作就少,就是比较灵活

什么是企业级系统

这个问题在我的架构的基本概念和演化-博客园(或者csdn的架构的概念和最基本的三层架构-iOS企业应用架构设计)一文中讨论过,但是这里还是有必要再提一下:

系统比较庞大,涉及到前端,后台(数据库,中间件,实际的设备)

现在的 java .net 都是可以构建企业级系统的.

设计的注意点

设计一定要考虑的非常周到,这样就存在一个文件,需要降低耦合度.分层,每层里面合理的运用设计模式 这就是:架构设计和设计模式

每层之间的东西必须是具有类似功能的类和子系统的集合.

可以分四层,五层,甚至一层,二层. 每种分法必须要有自己的道理.

比如你的房子,要开个窗户,结果就塌了,就这说明是不合理的设计

此文中很多想法和灵感源自关东升老师的一节视频,视频在 51cto可以搜索到,但是付费的,本人只是学习了免费的第一节的内容,便觉得受益匪浅,更是在尝试寻求老师分层不合理性的时候,发现了Martin的<<企业应用架构设计>>一书,开始了更远的探究.在此感谢老师. ---我

时间: 2024-11-05 16:38:13

iOS平台(移动平台)架构问题的相关文章

基于token的多平台身份认证架构设计

基于token的多平台身份认证架构设计 1   概述 在存在账号体系的信息系统中,对身份的鉴定是非常重要的事情. 随着移动互联网时代到来,客户端的类型越来越多, 逐渐出现了 一个服务器,N个客户端的格局 . 不同的客户端产生了不同的用户使用场景,这些场景: 有不同的环境安全威胁 不同的会话生存周期 不同的用户权限控制体系 不同级别的接口调用方式 综上所述,它们的身份认证方式也存在一定的区别. 本文将使用一定的篇幅对这些场景进行一些分析和梳理工作. 2   使用场景 下面是一些在IT服务常见的一些

「Unity」与iOS、Android平台的整合:3、导出的Android-Studio工程

本文属于「Unity与iOS.Android平台的整合」系列文章之一,转载请注明出处. Unity默认导出的是Android-Eclipse工程,毕竟Eclipse for Android开发在近一两年才开始没落,用户量还是非常巨大的. 个人认为AndroidStudio非常好用,能轻易解决很多Eclipse解决不了或者很难解决的问题. 所以我将Unity导出的Andoid工程分为Eclipse和AndroidStudio两部分. 不过我之后的相关内容都会使用AndroidStudio,希望依然

「Unity」与iOS、Android平台的整合:2、导出的Android-Eclipse工程

本文属于「Unity与iOS.Android平台的整合」系列文章之一,转载请注明出处. Unity默认导出的是Android-Eclipse工程,毕竟Eclipse for Android开发在近一两年才开始没落,用户量还是非常巨大的. 个人认为AndroidStudio非常好用,能轻易解决很多Eclipse解决不了或者很难解决的问题. 所以我将Unity导出的Andoid工程分为Eclipse和AndroidStudio两部分. 不过我之后的相关内容都会使用AndroidStudio,希望依然

「Unity」与iOS、Android平台的整合:1、导出的Xcode工程

本文属于「Unity与iOS.Android平台的整合」系列文章之一. 本文主要讲解Unity导出的Xcode工程的目录结构. 我所用软件的版本: Unity 5.3.5f1 Xcode 7.3 前导步骤 第一步,创建一个新的工程 Build_to_iOS_Android 第二步,创建一个新文件 CSharpToCPP.cs using UnityEngine; public class CSharpToCPP { public void Func(int num) { if (num < 1)

【REACT NATIVE 系列教程之七】统一ANDROID与IOS两个平台的程序入口&&区分平台的组件简介

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/react-native/2260.html       本篇介绍两个细节:       1. 关于如何将index.android.js 与index.ios.js统一管理起来.       2.  Platform 组件的简单介绍与使用   一:将index.android.js 与index.ios.js统一管理起来. 由于React本身

(转)微服务架构 互联网保险O2O平台微服务架构设计

http://www.cnblogs.com/Leo_wl/p/5049722.html 微服务架构 互联网保险O2O平台微服务架构设计 关于架构,笔者认为并不是越复杂越好,而是相反,简单就是硬道理也提现在这里.这也是微服务能够流行的原因,看看市场上曾经出现的服务架构:EJB.SCA.Dubbo等等,都比微服务先进,都比微服务功能完善,但它们都没有微服务这么深入民心,就是因为他们过于复杂.简单就是高科技,苹果手机据说专门有个团队研究如何能让用户更加简单的操作.大公司都是由小公司发展起来的,如果小

「Unity」与iOS、Android平台的整合:4、与iOS、Android的交互理论篇

本文属于「Unity与iOS.Android平台的整合」系列文章之一,转载请注明出处. 本文主要讲解Unity与iOS.Android平台进行交互的理论基础. 零.前言 在Unity端使用的是C# 在iOS端使用的是Object-C 在Android端使用的是Java 你要问我为什么? 因为我乐意啊~ 一.交互需求 代码与代码之间的交互需求抽象之后是两个最基础的要求: 1.调用函数 2.传递数据 所以我们只需要在Unity与iOS.Android之间实现这两个基础要求即可. 二.交互原理 首先,

三重Des对称加密在Android、Ios 和Java 平台的实现

引言 如今手机app五彩缤纷,确保手机用户的数据安全是开发人员必须掌握的技巧,下面通过实例介绍DES在android.ios.java平台的使用方法: DES加密是目前最常用的对称加密方式,性能优于非对称加密(RSA),是手机app请求数据加密的优先选择.   DES简介: DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法, 算法的入口参数有三个:Key.Data.Mode. Key:为7个字节共56位,是DES算法的工作密钥; Data:

IOS JPush 集成步骤(极光远程推送解决方案,支持android和iOS两个平台)

●  什么是JPush ●  一套远程推送解决方案,支持android和iOS两个平台 ●  它能够快捷地为iOS App增加推送功能,减少集成APNs需要的工作量.开发复杂 度 ●  更多的信息,可以参考JPush官方网站:https://www.jpush.cn ●  集成iOS SDK的步骤可以参考 ●  http://docs.jpush.cn/pages/viewpage.action?pageId=2621727 JPush的集成步骤 注册帐号,创建应用 填写iOS App的必要信息