自己融云im开发案例IM难度大吗?容易不?

移动IM开发那些事:技术选型和常见问题 - CSDN博客
最近在做一个iOS IM SDK,内测版已出炉,详见。在内部试用的阶段,不断有兄弟部门或者合作伙伴过来问各种技术细节,所以统一写一篇文章记录,统一介绍下一个IM
APP的方方面面,包括技术选型(包括通讯方式,网络连接方式,协议选择)和常见问题。
通讯方式选择
IM通讯方式无非两种选择:设备直连(P2P)和通过服务器中转。
P2P多见于局域网内聊天工具,典型的应用有:飞鸽传书,天网Maze(你懂的)等。这类软件在启动后一般做两件事情
进行UDP广播:发送自己信息和接受同局域网内其他端信息
开启TCP监听:等待其他端进行连接
详细的流程可以参考。但是这种方式在有种种限制和不便:一方面它只适合在线的点对点消息传输,而对离线,群组等业务支持不够。另一方面由于&&的存在,使得不同局域网内机器互联的难度大大上升,在某些网络类型(对称NAT)下无法建立连接。
服务器中转
几乎所有互联网IM产品都采用服务器中转这种方式进行消息传输,相对于P2P的方式,它有如下的优点:
能够支持更多P2P无法支持或支持不好的业务,如离线消息,群组,聊天室服务
方便业务逻辑的拓展和新旧版本的兼容
当然它也有自己的问题:服务器架构复杂,并发要求高。
网络连接方式
IM主流网络连接方式有两种:
基于TCP的长连接
基于HTTP短连接PULL的方式
后者常见于WEB IM系统(当然现在很多WEB IM都是基于WebSocket实现),它的优点是实现简单,方便开发上手,问题是流量大,服务器负载较大,消息及时性无法很好地保证,对大规模的用户量支持不够,比较适合小型的IM系统,如一个小网站的客户系统。
基于TCP长连接则够更好地支持大批量用户,问题是客户端和服务器的实现比较复杂。当然也还有一些变种,如下行使用MQTT进行服务器通知/消息的下发,上行使用HTTP短连接进行指令和消息的上传。这种方式能够保证下行消息/指令的及时性,但是在弱网络下上行慢的问题还是比较严重。早期的来往就是基于这种方式。
IM协议选择原则一般是:易于拓展,方便覆盖各种业务逻辑,同时又比较节约流量。后一点的需求在移动端IM上尤其重要。
常见的协议有:
XMPP协议的优点在于:协议开源,可拓展性强,在各个端(包括服务器)有各种语言的实现,开发者接入方便。但是缺点也是不少:XML表现力弱,有太多冗余信息,流量大,实际使用时有大量天坑。
SIP协议多用于VOIP相关的模块,是一种文本协议,由于我并没有实际用过,所以不做评论,但从它是文本协议这一点几乎可以断定它的流量不会小。
MQTT的优点是协议简单,流量少,但是它并不是一个专门为IM设计的协议,多使用于推送。
而市面上几乎所有主流IM APP都是是使用私有协议,一个被良好设计的私有协议一般有如下优点:高效,节约流量(一般使用二进制协议),安全性高,难以破解。缺点则是在开发初期没有现有样列可以参考,对于设计者的要求比较高。
一个好的协议需要满足如下条件:高效,简洁,可读性好,节约流量,易于拓展,同时又能够匹配当前团队的技术堆栈。基于如上原则,我们可以推出: 如果团队小,团队技术在IM上积累不够可以考虑使用XMPP或者MQTT+HTTP短连接的实现。反之可以考虑自己设计和实现私有协议。
私有协议的设计
序列化选择
移动互联网相对于有线网络最大特点是:带宽低,延迟高,丢包率高和稳定性差,流量费用高。所以在私有协议的序列化上一般使用二进制协议,而不是文本协议。常见的二进制序列化库有和,当然你也可以自己实现自己的二进制协议序列化和反序列的过程,比如蘑菇街的。但是前面二者无论是可拓展性还是可读性都完爆TeamTalk(TeamTalk连Variant都不支持,一个int传输时固定占用4个字节),所以大部分情况下还是不推荐自己去实现二进制协议的序列化和反序列化过程。
协议格式设计
基于TCP的应用层协议一般都分为包头和包体(如HTTP),IM协议也不例外。包头一般用于表示每个请求/反馈的公共部分,如包长,请求类型,返回码等。 而包头则填充不同请求/反馈对应的信息。
一个最简单的包头可以定义为
struct PackHeader
int32_t length_; //包长度
int32_t serial_; //包序列号
int32_t command_; //包请求类型
int32_t code_; //返回码
以心跳包为例,假设当前的serial为1,心跳包的command为10,那么使用MessagePack做序列化时:length=4,serial=1,command=10,code=0,每个字段各占一个字节,包体为空,仅需要4个字节。
当然这是最简单的一个例子,面对真正的业务逻辑时,包体里面会需要塞入更多地信息,这个需要开发根据自己的业务逻辑总结公共部分,如为了兼容加入的协议版本号,为了负载均衡加入的模块id等。
上面就是一个IM系统大致的选型过程:通讯方式,连接方式,协议选择,协议设计。但是实际开发过程中还有大量的问题需要处理。
为了保证协议不容易被破解,市面上几乎所有主流IM都会对协议进行加密传输。常见的流程和HTTPS加密相似:建立连接后,客户端和服务器进行进行协商,最终客户端获得一个当前Sessino的秘钥,后续的数据传输都通过这个秘钥进行加解密。一般出于效率的考虑都会采用流式加密,如RC4。而前期协商过程则推荐使用AES等非对称加密以增加破解难度。
快速连接(登录)
对iOS APP而言,因为没有真后台的存在,APP每次启动基本都需要一次重连登录(短时间内切换除外),所以如何快速重连重登就非常重要。常见的优化思路如下:
本地缓存服务器IP并定期刷新。移动网络调优可以参考。
合并部分请求。如加密和登录操作可以合并为同一个操作,这样就可以减少一次不必要的网络请求来回的时间。
简化登录后的同步请求,部分同步请求可以推迟到UI操作时进行,如群成员信息刷新。
一般APP实现连接保持的方式无非是采用应用层的心跳,通过心跳包的超时和其他条件(网络切换)来执行重连操作。那么问题来了:为什么要使用应用层心跳和如何设计应用层心跳。
众所周知TCP协议是有KEEPALIVE这个设置选项,设置为KEEPALIVE后,客户端每隔N秒(默认是7200s)会向服务器发送一个发送心跳包。但实际操作中我们更多的时是使用应用层心跳。原因如下:
KEEPALIVE对服务器负载压力比较大(服务器大大是这么说的...)
socks代理对KEEPALIVE并不支持
部分复杂情况下KEEPALIVE会失效,如路由器挂掉,网络直接被拔除
移动端在实际操作时为了节约流量和电量一般会在心跳包上做一些小优化
尽量精简心跳包,保证一个心跳包大小在10字节之内
心跳包只在空闲时发送 (收到最后一个数据包n秒内再也没有收到包则进行一次心跳)
根据APP前后台状态调整心跳包间隔 (主要是安卓)
在移动网络下,丢包,网络重连等情况非常之多,为了保证消息的可达,一般需要做消息回执和重发机制。参考易信,每条消息会最多会有3次重发,超时时间为15秒,同时在发送之前会检测当前连接状态,如果当前连接并没有正确建立,缓存消息切定时检查(每隔2秒检查一次,检查15次)。所以一条消息在最差的情况下会有2分多的重试时间,以保证消息的可达。
因为重发的存在,接受端偶尔会收到重复的两条消息,这种情况下就需要接收端进行去重。一般的做法是每条消息都有自己唯一的message id(一般是uuid)。
文件上传优化
IM消息(包括SNS模块)内包含大量的文件上传的需求,如何优化文件的上传就成了一个比较大的主题。常见有下面这些优化思路:
将上传流程提前:音频提供边录边传。朋友圈的图片进行预上传,选择图片后用户一般会进行文本输入,在这段时间内后台就可以默默将选好的图片进行上传。
提供闪电上传的方式:服务器根据MD5进行文件去重。
优化和上传服务器的连接(参考快速连接),提供连接重用的功能。
文件分块上传:因为移动网络丢包严重,将文件分块上传可以使得一个分组包含合理数量的TCP包,使得重试概率下降,重试代价变小,更容易上传到服务器。
在分包的前提下支持上传的pipeline,避免不必要的网络等待时间。
支持断点续传当前位置: →
移动IM开发那些事:技术选型和常见问题
最近在做一个iOS IM SDK,内测版已出炉,详见http://netease.im。在内部试用的阶段,不断有兄弟部门或者合作伙伴过来问各种技术细节,所以统一写一篇文章记录,统一介绍下一个IM APP的方方面面,包括技术选型(包括通讯方式,网络连接方式,协议选择)和常见问题。
通讯方式选择
IM通讯方式无非两种选择:设备直连(P2P)和通过服务器中转。
P2P多见于局域网内聊天工具,典型的应用有:飞鸽传书,天网Maze(你懂的)等。这类软件在启动后一般做两件事情
进行UDP广播:发送自己信息和接受同局域网内其他端信息
开启TCP监听:等待其他端进行连接
详细的流程可以参考飞鸽传书源码。但是这种方式在有种种限制和不便:一方面它只适合在线的点对点消息传输,而对离线,群组等业务支持不够。另一方面由于 NAT 的存在,使得不同局域网内机器互联的难度大大上升,在某些网络类型(对称NAT)下无法建立连接。
服务器中转
几乎所有互联网IM产品都采用服务器中转这种方式进行消息传输,相对于P2P的方式,它有如下的优点:
能够支持更多P2P无法支持或支持不好的业务,如离线消息,群组,聊天室服务
方便业务逻辑的拓展和新旧版本的兼容
当然它也有自己的问题:服务器架构复杂,并发要求高。
网络连接方式
IM主流网络连接方式有两种:
基于TCP的长连接
基于HTTP短连接PULL的方式
后者常见于WEB IM系统(当然现在很多WEB IM都是基于WebSocket实现),它的优点是实现简单,方便开发上手,问题是流量大,服务器负载较大,消息及时性无法很好地保证,对大规模的用户量支持不够,比较适合小型的IM系统,如一个小网站的客户系统。
基于TCP长连接则够更好地支持大批量用户,问题是客户端和服务器的实现比较复杂。当然也还有一些变种,如下行使用MQTT进行服务器通知/消息的下发,上行使用HTTP短连接进行指令和消息的上传。这种方式能够保证下行消息/指令的及时性,但是在弱网络下上行慢的问题还是比较严重。早期的来往就是基于这种方式。
IM协议选择原则一般是:易于拓展,方便覆盖各种业务逻辑,同时又比较节约流量。后一点的需求在移动端IM上尤其重要。
常见的协议有:
XMPP协议的优点在于:协议开源,可拓展性强,在各个端(包括服务器)有各种语言的实现,开发者接入方便。但是缺点也是不少:XML表现力弱,有太多冗余信息,流量大,实际使用时有大量天坑。
SIP协议多用于VOIP相关的模块,是一种文本协议,由于我并没有实际用过,所以不做评论,但从它是文本协议这一点几乎可以断定它的流量不会小。
MQTT的优点是协议简单,流量少,但是它并不是一个专门为IM设计的协议,多使用于推送。
而市面上几乎所有主流IM APP都是是使用私有协议,一个被良好设计的私有协议一般有如下优点:高效,节约流量(一般使用二进制协议),安全性高,难以破解。缺点则是在开发初期没有现有样列可以参考,对于设计者的要求比较高。
一个好的协议需要满足如下条件:高效,简洁,可读性好,节约流量,易于拓展,同时又能够匹配当前团队的技术堆栈。基于如上原则,我们可以推出: 如果团队小,团队技术在IM上积累不够可以考虑使用XMPP或者MQTT+HTTP短连接的实现。反之可以考虑自己设计和实现私有协议。
私有协议的设计
序列化选择
移动互联网相对于有线网络最大特点是:带宽低,延迟高,丢包率高和稳定性差,流量费用高。所以在私有协议的序列化上一般使用二进制协议,而不是文本协议。常见的二进制序列化库有protobuf和MessagePack,当然你也可以自己实现自己的二进制协议序列化和反序列的过程,比如蘑菇街的TeamTalk。但是前面二者无论是可拓展性还是可读性都完爆TeamTalk(TeamTalk连Variant都不支持,一个int传输时固定占用4个字节),所以大部分情况下还是不推荐自己去实现二进制协议的序列化和反序列化过程。
协议格式设计
基于TCP的应用层协议一般都分为包头和包体(如HTTP),IM协议也不例外。包头一般用于表示每个请求/反馈的公共部分,如包长,请求类型,返回码等。 而包头则填充不同请求/反馈对应的信息。
一个最简单的包头可以定义为
struct PackHeader {   int32_t length_;  //包长度   int32_t serial_;  //包序列号   int32_t command_;  //包请求类型   int32_t code_;   //返回码 };
以心跳包为例,假设当前的serial为1,心跳包的command为10,那么使用MessagePack做序列化时:length=4,serial=1,command=10,code=0,每个字段各占一个字节,包体为空,仅需要4个字节。
当然这是最简单的一个例子,面对真正的业务逻辑时,包体里面会需要塞入更多地信息,这个需要开发根据自己的业务逻辑总结公共部分,如为了兼容加入的协议版本号,为了负载均衡加入的模块id等。
上面就是一个IM系统大致的选型过程:通讯方式,连接方式,协议选择,协议设计。但是实际开发过程中还有大量的问题需要处理。
为了保证协议不容易被破解,市面上几乎所有主流IM都会对协议进行加密传输。常见的流程和HTTPS加密相似:建立连接后,客户端和服务器进行进行协商,最终客户端获得一个当前Sessino的秘钥,后续的数据传输都通过这个秘钥进行加解密。一般出于效率的考虑都会采用流式加密,如RC4。而前期协商过程则推荐使用AES等非对称加密以增加破解难度。
快速连接(登录)
对iOS APP而言,因为没有真后台的存在,APP每次启动基本都需要一次重连登录(短时间内切换除外),所以如何快速重连重登就非常重要。常见的优化思路如下:
本地缓存服务器IP并定期刷新。移动网络调优可以参考《iOS移动网络调优那些事》。
合并部分请求。如加密和登录操作可以合并为同一个操作,这样就可以减少一次不必要的网络请求来回的时间。
简化登录后的同步请求,部分同步请求可以推迟到UI操作时进行,如群成员信息刷新。
一般APP实现连接保持的方式无非是采用应用层的心跳,通过心跳包的超时和其他条件(网络切换)来执行重连操作。那么问题来了:为什么要使用应用层心跳和如何设计应用层心跳。
众所周知TCP协议是有KEEPALIVE这个设置选项,设置为KEEPALIVE后,客户端每隔N秒(默认是7200s)会向服务器发送一个发送心跳包。但实际操作中我们更多的时是使用应用层心跳。原因如下:
KEEPALIVE对服务器负载压力比较大(服务器大大是这么说的...)
socks代理对KEEPALIVE并不支持
部分复杂情况下KEEPALIVE会失效,如路由器挂掉,网络直接被拔除
移动端在实际操作时为了节约流量和电量一般会在心跳包上做一些小优化
尽量精简心跳包,保证一个心跳包大小在10字节之内
心跳包只在空闲时发送 (收到最后一个数据包n秒内再也没有收到包则进行一次心跳)
根据APP前后台状态调整心跳包间隔 (主要是安卓)
在移动网络下,丢包,网络重连等情况非常之多,为了保证消息的可达,一般需要做消息回执和重发机制。参考易信,每条消息会最多会有3次重发,超时时间为15秒,同时在发送之前会检测当前连接状态,如果当前连接并没有正确建立,缓存消息切定时检查(每隔2秒检查一次,检查15次)。所以一条消息在最差的情况下会有2分多的重试时间,以保证消息的可达。
因为重发的存在,接受端偶尔会收到重复的两条消息,这种情况下就需要接收端进行去重。一般的做法是每条消息都有自己唯一的message id(一般是uuid)。
文件上传优化
IM消息(包括SNS模块)内包含大量的文件上传的需求,如何优化文件的上传就成了一个比较大的主题。常见有下面这些优化思路:
将上传流程提前:音频提供边录边传。朋友圈的图片进行预上传,选择图片后用户一般会进行文本输入,在这段时间内后台就可以默默将选好的图片进行上传。
提供闪电上传的方式:服务器根据MD5进行文件去重。
优化和上传服务器的连接(参考快速连接),提供连接重用的功能。
文件分块上传:因为移动网络丢包严重,将文件分块上传可以使得一个分组包含合理数量的TCP包,使得重试概率下降,重试代价变小,更容易上传到服务器。
在分包的前提下支持上传的pipeline,避免不必要的网络等待时间。
支持断点续传
关注官方微信
扫一扫分享本文到朋友圈
联系我们:
&(发送邮件时,请把#换成@)
投稿信箱:
&(发送邮件时,请把#换成@)
企业网版权所有业余学习电脑软件开发难度大不大?_百度知道
业余学习电脑软件开发难度大不大?
我有更好的答案
文凭仅仅是敲门砖,没有好的技能和过硬的实力,很难在工作中有真正的发展。
当下2011年大学毕业生正在为自己的工作奔波忙碌
什么工作才是真正适合自己的工作呢?
我们到底喜欢什么呢?
软件行业,一个最具发展潜力的职业,如果你对电脑对软件技术充满了兴趣
不妨把这个兴趣变成你的职业
让一份你喜欢的职业伴随你成长、成功!
═════════════════════════════════跟大学不同,在培训学校,实行的是一种理论加实训的教学模式,一切从企业需求出发设置课程,着眼于真实项目开发,确保学员学到最新最尖端的技术。疯狂软件培训学校:软件培训专家 通过真实项目实战,完成多个大型项目的开发,精通全套JavaEE/ASP.NET技术,掌握分析、设计、开发基于多层架构大型软件系统的原...
不是很大,根据你要学习的编程软件,买一本使用教程,慢慢跟着走,会终得正果的。我是自学的,没有去学校,从VB6.0学起的
向医生提问
完善患者资料:*性别:
其他类似问题
为您推荐:
软件开发的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁如果要再造一个类似淘宝的网站,技术难度大吗?网站的开发成本有多高?
我的朋友在一个小县城,他是一名市场官员。实际上就是吏,他现在可以为政府开发一个将它们这个小县城和周围几个县城的资源集中起来的网站。它们的农民想通过网络,让小圈子里的人,先富起来。现在问题来了,它们需要开发一个农村网站,政府只给开发费,不给维护费,他在淘宝上找到了大批建站的,问这些人有没有做这种网站的能力,费用会不会很高,它发现这些人收费才200元左右,他又觉得很不可靠,大家知道乌纱帽在头顶上,干不好领导撤职事情小,主要是这次电子商务基层化得目标,算是难以成功?
按投票排序
地方行政思维搞互联网,肯定是个死,而且是很惨的那种死。这还不像12306卖火车票,那个是独此一家别无分号的刚需。网站开发成本可以是0也可以是无底洞,反正结果都是没人用、bug一大堆。下面说的什么技术、直通车、支付都是后话了,楼主知道第一个坎在哪里吗?在于根本没人知道应该做个什么东西出来。官员的需求、农民的需求、商家的需求,都要满足的话,就这产品设计的成本20w也打不住了。我实习时做一个地方粮食系统,之前光需求沟通就沟通了3个月,开始研发了还在不停改需求,前后历时估计至少9个月,才弄出一个大致能用的东西。那还是政府不缺钱并且全力配合的结果。你现在的问题是,根本没有这么一个能牵头的人能协调资金、技术和产品的事情。要钱没钱,要技术不懂技术,要产品不懂产品,光有一个想法能顶什么用?后面坑大着呢。
技术不是问题,用户的访问量也是逐步增长的,淘宝也不是第一天就这么大的架构。随着用户访问量的增长慢慢优化或重构就行了。今天的技术基础比淘宝创业那阵子已经好很多了,很多经验和解决方案都是公开的,且很成熟。支付宝也不会成为问题。淘宝要做支付宝是因为在当时的环境下要解决网上支付的信任问题,降低网购的门槛。但在今天第三方支付平台的市场已经很繁荣了,只是个支付工具而已,接入几家就能用。难度来自于业务方面。在电商领域按照70-20-10定律,想超越淘宝几乎不可能了。现在B2C领域也已经相对饱和。在某些垂直领域还能做一些事情,但整个电商的市场仍然会受到来自于淘宝的压力。赚小钱可以,想颠覆市场还得另找出路。
我觉得你可以和你朋友大胆承接这个项目。至于领导的态度早已表明:只给开发费,不给维护费。明显就是一锤子买卖的意向,难道留一个固定的年服务费,去给他的对手或者下一任来搞他吗。 他是官,外包给你开发这个网站。网站做出来了,自己做点虚假数据搞的一派热火朝天的景象,这样面子上过得去,他有政绩,他的领导有政绩,你有收入,大家升官发财。拨款就这样分掉了哇。对了,200的系统,可以报价两万嘛。哎呀我怎么这么机智!!!不过这种必须要匿名的。
楼主的问题是重新做个淘宝有多难,这个楼上有人分析过了,很有用。但根据楼主的描述,楼主的需求与淘宝相差太远。在这里着重分析一下到底需要做一个什么出来:根据描述,更像一个带支付功能的供求信息平台,用开源的网店系统和分类信息系统就能实现九成的功能(比如ecshop+phpcms)。这样算起来,互联网上数以万计的接单仿站的从业者,完全不考虑支付源程序版权费用的情况下(目前国内现状),200块有人会接也是有可能的。与政绩工程相挂钩的互联网项目失败率几乎是100%。相比之下,铁道部投入了那么多,弄出个能用且方便了一大批人的网站已经算是积德了。 但是这一切,并不妨碍网站成为政绩上的加分项目,就是那怕网站的访问量为零,重点功能截个图,做做介绍,制造点数字出来,再放大或者杜撰几个农民依靠网站发家致富的案例出来,汇总成材料上报,这就足够了。自己在学生时代,辅导员让帮忙给一个园林大县做了个园林宣传网站,当时自己没当回事儿,拿DEDECMS套用现成的模板20分钟就完成了他们需要的效果。随后辅导员挪用了个助学金名额给我(3000多块,本来想匿来着),而据了解,这个网站在他同学让他帮忙之前已经易了三手。自己当时灰常不理解,尼玛找个正规的网络公司,任何费用支付下来最多也就五千块搞定,为啥被他们折腾的这么复杂。后来想想,也就是中国官场上所谓的裙带关系制造的这种奇葩的现象,因为自己不懂,贸贸然的交给外面的公司又觉得太亏,于是就在体制内托人再托人…根据楼主的介绍,没准儿楼主也在这个网站易手的某一阶段,哈哈~那么说到这里,楼主那位朋友应该怎么做比较清楚了:1.不用考虑这样一个站点如何运营推广,因为绝对是100%的失败,我们这边某报社依托省里发行量最大的报纸建了个所谓的电子商务平台,到现在依旧半死不活,据在那儿工作的朋友说,每天访问量只有四五十人,但是不妨碍拉广告挣钱;2.构思一些特色功能,能不能用得上不重要但是一定要贴心,处处要体现着”针对农民朋友对互联网了解不多的情况,我们推出了XX功能…“; 3.在威客网上找个好美工,把外观做了,然后拿着效果图给领导看,满意为止,注意,一定要大气!大气! 但不要太潮,比如时下流行的metro界面,领导审美不能的~如果碰巧遇到了审美比较奇葩的领导,那么提前问好领导觉得漂亮的网站,能减少很多麻烦;4.带着效果图,然后建议找家正规的公司做,如果担心因为是政府部门被敲竹杠,那么谈的时候不要说是政府部门,比如说成热血青年回家创业,被问起来了就说跟政府部门有合作神马的(不过正常情况下是不差钱的,那么后面当没说);5.网站做成后,文案以及制造案例这部分不说了,体制内的人更深谙此道~
我只能告诉你200是扯犊子的。对于你的需求、初期并不难、一个牛点的程序员自己搞定。或者你可以用dedecms二次开发下、他们就有商城。
同意@宋黎,重点是支付系统啊,那个是金融层面的东西了,取得资质也不是那么容易的东西了。阿里巴巴据说有个依托支付宝开拓一个阿里银行的战略。能跟国家商业银行竞争的支付体系,再弄个你懂有多难的。诸如流量导入啊,服务器建设啊什么的,也不简单啊。京东和苏宁易购也只是依托物流很门店实体才能跟淘宝有一拼的……话说他们每笔交易还要给商业银行份子钱啊。-----------------------------------------------------单从建站成本上看不高,看你流量标准,租用服务器数量是多少。如果你和商业银行进行网络支付商户签约,那么就是从你销售上返百分比给银行的。那么看起来,他们说的20W也拿得下的。
淘宝其他的架构复制过来 并不算很难 至于要花多少费用 我不是内行 不知道重点是:当真做了 支付确实是个大问题
淘宝(非天猫)的是C2C 就算接入支付宝 你也会发现各种API不开放导致一些功能异常难以实现,如修改价格这个是我切身体会这方面费用 我想已经不是工程师和程序员能预算的了
单纯从技术角度来看,不会特别难,关键是要做到多大承载,以及细节有多到位开发成本也直接和上面说的有关,如果不考虑太大的承载,架构可以很简单,如果细节不需要特别到位,就只是简单的功能实现,也很容易。其实开发成本无非是做事的人的薪酬和工作时间,如果要求不高,可以找一些不是很强的人,但有动手能力,能钻研,有兴趣,其实就可以开始了至于工作时间,如果对细节要求不高,做起来也很快的。一般来说,花多少钱做多少事,200块的东西估计也能用,但应该也就只值200块。而且,如果是一次性交易,最后烂尾的可能性较大,任何产品(如果还希望运营的话),都是一个长期过程。最后,如果纯粹从站在朋友角度帮忙解决问题,个人建议:多争取些预算,找一个靠谱点的人,能长期关注的,让他选一个现成的开源实现,简单调整一下应该能用的,工作量也不会很大(美术什么的可以再外包),拿开发预算,养他一、两年,这样比较靠谱一点。
200元?我在看淘宝上找个帮写编程作业的都不止这个收费
还是很简单我一两个小时就做得完的那种
你确保我们农民伯伯都很会上网么亲
技术难度比较大。 业务实际很简单。 难的是如何承受高压力,在高用户高并发的情况下还能快速访问这个很难。 而且淘宝存储绝大多数是图片。分布式文件系统是需要解决的难点。 而淘宝有自己的分布式文件系统。光开发这个20W就少了吧。 @宋黎 童鞋。
20W 也就做个表面上的东西。光一个直通车功能就够搞的了------技术难度很大,说不难的都是扯
技术不是问题,支付宝也一样
为什么要做第二个淘宝呢??这个不是技术上难不难,成本贵不贵等这些问题了,是已经有了这么一个庞然大物,就不要在这方面下功夫了,要么超越,要么避开,才是正确的选择。
建议楼主把建这个站的初衷说明清楚,做大站和小站的费用差几个数量级。。看了楼主的建站初衷了,可以理解为一个轻量级电子商务平台,将周围县,村的资源集中到这个平台上销售(不知道是否正确)。建站费用很低,万元左右,但是如果想想真正做起来,得花心思运营维护,这笔费用是大头,不要想当然的认为网站建起来,政府号召一下,大家就会聚集过来,尤其您这还有好多是农民用户(无歧视),且不说他们会不会上网,上来了会不会用更是问题。像其他知友说的,要把运营维护费用考虑进去,不然建了也白建。
先回去给领导说下,“类似淘宝的网站”叫“电子商务网站”。
说技术不是问题的得看有多少钱投入,没钱技术肯定是问题。不仅需要维护的人力物力,还得有后期开发的成本,进入一个行业的网络市场,整体构架不完善,用户体验需要不断改进,这些也是需要钱的,除了制作外,域名、服务器、维护、后期开发、营销SEO、市场维护,,,,,都是需要钱滴....
为什么一定要再造一个网站呢?淘宝发展到现在已经建立了一个非常好的平台。像你描述的情况,使用范围有局限,为什么不转过来利用淘宝这个平台呢?
我们最近在开发类似淘宝的平台,前期技术就花了200多万。。
首先,这是个政府项目,在看到“只给开发费,不给维护费”的时候,忍不住笑了,90%到最后会烂尾变成个面子工程。
其次,即使上述可以忽略,硬着头皮上,行,发现用户是农民,一个带有点时尚气息的电子商务网站面对着这样的人群,也确实很难不有心无力。
再次,即使这些都可以忽略,得硬着头皮上,OK,你得看看做成个什么样的东西。需求从哪来?农民?政府?怎么看都不靠谱。
最后,再忽略上述三点,硬着头皮上,技术层面上的实现也是个问题,没专人把关,也难实现业务的测试,验收过程也会搞得胆战心惊,最后发现每走一步都是坑。
好吧,说的可能太过,至少我们得乐观对待问题。给不出什么好的方案,但可以提点建议:1,目标得明确,现实需考虑,得知道做成个什么样的东西可以通过重重验收达成最后比较完美的收场。2,此情况下,建议前端或美工牛逼点,样子不能丢,其他业务上的效果可相对次要。3,上报审核时文案尽可能在允许的范围内牛逼,气场牛逼,征服上级领导才是最核心的。

我要回帖

更多关于 android ios 开发难度 的文章

 

随机推荐