① 怎样用HTTP/2优化iOS APP网络层次架构
PS:文中所提及的快捷键均针对于Windows操作系统。若是Mac用户,则请用Cmd对应Ctrl键,Opt对应Alt键。 1.保持尺寸为偶数 你是首先针对Retina屏幕设计然后再对标准分辨率的进行缩小是吧?为了在标准分辨率下像素仍然保持完美的呈现,你需要保证大小和距离为偶数。具体的做法便是:基于2ps的网格设计。在编辑(Edit)〉首选项(Preference)〉参考线、网格和切片(Cuides,Grids&Slices)。更改网格线间隔(Gridline)和子网格(Subdivisions)来是使得网格间隔线为2px。例如:设置网格线间隔为64px,子网格为32。 图01 2.混合模式只使用正常模式 在设置直接处于其他元素上面的图层效果时,混合模式只使用正常(例如:在混合选项中投影和外发光)。使用其他的混合模式或许在Photoshop中看起来很好,但是也可能会在在保存为PNG格式之后出现不良的效果。 图02 3.更方便的改变渐变颜色 想要更改渐变按钮的色调(色相),而不必每次都去改变渐变的起始颜色值?下面介绍两个方法,均可达到完全一样的效果。 方法1:在渐变图层混合选项中使用颜色叠加 1.创建一个渐变图层。起始颜色设为浅灰和深灰色,也可以在之后调整。 2.为按钮创建矢量蒙版。 3.复制矢量蒙版粘贴到渐变图层(选择矢量蒙版〉Ctrll+ C〉选择渐变图层〉Ctrl + V) 4.设置图层〉矢量蒙版〉当前路径 5.设置渐变图层混合选项〉颜色叠加更改混合模式为颜色。 6.现在便可以只是更改此处的颜色来更改渐变。 图03 方法2:在纯色图层使用渐变叠加 1.用你想要的颜色,创建一个纯色的图层。 2.和方法1相同。 3.和方法1相同。 4.和方法1相同。 5.在纯色模版混合选项〉渐变叠加,设置混合模式为明度(Luminosity)。 6.现在只是改变纯色模版的颜色即可改变渐变。 图04 译者注:上述使用了矢量蒙版,其实使用剪切蒙版也可达到相应的效果,个人认为还简单点。 4.更多的使用径向渐变 在导航条上叠加径向渐变层,让导航栏变得更为有趣。 方法1:径向渐变工具 1.在导航条图层上方新建图层。 2.复制导航条图层的矢量蒙版到刚才新建的图层(按住Ctrl + Alt同时按鼠标左键拖动矢量蒙版到新图层)。 3.选择径向渐变工具(设置渐变为中心白色末端全透明)。 4.在图层中从中心到边缘绘制渐变。 5.改变图层混合模式为叠加(Overlay)设置不透明度为25%。 图05 方法2:斜面和浮雕 同样也可以使用图层混合选项中的斜面和浮雕。可以按下图所示来设置。通过调整设置来达到你想要的效果。通常调整的越为精妙效果也越为好看。 图06 5.更多的使用阴影变形 Photoshop中阴影(任何的其他图层效果)和它对应图层可以分开。这样便可独立操作阴影。 1.选择图层〉图层样式〉创建图层(译者注:必须在对图层使用了混合选项中的效果才能使用此命令,此步目的即是将效果和图层分离)。 2.转换图层为智能对象(在混合选项中勾选透明形状图层。右击图层〉选择转换为智能对象),这样你就可以在之后编辑效果。 3.Ctrl + T 选择变形。 4.点击和拖动手柄来改变形状。手柄不会对其网格,但可以使用网格作为参考对其他的手柄进行重复同样的拖动。 5.往上轻移图层直到像下图效果。 图07 图08 图09 6.使用内发光更容易的增加精细的纹理 像下图所示通过内发光快速的增加纹理。 图10 7.隐藏路径 Photoshop cs6中比较恼人的一点是当你选中一个形状图层的时候形状的路径会显示出来,并且在你操作该图层的时候路径会一直存在,譬如在更改图层混合选项的时候。你和使用Ctrl + H 来隐藏所有的辅助工具(路径、网格线和参考线),当然你可以按Ctrl + Shift + H 只隐藏路径。 图11 8.使用对齐像素网格来使形状像素完美 这算是cs6中最好的改进之一了。按Ctrl + K 打开首选选面板选择将矢量工具与变换与像素网格对其(Snap Vector Tools and Transforms to Pixel Grid)勾选。在cs5中只有形状(没有变换)与像素网格对齐。像下图示在首选项〉常规中勾选最下面一项。 图12 图13 cs5中只有形状对齐 9.使用电子表格来计算缩略图的尺寸 想要创建一个iPad app来展示大量的缩略图?使用电子表格来计算缩略图的尺寸和之间的尺寸。电子表格实时的计算并展示了在改变一个尺寸之后对其他元素的影响以及它们是否适用于屏幕。下载(iPad-Grid-Calculator)我在创建iPad app使用创建的微软Excel 表格(文件中包含了4个表格,6×6, 5×5, 4×4 和3×3)。 图14 10.自动导出资源文件 如果你必须创建图片资源,选择文件(File)〉脚本(Script)〉将图层导出到文件(Export Layers to Files)。 11.图层复制的时避免给图层名添加后缀同时避免图层效果得到扩张 对每次复制图层都在图层名称后面添加“副本()”的字眼很是恼火?同时恼火的是每次复制粘贴图层效果的时候图层效果就会扩张?可以图层面板选项中将两者关闭。 图15 12.以15°的步长旋转 在自由旋转的时候,可以按住Shift以15°的倍数旋转。 13.保存样式 保存多次使用的样式到样式面板,这样免去每次都复制粘贴的麻烦。 14.在打开的两个文件之间移动图层 按下V选择移动工具〉选中想要移动的图层〉在当前文件内(不是图层面板)左击不松开〉拖动光标到目标文件的名称标签上〉当文件切换之后将光标拖动到文件内,然后松开鼠标。 图16 15.设置全局光为90° 当光源在90°的时候高光、阴影以及其他图层效果看起来最好。为了避免重复设置,在混合选项中(斜面和浮雕、内发光和阴影)勾选使用全局光。或者选择图层〉图层样式〉使用全局光。 图17 16.在你创建图层的时候你便对它进行命名 在将设计文档发给开发人员之前对图层命名是件令人头痛的事情。因此不妨形成在创建图层的同时就给它命名的习惯。 17.使用自定义快捷键 注意哪些工具和任务是你最常用到的,为它们创建快捷键。例如,如果你发现将一个文件发送给开发人员处理的时候你需要重命名大量的图层,我使用功能键F2作为快捷键。 18.使用径向渐变 使用径向渐变有时候会看起来有点扁平。试试用径向渐变作为背景,还可以用内发光来强调。 图18 19.努力做到非破坏的编辑 通过使用智能对象和调整图层来做到一个非破坏性的工作流程。当你发发现自己需要重复编辑同样东西的时候这会帮你减少很多痛苦。 20.在对文件作重大改变之前备份文件 当你发现保存了自己不想要的变化,或者在撤销更改之前意外地关闭了文件(译者注:这样会导致丢失历史记录),备份文件会大大减少你的痛苦。 21.使用快捷键给形状图层和文本填色 你可能知道使用Alt/Ctrl + Delete 给图层或者选区填充前景色/背景色。它同样适用于形状图层和文本。 22.Photoshop的怪异之处——投影和内阴影尺寸 还记得诀窍1中关于保证尺寸和图层效果为偶数像素吗?你或许在对所有的都设置了偶数之后,仍然迷惑于为什么按钮的高度仍然是奇数。罪魁祸首便是 Photoshop的怪异之处,投影增加了尺寸。投影的大小(size)值设置为1px或者2px,投影将会产生同样的尺寸,如下图所示。 图19 图20 23.使用智能参考线来进行更为完美的对齐 来让Photoshop对你的元素进行智能对齐。在视图(View)〉显示(Show)〉智能参考线(Smart Guides)处打开。一旦你使用过智能参考线,你会再也离不开它了。 图21 24.使用图层复合在同一文件中展示不同的显示屏 你是将app的所有屏幕都创建在一个PSD中然后对图层可视进行打开和关闭来查看?此时图层复合(Layer Comps)就可帮助解决这个问题。勾选窗口(Window)〉图层复合(Layer Comps)即可打开图层复合面板。在你新建app屏幕的时候你可以通过单击面板底部创建新的图层复合按钮来创建一个新的图层复合。这个图层复合面板包含了所有图层的可见性和位置作为一个屏幕(译者注:可以理解为一个快照)。现在你便可以在同样的图层上更改其可见性和位置来作为下一个屏幕并把它保存为另一个图层复合。 通过使用同样的工具去创建不同的屏幕,这样就保证了文件数量和大小达到了最小。并且,你和开发人员可以简单的通过单击图层复合名称前面的小盒子或者点击面板底部的往前/往后箭头来循环切换图层复合来展示不同的屏幕。 图22 25.在设备上预览你的设计 你的设计桌面设备上看起来很好,但是当你放到真正的设备上或许会暴漏问题,因此,保证经常的在显示器上预览你的设计。对Mac来说有像LiveView、Scala Preview等工具,对Windows来则有wifileSync和Photoshop Display。我使用免费的Polkast,它允许你在IOS设备上通过wifi预览你桌面设备上的文件。 26.保持icon设计的一致性 在icon的选用上要保证其大小和风格一致。可以阅读Why consistency is important这篇文章。 图23 27.给客户发送全尺寸的预览图 客户许愿在他们的设备上常看设计。因此,可以考虑给他们一个全尺寸的PNG设计组合。 28.避免过于像素完美的线框图 不要在线框图软件上浪费时间去创建一个漂亮的线框图。我发现客户一旦理解这会节省时间他们便更倾向于审查草图而不是漂亮的线框图。向客户解释为什么减少线框图会节省项目的整体时间,他们一旦同意便发给他们草图的照片。同时别忘了让草图尽量易读。 29.首先设计Retina屏然后再缩小到标准尺寸 是从1x(译者注:指设备像素比)放大到2x的顺序还是2x缩小到1x现在仍有争论。1x大小尺寸的手机将会在未来几年逐渐淘汰并且将来只会剩下Retina屏的。因此最好是从Retina屏来开始设计,同时你可以早早的便在你的设计中添加针对Retina屏的特殊细节。 30.创建一个icon库 任何时候你针对工具栏或者标签栏创建了矢量的icon,保存一份icon(保存完好无损的尺寸以便于编辑)到单独的PSD文件中,这样,你便不必下次再使用这些icon时到处寻找了,这样也就形成了我ikonic项目的基础。 31.使用一个批量重命名的软件 使用批量重命名软件来给文件增加或者移除@2x。我使用免费的Bulk Rename Utility。 注:更多精彩教程请关注三联photoshop教程栏目,三联PS群:311270890欢迎你的加入
② 如何设计app的架构
想要设计App的整体框架,首先要清楚我们做的是什么
一般我们与网络交互数据的方式有两种:主动请求(http),长连接推送
结合网络交互数据的方式来说一下我们开发的App的类型和特点:
数据展示类型的App:特点是页面多,需要频繁调用后端接口进行数据交互,以http请求为主;推送模块,IM类型App的IM核心功能以长连接为主,比较看重电量、流量消耗。
手机助手类App:主要着眼于系统API的调用,达到辅助管理系统的目的,网络调用的方式以http为主。
游戏:一般分为游戏引擎和业务逻辑,业务脚本化编写,网络以长连接为主,http为辅。
一般我们做的App都是类型1,简要来说这类app的主要工作就是
把服务端的数据拉下来给用户展示
把用户在客户端修改的数据上传给服务端处理
所以这类App的网络调用相当频繁,而且需要考虑到网络差,没网络等情况下,App的运行,成熟的商业应用的网络调用一般是如下流程:
UI发起请求 – 检查缓存 – 调用网络模块 – 解析返回jsON / 统一处理异常 – JSON对象映射为java对象 – 缓存 – UI获取数据并展示
这之中可以看到很明显职责划分,即:数据获取;数据管理;数据展示
确定了职责,就可以进入正题了
1. 传统的Android App架构
Android最原生也是最基础的架构,可以理解为MVC,Controller即是Activity和Fragment,但是这两者掌握了Android系统中绝大多数的资源,并且在内部直接控制View,因此传统的Android App一般是以Activity和Fragment为核心,将网络模块,数据库管理模块,文件管理模块,常用工具类等分离成若干工具类包,供Activity和Fragment使用。
③ 怎么样能快速搭建一个Android APP的界面和框架
自己从零开始快速搭建Android app架构
简单的看下这三个架构模式:
MVC:Model-View-Controller,经典模式,很容易理解,主要缺点有两个: View对Model的依赖,会导致View也包含了业务逻辑; Controller会变得很厚很复杂。
MVP:Model-View-Presenter,MVC的一个演变模式,将Controller换成了Presenter,主要为了解决上述第一个缺点,将View和Model解耦,不过第二个缺点依然没有解决。
MVVM:Model-View-ViewModel,是对MVP的一个优化模式,采用了双向绑定:View的变动,自动反映在ViewModel,反之亦然。
面对众多的架构模式你会选择哪个?
MVC,MVP还是MVVM?
越高级的模式复杂性越高,实现起来也越难。然后搭建项目时也是看项目的需求,别人说好你也有要实用才好,高效的实现项目的功能才是最好的架构模式。
那么,哪一个才是最好的呢?
个人觉得适合你的才是最好的,不要去盲目的跟风,大家说mvp好那你就使用咯,没有实践就没有话语权,所以说用哪种架构模式本人不发表任何意见:任何模式的动机都是一样的,那就是如何避免复杂混乱的代码,让执行单元测试变得容易,创造高质量应用程序,开发维护更高效。
在实际项目中思考架构时,也不会想着要用哪种模式,我只思考现阶段,以现有的人力资源和时间资源,如何才能更快更好地完成需求,适当考虑下如何为后期扩展或重构做准备。
我项目中的架构
这是我上一个项目的包架构:
permission(权限管理系统)
这功能是绝对项目中需要的,别告诉我你的项目还没有适配安卓6.0,适配了就肯定会有权限管理,我这里用的是 安卓6.0权限处理在项目中的实践,也还可以吧,反正github上的权限管理的开源东西比较多,觉得合适就ok。
哈哈,这样基础功能都搭建好了,然后就是一些逻辑功能的封装了。
④ 如何将java开发的CS架构软件改成BS架构
1.硬件环境不同: C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务. B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行 2.对安全要求不同 C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息. B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群. 3.对程序架构不同 C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑. B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟. 4.软件重用不同 C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好. B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子!
⑤ 软件架构怎么开发
软件架构怎么开发方法/步骤计算机科学和程序设计的飞速发展,使得软件设计应用到从航空航天到日常生活的方方面面。单个人开发一段小程序的做法早就过时,大范围协作的工程化时代随即到来进而在实践中不断的总结和改进,用于有效指导和最大程度的保障软件开发的质量、周期和成本。鉴于软件工程与建筑工程一样是一项系统的工程性工作,引入到计算机领域后,软件架构就成为了描述软件规划设计技术的专有名词软件架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。软件架构师定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方法,创新的设计特性,以及高层事物的对象操作、逻辑和流程。软件架构是一个系统的草图。架构过程:在系统整个生命周期中构思、定义、表达、记录、交流,验证合适实现,维护和改进架构的过程,也就是设计过程。架构:一个系统体现在其环境中的元素、关系的基本概念或属性,以及其设计和进化原则。架构描述:表达一个架构的工作产出物(通常指的是各种架构图和设计文档)。架构视图:通过系统的某些关注点的视角,表达一个系统的工作产出物(例如部署视图、开发视图等)。系统:包含了一个或多个进程、硬件、软件、工具与可以满足需求的人的集合。环境:决定了开发、操作、策略和其他影响系统的设置和条件。库是工具箱。框架是一套通用的解决方案。架构是高度抽象的需求,是系统中的不变量。平台是所有可能做的事的集合。系统分拆:如何把系统拆解为不同的子系统、模块、业务单元;技术选型:使用什么样的基础技术框架或脚手架;技术验证:确定核心技术难点如何解决,检验能否满足期望指标;接口规范:系统的内部不同部分以何种形式确定接口契约和数据通信;集成方式:系统与外部其他业务系统如何进行集成;技术规范:如何规范开发、测试、部署和运维的技术标准性;部署方案:系统如何进行物理部署,需要多少机器、什么配置,对网络有什么要求;运维方案:系统如何进行技术性运维,如何日常监控、预警报警;发布上线相关基础性工作,包括是否使用持续集成(CI)、自动化发布等技术;运维基础性工作,自动化运维,监控等相关技术。业务拆分的方法和技术框架的选择必然会影响到研发团队的组织形式。业务拆分的越细致,越有利于我们更好的对项目的各项指标量化计算,更精确的估计工时和成本,从而指导我们每个小组应该分配多少资源,使用什么样的协同和任务确认形式。并且随着项目的推进,计划与实际情况之间的匹配程度也随时可以进一步精确调整,进而影响到我们应该对每一块任务的投入资源进行动态调整
⑥ 开发android app有什么架构吗
主要有以下模块:(1) JSON,图像等的异步下载;(2) 网络请求的排序(scheling)(3) 网络请求的优先级处理(4) 缓存(5) 多级别取消请求(6) 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)2、android-async-http 主要有以下模块:(1) 在匿名回调中处理请求结果(2) 在UI线程外进行http请求(3) 文件断点上传(4) 智能重试(5) 默认gzip压缩(6) 支持解析成Json格式(7) 可将Cookies持久化到SharedPreferences 3、Afinal框架主要有四大模块:(1) 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。(2) 注解模块:android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。无需findViewById和setClickListener等。(3) 网络模块:通过httpclient进行封装http数据请求,支持ajax方式加载,支持下载、上传文件功能。(4) 图片缓存模块:通过FinalBitmap,imageview加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。4、xUtils框架主要有四大模块:(1) 数据库模块:android中的orm框架,一行代码就可以进行增删改查;(2) 注解模块:android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;(3) 网络模块:支持同步,异步方式的请求;(4) 图片缓存模块:加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;5、ThinkAndroid主要有以下模块:(1) MVC模块:实现视图与模型的分离。(2) ioc模块:android中的ioc模块,完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。 (3) 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。(4) http模块:通过httpclient进行封装http数据请求,支持异步及同步方式加载。(5) 缓存模块:通过简单的配置及设计可以很好的实现缓存,对缓存可以随意的配置(6) 图片缓存模块:imageview加载图片的时候无需考虑图片加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。(7) 配置器模块:可以对简易的实现配对配置的操作,目前配置文件可以支持Preference、Properties对配置进行存取。(8) 日志打印模块:可以较快的轻易的是实现日志打印,支持日志打印的扩展,目前支持对sdcard写入本地打印、以及控制台打印(9) 下载器模块:可以简单的实现多线程下载、后台下载、断点续传、对下载进行控制、如开始、暂停、删除等等。(10) 网络状态检测模块:当网络状态改变时,对其进行检6、LoonAndroid 主要有以下模块:(1) 自动注入框架(只需要继承框架内的application既可)(2) 图片加载框架(多重缓存,自动回收,最大限度保证内存的安全性)(3) 网络请求模块(继承了基本上现在所有的http请求)(4) eventbus(集成一个开源的框架)(5) 验证框架(集成开源框架)(6) json解析(支持解析成集合或者对象)(7) 数据库(不知道是哪位写的 忘记了)(8) 多线程断点下载(自动判断是否支持多线程,判断是否是重定向)(9) 自动更新模块(10) 一系列工具类
⑦ app的内容架构包括哪些
APP开发目前成本越来越高,建议可以选择小程序的开发,是目前比较好的一个选择的。第1种是卖模板为主的网络公司。优点是:价格低,几千块钱到万元之间就能搞定,方便,能够快速上线;缺点是:修改功能麻烦,这里需要避免低价陷阱,不要到最后才发现模板性的修改功能所花的钱比买模板还贵。而且不是独立的,一个模本卖给很多商家用,模板不是永久使用的,一般每年都要交年费。第2种是主流的方式,定制开发为主的网络公司。优点是:独一无二的,专为你的企业或者店面定制的,功能你来定,要求你来定,后期修改BUG方便,改东西也很方便,最重要的是永久使用权!!缺点是:相对价格比较高!!! 定制版的基本费用在上万元到十几万不等!不过贵也有贵的道理吧,毕竟功能做的更全面一点。最后总结,至于找什么样的小程序开发公司?花多少钱来开发?还是需要看贵公司准备的预算这块!希望对大家有用!
⑧ 如何进行软件架构设计
软件系统架构设计方法步骤基于体系架构的软件设计模型把软件过程划分为版体系架构需求、设计、文档权化、复审、实现和演化6个子过程,现逐一简要概述如下。体系架构需求。即将用户对软件系统功能、性能、界面、设计约束等方面的期望(即“需求”)进行获取、分析、加工,并将每一个需求项目抽象定义为构件(类的集合)。体系架构设计。即采用迭代的方法首先选择一个合适的软件体系架构风格(如C/S、B/S、N层、管道过滤器风格、C2风格等)作为架构模型,然后将需求阶段标识的构件映射到模型中,分析构件间的相互作用关系,最后形成量身订做的软件体系架构。体系架构文档化。即生成用户和研发人员能够阅读的体系架构规格说明书和体系架构设计说明书。体系架构复审。即及早发现体系架构设计中存在的缺陷和错误,及时予以标记和排除。体系架构实现。即设计人员开发出系统构件,按照体系架构设计规格说明书进行构件的关联、合成、组装和测试。体系架构演化。如果用户需求发生了变化,则需相应地修改完善优化、调整软件体系结构,以适应新的变化了的软件需求。
⑨ 如何搭建app架构
如何搭建app架构-搜狐:http://mt.sohu.com/20160523/n451055729.shtml
⑩ iOS开发 如何介绍一个APP的技术架构
APP开发一般从技术架构上都会包括后台的管理端,在PC端操作,也就是管理我们整体系统后台。包括用户、权限、订单,还有一些管理的功能。另外就是APP的前端包括iOS和Android,这是一个APP的整体系统架构。那开发商的系统一般通用的技术方案,都是前后台分离的。前端用iOS开发语言和Android的开发语言来进行开发,那和后端应用层之间是通过接口的方式进行调用,后台负责后台管理端的开发。那技术架构上常用的技术方案无非现在比较流行的是PHP、JAVA,当然还有.NET技术。不过目前APP开发成本已经越来越高,可以选择小程序的定制开发是非常的不错的。第1种是卖模板为主的网络公司。优点是:价格低,几千块钱到万元之间就能搞定,方便,能够快速上线,微尘小程序就可以实现。缺点是:修改功能麻烦,这里需要避免低价陷阱,不要到最后才发现模板性的修改功能所花的钱比买模板还贵。而且不是独立的,一个模本卖给很多商家用,模板不是永久使用的,一般每年都要交年费。第2种是主流的方式,定制开发为主的网络公司。优点是:独一无二的,专为你的企业或者店面定制的,功能你来定,要求你来定,后期修改BUG方便,改东西也很方便,最重要的是永久使用权!!缺点是:相对价格比较高!!!定制版的基本费用在上万元到十几万不等!不过贵也有贵的道理吧,毕竟功能做的更全面一点。最后总结,至于找什么样的小程序开发公司?花多少钱来开发?还是需要看贵公司准备的预算这块!希望对大家有用!