展开

关键词

之路 (二) —— APP分析(一)

回顾上一篇主要讲述了苹果原生iOS框,这一篇我们就说一下如果自己要完成一个APP,需要如何去设计。 ----设计结上划分我们说APP设计,但是设计需要我们怎么在结上进行划分呢?可以按照下面进行划分。 展现层:视页面渲染业务层:业务功能实现数据层:包括数据的下载(包含所谓的网络层)和转化,甚至持久化----好的衡量标准 代码整齐,分类明确 代码整齐是每一个工程师的基本素质,先不说你搞定这个问题的方案有多好 ----模式的选择前面根据需求对框分类,可以分为三层结甚至四层结,这里就说一下模式,可以说模式是实现的方式。常见的有MVC、MVVM和VOPER等。 好的模式可以让模块功能更清晰,维护起来也很方便。下面就一起看一下这几种模式:1.

11100

解:云原生应用The 12-Factor App准则

云原生应用的准则可以包括:● The 12-Factor App ● 微服务● 自服务的敏捷基础设施● 基于API的协作● 反脆弱性虽然The 12-Factor App准则描写细致全面,但内容较多 本文将用解的方式,演绎The 12-Factor App准则,便于读者领会。由于该准则已有中文版,且英文版定义了云原生应用领域的专有词汇(中用带下划线的英文表示),所以解文字使用了英文版。 该解基于笔者最近几年在辅导企业进行DevOps转型的经验和个人对The12-Factor App准则的理解,使用C4描述模型来诠释。 每张都是自说明的,无须另加解释。如文有所纰漏,求指点(wubin28@gmail.com),以做本文的持续改进。

80850
  • 广告
    关闭

    云产品限时秒杀

    云服务器1核2G首年50元,还有多款热门云产品满足您的上云需求

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    App经验总结(一)

    原文链接:http:keeganlee.mepostarchitecture20160303版权声明:本文刊载在《程序员》杂志2016年3期,版权归《程序员》所有,未经许可不得转载----因人而异, 不同的师大多会有不同的看法;也因项目而异,不同的项目需求不同,相应的也会不同。 然而,有些东西还是通用的,是所有师都需要考虑的,也是所有项目都会有的需求,比如API如何设计?如何分层?开发环境和生产环境如何分离? 从API开始一个App,最核心的东西,其实就是数据,而数据的主要来源,就是API。我之前负责的项目,因为API的坑已经受过了不少苦,因此,之后对App项目的设计我都会先从API开始。 接口版本控制我们已经不止一次因为接口发生变动而导致旧版本的App出错的问题,而且变动不一定是修改了接口本身,有可能是底层增加了一种新的数据结,接口把新数据也返回给客户端了,但客户端旧版本是解析不了的,

    51440

    App经验总结(二)

    原文链接:http:keeganlee.mepostarchitecture20160303版权声明:本文刊载在《程序员》杂志2016年3期,版权归《程序员》所有,未经许可不得转载分层API的设计完成之后 ,接下来我就会考虑App项目的整体了。 整体如何,我也曾经做过不少尝试。早期的时候,Android就是将所有操作都放在Activity里完成,包括界面数据处理、业务逻辑处理、调用API。 前面也说过,一个App的核心就是数据,那么,从App对数据处理的角色划分出发,最简单的划分就是:数据管理、数据加工、数据展示。相应的也就有了三层:数据层、业务层、展示层。 展示层是三层中最复杂的一层了,要考虑的东西远远多于其他两层,涉及的东西包括但不限于界面布局、屏幕适配、片资源、文本资源、颜色资源等等。在开发一段时间后,展示层出现代码混乱是最常见的。

    37830

    App经验总结(三)

    不过,只改包名和Bundle Identify是不够的,应用标和应用名称也要修改,不然安装之后很难区分哪个App是哪个环境的。 一般做法就是,非生产环境的App标就是在生产标的基础上添加一个环境标签,同时App的应用名称也是在生产的基础上添加环境后缀名。 另外,因为包名和Bundle Identify不同了,微信、微博、百度地等这些第三方平台也都需要为不同环境的App分别申请不同的appID。 iOS则可以通过创建多个环境的Target来实现环境分离,不同Target可以设置不同的Bundle Identify、Bundle display name、更换标。 写在最后至此,关于App方面的经验总结就先讲这么多了。其中,部分内容在我以往的博客上也已经有所体现,有兴趣的读者可以前往我的博客了解并欢迎参与讨论

    29950

    之路 (三) —— APP之网络层分析(一)

    回顾上一篇主要讲述了一个APP分析和设计,这一篇我们就说一下APP中的网络层。 ----网络层在APP中的地位网络层就是APP从服务器获取信息的一个媒介和方式,没有网络层,可以说APP就是一潭死水,有没有没有网络层的APP存在呢? ----网络层规范这里另外一个牛人写的也不错,先把地址贴出来 —— iOS网络层设计分享1. 在发起请求的时候进行绑定;在请求完成的时候进行删除;----我自己关于网络层的看法现在绝大多数APP都不会自己封装NSURLSession进行网络下载,基本都是基于AFNetworking的二次开发的 参考文章1. iOS应用谈 网络层设计方案 2. iOS网络层设计分享 3. iOS网络文档整理 4. iOS网络文档整理

    4100

    这是一个很典型的描述,下面我们就以此为例聊聊的基础概念。流程示例假设用户在搜索引擎中搜索“森林里浓雾和阳光”。用户点击了搜索结果中的一个片网站链接,打开一张片的详情页。 (为了便于对照,再放一张)用户点击链接后,浏览器首先会去请求 DNS 服务器(中的【1】),获得网站的 IP 地址,然后通过 IP 请求网站。请求首先会到达网站的负载均衡器(中的【2】)。 (中的【3】)。web server 从 cache 中获取片的常用信息,从数据库中获取片的其他信息。(中的 【4】【5】)。 如果发现片还没有被处理过,例如颜色还没调整,就向队列中发一个任务(中的【6a】),任务处理服务器从队列中接收任务并处理(中的【6b】)。 (为了便于对照,再放一张)web server 接下来需要获取相关类似片信息,使用“片标题”请求全文搜索服务(中的【7】)。

    31710

    python

    python程序? 总览介绍1、左边python的模块python库python中用户定义的模块示例在执行import os时候,这个os就是python内建的模块,当然python还可以通过自定义模块来扩展python 系统2、右边python运行时环境三大组成部分对象类型系统包含了python中存在的各种内建对象,比如×××、list和dict,以及各种用户自定义的类型和对象。 内存分配器负责python中创建对象时,对内存的申请工作,实际上是Python运行时与c中malloc的一层接口运行时状态信息维护解释器在执行字节码时不同的状态之间的切换动作(就是一个状态机制管理)3、中间

    36120

    「企业」企业

    什么是企业?企业的分类方案(治理,业务,信息,技术,人力资本,安全,系统,软件,基础等)及其重要工件。 企业可用作背景来报告一种或多种类型的工件,例如的概念。??为什么这个企业示例?此示例企业是为您创建的,以显示在Dragon1上创建企业的效率。 从Architecture Diagram到Management Report视显示了企业体系结的管理报告视。 上面的企业有很多可能的视,当管理员要求新情况,方面或时间段的新视时,您不希望手动创建和更新每个报表视。 交互示例例如,您可以通过单击层或过滤掉某些信息来建自己的企业体系结。单击此Watch页面上的企业体系结的此交互式示例。这可能会让您了解框应该如何以及您希望如何使用它。

    33010

    Scoops android app多主题(五)

    找不到,然后查找Class.forName(clsName + _ToppingBinder)类,造一个,然后将这个返回,并缓存下来。

    29990

    Scoops android app多主题(四)

    3:进入app,在设置里面设置成dayNight模式后,点击*按钮Scoops方式*查看效果即可。 4:效果如下 ?

    27360

    Scoops android app多主题(一)

    简要说明 Scoops是一个android应用库,主要解决的是多主题实现方案。通过配置多个R.style.Theme ,代码进行动态设置主题,重启当前界面实现...

    480100

    Scoops android app多主题(二)

    简要说明 通过注释方式,完成多主题的效果更换。可以减少一些代码,使得代码更清晰一些。 ? 使用说明 1 首先写一个注释类 ? 2 在MainApp 初始化的时候...

    27980

    Scoops android app多主题(三)

    白天夜间主题 很多应用都有这个功能,可以选择白天和夜间模式,给用户更好的体验。为此,系统也提供了一种机制,来实现此功能。 模式主要分为四种 夜间 白天 跟随系统...

    24870

    APP分层设计随想

    互联网分层的本质,是数据的移动。互联网分层演进的核心原则:让上游更高效的获取与处理数据(复用),让下游能屏蔽数据的获取细节(封装)。?不管数据怎么移动,最终都会汇聚到客户端。 服务端的分层设计已经讲了很多,客户端的分层设计应该怎么玩呢,服务端的分层设计是否有能够借鉴的地方呢,今天和大家简单聊一聊。 封装复用的道理谁都懂,拷贝代码的坏处也谁都明白,那为什么大家还这么做,让代码越来越“腐烂”呢,根据个人经验,主要是这么几点原因:早期业务压力大,APP是少数几个同学的,没有提前做规划后期代码越来越臃肿, ,实现业务逻辑,并层通过DAO层,从db层获取数据db层提供数据APP端的分层不是非常相似么? ,是数据的移动,分层封装复用的思想,前后端有共通的地方。

    75640

    Android之App整体介绍

    image.pngApp整体起源对程序进行设计的原因,归根到底是为了提高生产力。通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合。 基于MVP的设计思路mvp的全称为Model-View-Presenter,Model提供数据,View负责显示,ControllerPresenter负责逻辑的处理。 在App开发过程中,经常出现的问题就是某一部分的代码量过大,虽然做了模块划分和接口隔离,但也很难完全避免。从实践中看到,这更多的出现在UI部分,也就是Activity里。? image.pngMVP是一种使用广泛的基础模式,使用基于事件驱动的应用框。MVP从更早的MVC框演变过来的一种框,与MVC有一定的相似性。 因此在App中引入MVP的原因,是为了将此前在Activty中包含的大量逻辑操作放到控制层中,避免Activity的臃肿。

    19110

    Ocelot(六)-

    Ocelot的目标是使用.NET运行面向微服务服务的,能有统一的入口点进入他们的系统。特别是它很容易就可以集成IdentityServer和 bearer tokens。 Ocelot将HttpRequest对象操作到其配置指定的状态,直到它到达请求建器中间件,在该中间件中,它创建一个HttpRequestMessage对象,该对象用于向下游服务发出请求。

    28540

    解 Docker

    01 Docker 的总体 Docker 是一个 CS 模式的,后端是一个松耦合,模块各司其职。下是它的总体:? (一次完整的请求:发送请求→处理请求→返回结果),与传统的 CS 请求流程并无不同。2.2 Docker Daemon(后台守护进程)Docker daemon ? Docker Server ?1 Docker Server 相当于 CS 的服务端。功能为接受并调度分发 Docker Client 发送的请求。 GraphdriverGraphdriver ?1 Graphdriver 主要用于完成容器镜像的管理,包括存储与获取。 2.7 Libcontainer 「函数库」Libcontainer ?

    45810

    解 Docker

    是它的总体:1 用户是使用 Docker Client 与 Docker Daemon 建立通信,并发送请求给后者。 2.2 Docker Daemon(后台守护进程)Docker daemon Docker Server 1 Docker Server 相当于 CS 的服务端。 2.5 Graph 「Docker 内部数据库」Graph Repository1 已下载镜像的保管者(包括下载的镜像和通过 Dockerfile 建的镜像)。 GraphdriverGraphdriver 1 Graphdriver 主要用于完成容器镜像的管理,包括存储与获取。 2.7 Libcontainer 「函数库」Libcontainer 1 Libcontainer 是 Docker 中一个使用 Go 语言设计实现的库,设计初衷是希望该库可以不依靠任何依赖,

    13650

    解 Docker

    是它的总体:1 用户是使用 Docker Client 与 Docker Daemon 建立通信,并发送请求给后者。 2.2 Docker Daemon(后台守护进程)Docker daemon Docker Server 1 Docker Server 相当于 CS 的服务端。 2.5 Graph 「Docker 内部数据库」Graph Repository1 已下载镜像的保管者(包括下载的镜像和通过 Dockerfile 建的镜像)。 GraphdriverGraphdriver 1 Graphdriver 主要用于完成容器镜像的管理,包括存储与获取。 2.7 Libcontainer 「函数库」Libcontainer 1 Libcontainer 是 Docker 中一个使用 Go 语言设计实现的库,设计初衷是希望该库可以不依靠任何依赖,

    5100

    相关产品

    • 移动金融开发平台

      移动金融开发平台

      腾讯移动金融开发平台(TMF)为银行、互联网金融、保险、证券客户提供一站式、覆盖全生命周期的移动金融服务。核心服务包括APP客户端开发组件、应用加固、环境安全检测等APP开发运营关键服务,帮助金融机构低成本、高效率地打造移动金融服务…...

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注云+社区

      领取腾讯云代金券