开头名为大的APP,A带有多多两个字的APP

更新昨天突然好奇在Google上搜了一波关于create-react-app 源码的关键词,发现掘金出现好几篇仿文就连我开头前沿瞎几把啰嗦的话都抄,我还能说什么是吧以后博客还是首发在Github上,!!转载求你们注明出处、改编求你们贴一下参考链接...

更新这两天我边读边思考我是不是真的懂了,我发现我有个重大的失误我弄错了學习的顺序,学习一个新的东西我们应该是先学会熟练的使用它,然后在去探究它的原理我居然把第一步忽略了,这明显是错误的所以我今天在开头新补充一节使用说明,同时对后面做一些修改和补充

之前写了几篇关于搭建react环境的文,一直还没有完善它这次撸完這波源码在重新完善之前的从零搭建完美的react开发打包测试环境,如果你对如何从零搭建一个react项目有兴趣或者是还没有经验的小白,可以期待一下作为我看完源码的成果作品。

如果后续有更正或者更新的地方会在顶部加以说明。

这段时间公司的事情变得比较少空下了佷多时间,作为一个刚刚毕业初入职场的菜鸟级程序员一点都不敢放松,秉持着我为人人的思想也想为开源社区做点小小的贡献但是┅直又没有什么明确的目标,最近在努力的准备吃透react加上react的脚手架工具create-react-app已经很成熟了,初始化一个react项目根本看不到它到底是怎么给我搭建的这个开发环境又是怎么做到的,我还是想知道知道所以就把他拖出来溜溜。

文中若有错误或者需要指正的地方多多指教,共同進步

就像我开头说的那样,学习一个新的东西应该是先知道如何用,然后在来看他是怎么实现的create-react-app到底是个什么东西,总结一句话来說就是官方提供的快速搭建一个新的react项目的脚手架工具,类似于vuevue-cliangularangular-cli至于为什么不叫react-cli是一个值得深思的问题...哈哈哈,有趣!

不说废話了贴个图,直接看create-react-app的命令帮助

required,直译一下仅仅只有项目名称是必须的,也就是说你在用create-react-app命令的时候必须在其后跟上你的项目名稱,其实这里说的不准确像--version --info --help这三个选项是不需要带项目名称的,具体看下面:

  • create-react-app --info:这个选项也可以单独使用打印当前系统跟react相关的开发環境参数,也就是操作系统是什么啊Node版本啊之类的,可以自己试一试
  • create-react-app -h(or --help):这个肯定是可以单独使用的,不然怎么打印帮助信息不然就沒有上面的截图了。

也就是说除了上述三个参数选项是可以脱离必须参数项目名称以外来单独使用的因为它们都跟你要初始化的react项目无關,然后剩下的参数就是对要初始化的react项目进行配置的也就是说三个参数是可以同时出现的,来看一下它们分别的作用:

  • create-react-app <my-project> --scripts-version:由于它本身紦创建目录初始化步骤和控制命令分离了用来控制react项目的开发、打包和测试都放在了react-scripts里面,所以这里可以单独来配置控制的选项可能這样你还不是很明白,我下面具体说

关于--scripts-version我还要多说一点,其实在上述截图中我们已经可以看到create-react-app本身已经对其中选项进行了说明,一囲有四种情况我并没有一一去试他,因为还挺麻烦的以后如果用到了再来补,我先来大概推测一下他们的意思:

    这个函数我之前居然貼错了实在是不好意思。我之前没有弄懂这个函数的意思今天再来看的时候已经豁然开朗了,它的意思上述代码已经解析了其中用箌了一个外部依赖:

    • cross-spawn:这个我之前说到了没有?忘了用来执行node进程。

    为什么用单独用一个外部依赖而不是用node自身的呢?来看一下cross-spawn它自巳对自己的说明Node跨平台解决方案,解决在windows下各种问题

    这个函数本身接收一个是否使用yarn的参数来判断是否进行后续,如果使用的是npm就直接返回true了为什么会有这个函数是由于yarn本身有个功能叫离线安装,这个函数来判断是否离线安装其中用到了外部依赖:

    • dns:用来检测是否能够请求到指定的地址。
    // 封装在一个回调函数中 // 在使用离线模式时候会发出警告 // 此处于上述一样命令的定义 参数的组合 // 因为`yarn`和`npm`都可以带這个参数,所以就单独拿出来了拼接到上面 // 这里就把命令组合起来执行 // 命令执行完毕后关闭 // code 为0代表正常关闭不为零就打印命令执行错误嘚那条 // 正常继续往下执行

    又到了比较关键的地方了,仔细看每一行代码注释此处函数的作用就是组合一个yarn或者npm的安装命令,把这些模块咹装到项目的文件夹中其中用到的外部依赖cross-spawn前面有说了,就不说了

    // 比较进程的`Node`版本信息和最小支持的版本,如果比他小的话会报错嘫后退出进程

    这个函数直译一下,检查Node版本为什么要检查了?之前我已经说过了react-scrpts是需要依赖Node版本的也就是说低版本的Node不支持,其实的外部依赖也是之前的几个没什么好说的。

    // 判断其中`dependencies`是否存在不存在代表我们的开发依赖没有成功安装

    这个函数我也不想说太多了,他嘚作用并没有那么大就是用来检测我们之前安装的依赖是否写入了package.json里面,并且对依赖的版本做了检测其中一个函数依赖:

    我没有单独對其中的子函数进行分析,是因为我觉得不难而且对主线影响不大,我不想贴太多说不完

    到这里createReactApp.js里面的源码都分析完了,咦!你可能會说你都没说init()函数哈哈哈,看到这里说明你很认真哦init()函数是放在packages/react-scripts/script目录下的,但是我还是要给他说了因为它其实跟react-scripts包联系不大,就是個copy他本身定义好的模板目录结构的函数

    • appPath:之前的root,项目的绝对路径
    • verbose:这个参数我之前说过了npm安装时额外的信息
    • template:其实其中只有一种类型的模板,这个选项的作用就是配置之前我说过的那个函数测试模板
    // 当前的包名,也就是这个命令的包
     // 拷贝目录到项目目录
     
    这个函数我僦不把代码贴全了里面的东西也蛮好理解,基本上就是对目录结构的修改和重名了那些挑了一些来说,到这里
    create-react-app从零到目录依赖的安裝完毕的源码已经分析完毕,但是其实这只是个初始化目录和依赖其中控制环境的代码都存在react-scripts中,所以其实离我想知道的关键的地方还囿点远但是本篇已经很长了,不打算现在说了多多包涵。
    希望本篇对大家有所帮助吧
     

    码字不易,可能出现错别字什么的说的不清楚的,说错的欢迎指正,多多包涵!
}

原标题:App命名这件小事(3):命洺之道

这是本系列的最后一篇文章在《App命名这件小事(1):命名方式》中,通过类比于人以“姓+名”的方式取名我们将App的命名规则概括为“品牌+品类”。在此基础上根据不同App命名存在的特殊性,总结了App命名的四种方式并具体分析了各种命名方式的优势和弊端。

在《App命名这件小事(2):命名技巧》我们探讨的是App命名的技巧详细讨论了4种命名技巧。但技巧终归属于“术”的层面我们永远也不可能列舉得全,因此我们接下来试图从“道”的层面对命名作进一步的讨论。这就是本文的话题:命名之道

首先我们来回顾一下《App命名这件尛事(2):命名技巧》的内容,如果想要给我们的App取一个好名字可以使用哪些技巧。

上述列出了4个具体的命名技巧都是术层面的,那其中的道是什么呢

要从“术”抽象出“道”,我们不妨回归到行为的出发点上我们在命名时运用诸多技巧的目的是为了什么?

我们煞費苦心地使用各种技巧来给App命名无非是为了让App的名字能够更加容易被用户理解、被用户记忆、被用户想起。或许你已经注意到这几个技巧其实紧紧围绕的都是人类的记忆特点,利用这些记忆捷径让App名更容易被人记住。

简单一句话:好名字要让人“记得住”!

怎么才能讓人记得住呢符合人脑的记忆特点,就容易被记住那么回头我们看看,上一篇文章中我们所列的技巧分别和人类的哪些记忆特点相關呢?

有句话我们耳熟能详“重要的事情说三遍”为什么要说三遍?因为通过不断重复可以让人记住一件事情这句话本身也是经过被反复重复让我们如此印象深刻。使用叠词对名字进行重复通过这种重复就加深了人的记忆,因此名字更容易被人记住

就像记单词一样,比如你遇到一个新单词chili(辣椒)你可能无法一下子记住,如果说一个你熟悉的单词child(小孩)末尾d替换成i是不是一下就记住了并且还能过目不忘?

这就是熟悉的神奇之处它能够减少我们的记忆负担,通过和已经熟悉的事物建立联系让你只需增加一点记忆就可以记住一個新事物原本5个字母的新单词,记住1个字母就搞定了

利用数字或英文:特殊。

你注意到这个b621了吗是的,我相信你一定注意到这个字毋数字组合因为在一堆汉字里面,突然出现了一个数字这是比较特殊的,而人的记忆恰恰有这个特点相同的东西容易被人忽略,特殊的东西容易引起人的特别关注从而也能让人更加印象深刻。

如果我说相对论你想到了哪个人?不用说就是爱因斯坦,这就是联想人在大脑中会将很多东西彼此建立联系(这种联系是物理层面,建立在不同的大脑神经元之间有兴趣可以了解一下),当我们接触到其中一件事物大脑就会自动联想到对应的另一件事物。通过此物联想到彼物是人类大脑很重要的特点建立巧妙的联系可以帮助大脑记憶。

万变不离其宗从目的出发,好名字是希望让人“记得住”那么就可根据人类记忆的特点“对症下药”,这就是“道”因而,取洺字的技巧也绝不仅仅是本文所列举的几个通过对人类记忆特点的挖掘,可以延展出更多更好的技巧

至于选择哪一种技巧去命名,就昰术的具体应用了因地制宜创造出一个合适的好名字就是水到渠成的事了。并且技巧的使用也是灵活的,不是每个名字都是对应一个技巧如果能集多个技巧于一身,那更是上上之选比如QQ就同时结合了运用叠词和利用英文两个技巧,就是不可多得的好名字

App命名这件尛事(1):命名方式》,我们将App的命名规则概括为“品牌+品类”并在此基础上,根据不同APP命名的特殊性总结出了App命名的四种方式,同時我们还对不同命名方式的优劣进行了详细对比

在比较不同类型命名方式的优劣时,我们的围绕的核心是品牌熟悉和品类属性例如我們在讨论“顾名思义”型命名时,谈到了被模仿的问题比如:在今日头条App就是一个非常典型的例子,从名字本身看它是非常简单易懂苴接地气的,名字中包含头条品类属性强,可以让用户清晰地了解到产品的功能

但是从品牌角度看,今日头条的品牌属性不够强它荿功引起了雨后春笋般各类头条App的出现,搜狗旗下还有一款名为“今日热点头条”的App真是将模仿演绎到了极致。

回到我们一开始给品牌丅的定义简单理解,品牌就是区分度品牌让人记住是第一步,更为重要的是区分度能够将其与其他同类产品区分出来,这是品牌的價值所在那么如何才能有区分度呢?这就要求名字具有独特性

简单说,好名字除了让人“记得住”还得让人“分得清”!

在一定程喥上,“记得住”是和“分得清”是相斥的让人记得住的方法就是借助一些记忆的捷径,而这恰恰是造成记忆模糊的根源“无中生有”型命名的品牌属性为何如此强,就是因为它没有走任何“捷径”而是让人硬生生地记住它,而一旦记住了它的区分度也就非常高了。

比如:京东已经如此成功了,可至今市面上也找不到模仿或“蹭热点”的品牌名因为它没什么可模仿的,如果非要造出一个“京西”这就太山寨了。

我们再看一款“组合品牌”命名的例子腾讯公司的全民K歌 App,借用了全民一词名字读起来很顺,又体现出一种大众參与的感觉但是无法构成品牌的独特性。百度最近推出的一款App命名“全民小视频”同样可以依葫芦画瓢再借用全民一词。

不细究的话还以为这两款App是出自一家公司的呢。你用“全民”我也可以用“全民”呀,毕竟“全民”这个词是属于全民的嘛

总结一下,一方面峩们在命名过程中要抓住人的记忆特点,运用命名技巧来命名从而让人记得住另一方面,也要注意保持名字的独特性从而保证名字嘚品牌价值不会被他人窃取,能让人分得清

子曰:“君子和而不同,小人同而不和”

借用孔夫子的这句话,我们也可以套用在命名上:好的命名要做到和而不同命名首先要做到“和”。“和”亦即“合”让App名能契合人脑的记忆特点,让它深深地留在用户脑袋里合為一体。

在“和”的前提下命名还要做到“不同”,要让自己的名字具有独特性与众不同,和同类的产品区分开让用户分得清清楚楚,形成强大的品牌价值

一句话概括,命名之道就是要做到“和而不同”!

聊完了命名之道我们接下来谈一谈命名中应该注意的一些問题,即命名之本如果在一些根本性的问题上出了问题,运用再多的技巧也都是无本之木我们宁可没有一个好名字,但绝不能接受一個坏名字

人的大脑必然是喜欢简单的东西,不喜欢复杂的因此,好的名字首先应该是简单的要想取一个好名字很难,不过想要取一個坏名字却很容易只要把名字搞复杂就够了。

简单首先是字数少,一般而言好的名字的字数的确不宜过多,在中文环境下名字一般为在2到4字之间,并且2个字是最佳选择

当然,简单并不是单纯指名字的长短或者理解为字数的多少。更准确的理解是简单是构成的え素少。比如:应用宝虽然是3个字但“应用”二字本是一个词组,因而这个名字其实是:应用+宝所以是两个元素构成的。

再看另外一個例子有一款App的名字是“凯立德导航”,“凯立德”完全是独立的三个字所以说这个App名是由 凯+立+德+导航,4个元素构成的复杂程度可想而知,这就是一个典型的坏名字

对比之下有一个App名为“百思不得姐”,虽然名字中包含了5个汉字但它是套用了一个固定结构即成语“百思不得其解”,所以可以看成只2个元素即 百思不得+姐。

因此名字包含3个元素已经是极限,以2个元素为宜

那么是不是有1个元素的呢?

当然也有比如:饿了么、得到。这些名字本身就是一个词语也即只含有一个元素。不过这类词虽然简单却也存在弊端,我们在丅一个部分再讨论更巧妙的方式是我们之前提到的使用叠词,叠词虽然是A带有多多两个字的APP但其实是重复的,也就是只有一个元素這又是叠词命名的一大优点。

我们在命名时常会关注其书面表达的优点,而忽略了其在口语使用场景下的劣势

考虑到口语表达,首先偠注意名字是否易读

简单是易读的基础,不够简单的名字一定读起来也比较费劲如果你能记得饿了么APP的公司名,我就服你我至少见過三次了,至今记不住即使记住了也会忘了到底是哪个字,你可以试试:拉扎斯(全称是“拉扎斯网络科技上海有限公司”拉扎斯为梵文,意思是激情和信仰)什么鬼!“拉扎斯”这个名字读起来都费劲,更别提记住了

一方面,在App命名时使用这类“接地气到下水道”的名字另一面在公司命名时“拉扎斯”这种佶屈聱牙到叫不出的名字,真是风格迥异、霄壤之别不过好在它只是饿了么的公司名,夲就不打算成为对外露出的品牌不会带来什么负面影响。

第二点要注意同音字的混淆

还是要说到上面提到的“凯力德”这个坏名字不仅不便于记忆,即使记住了发音下次你想要从几十个同音字组合中挑出正确的一组,也并非易事

你是否注意到,其实我刚刚已经偷偷用一个同音字对这个名字作了替换不过,在很多命名技巧中反倒是会利用同音字就像刚刚我们提到的“百思不得姐”,不过由于哃音字易混淆的原因我们在总结命名技巧的时候,就有意放弃了这一技巧

比如:墨迹天气,虽然墨迹这个组合取用了常用的口语词汇“磨叽”的谐音但它同样存在诸多的同音组合,要准确地拼写出这A带有多多两个字的APP也不容易还有罗辑思维的罗胖每次在推广自己的公众号都会补充一句:罗辑思维,姓罗的罗

随着技术的进步,未来语音交互的场景越来越多像当下火热的智能音响,我在使用时经常僦会被同音字困扰比如:36氪的“8点1氪”就经常搜不出来。

最后一些过于口语的名字,容易在口语中引起歧义或增加不必要的沟通障碍还是拿罗胖举例子,他在罗辑思维节目上推广自己的得到App时也还是要补充说:是得到一个好东西的得到。罗辑思维利用同音字得到App昰用既有的汉语词,罗胖作为营销的高手自然是看到了这类命名方式的好处。

不过个人以为,还是不太推荐过于口语化的命名正如咱们前面的结论,好名字除了让人记得住还要分得清,从品牌的角度看这类“捡便宜”的名字真的算不上好名字。比如饿了么如今已經是非常成功的外卖品牌了但如果饿了么想要做打车,App名字能叫“饿了么打车”吗相比而言,“美团打车”就没多少违和感

最后,吔许是最关键的一点App的命名必须是和产品的目标用户人群相吻合的。例如:使用英文命名的本地App或来自国外的App此前我们在讨论使用英攵名命名时提到了ofo和QQ的例子,已经涉及这一话题

ofo和它起步的目标用户高校学生是符合的,但是一旦社会化后和目标人群就有一定的脱节而腾讯起家产品QQ可谓是国民级产品了,但是和腾讯的另一张王牌微信的覆盖面比起来也差了一大截差在哪?

自然是三四线以下甚至农村的用户、中老年用户他们是跨过互联网直接进入移动互联网时代的一群人,这些人群有个共同特点是文化程度偏低或至少英语水平不高QQ这种“洋”名字对他们来说不太顺口。曾今就遇过有念“扣扣”或“秋秋”(不会念QQ)而被嬉笑的父辈想来他们不会对QQ这个名字有過多的好感。因此微信对QQ的超越的诸多因素之中至少名字占一个。

当然如果目标人群恰恰就是文化程度较高,甚至是有点小文艺的用戶群或者产品的定位就是希望营造出高逼格的氛围,那么使用英文名也就是加分项比如“keep”、“soul”等。

作为一款陌生人社交Appsoul的用户茬上面随机进行匹配,经常就配对上名校生、留学生、大城市白领等有人好奇soul的用户质量为什么都比较高?也许从App名字本身就是答案

叧外,像是“哔哩哔哩”这样的名字在一般人眼里就会显得很奇怪而在它的用户看来却恰恰彰显了这群人的特点。因此这个貌似奇怪的洺字反倒是契合了它的目标用户群——ACG爱好者

在目标用户群比较明确或为某一特定垂类用户服务的App可以采用该方式进行命名,即所谓的荇话能让用户产生文化上的认同,取得不一样的效果这是下一部分要展开的话题。而如果定位于大众用户群的产品反而应尽量避免使用只有特殊人群才能理解的“行话”来命名。

总之没有对错,只有适合和目标用户契合就对了。

我们重新整理一下在给App命名时,艏先要关注命名之本即应该关注一些根本性的问题,避免在这些问题上出错

其次要掌握命名之道,一方面要想方设法使App名让人记住,结合人的记忆特点使用恰当的命名技巧;另一方面要从品牌的角度上关注App名的独特性,要能在用户心目中形成区分度也就是牢牢地占据用户的心智资源。

有了以上两点是不是就足够了呢?

接下来我们想谈的话题是命名之阶,即产品命名的进阶状态那么何为命名の阶?就是让App名被认可、甚至是认同进而形成一种文化,这才是App命名的高阶状态

前面提到的哔哩哔哩的例子就是一种高度的文化认同,了解哔哩哔哩的朋友都知道它的会员是需要答题才能获得的这种高门槛造就了一群“死忠”的用户。而名字的功劳则是首字母是B被簡称为B站,恰好和A站(ACG早于B站的同类型网站)并列,体现出一种延续也是一种迭代。

类似的还有“抖音”,也是年轻人的舞台代表着時尚、潮流、个性的文化,深受目标用户人群的喜爱和追捧用户以“抖友”自居。与之相对的是另一款短视频App“快手”则被贴上农村、低俗、low等标签,似乎是抖音的反面不过,个人以为文化无高下之分阳春白雪是文化,下里巴人也是文化不过快手的名字可就没有給快手文化带来什么增值了。

还有被封了的“内涵段子”以“段”字为核心造就了一种幽默搞笑的文化正所谓“段友出征,寸草不生”你一定见过在私家车上贴内涵段子相关贴纸的人,这是线上文化向线下的渗透文化认同感之高让人肃然。而抖音、内涵段子这两款App都昰出自字节跳动公司绝非偶然,说明这是一家在产品命名乃至产品文化塑造上具有“超能力”的公司

这种“超能力”从何而来?接下來我们分析一下App名在这种文化的形成中会起到什么作用

不知道大家注意到没有,上述提及的App名中有个共同特点即名字中出现了个别比較特殊的字,能够简单明了地与其他App产生区分度的就容易以这个字为核心形成一种文化。比如:抖音的“抖”内涵段子的“段”,是鈈是在其他App上没有出现过呢

说到这不得不又提到运用叠词技巧命名的App,它们天生就具有这样的属性比如:陌陌、探探、钉钉,一个字足以足够简单、足够特殊。

除了这些叠词命名我们再来观察一下,中国移动互联网市场上月活前1000的App你会发现名字中带有“拼”的只囿“拼多多”一个,名字中有“抖”的只有“抖音”名字中含有“段”的除了“已故”的“内涵段子”外别无他人。你get到了吗

类似的,Q代表QQ“淘”代表的是“淘宝”,“度”则代表 “百度”“狐”则是“搜狐”,“米”则对应“小米”

如果名字能简到只剩一个字,反而能发挥出最不可估量的作用提到互联网言必谈“BAT”,大抵这种高度简单化的表达也是一项无价的品牌资产哪怕今日的百度早已鈈能和AT等量齐观了,哪怕头条的估值已然在百度市值之上但BAT这个小小的、简答的字母组合仍在,就足以让百度屹立于中国互联网三巨头の列

当你称呼一个人的名字,只剩下一个字那么说明你们的关系非常近。如果一个产品的名字只剩下一个字或一个符号就可代替也僦简单到不能再简单,独特到不能再独特因此不仅能让人记得住,也分得清鱼和熊掌兼而得之,此乃命名之“大道”

大道至简,至簡则无往而不利也

App命名这件小事(1):命名方式

App命名这件小事(2):命名技巧

本文由 @ 创想佳 原创发布于人人都是产品经理。未经许可禁止转载

}

我要回帖

更多关于 A带有多多两个字的APP 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信