精华内容
下载资源
问答
  • 前言:快递行业价格战打今天,各种为“价格战”解套的“大方案”开始发威,一些从未经历过一线网点实际价格战碰撞的“专家与高层”聚在一起大谈末端共享,却没有人提1.5~2.5元的快递怎么够末端运营,依靠一大堆...

    f2574d6232f2831452abb75b253a3172.gif

    2debe0f3ba94519f60f2106a13f46e7c.png

    识别图中二维码,立即收看课程!

    前言:

    快递行业价格战打到今天,各种为“价格战”解套的“大方案”开始发威,一些从未经历过一线网点实际价格战碰撞的“专家与高层”聚在一起大谈末端共享,却没有人提1.5~2.5元的快递怎么够末端运营,依靠一大堆叠加的名词又能解决什么问题,没有合理的快递费支撑“上山下乡”,就是一句空话,末端网点公司很简单,有没有价格高的业务让网点能做实事,有钱赚,因为,没有利润就没有服务。

    有网点公司老板称,末端做了再好,到最后都会轮为价格战的空间,也要网点老板说,这种大投入小产出也是远水救不了近火,虽然说上达表达都具备行业代表性,但是,有没有可以有第三种末端拓展空间适合网点,答案就在快递的上游电商。快递的下游,网购用户。

    关键是快递的上游电商和快递的下游网购用户对于网点公司来讲,电商的运营和成本是一个头疼的问题,必竞不在行。用户的上门推稍和组织货源是一个麻烦的问题。

    尤其是让管理员与派件员去做,几乎是不可能完成的任务。

    所以,网点锁定私域流量成为流量变现的敲门砖,私域流量是相对于公域流量来说的概念,简单来说是指是不用付费,可以在任意时间,任意频次,直接触达到用户的渠道,比如自媒体、用户群、微信号等,也就是KOC(关键意见消费者)可辐射到的圈层。是一个社交电商领域的概念。

    今天分享进入私域流量的三种简易方法。

    1e82cbc311dc9d9eedf2e34ef2a8f919.png

    50b1a5b4103351bd18a377f13921f1a2.gif1

    入对行,私域定位

    引导文:所谓私域流量就是网点公司可以自由反复利用,无需付费,又能随时触达淘宝用户。

    私域流量主要沉淀集中区在小区派件用户的公众号、微信群、个人微信号、朋友圈、抖音、微博等社交媒体渠道的用户。相对于淘宝、京东、百度这些公域流量平台,私域流量属于“私有资产”。

    既然网点公司理解了什么是私域流量,关键是怎么去定位网点公司销售所需的私域流量,

    网点公司首先要弄清楚私域流量的精准定位,从什么渠道获取。

    例如:某网点打算销售母婴产品,因为母婴产品的使用频次密度与周期相对精准,关键是该网点一直找不到好的微信群推广方式,网点老板也要求过业务员去加一些刚生孩子的年轻母亲消费者,关键是年轻母亲消费者对业务员加微信害怕发生黑客事件与微信诈骗,所以,让业务员加微信也不理想。

    该网点转变了思路,直接找婚姻登记处和妇保医院对接,并且建立了具备育儿信息软文的公众号,迅速建立了微信群

    评语:网点公司要建立微信群,首先要定位好需求入口,如果没有相应的需求入口,形成群内的群友相互讨论,那么该群很快就变成死群。

    关键是网点公司怎么去找到需求入口,实际上需求入口定位并不复杂,比如房地产公司与房地产中介,水果店与鲜花店,服装店与桶装水店,等等,都是拥有精准客户的单一入口。

    很多网点公司认为只要业务拉人加微信就行了,这个观点是错误的,首先应该分类派送包裹用户,把分类好的用户统一到单一话题群中,让群友产生沟通话题。

    c79f92465b204fa52a7d27dacc07750a.png

    50b1a5b4103351bd18a377f13921f1a2.gif2

    做对事,私域裂变

    引导文:网点公司找到了需求入口之后,剩下来的是怎么去裂变,事实上每一个需要入口的商户都有自己的微信群,都想扩大自己的商圈,网点公司想扩大精准用户群,相互交换换微信群是最好的做法,因为私域流量最精华的东西,就在于它能够裂变,而裂变正是降低流量获客成本的重要因素。市面上的裂变方法五花八门,主要靠价值观来吸引,但是对于中小企业与商户来说,这样做的成本太高。

    例如:某网点公司因为经常会客买水果,水果店商户拉了该网点老板入群,水果群中有很多不同职业的用户,该网点老板根据微信群友的“朋友圈”所发的信息进行二次定位,把相近内容的群友加到私人号上,再另外组建一个新群,并且,把该微信群友设置为微信群管理员,然后,付费给该管理员拉人费10元钱一个人,当然,要求该管理员拉需求相近的群友。

    然后,该网点老板利用水果群与服装店商户交换群,让双方进入各自的群中,这样,该网点老板在30万人口的小县城中达到了5万人共计100个500人群,该网点老板开始注册了五个小淘宝店铺,开始在群中投放店铺界面,本地化销售业务以800~1000单之间逐渐走上正轨。

    评语:网点公司要进行社区群销售,首先要选对需求入口,然后通过加群和交换群进行裂变,尤其是通过招募代理人来拉人建群,双方可以签一个协议,约定分成比例,当拉满多少人后,就可以进群进行销售了。

    社会公域流量就像河流,私域流量就像池塘,搭建私域流量,就需要从河流中引流入塘,将公域流量的粉丝,吸引到私域流量池中,为进一步实现锁粉和变现打基础

    b0ccaf09bbe0f854e6c158647234d232.png

    50b1a5b4103351bd18a377f13921f1a2.gif3

    跟对人,私域销售

    引导文:网点公司打造好私域流量建好微信群之后,实际上已经形成了需求商域流量,什么是需求商域流量,比如,以前网点公司要做业务员营销推广,要借流量。借包裹流量要打广告。打广告要花钱,要到用户、厂家、消费者去花钱打广告。打广告之后会给网点门店、网点淘宝店铺带来流量,这种流量叫需求商域流量,也就是业务员通过包裹带来的的流量,网点公司要用需要花钱。

    网点公司一定要明白私域流量的价值核心就是用户运营,私域被赋予了人格就是信任,是从流量思维转型为用户运营思维的标志

    私域绝对不是简单的朋友圈收割,而是长期关系的培养,这就需要运营团队极富“线上情商”,并以此在朋友圈打造人设,基于人设产生信任和强连接。

    关键是网点公司有什么类型产品适合在私域流量中销售,是不是所有的产品都要做私域流量?当然不是,网点公司除了确保供应链的稳定的同时,也必须确保商品的种类差异,品质差异,价格差异。

    评语:网点公司的私域流量中销售的商品必须具备有日,周,月,的周期强复购属性。商品价格处于中等客单价、有刚需维系属性、有生活知识话题性,才会产私域流量粘度,否则苦苦建立的私域流量会变成一次性广告群。

    尤其是产品的话题性,一定是功能价值情感价值的综合,缺一不可。绝对禁止纯广告。而我们需要用户参与进来,才能与流量池的人设、产品、其他用户产生更多链接,也才能通过用户的行为理解用户,这是私域流量池价值的基础。

    63d05b82f015fe99952f531e9074dc79.png

    结语:

    网点公司要想做好末端,不仅仅只有通过包裹引流用户到门店实现购买变现,利用本地化私域流量进行裂变打造更大的分类私域流量会直接形成刚需,只要私域流量微信群具备行业话题,植入需求商品被认可度就非常高,如果商品本身具备周期性,低价性,差异性,话题性,等等,网点公司做好本地化流量变现并不是一句空话,因为,用户到那里消费都是消费,网点如果更实惠更便利,有何不可。

    ab6a1155ed1035f50da247bbc9e15686.pngEND

    ff965522c49d903902143fa8408bb466.png

    922b3120e1c4ab6117f716fb7877aafe.png

    单店月均盈利2万,6000派件只有3个快递员,他是怎么做到的?

    b01f810c8b019c8c2ae8a5a9d7af67e0.png

    bac13045d13c8c2d773b6a78adc47e65.png

    展开全文
  • 加入公司的履历公司的履历或者叫发展史,一般来说,只要加上公司的履历进行创建基本可以保证90%以上的通过率,这样会给管理员一个信息,公司是一步一步走过来的真实的公司,不存在虚假的描述,是有很深的根基的。...

    在百度所有的孩子中,百度最喜爱的孩子就属百度百科了,百度百科的权重也是站在朋友们最为青睐的,百度百科排名绝对是靠前的,经常在百度搜索资料的朋友不难发现,随意搜索一些东西,百度百科都是靠前的,并且在网民心中,百度百科象征着权威,觉得能上百度百科的都是很厉害的人,或者有资质的企业,单凭这一点,百科就有100%的优势。

    现在很多公司在百度百科里都有自己的公司百度百科,创建公司百度百科也不是非常难的事情,不过许多朋友在创建公司百度百科时都是直接把公司简介覆盖而已,没有制订一个规则。在,今天,凡聚商品来看下具体创建百度百科需要怎么做?

    821bb49e0b364ade9f0a01782d16bdc6.png

    1.描述公司简介:公司类百科的简介要从公司名称,公司位置,创建时间,公司主营业务以及公司规模几个方面来描述,一般来说公司类百科创建成功与否关键点就在这里,要简单条理,突出公司的品牌和实力。

    2.加入公司的履历公司的履历或者叫发展史,一般来说,只要加上公司的履历进行创建基本可以保证90%以上的通过率,这样会给管理员一个信息,公司是一步一步走过来的真实的公司,不存在虚假的描述,是有很深的根基的。

    3.公司参考链接:公司的百科是一定要加链接的,要不用出不大,百科的链接一向以高权重,高点击著称,所以趁此机会要加上链接,一般来说加到间接地最后面通过率比较大,而且又不影响以后百科加名片中连接的丢失。这样公司百科的第一步创建完成。

    一:百度百科能怎么创建哪些词条?

    人物类:演员、歌手、画家、作家、网络红人、CEO、模特等

    公司类:企业、团队、学校、医院、品牌、产品、团队等等

    其他:网站名、品牌词、产品词、关键词、事件、书籍、歌曲等等

    二:百度百科怎么做?创建方法?

    1.词条名称:

    在百度百科的每个页面的顶端都可以看到百度搜索框,在搜索框中输入您要查看的词条名称。

    2.词条内容:

    您可以编辑器中根据您的理解,或根据相关书籍、网络等查找到的资料,对您所要创建的词条进行尽可能全面的定义阐述、解释和说明。您还可以利用编辑器上方的功能键,对词条正文进行目录、加粗、斜体、内链、表格、参考资料、图片、地图、图册等操作;目前百科的编辑中只能输入最多20000个汉字。

    3.词条目录:

    目录是编辑者组织词条内容的好工具,它的作用和文章里的目录一样,可以将词条包含的各个方面的内容进行梳理和划分。目录共有两级,分别为一级目录与二级目录。

    添加图片,选择的正确、清晰的图片可以对词条内容起到有益的补充,帮助每一位阅读者都能更好的理解您所编辑词条的内容。

    4.词条内链:

    为编辑词条设置内链,在您创建词条或编辑词条的时候,可以通过使用编辑框上方的“设为链接”按钮来增加该词条与其他词条的联系。

    5.扩展内容:

    词条链接应能帮助读者理解词条主题的内涵与外延,可供读者深入了解相关信息,开放分类和相关词条应有助于梳理词条的导航性分类,便于读者搜索和获取更多的相关内容词条图片应能紧密配合词条,具有阐释主题的功能,并具有较高的图像质量。

    三:创建百度百科相关注意事项

    1.了解一个词条的基本属性。做词条一定要细心,尤其是现在词条已经发展的很完善,投机取巧基本无法通过。

    2.为词条分配属性,完善目录分类。

    3.描述一定要客观。这也是需要特别强调的,你在描述一个产品的时候,一定要站在行业的角度上,用词尽量官方,百科很喜欢权威。

    4.阅读资料尽量填写权威的网站。在阅读资料中,至少要填写一个你的行业中比较权威的网站链接。

    展开全文
  • 这为管理员提供了一种管理云应用程序和服务的通用方法,从而使这些应用程序和服务可以跨不同云供应商的平台进行移植。其实Terraform可以说是TOSCA语法的一种实现方案。 下面介绍一下TOSCA在SmartCMP中的实现方案。 ...

    昨天在云计算运维圈出来一个爆炸性新闻,HashCorp不允许中国公司使用Terraform,consul等多个产品了。作为国内领先的提供云服务编排能力的公司,我们也被经常问起,你们SmartCMP和Terraform有啥区别。借这个事件,我们来介绍一下Terraform,IaC,服务编排等概念和Terraform和SmartCMP差异。

    Terraform 是什么

    Terraform 是 HashiCorp 推出的一个很棒的基础设施即代码工具( https://www.terraform.io/ )。Terraform相比传统人工操作,有如下好处:

    • 基于 IaC(基础设施即代码,Infrastructure as Code)的设计,可以将基础设施以一种领域特定语言描述出来,消除了在基础设施自动化时描述语义上的歧义,同时减轻了人为因素造成的不确影响。

    • Terraform 在执行编排动作前,会生成一份可读性良好的执行计划,关键基础设施的变更可以得到充分审查,保证了基础设施的可靠性。

    • 基于 DAG(有向无环图,Directed Acyclic Graph)描述资源与资源之间的关系,由于 DAG 良好的拓扑性质,当资源属性与资源关系发生改变时,变更动作将被充分并行地执行。

    dc3eb8db51885b99aea182305c6d5bfb.png

    让我们来看看Terraform的例子创建阿里云 ECS一台VM的例子:

    1.  配置好环境,确保访问信息均已在执行系统中设置完毕。

    2.  编写如下ECS创建代码:

    97bc76d8d47a480e49920f0b599cbc2c.png

    3. 运行Terraform apply开始创建。

    总共就3步,是不是看起来很简单?但对于一款企业级应用而言,这一点都不简单!

    社区版Terraform真的适合构建企业级的IaC平台吗?我们不妨看看运维小李的遭遇。

    ec58cba4ae0892c5c26b37c583f81f23.pngb15babc4a300bd5e49409a8ad7867f9c.png9fd132e6373c96d3b5336389babc77dc.pngfcbe9563446d1c40f9d24cb69468f2b6.png099dd78ca4ee935a23e236ccfb0fa259.png2386b66b5bf40b34d0daf8aaaabbec85.png370dd1b683d47ca0ee34842b02989584.png3c025ed1ae03a031dee7f761a146d156.png61b0c26122dc401d54db9e16c47dd44c.png

    SmartCMP对IaC和服务编排的支持

    骞云旗舰产品SmartCMP云管理平台从1.0版本 — 6.0版本的迭代中,始终将强大的服务编排和基础设施即代码能力作为平台的核心价值之一。SmartCMP云管理平台的IaC能力是基于国际标准的TOSCA构建的。在分析SmartCMP的IaC技术细节前,我们来看看用户是如何通过SmartCMP云管理平台自服务申请一台阿里云ECS主机的。

    SmartCMP提供可视化的,自服务的申请门户,如下图:

    79ea5c529db0d3e1359712bcbb6504c1.png

    普通用户根据需求点击“阿里云ECS”服务卡片,就会进入到申请页面。整个页面分成以下三大块:

    1. 申请服务的蓝图和申请人的组织信息。组织信息让平台能够根据申请人的背景提供可选择的资源环境。

    205a154ed1c23769796904b45577140f.png

    2. 申请的基本信息,包括标签,租期

    4c3bb2c07aa221d5e7174e19febf8b0b.png

    3. ECS节点的参数配置

    通过和Terraform的比较,可以发现SmartCMP可以提供非常类似的配置,但都是通过策略限制和下拉的方式提供,是SmartCMP云管理平台具备一定的优势。

    • 用户通过平台统一管理阿里云访问密钥;

    • 根据需求动态调整阿里云可用区等资源,镜像也会提供下拉的方式供用户灵活选择等等;

    • 清晰直观地查看整体服务的预估费用,并进行不同云平台的比价。

    fb0c00713ff4302fb1dbc35580b48827.png

    申请后,平台就根据配置自动化创建云资源,SmartCMP平台每次申请的结果都是服务部署,因为一次编排可能产生一个或者任意多个云资源。下图是申请后的服务的详情状态。

    1388702e8907b99687497f13180d2359.png

    可以跳转到右下角的节点,可以到创建的阿里云Instance详情页面,看到ECS Instance的动态信息,并做变更操作。

    a1c567c7f90d24e5f0f35794ea43c9f7.png

    看到这里,也许有人认为,这些都是UI直接交互的,和IaC,和Terraform有什么关系呢?其实IaC,服务编排时SmartCMP的核心基础。我们来看看SmartCMP的IaC能力是如何构建的。

    骞云SmartCMP是基于云应用拓扑和编排规范(Topology and Orchestration Specification for Cloud Applications,简称TOSCA)开发的。TOSCA是一种用于描述在云计算平台上的服务和应用程序以及它们之间的关系和依赖性的语言规范。TOSCA可以描述云计算服务及其组件,并记录这些组件的组织方式以及使用或修改这些组件和服务所需的编排流程。这为管理员提供了一种管理云应用程序和服务的通用方法,从而使这些应用程序和服务可以跨不同云供应商的平台进行移植。其实Terraform可以说是TOSCA语法的一种实现方案。

    下面介绍一下TOSCA在SmartCMP中的实现方案。

    完美支持TOSCA标准的IaC规范

    TOSCA本身是一个语言规范,本身不提供任何实现功能。骞云SmartCMP作为从产品设计初始,就采用TOSCA作为云服务描述语言,提供了业界对TOSCA最完美的支持。SmartCMP对TOSCA的支持也包括如下核心功能

    云组件 – 对应TOSCA的Node

    在最新的版本里面,平台将之前软件组件扩展成为任意云组件,进一步完善了对TOSCA的模型支持能力。

    云组件的核心目标有如下几点:

    1.  用户可以非常方便的添加任意云资源类型,包括IaaS,PaaS,SaaS等。更好的支持SmartCMP构建XaaS的能力。

    2.  用户可以非常方便的扩充现有云资源类型的能力,包括添加组件额外的属性,额外的操作,操作的UI交互等。

    TOSCA的组件是基于面向对象的,所以SmartCMP的云组件也一样。平台的组件也同意支持面向对象的核心能力,包括:

    • 对象类型定义,包括私有属性,操作

    • 继承关系

    • 多态

    • 覆盖

    193a313f1df27603da46e6df67fd96bb.pngf8dd2d21efe1fc5c2d72c428586619ca.png

    Terraform也有每一个对象类型的定义,并且也是可扩展的,Terraform使用的alicloud_instance就是一个云资源类型,类似上面的信息。SmartCMP提供了UI方式方便添加任意新的云资源类似。

    服务蓝图 – 对应TOSCA的Topology

    服务蓝图目前已经是面向服务,面向应用的云管理平台的核心能力之一。通过基于TOSCA的蓝图,我们可以构建一个面向目标的编排引擎,也就是我们画出来什么,最后就出来部署出来什么,变更出来什么。市场更多的是基于流程的编排,用户需要自己定义每一步需要做什么,该怎么做。

    SmartCMP有两种服务蓝图设计状态:

    1.     所见即所得的画布设计;

    2.     YAML语言编辑,会根据可视化蓝图动态生成。

    b9d191ac9e4b178816ba4e338855534c.png

    大家可以看到,这个YAML里面并没有任何环境特殊的信息,包括云平台的访问,区域信息,操作系统镜像,安全组ID等。这是为什么呢?原因是我们希望蓝图是一个抽象的拓扑模板,可以在不同场景复用。所以平台化提供了如下基础设施抽象:

    74f5d3d0aea14b5888c906d423e252af.png

    SmartCMP把这些和云平台具体环境相关的内容,抽象出来后,就提供用户,将一个特定云应用,部署到任意云平台的任意区域。申请人完全不需要了解在不同的云,不同的可用区,其实存储,网络,操作系统镜像,规格其实都是不一样的。我们认为,非专业运维人,不需要也没必要了解这些专业知识。

    大家是不是觉得,SmartCMP的可视化蓝图,云环境的封装,友好的申请,符合IT规范的自动化,比Terraform美丽多了呢?

    最后,在回答一下朋友关切的内容?SmartCMP的编排是否完全依赖Terraform?是否会受到影响呢?答案是没有,Terraform是SmartCMP编排引擎里面支持的一种特定语言,但更多是给用户的扩展场景使用的。平台自身的组件,都是基于SDK的直接调用,而且这样的直接调用也有非常明显的好处。以阿里云VPC组件为例,平台原生代码使用的Python SDK,如下图。

    b9f90da7e617ea01a7ace42eaa6eeebe.png总结

    Terraform是一个非常优秀的IaC和服务编排引擎。但它的定位更多是专业运维人员的自动化脚本,和它更匹配的是Ansible等工具。

    SmartCMP同样提供了IaC和服务编排能力,但定位是面向企业所有用户的统一云服务中台,需要提供完全的流程管控,强化IT规范策略,简单易用的自服务能力等等。

    在Terraform不能用的时候,各位小伙伴们来体验一下SmartCMP的强大服务编排能力吧!

    2a4fa5c9500fe83abb24198cb9422f04.gif

    Terraform在中国禁止使用期间

    骞云科技提供SmartCMP在50节点以内的免费使用

    快来申请!!!

    0178ba313af6f7e3726a9993593179b3.png6ce6215fe217d1843273c446fdd09272.gif
    展开全文
  • 软件工程中有一个软件设计阶段,通俗的讲就是在开工之前将能确定的确定下来,该考虑的考虑了。这相比在开发阶段发现问题,解决的成本要低很多。如果按照教科书上的定义,软件设计就是是一个将需求转变为软件陈述...

    软件工程中有一个软件设计阶段,通俗的讲就是在开工之前将能确定的确定下来,把该考虑的考虑了。这相比在开发阶段发现问题,解决的成本要低很多。

    如果按照教科书上的定义,软件设计就是是一个将需求转变为软件陈述(表达)的过程。一般有概要设计(或者初步设计, Preliminary design)和详细设计(Detail design). 概要设计将需求转换成数据和软件框架,而详细设计将框架逐步求精细化为具体的数据结构和软件的算法表达。本文讲述的是前端项目的概要设计。

    相比后端开发, 对于前端,’软件设计‘很少被提及,也有可能是一直以来前端的工作都比较'简单',所以比较粗放。一般给了原型和接口文档就直接开干了。但是随着前端开发者的工作越来越复杂,或者项目/团队的规模变大,我们越来越需要在编码之前进行合理的设计。

    作为前端入门Leader, 最近面临了一些问题: 比如项目分工问题、项目维护缺乏文档问题, 让我开始重视软件设计阶段. 就目前看来,做好前端概要设计,至少有以下好处:

    • 事前. 设计文档是开发的蓝图,后续开发可以按照这个文档逐步展开。良好的设计可以保证开发沿着正常轨道迈进。
    • 我们在设计阶段会进一步梳理业务流程,加深对业务流程的理解,甚至可以找出业务流程中的不合理的东西。
    • 模块拆分。这个阶段我们会识别各个模块之间边界和重叠,将重叠的(共享的)部分抽离出来。另外模块是基本的开发工作单元,也是我们团队分工和时间评估的基础。
    • 考察关键的技术点。提出多种备选方案,充分考虑各种风险, 选择符合实际需求的方案
    • 事后. 设计文档对事后的软件维护、功能新增,有很大的帮助

    下面开始介绍,前端在软件设计阶段应该考虑东西,或者说前端的概要设计文档里面应该包含哪些东西. 当然这些只是一些初步的想法,随着后面深入实践后,本文会持续更新迭代.

    文章大纲

    • 关键业务流程的梳理
    • 关键技术点
    • 模块设计入口层
    • 页面层
    • 组件层
    • 分工
    • 状态设计
    • 接口设计
    • 版本规划
    • 验证
    • 项目要求和目标
    • 文档索引
    • 构建说明
    • 持续迭代
    • 模板
    • 总结
    • 参考资料

    关键业务流程的梳理

    开发任何一个产品之前,首先要确保的是对业务流程的理解,否则就会出现南辕北辙的情况。

    在现实项目中发生过多次这类情况:项目到达测试阶段,测试人员才发现应用的业务实现和产品定义不一样,或者业务流程不合理。 这其实是一种很低级的失误,改动的成本可能很高,甚至会让你的所有工作白干。

    管理比较成熟的公司会有很多手段来规避这种失误。

    比如定义明确需求文档,这方面可以模仿一些标准/规范(Spec)的写作方法,严格定义一些关键字,避免模棱两可的描述;

    另外可以通过各种宣贯会议,将相关人员聚集在一起,统一导入需求。在这些会议中可以进行头脑风暴,优化或细化需求的定义、发现缺陷和风险,分析可行性等等。通过不断沟通,成员之间可以分享交叉知识,确保对业务一致理解.

    401c7f7efdee210f6abe9d3dab3d99ed.png

    因此,我觉得前端在设计阶段也应该像后端一样,用流程图或者时序图这类工具,将关键业务流程描述清楚. 尤其是涉及到前后端, 跨系统/跨页面/跨终端之间的业务交互的场景.

    举个例子,比如我们在做一个’扫码登录‘功能。我们可以将跨终端的业务梳理出来:

    3a743a473130a014ecc8bad05ab94e9e.png

    从上面的业务梳理中我们可以识别出业务对象的基本行为和状态. 例如二维码的状态转换图:

    f3f86831b49fed7706288322715dc751.png

    当然, 简单的增删查改花篇幅去阐述没有意义。我们只关注应用关键的业务流程.

    总之,业务流程的梳理,可以加深我们对业务的理解,是后续设计步骤和开发的基础.

    关键技术点

    描述应用采用的或者涉及到关键技术/算法, 也可以认为是技术选型.

    比如典型的有视频直播应用,涉及到的各种直播方案:

    • RTMP 协议
    • RTP协议
    • HLS 协议
    • flv.js
    • WebRTC协议
    • 等等

    在开启一个项目之前, 我们需要对项目涉及到的关键技术点进行调研和测试,最好多找几个替代方案,横向地比较它们的优势和劣势。选择符合项目或团队自己情况的方案. 如果时间充足, 可以写一些Demo,实地踩一下坑.

    如果有多个备选方案,最后要甄选出推荐方案,并说明选择的原因和考虑。

    提前做好技术的调研和选型,确定可行性,不至于开发处于被动的境地.

    模块设计

    现代前端一般都使用组件化思维进行开发,这时候我们的应用其实就是一颗由不同粒度的组件复合起来的组件树,这颗组件树最终会体现到项目的目录结构上。 在设计阶段我们可以根据产品原型或UI设计稿,识别出各种页面和组件

    8010d7a5ba3e96d9fec8089696344fad.png

    正常的应用,我们可以分三个层级进行拆分:

    4d5fd158ab0b3fe0d12ebcadec9754f3.png

    入口层

    稍微复杂一点的应用可能有多个入口,这些入口呈现的页面可能差异很大. 下面是一个常见的划分方法:

    • 按子系统划分: 比如前台和后台。
    • 按角色划分:比如管理员、普通用户
    • 按入口划分:比如移动端、桌面端等等

    页面层

    下一步就是识别各种页面,这些页面即对应到我们的前端路由配置规则. 以下面简单的应用为例:

    57d43e80cf7b5fd7f3444a571fd7db27.png

    关于模块的划分,我建议使用思维导图进行组织。模块划分这个环节,你可以召集团队的其他成员开个会议,一起进行头脑风暴。大家参照着产品原型,识别出各种模块或组件的边界和交集, 讨论怎么设计页面的数据流、组件的接口等等, 这样可以利用集体智慧,让模块拆分更加合理,另外可以促进团队成员提前熟悉项目的结构。

    所以说软件设计不是架构师或设计人员一个人的事,应该鼓励大家一起参与,设计文档是整个软件团队的产出, 是团队的知识沉淀

    上面的应用通过页面层划分后,结果大概如下:

    e40d1d853a143d59470099dd695ee7c1.png

    在这个阶段我们会确定以下内容:

    • 页面以及路由设计, 确定页面之间的层级关系
    • 页面之间交互流程、数据传递

    路由之间的数据传递一般有以下几种方式:

    • 少量数据:可以通过路由变量(例如/posts/:id)或者查询字符串形式传递. 还有如果你使用的是基于History API的前端路由模式,可以使用History的state对象来存储一些状态(最大640k)
    • 大量数据:可以通过全局变量,或者状态管理器的机制进行存储, 不管这种存储在内存的方式,一旦页面刷新就会丢失。所以也可以考虑存储在本地缓存中, 例如LocalStorage

    组件层

    Ok,再往下拆分,不过要量力而行。对于一个非常复杂的项目来说,可能有成千上百个组件,而且这些组件在未来可能会不断变化,在设计阶段考虑这些拆分可能需要花费很多时间,而且收益并不明显。

    那么需要怎么把握粒度呢?其实组件层设计阶段的主要目的是找出重复的、或者结构类似的组件,将它们抽取出来统一的设计,在多个页面进行复用. 并不是把所有的组件都列举出来

    我在React组件设计实践总结02 - 组件的组织这篇文章中,专门介绍React组件如何进行组织和拆分。其中提出了以下集中模式:

    • 容器组件和展示组件分离。或者说分离视图和逻辑, 业务组件和傻瓜组件. 纯逻辑的东西放在Hooks中,使用起来会更加方便
    • 纯组件和非纯组件. 可以认为纯组件完全依赖外部输入
    • 有状态组件和无状态组件
    • 布局组件和内容组件
    • 统一设计同一类型组件的接口. 比如表单组件应该保持接口统一
    ade0566b92817228352ec69fa3ea4a97.png

    还是上面的示例应用,申报页面有非常多的表单项,而且经常变动,另外你会发现它和预览页面的结构是差不多的,而且后面可能会有桌面端页面。

    经过讨论,我们决定采用配置文件的方式来动态渲染表单页和预览页。实现一套配置控制移动端申请表单、桌面端申请表单、移动端预览、桌面端预览页面。

    类似上面这种应用场景,前期的组件层设计就很有必要了。

    fb260e354f85d8413af934dbc600c05d.png

    分工

    将模块拆分清楚后,我们就可以针对这些模块进行合理的分工和时间评估。基本上有三个步骤:

    f11068343646f5c418f04ba788f26f93.png

    通过上面的步骤,我们识别出来了各种模块,接着我们要确定下来这些模块之间的依赖关系,这些依赖关系影响它们是否要作为一个整体进行实现。最后再根据业务的优先级或依赖关系决定这些模块簇的实现优先级。

    Ok, 现在可以将这些模块簇按照优先级排序, 加上评估时间(人天),整理成一个清单。 如果你们使用看板来进行项目管理, 可以将它们作为一个任务单元,贴到看板中.

    1. Foo 功能 - c 2d - d 1d - f 3d2. Bar 功能 - e 1d - h 0.5d3. Baz 功能 - g 1d4. Fu 功能 - a 4d - b 1d总计人天: 13.5复制代码

    任务的分工有很多策略, 例如:

    • 横向划分
    • 公共组件 vs 业务组件(对接业务)
    • 自上而下 vs 自下而上(指的是组件树)
    • 垂直划分: 按照独立的垂直模块分工
    87e30ec4d4f66e341e880ce5b4da568b.png

    状态设计

    68b071f0bbbdfe637575a42812e19ed4.png

    前端组件化伴随而来的是各种数据驱动或数据流驱动的开发模式。这种模式下,前端应用可以总结为这样一个等式:

    view = f(state)复制代码

    也就是说视图是数据或者数据流的映射. 可见状态管理对现代前端开发的重要性。

    状态的设计和后端对象模型设计差不多。你需要根据业务和页面渲染要求抽象出各种对象模型,以及缕清对象模型之间的关系。这个阶段可能需要和后端紧密结合,才能确定出合理的对象结构。

    当然状态的设计还跟你选择的状态管理方案也有关系, 不同状态管理器方案体现的思想差异较大:如果你选择Redux,那么应用的状态就是一颗对象树;如果你选择Mobx,应用的状态可能由多个模型对象组成,更接近传统的OOP模式。

    如果采用OOP设计方法,可以绘制UML图,可视化表现对象的结构和关系:

    9a9b7546c3ac9cc6dbb6316f8e0a14f1.png

    Redux 状态设计:

    d2ecceda735b32140dadcf44b159e18e.png

    Mobx 状态设计:

    2d8ae10956bf4e3d7736168a055c5465.png

    接口设计

    如果前端团队在接口设计方面有主导权, 或者使用BFF架构(服务于前端的后端),在设计阶段我们需要对各类接口进行设计。

    不过一般主导权都掌握在后端手里,因为前端对业务的关心程度较低,后端一般会综合考虑各端的接口需求、数据库存储效率、可维护性等多个方面来设计接口, 这时候前端就是接口的用户,我们有责任来验证后端接口是否符合需求.

    我在if 我是前端团队 Leader,怎么制定前端协作规范?已经提及了各种接口规范. 这里不予赘述。

    版本规划

    通过上面的步骤,我们基本已经了解我们需要做什么、需要花多久。接下来,

    应该制定一个版本计划,对于一个大项目可以拆分为多个里程碑, 估计版本发布的时间. 加不加班就看你了,作为Leader要综合考虑各种影响因素,实事求是合理地安排版本发布计划。

    这个发布计划可能还需要经过PM和项目经理审核, 作为前端项目,开发计划通常还依赖于后端团队.

    63a5ee88740abf31843ad0d04f39e5eb.png

    这个版本计划中会包含这些内容:

    • 版本号
    • 发布时间
    • 包含的主要模块

    验证

    验证,或者称为’测试指导‘。 除了测试团队提供的测试用例,从开发(白盒)的角度还需要注意哪些东西?

    产品或者测试可能只会从业务的层次考虑应用的运行,我们需要从研发的角度,充分考虑各种异常情况性能瓶颈、进行风险评估. 阐明风险的应对方案等待.

    这些情况也可以反馈给测试团队,以完善测试的用例.

    项目要求和目标

    一些需求是要提前确定下来的,对于前端来说,比较典型的就是浏览器兼容性要求。你可不要等到项目上线后,才跟我提用户要求兼容IE6!

    这些项目要求可能会影响我们的开发成本、选型、测试和其他因素的评估。基本上,对于一个前端项目来说,这些要求是要提前问清楚的:

    • 浏览器兼容性
    • 运行环境. 例如操作系统、小程序等等
    • 时间点
    • 性能指标要求. 例如首屏指标、数据量指标

    文档索引

    前端项目开发可能会关联很多文档,这些文档是分散的,在设计文档中最好把它们聚合起来,方便查阅和引用. 例如:

    • 需求文档
    • DEMO, UI设计稿
    • 测试用例
    • 接口文档
    • UI设计规范文档
    • 前端规范文档
    • ...

    构建说明

    如果你的项目需要设计构建流程,也可以在设计文档中简单提及。

    例如如何编译和运行? 如何测试和调试? 如何部署或发布代码如何组织开发工作流编码约定等等

    新成员通过这些说明可以快速上手开发.

    持续迭代

    设计文档不是一次性的,它应该跟随项目不断的迭代,不然就失去了文档的意义。

    模板

    最后,规范一些设计文档的格式和内容

    # XXX 概要设计文档## 背景填写项目的背景, 或者开发或重构的目的/出发点.## 关键业务流程可以放置关键的业务流程图、状态图、对象图等等. 梳理关键的业务流程## 关键技术描述可选, 描述项目中使用到的关键技术、算法、选型结论等等## 模块拆分- 入口- 页面路由- 组件设计可以使用思维导图描述## 状态设计描述应用涉及的关键领域对象, 比如外形、行为和关系. 如果是OOP方式,可以使用UML描述## 接口设计可选,如题## 项目要求和目标项目目标、运行环境、兼容性要求、性能指标等等## 验证可选, 风险评估、异常情况考虑、特殊测试规则、测试指导等等## 分工和版本计划可选, 可以在单独文档或者看板中维护## 构建说明可选, 项目组织、构建、测试说明## 文档索引相关文档的索引和链接## 参考资料文档中索引页的外部参考资料## CHANGELOG列出本文档修改的历史纪录。必须指明修改的内容、日期以及修改人复制代码

    很多开发人员都不喜欢写文档,包括我以前也是这样的。我们会找各种借口:’时间紧张,没时间做设计‘、’用来写设计文档的时间,我的开发早就做完了‘。

    这些想法显然是不正确的,给我的启示是我们要根据团队情况而定,不要求设计文档有多么详尽,在时间紧张的时候可以粗略一点。等时间充裕再回顾补充也是可以接受的; 或者如果项目划分为多个周期进行开发,我们也可以在每个周期开始时进行详细的设计

    参考资料

    想要获取前端进阶资料可以关注我,私信回复:“前端资源

    695faa495f5e7e365bdac91617a2a6ac.png
    92a6077b3301ad863ebee3aea9f18945.png
    c33984746edd5056e57defe65b3bad61.png

    关注我,私信回复 “前端资源”免费领取

    展开全文
  • 由于大多数UGC建站系统存在漏洞,攻克技术成本较低,且群发软件价格低廉,容易被作弊者利用,近期我们发现大量UGC站点被群发的...从以前的论坛帖子、博客日志,扩展供求信息页、视频页、用户资料页,这些任何由...
  • 获得300个积分就可以在申请一个圈子~ (1)积分的获得:加到任意一个你感兴趣的圈子里,进行投稿,只要内容被收录了你就会获得1个积分,如果有人帮你点看好,你就可以再获得1个积分。 但是请注意:投稿每天最多只能...
  • 某大神写了个程序,每次服务器开机是必须执行这个程序,这个程序必须用sudo管理员的权限执行才有效,每次开机后都要去手动执行这条命令,懒人怎么受的了?于是乎,我想到这个命令添加系统启动项里面,但是,普通...
  • 某大神写了个程序,每次服务器开机是必须执行这个程序,这个程序必须用sudo管理员的权限执行才有效,每次开机后都要去手动执行这条命令,懒人怎么受的了?于是乎,我想到这个命令添加系统启动项里面,但是,普通...
  • 以前我也时不时的会碰到这种问题,现在修改方法写出来,希望能帮助个位和我一样喜爱织梦CMS的朋友。分析:织梦管理员密码存储表:dede_admin(“dede_”,这是默认表前缀)织梦管理员密码加密方式...
  • XP默认是从网络登录的所有用户都按来宾账户处理的,因此即使管理员从网络登录也只具有来宾的权限,若遇到不能访问的情况,请尝试更改网络的访问模式。打开组策略编辑器,依次选择“计算机配置→Windows设置→安全...
  • 大家重装windows系统后,会想mysql加到系统服务里面,那怎么做呢? 命令如下: mysqld.exe –install 但是却发现被报错误: Install/Remove of the Service Denied! 怎么办呢?我们有如下解决方案...
  • 最近忙着创业,好久没有写文章了。今天就抽空给点餐系统一个排号等位功能,想这个功能很久了,一直没有瞅时间写。今天就这个功能实现了,顺便写个...然后管理员在后台操作,排到位的客户可以入座。 等到号.
  • 4:我的数据库设置了管理员登录:admin 密码123456 5: 写了个generatorConfig.xml 6:::新增:看到有人回复说数据库的名字没有改: 我用的是mysql 数据库名是:shop 密码是:1234 userId我不知道是要赋值...
  • 用不可逆加密算法sha1或则MD5来存储密码,安全性能是比较高,但是随之而来的用户忘记密码,像管理员找回,管理员也没办法,只有从新生成一个密码,然后换算成加密值更新数据库,但是这里如果是人工操作的话...
  • 禅道是第一款国产的开源项目管理软件。它集产品管理、项目管理、质量管理、文档管理...699 计划关联需求时候的搜索,所属计划怎么把所有的都列出来了? 696 测试-bug 已延期标签搜索条件和列表页面延期提醒条件不一致
  • Sam R.Alapati是世界顶尖的Oracle技术专家,一位经验丰富的数据库管理员,有20多年从业经历。他拥有Oracle OCP DBA证书和HP UNIX System Administrator证书,曾经担任Oracle公司的高级顾问,并在AT&T、雷曼兄弟、...
  • 博执药店GSP管理系统

    2012-12-08 21:23:04
    博执软件的永久免费版 推广版无任何使用功能限制 一、【独家特色功能,祝您事业马功成】---免费版无功能限制 1、独家提供两种拆零方式。第一,直接拆零,拆零最...想怎么统计就怎么统计,想怎么打印就怎么打印;
  • (注:必须与前台发文用户对应否则超级管理员无法登录)。 此网站需要两次登陆,第一次登陆的是前台用户,第二次登录的时候是超级用户,登录了两次才可以进行 系统所有的设置,在修改密码的时候用户管理里面修改...
  • 该实例也没有做完全,没有修改管理员帐号密码的功能,需要自行开发掌握了网站开发框架和一些VS2008使用的技巧。下一步要加强自己动手做扩展功能的能力,以及从头到尾这本书尽快通读一下,找出需要实践的实例,尽快...
  • 20.8 不要FILE、PROCESS 或 SUPER权限授予管理员以外的帐号: 86 20.9 load data local带来的安全问题: 87 20.10 尽量避免通过symlinks访问表: 88 20.11 使用merge存储引擎潜藏的安全漏洞: 88 20.12 防止DNS...
  • 39、编辑器在线定制管理功能:编辑器后台管理系统,增加、删除编辑器某项指定的功能,调整编辑器上传文件夹,上传文件管理等操作; 40、阿赛网站文件管理商业版:在线查看网站内所有文件,并可直接对文件源码进行...
  • 如果系统检测无效或非标准分区表标记,将提示用户是否继续执行该命令。除非您访问驱动器有问题,否则不要继续进行。向系统分区写入新的主引导记录可能破坏分区表并导致分区无法访问。  format  将指定的驱动器...
  • oracle0g portal 点滴

    2008-11-05 08:48:00
    oracle10g portal怎么用户设置默认页:1 创建页组----创建页2 创建用户,假如叫TEST(一定要先创建一个用户然后在创建组,下边会讨论为什么)3 创建用户组,TEST加到该组,同时ORCLADMIN从该组删除(一定要...
  • 如果您是企业公司,那么我们是目前唯一真正最适合企业使用的留言系统,可靠的安全性,灵活的可定制性,持久考验的稳定性以及商务化的风格是...适用于行业用户及高要求用户的单超级管理员/多管理员/单用户留言系统  
  • 一、防止数据库被非法下载应当说,有一点网络安全的管理员,都会从网上下载的网站程序的默认数据库路径进行更改。当然也有一部分管理员非常粗心,拿程序直接在自己的服务器上进行安装,甚至连说明文件都不进行...
  • Java后端服务器点餐系统的部署+前端微信小程序开发(14) 点餐系统排号等位功能拆分说明 ...然后管理员在后台操作,排到位的客户可以入座。 等到号的用户,就会出现可入座的标识。后面会增加排号的用户接受微信订
  •  系统支持站内短消息互发,站内短信功能非常实用,商城用户可以与管理员通过互发站内短信沟通和联系,有利于与用户的近一步沟通。 十八、完善的广告管理形式  系统的广告管理位很多,所有广告图片内容均可以直接...

空空如也

空空如也

1 2 3 4
收藏数 73
精华内容 29
关键字:

怎么把用户加到管理员