前端路由实现的两种方式

阅读:0 来源: 发表时间:2023-02-23 06:15作者:邓宗毅

本篇文章给大家谈谈电商系统前置路由设计,以及前端路由实现的两种方式对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

1、电商平台支付结算系统设计 - 产品向

2、农村电商路由器怎么设置?

3、b2b2c电商系统怎样搭建比较好

4、电商前端架构设计

电商平台支付结算系统设计 - 产品向

写在前面:这篇文章是笔者近期学习支付相关知识,在知乎、人人都是产品经理、掘金等等各个地方拜读各位大神大作后,梳理摘录汇总而成,仅供自己学习备忘,如有冒犯还请指出,谢谢~

整体分为交易系统(OMS)、支付系统、清结算系统、对账系统、会计报表(非必须)等几个部分。

支付系统是负责电商系统收款和出款的子系统,需要支持电商平台与外部渠道间,所有收款和出款的功能,以及电商平台内部账户间转账的功能。简单来说,支付平台需实现充值、提现、转账、退款四方面的功能。

一般来说,支付系统由以下几个功能组成。

第三方支付:微信和支付宝占据国内移动支付的绝大部分份额,因此是一定要接入的。

按照结算类型来分,收款类一般有即时到账、担保交易两种,出款类有转账、银行卡代付等。

如果电商平台有支付牌照,可以自己分账,或者收款类型为年费等无需分账的交易,那么可以选择即时到账方式收款。

如果电商平台没有支付牌照且需要给实现二级商户分账,则可以选择微信的收付通或支付宝的直付通等产品。但用户通过微信支付的订单才能通过微信的产品来分账结算,支付宝支付的订单才能通过支付宝的产品来结算,对于平台对接、商户收款皆有不便之处,因此电商平台很少选用这种方式。

银行卡支付

一般来说,电商平台接入了微信和支付宝后,已经可以满足大部分支付需求,无需再接入银行卡支付。而对于购买了支付牌照的大型电商平台,想要打造自己的支付工具,才会对接各大银行,接入快捷支付功能。或者有一定规模的电商平台也可以直接与银行签约,开通快捷支付接口。

和第三方支付不同的是,银行卡收单、退款,一般都不是实时结算的。而支付公司与电商商户的收单交易,是实时结算的,实际是支付公司提前垫资。

快捷支付

现在市面上大部分电商app中,银行卡支付功能都是使用的快捷支付方式。对于电商平台,如果需要接入银行卡快捷支付功能,有两种方式:

例如电商平台在工行开通了快捷支付接口,用户签约了工行卡快捷支付,用户付款后,资金扣款成功结算后,会进入电商平台在工行的结算账户。注意快捷支付是有经营业务种类限制的,只允许在签约经营范围内的业务收款,即MCC码。

如果是第三方支付公司,因为不允许与银行直连,需使用银联或银行提供的网联接口,用户支付后,网联结算后,金额会转移到支付公司在银行开设的备付金账户。

对于电商平台,与银联对接要方便快捷得多,一次接入即可搞定大多数银行卡的快捷支付;而对于有支付牌照的电商平台或第三方支付公司,为了更低的手续费,才会选择与银行直接对接。

银行卡快捷支付,需要先绑卡签约,后续则无需任何验证完成扣款,而为了安全性,电商平台会加上指纹、人脸、短信或支付密码验证,仅小额支付可以免验证。

快捷支付的签约,需要提供三要素(姓名,身份证号,银行卡号)或四要素(银行预留手机号),信用卡可能额外需要有效期和背后后三位数cvv。注意支付公司或电商平台是不允许保存用户的cvv码的。在快捷支付签约前,用户需先完成实名认证或更高级别的认证,以保证签约卡为本人银行卡。国家法规对于第三方支付用户的信息验证有3个等级,三级为最高安全等级,对应的付款限额和支付范围限制也更大。

对于第三方支付公司,为了安全性、手续费等原因,会与同一家银行,不同的总行分行,或者银联等其他通道,分别签约快捷支付;用户在绑卡签约时,或者后续签约支付时,可能在签约一个需短信验证的通道的同时,还签约了其他无需短信验证的通道。后续用户使用快捷支付时,支付渠道路由会自动选择当前最合适的支付通道发起扣款。对于同一张卡的快捷支付额度,使用不同的支付通道的额度是独立的,但总额不超过发卡行的限制。

对于产品侧来说,如果要实现快捷支付功能,前端需要实现签约卡管理、新增签约(录入卡信息 - 识别卡信息 - 签约结果返回)、解绑功能。

不管是第三方支付还是快捷支付,和支付公司签约时,都可以绑定多个收款账户,有时为了财务上的区分,不同业务可使用不同收款账户收款。

银行转账基础原理

跨行转账有超级网银和小额转账两种,限额都是5w以内,开放时间都是7*24小时,不同的是超级网银实时结算,小额转账银行跑批处理,是准实时的。大额转账是在5w以上,开放时间是工作日的 8:30 ~ 17:00,实时结算。银行提供的转账产品,基本都是基于上述三种方式包装的。

电商业务的退款、商户结算、佣金结算、供应商货款结算等业务都涉及到出款。

退款:一般来说,在支付后一段时间内(一般3到6个月),可以使用原支付渠道的退款功能,将资金原路返回。如果超过时间限制或部分退款次数限制,则无法原路返回。退款最多可能5~7个工作日才能确认返回状态;对于银行来说,一笔已经清算的收单交易,手续费已经扣取;就算产生退款,之前的收单手续费也不会退回。如果在结算之前退款,银行侧可能支持按比例退回手续费。第三方支付公司与电商平台之间退款手续费的收取,由双方协议决定。

银企直连:若电商公司已接入银行的银企直连产品,且支付对象已绑定银行卡,则可使用此方式。

第三方支付的代付功能:对于高频小额的付款需求,且用户已绑定第三方支付账号情况下,可使用此方式。

企业网银:一般用于2B的大额资金转账。资金结算或者用户提现。

对于第三方支付公司,用户提现时,同一个出款账户,会归集一定量(金额或条数)之后批量提交银行处理,所以提现不一定能够实时到账。

出款的前提是用户已实名认证,并绑定了实名对应的银行卡。绑卡需要验证四要素,会需要用到第三方支付提供的信息验证接口,或直接与银行对接。已经签约过快捷支付的借记卡,也可以用于该账户资金提现,无需再次验证。

各个支付渠道的接口指令各不相同,为了方便业务调用以及日后拓展维护,需要建立一个统一的支付网关,开放给业务使用;业务调用时同时指定支付渠道,支付网关请求渠道路由,按照事先配置的路由规则,返回最合适的支付通道,发起支付请求。

网关需实现不同类型的功能接口,一般来说就是支付通道侧接口能力的并集,如充值、提现、转账、退款、签约查询、实名认证校验等等。

引导路由:是指用户在付款时,给用户展示支付方式的规则,包含可见状态,可用状态,展示顺序等。引导路由的意义是,根据用户支付的场景,引导用户选择平台侧希望用户选择的支付方式。平台侧的需求一般是支付成功率高(通道稳定,额度充足)、费率低等,也有因不同支付渠道商务合作关系,限定额度分流的原因。

匹配接入的支付渠道比较少时,引导路由作用不大,一般可能只有一个简单的权重配置后台,即所谓的静态路由,或者直接记住用户上次选择的方式即可。

渠道路由:对于电商平台来说,如果只接入了第三方支付,则不存在渠道路由。对于支付公司来说,如果接入了不同银行、银联网联的快捷支付接口,且用户选择的银行卡签约了多个通道时,渠道路由则按照路由规则去匹配权重最高的渠道,发起扣款请求。

在断直连之后,支付公司的代收服务,只能通过银联或网联接口,因此渠道路由意义也削弱了。对于代付服务,支付公司会在各大银行都开设收付账户,将跨行转账都转化为同行转账,以提高转账速度免除手续费,同时支付公司需要做好备付金管理系统,自动或人工管理监控调拨各行备付金。

当业务向支付网关发起支付请求时,支付网关需要对业务方进行鉴权判断,确定请求是否合法。一次支付请求一般包含以下元素:业务标示,支付时间,支付金额,支付账号,支付客户端信息,支付订单信息等。支付网关需要确认各个元素都合法,比如支付时间是否在有效期内,此支付单是否过期;支付账号状态是否正常,支付订单是否是可支付的,商品是否有库存等等。同时还需要将这些信息过一遍风控,风控那边会根据各种规则判断此次支付是否有风险。风控是一个比较复杂的系统,属于另一个专业领域,在此不细说。

电商平台向支付渠道请求支付后,支付渠道会同步或异步返回支付结果信息。如果支付渠道不主动返回结果,电商平台侧则需要定时去轮询结果。同时电商侧需要将支付请求信息、结果信息、结果凭证等保存下来,也就是支付流水记录。支付流水记录是之后电商与支付渠道对账的凭证。

拿到支付结果记录后,支付系统需要向支付请求方返回支付结果,同时通知账务系统,触发对应的记账操作。

各个支付渠道都会按日和按月生成交易记录文件和资金流水账单,分为支付、退款、提现等类型。交易记录文件相当于信息流凭证,资金流水账单相当于资金流凭证。

银行渠道一般也会推送资金流水文件,但不是所有银行的交易都有业务对账文件,通常收单交易业务对账文件会普遍一些。

电商的支付系统或者对账系统,需要做的事情:

支付系统同样需要和上游各个业务系统进行对账,包装支付状态金额的一致性。一般采用明细轧帐的方式。

收单对账常见问题:

长款:用户支付了但是交易系统未确认支付成功,这种情况需要及时补单或者退款处理,一般如果业务侧订单状态是待支付则可转为支付成功,状态是已取消则自动退款;也有可能是测试数据混入了生产环境;也有可能能与之前的短款差错互相抵消;

短款:一般是日切问题导致,挂账后下个会计日继续对账;或者看是否能与之前的长款差错互相抵消;

重复支付:一般支付渠道都不允许重复支付同一个订单,发现重复支付也可以自动退款处理;

金额不一致:可能用户支付后,支付结果返回之前,交易系统订单金额变化了

退款常见问题:

网络问题或接口问题导致退款失败,这种情况可自动再次提交退款;

对方账户状态异常导致退款失败,这种无法走原路返回退款方式,只能转账/代付;

退款时需要处理好支付手续费的退款,以及退款手续费谁来承担的问题,一般是按比例退;

对于短款差错,可挂账7天处理。

提现常见问题:对方账户状态异常导致退款失败,需要及时通知用户处理。对于短款差错,可挂账3天处理。

产品侧需要设计对账管理后台,可查看支付流水,对账批次记录,差错处理后台等。对于固定处理方式的差错类型,可做成自动化处理。

合单支付是指用户一次支付多笔订单,在电商中很常见。电商业务侧需要自己做好订单拆分,支付系统中,如果使用支付渠道的合单支付接口,则会自动拆分记录支付流水,是最佳的方式;如果支付渠道没有合单支付接口,则可拆可不拆,按原始记录保存简单不易出错,拆分记录则可方便其他业务处理。

混合支付是通过多种支付方式,支付一笔订单,比如余额+快捷支付。混合支付会按照不同支付方式,生成多笔支付流水。

因为不同支付方式,支付成功率不同,可能会发生有的支付方式扣款失败的情况。因此混合支付需要按照支付成功率,优先扣款成功率较低的支付方式;如果有某些支付方式扣款失败,需要判断是取消支付,全部退款,还是提醒用户换其他方式继续支付;全部支付方式都扣款成功后,这比订单才支付完成。后续订单发生退款,如果是部分退款,需要判断,优先退款手续费最低的支付方式。

电商平台或支付公司有时候会做营销活动,出钱补贴支付,也可以用混合支付方式处理。

据说余额+卡的混合支付有洗钱风险,目前已逐渐少见。

对于大额订单,可以采用分次、分阶段支付的方式,实质也是一种混合支付。

订单完成时,电商平台需要扣取平台佣金,结算货款给商家;若涉及推广服务,则需要计算推广用户的佣金和税额,再结算给推广用户。

按照法规,没有清结算牌照的电商,不允许自行截存货款,之后再结算给商家。电商平台可以选择第三方支付公司或者使用银行的电商清结算产品,由他们代为保存货款,之后再结算给商家。此类产品需要先提交商户资料给支付渠道或银行审核,审核通过后,用户支付此商户订单,提交支付同时上送清分规则(分给哪些人,按照什么比例或金额)。在订单交易完成时,电商侧提交结算请求,支付平台按照此前支付时上送的清分规则进行分账结算。部分支付平台,需要在结算时由电商平台指定分账对象和金额,但这样略有二清嫌疑。

选择这类清结算产品时,还需要注意以下几点:

接入此类产品后,除了后端的支付、结算接口对接以外,电商平台商户侧客户端,也需要对接好商户入驻进件,提现账户绑定,结算账单等功能。

电商平台常见的分销、主播代销、拼团、淘宝客等销售模式,其中“分销商”或“团长”角色,本身不是销售主体,在订单完成后可获得推广佣金。一般来说,这部分推广费用,在订单生成后,商户侧可在订单费用明细中看到此支出项;在订单结算时,可将推广佣金与平台佣金一起扣除,再由平台将推广佣金结算给推广人员。

这类支出属于劳动报酬,平台有为推广人员代缴税的义务,需要按月计算税率和金额。因此部分平台采用月结的方式,每个月指定日期,计算每个待结推广人的税费,扣除后再将税后金额结算给推广人。也有部分平台(比如O2O,网约车平台等),会自己承担此部分税费(羊毛出在羊身上),在订单结算时,即时将推广佣金结算给推广人,次月再统计推广人税费,平台自己为推广人交税。

平台也可以采用各种税务筹划方式,比如“灵活用工”的方式,与推广人建立非全日制劳务关系,这样推广人可以享受更低税率。

平台自行结算给推广人,可使用银企直连、支付平台代付等功能进行出款。而平台代缴税需要推广人的实名信息,所以在推广人在提现佣金之前,需要先实名制认证。

不管采用哪种结算方式,电商平台都需要计算订单结算时的各类费用明细(清分),负责清分的模块,也叫做计费系统。

电商平台有花样百出的扣点规则,比如按商品、按商户、按品类、按营销活动等规则扣点,以及各类推广佣金等。扣点规则路由对应着各类扣点规则,比如针对商品、商家、类目的扣点规则管理后台,基本元素是扣点对象、扣点比例、扣点上线、规则生效时间范围、规则状态等。产品经理需要和运营人员确认好扣点规则判断逻辑,即根据怎样的条件判断顺序,确认订单适用的扣点规则。之后加入新的扣点规则时,也需要维护这个扣点规则路由。

扣点规则路由各电商平台都不一样,可能包含营销活动、下单/支付客户端、买家身份、扣点规则权重等等。

一般在订单创建时,扣点规则路由就需要根据订单相关的信息,判断出订单适用的扣点规则并记录下来。同时也需要将用于判断的信息元素保存下来,以作为之后核对凭证。

如果订单有推广员的参与,则也需要在订单创建时,计算出需要扣除的推广费用,并保存记录相关推广员信息。

在计算各方分账明细时,需要注意几点:

与订单交易相关的清算,一般来说,是在订单状态变为终态(交易完成,退款完成),且订单尚有待结算金额时,由交易系统向清结算系统提交清结算请求。也有一些多次结算的场景,比如订单里有部分商品先确认收货时,也可以先结算部分金额,后续再结算剩余金额。

对于有支付牌照的大型电商平台,为了提高商户的回款速度,也可以在订单尚未变为终态时给商家结算货款,比如用户确认收货时或者商家发货时。如果结算后订单发生退款,则再在商户钱包中扣除相应金额。此类结算方式需要平台侧有比较成熟的风控能力,通过风险控制和风险转移的方式,防止平台资金损失。比如和商户签约协议,设置商户保证金,商户买家风控,购买对应的赔付保险等等。

交易系统向清结算系统发起结算请求时,需提交结算订单、结算金额、结算类型(完全/部分结算)等字段。清结算收到结算请求后,可能实时结算,也可能异步周期结算,比如每X小时一次等,视业务量大小决定。

开始结算时,计费中心从账务系统获取订单待结金额,根据结算类型核对结算金额,核对无误后,冻结待结算金额,并提交到计费中心;计费中心找到订单快照中的扣点规则,计算分账明细。

计费中心计算出各方分账明细后,需要和账务中心进行实时或准实时的对账,保证需结算的金额等于各方分账明细之和。核对无误后生成预结算单。

大部分订单,此时结算中心可将结算单提交到支付系统,进行最终的资金转账。小部分订单,结算单可能需要人工审核,则需要审核通过后再提交到支付系统,或者驳回撤销此次结算。

各分账方一般会提前在支付系统内部开设好账户,支付系统会将资金结算到各方的资金账户中,对于支付系统来说,仅涉及内部账户间的资金转移,因此很少会出现结算支付失败的情形。

支付系统返回结算成功结果后,结算单状态变为结算完成;结算系统需要实时通知交易系统和账务系统,账务系统记录各账户资金变化,更新账户余额;交易系统则触发对应的消息通知等关联服务。如果有会计系统的话,也需要异步通知会计系统,进行会计分录记账。

对于成熟的支付公司,会有账务系统和会计系统两套系统。这两套都是以会计分户模型来设计,不同的是账务系统是直接面向业务使用,随着业务信息流实时记账并更新余额,账务流水更多记录交易相关内容;会计系统是面向财务会计使用,一般是异步入账,使用严格的复式记账法。

账务系统中的账户,必须是在是账务系统分户中的叶子科目下。两套系统之间的分户模型,会有多对多的关系。账务系统这套体系可称为分户账户(外),会计系统这套称为分户账户(内)。

按照复式记账法,一般分为资产、负债、损益、共同类等。

交易的实质就是各金额账户间资金的转移,因此首先需要建立好对应的账户。

账户设计遵守三户模型:客户、账号、账户。

客户:指自然人或企业,必须要实名认证才可以开通支付账户,客户以身份证号为唯一标识。

账号:登录账号,一个客户可以有有限多个账号,即一个身份证可以用于有限多个账户用来实名认证。但对于同一个支付公司,一个身份证下多个账号,支付额度上限是共享的。根据身份认证信息丰富程度,支付平台余额账号等级分为一二三类,3类拥有的支付额度和权限最高是20万/年。余额提现、余额宝支付、信用支付无年度额度限制。银行卡快捷支付签约、提现银行卡绑定等操作,也是以账号为主体操作。

账户:每个账号在支付平台或电商网站,都会有多个不同功能的账户。商户侧有货款结算账户,保证金账户;买家侧有支付账户,信用支付账户,积分账户;或者电商平台侧的内部账户,比如活动补贴账户,订单担保账户等。

账务核心主要有四张表:分录流水、分户账、明细账、总账。

首先需要有一个交易码 - 分录规则的分录规则表,用来维护每种用交易码区分的交易场景,发生时应该如何拆成会计分录的规则。比如定义交易码1001为订单银行卡快捷支付,那一笔订单付款流水,经过支付平台,同步到账务中心时,根据同步过来的交易码1001,找到对应的分录规则,按照规则中的定义,生成会计分录:

当一笔业务发生时,首先生成分录流水,然后驱动账户余额变化,账户余额变化后,生成明细账。日终根据分录流水生成总账。根据业务需要,也可以先修改账户余额,然后异步生成分录流水,但是无论先生成会计分录,还是缓冲异步生成会计分录,都要保证分录流水与分户账余额的一致性,这一点通过日终系统的检查来保证。

每天首先需要做支付渠道的对账,然后再进行账务系统和会计系统内对账。

需要做到:

错处理需达到2个效果,一个是完成对账,另外一个是将账务对平,常见的账务处理方式有挂账、登账、调账。

补单:通过人为干预方式,将原有业务进行下去,如通过接口人工干预订单状态

挂账:对于不平账单,先挂起,等查明后再进行相应处理

登账:会计记账,伴随虚拟资金从一个账户向另一个账户转移的过程(原始凭证)

1、多账

多账主要存在2种情况,一种是异步通知未收到,优先采用补单处理,另外一种是同订单2次支付,一般通过登账处理

2、短账

基本不会出现,一般通过签名防抵赖机制与第三方协调处理。协调一致后通过人工增加对账单进行平账。

3、金额不一致

出现概率极低,一般为电商平台内部计算有误。

首先得先解决此bug,然后根据异常订单相应处理,比如说撤销对账,修改系统或对账单金额后再进行对账。

前端路由实现的两种方式

农村电商路由器怎么设置?

无线路由跟有线路由的设置相同,

在浏览器中输入192.168.1.1

2进入路由服务器,选择上网设置

3方式选择宽带pppoe上网

4输入账号密码点下一步5

设置无线名字及密码

6最后点击确定即可。

b2b2c电商系统怎样搭建比较好

1、B2B2C电商系统风格体验

作为一个B2B2C电商系统,在开发中应该要注重用户的体验。

在设计电商网站中,建议选择一些让人感觉比较清新舒爽的风格,在颜色跟布局上面多下点功夫,毕竟用户的体验可以左右到他的购买。比较有亲和力的电商都是比较让人喜欢的。

2、B2B2C电商系统的规划

B2B2C电商系统是按照用户来设计的,因此设计风格应按照用户浏览习惯。整体架构和整体布局,影响产品展现效果。架构简洁,布局合理是网站建设要求之一。设计与整体风格相符合,选择与设计相融合的配色方案。

作为一体化的企业,有义务保证产业链正常运作,不影响消费者购物。网上电商要不断完善,保证产品与服务质量,尽可能做到让消费者百分百的满意,才是网上电商的最终目的。

对于B2B2C电商系统规划而言,规划意味着未来方向,这一步也是决定系统潜力的奠基!

3、B2B2C电商系统功能有哪些?

1.商品管理功能

B2B2C电商系统的特点就是对商品进行管理,并在前台电商中对其展示,包括商品品牌图片、价格、款式大小等属性,提供给顾客选择。

2.会员管理功能

B2B2C电商系统会员管理的优势在于会员的社区互动,只要注册成为电商会员就能获得积分,可进行在线购物,还可享受相应的购物优惠等。

3.购物车功能

购物车的作用在于能够随意选择商品属性,例如衣服款式,码数,颜色等,在B2B2C电商系统购物车中可以全面的展现给客户,让客户根据需求来更好更直接的选择商品。

4.在线支付功能

在线支付是B2B2C电商系统主要的功能模块,安全方便的支付方式,可以很大程度的方便大顾客,并可支持多种支付方式。

5.订单管理功能

B2B2C电商系统订单管理功能,在电商中企业可以对工作流程的各个环节进行订制,比如:未审核、已审核、已发货、已退货、已付款、已取消等。

4、B2B2C电商系统的后台管理

比如怎么发布文章,怎么发布新一轮优惠信息和界面上栏目的删减和添加等多方面的问题如何处理,保证当客户提出问题时可以在第一时间及时解决,同时也能保证网站信息的更新速度,确保对潜在客户的吸引力和现有客户的保有率。

想搭建B2B2C电商系统,可以选择易族智汇javashop,他们致力提供高质量的电子商务产品和服务,通过10多年的努力,为国内多家大型企业提供电商解决方案、定制服务和技术支持,如:吉利集团、新奥集团、一汽集团、京东方集团、远大集团、顺丰、平安银行、科大讯飞等等,拥有超年的行业服务经验,专业可信赖。

电商前端架构设计

什么是前端架构

说到架构,很容易拉出一系列的概念知识点,像系统架构、软件架构、框架等等,这些不是今天探讨的重点,大家可以下去百度来理解。架构的本质是什么?其实也是一种管理。通常我们所说的管理,都是指对于任务和人员的管理,而架构管的是机器和代码。比如说,机器的部署属于运维的物理架构,SOA属于服务架构,那么,前端的架构指什么呢?

长期以来,前端所处的位置是比较偏应用层,很薄的一层,而架构又要求深度和广度,所以之前在前端里面做架构,好比在小水塘里游泳,稍微扑腾两下就到处碰壁。但最近这几年来,随着一些列新的技术和概念的出现,前端的范围被大大拓展了,所以这一层逐渐变得大有可为。

单纯从语言的角度来说,html、js、css是最简单最容易上手的开发语言,不考虑模块化、工具、压缩优化,任何人都可以快速上手,完成一两个功能简单的页面。在规模很小的项目中,前端技术要素彼此不会直接产生影响,因此无需架构相关的思考。由于前端语言这种灵活松散的特点,使得前端项目规模在达到一定规模后,工程问题凸显,成为发展瓶颈,原来孤立的技术要素开始彼此产生影响,各种技术要素彼此之间开始出现关联,要用模块化开发,就必须对应某个模块化框架,用这个框架就必须对应某个构建工具,要用这个工具,就必须对应某个包管理工具……这个时候,需要有人从比较高的角度去梳理、寻找适合自己团队的集成解决方案。而这一系列解决问题的工具和手段就是所谓的前端架构。

架构的组成

组件框架

架构不等于框架这一点很好理解,相信大家都能够很深入的说明这里的差别,框架是架构的重要组成部分,架构决定框架的选型,框架决定架构的技术路线。架构围绕框架进行一系列的流程工具建设,从而形成完善自动的开发体系。

+框架不等于类库,这里就是很多人困惑的点,你用的什么框架?jquery、underscore、linq、seajs、requirejs等等,每个人都能够列举一大堆。但这个是不准确的,一套编码框架是有一系列的元素组成:

开发模式,我们如何来实现代码的职责分离。以前整个前端是mvc中v这一层,而现在前端内部也进行了mvc的逻辑细分,Javascript的MVC框架现在很多,有的强化m、有的强化c。每一个框架其实都有其特点的,并且有越来越多的创新改造,比如现在最流行的是mvvm。有angular、react等等。我们是为了引入mvvc才把他们纳入到我们的开发体系,而不是因为他是一个好用的类库。

通讯,模块化、组件化是前端在推进开发模式过程中的一个过程产物,为了有效的进行组件隔离和独立,现在有各种各样的通信模型出来,不过由于实现简单,代码少,他往往是合入到某个类库里面,但本质也是一个类库。比较成熟的比如:消息总线、事件模拟、缓存中转、flux模型等等。

模板,我们用什么样的方式来集中的处理数据往html的转换过程,这里就不用多展开,这种类库现在太多了,光我们公司就有很多套,大家在代码行、缓存管理、预编译、运算性能、强大的语法等等各个维度不段追求各种极致。

基础类库 最后才是传统类库,相信现在已经没有同学会在项目中去约束团队中的dom操作、常用函数、方法、异步化等等各种很基础东西,这个时候我们一般就是引入jq、zepto、underscor这些封装好的东西就行了。核心就是为了改善编码生产力。

对于框架的选型要从两面看,一是看该框架的本领,二是看你们团队的能耐。从经验上给几个点建议:

这里也可以顺便展开聊一下现在前端产品的形态分类:

从这些分类里面,我们这些年派生出了所谓全端和全栈的概念。但本质上怎么走还是要由所在产品的形态来决定。

内容型Web站点 侧重渲染方面的优化,前端逻辑比重小

操作型B/S系统 以数据和逻辑为中心,界面较规整

hybrid内置型,要处理缓存和一些本地接口,包括PC客户端和移动端。现在的本地应用,基于很多考虑,都变成了混合应用,也就是说,开发这个应用的技术,既包含原生的代码,也包含了嵌入的HTML5代码

Web游戏,前端的逻辑非常重,在代码结构上要求非常高的可管理性和更复杂的设计模式。

桌面应用型,现在有一些PC端的混合应用开发技术,比如node-webkit和hex,前者的典型应用是XDK,后者的典型应用是有道词典,此外,豌豆荚的PC客户端也是采用类似技术的,也有一些产品是用的qt-webkit。这类技术可以方便做跨平台,极大减少开发工作量。

大工程应该尽量避开谷歌产品,他的很多技术开源项目都是玩票性质的,GWT、Closure、Darty就是前车之鉴。曾今提出过很多的新技术,到现在还是独家的,变出太大。包括现在angular,喜欢做断崖式升级,做做运营后台系统问题不大,如果是线上系统的话,每次升级就是一次人月神话中的典型焦油坑。

关注应用场景,像刚才说到的boss后台是一种;另外我的平台是否有沉重的历史包袱,需要兼容ie6,还是可以轻装上阵;产品对于seo是什么样的态度?是否需要考虑自适应?或者我的团队足够大,能够各搞一套?;产品特征是强内容还是强交互或者是游戏性。这些都是选择不同框架的主要出发点。

没有最好,只有最适合自己的,基本上,针对每个平台,我们都可以列出一些主流框架,但不意味着你们都能驾驭得住。小马过马,老牛没过膝,松鼠淹个半死,就是这么回事。但无论我们选择什么框架或决定自己动手造轮子,都勿忘初心,技术必须让我们工作生活更为轻松愉快——我们只选择我们能驾驭住的框架,我们不能保证它在一年后是否会过时落后。

而且按照我个人这么多年的经验来看,任何框架都会过时,往往不是因为他不够好,而是因为一定有更好的出来。我们再选择一个框架或者一个类库的时候就要想好,未来我如何抛弃他。至少不能成为我们引入新的框架的绊脚石。现实的工作中很多的团队往往会陷入到年复一年的用今年的新框架去重构去年老框架代码的历史循环中去。对于引入框架如何尽量延长他的生命力,我个人的意见是选择框架时去追求概念,而不是潮流,当我的架构可以接受新的设计概念的时候才去考虑引入新的框架。用设计理念的选择代替框架的选择。之所以这么说是因为我观察到我们部门的后端架构的开发理念跟我进公司的时候是差不多的。更多你可以参考成都网站建设

电商系统前置路由设计的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于前端路由实现的两种方式、电商系统前置路由设计的信息别忘了在本站进行查找喔。

    声明

    删帖请联系zhiyihome@qq.com;