阅读更多

Web前端
名家访谈 Sea.js 创始人玉伯专访  

2013-09-03  编辑 wangguo 评论(20条) 有80207人浏览
在Web应用程序的用户体验越来越被重视的今天,前端开发的地位也上升到了前所未有的高度,而随着而来的也有更多的挑战。

为了将前端开发者繁重的工作变得简单,框架应运而生。国内也不乏一些非常优秀的前端开发框架。本期【开源专访】我们邀请到了国内前端大牛玉伯(@玉伯也叫射雕),请他为我们分享一些关于前端框架、前端开发的那些事,以及前端大牛是如何炼成的。

玉伯(王保平),淘宝前端类库 KISSY、前端模块化开发框架SeaJS、前端基础类库Arale的创始人。


目 录 [ - ]

  1. 先介绍一下自己和目前的工作吧!
  2. Sea.js是什么?致力于解决什么问题?
  3. 发起Sea.js项目的初衷是什么?它的本质意义是什么?
  4. Sea.js的设计思想是什么?是如何具体实现的?
  5. Sea.js开发过程中,最大的困难是什么?是如何解决的?
  6. Sea.js和Arale目前分别应用在哪些地方?
  7. 您之前还开发过前端类库KISSY,而Arale也是一个基于Sea.js的前端类库,两者有什么不同?这是在“造轮子”吗?它们的开发初衷是什么?目标又是什么?
  8. Sea.js和Arale未来会如何发展?目标是什么?
  9. 为什么选择将这些项目开源出来?开源对于自己的技能提升是否有帮助?
  10. 在开源领域这么久,您有什么感悟?您理解的“开源精神”是什么?
  11. 您认为,Kissy、Seajs和Arale这些开源项目为什么能取得成功?它们是否从社区中获得了贡献?
  12. 您如何看待国内的开源环境?
  13. 前、后端开发有没有明确的分界(是否能完全独立)?您心目中理想的前、后端开发模式是什么?
  14. 有人认为,过多使用框架会导致开发者忽视对JavaScript原生语言特性的学习,变得懒惰,或者基础会很薄弱;也有人认为,只要精通原生JavaScript就可以,
  15. 对于繁多的前端框架,应该如何选择?
  16. 阿里的前端开发流程是什么样的?
  17. 能否分享一些您的学习经历、经验?您认为学习前端开发最重要的是什么?
  18. 您眼中的技术大牛是什么样的?如何成为技术大牛?

先介绍一下自己和目前的工作吧! Top

我叫王保平,阿里花名玉伯。目前在支付宝前端技术部工作,从事前端基础类库、工具等产品的研发。喜欢编码,热爱思考,努力把每一天过得平淡又精彩。

Sea.js是什么?致力于解决什么问题? Top

Sea.js是一个很纯粹小巧的模块加载器,它只解决一个问题:前端代码的模块化。通过Sea.js,可以将大量JavaScript代码封装成一个个小模块,然后轻松实现模块的加载和依赖管理。

有了Sea.js,我们就可以书写模块了。Arale则是一套满足支付宝需求的通用模块集合,是一套基于模块化的前端基础类库,目前具备100多个模块,简单易用。

发起Sea.js项目的初衷是什么?它的本质意义是什么? Top

2008年,在前端开发过程中,经常会出现一个单文件几千行甚至近万行的情况。这种大文件,对协作开发、后续维护、性能调优等都不利。Sea.js初衷是帮助前端开发工程师将大文件拆分成小文件,能保持小颗粒度的模块化开发,同时不需要过多考虑依赖关系,让依赖管理轻松自如,让模块化开发变得更自然,就像浏览器原生提供的一样。

Sea.js的本质意义是通过模块化开发,来提高代码的可维护性。对工程师而言,是关注度分离,更将更多精力聚焦在代码本身的逻辑上。

Sea.js的设计思想是什么?是如何具体实现的? Top

Sea.js的核心设计思想是保持简单。有两层含义:

1)对外保持使用接口的简单。Sea.js的常用API只有7个,使用者一旦了解,基本没什么记忆成本,可以快速上手。

2)内部实现代码尽可能简单。追求内部实现的简单有很多好处,比如别人可以比较容易读懂源码,这样就能参与进来协同开发。源码简单,往往也意味着不太会有晦涩的bug存在。Sea.js的内部实现,一直在往“简单得明显没有bug”的方向努力。

除了保持简单,Sea.js的设计理念还有职责清晰、性能优先和适度完备。

职责清晰是让Sea.js的范畴明确,随时知道自己应该做什么,不应该做什么。一个框架,最怕的是需求膨胀,最怕的是复杂化。

性能优先是因为Sea.js是底层加载器,倘若性能不好,直接会影响页面性能,因此源码中有不少地方会刻意追求性能。
适度完备是从功能的层面看Sea.js的API是否能满足常用需求,同时又能通过插件机制对外提供适度的可扩展性。Sea.js不追求能够满足所有需求,而是追求2/8原则。

具体代码实现纯文字不太好描述,感兴趣的可以阅读源码:https://github.com/seajs/seajs,所有源码都在上面,欢迎阅读,欢迎给出建议。

Sea.js开发过程中,最大的困难是什么?是如何解决的? Top

这个说起来比较有意思,在开发过程中,Sea.js最大的困难,不是编码,而是模块定义规范的确定。

在业界,目前流行的模块定义规范,有CommonJS的Modues/1.x规范,还有RequireJS倡导的异步模块定义规范AMD。这两个规范,在社区里存在比较大的讨论,各有利弊,适用于不同的运行环境。Sea.js最后采用的是延自CommonJS Modules/2.0规范的通用模块定义规范CMD。这个至今都有争议,不同的团队,不同的场景下,喜好和选择都有可能不同。

随着Sea.js的推广,CMD规范目前在国内已经有相当多人认可。接下来会进一步国际化,希望能得到更大社区范围内的认可。这条路还很长,不能说已解决了,一切还在解决的路上。

不过,这些都不是关键。即便Sea.js以后死掉,只要大家对模块化开发理念有深度认可了,那一切也就值了。

Sea.js和Arale目前分别应用在哪些地方? Top

Sea.js目前已应用在阿里、腾讯、网易、百姓网等很多公司,具体可以查看seajs.org首页下面的logo墙,目前国内有大量中小网站采用Sea.js。

Arale的使用范围是支付宝,还有阿里巴巴ICBU部门,在一小部分国内创业型公司中也有使用。

您之前还开发过前端类库KISSY,而Arale也是一个基于Sea.js的前端类库,两者有什么不同?这是在“造轮子”吗?它们的开发初衷是什么?目标又是什么? Top

Kissy和Arale都是前端基础类库,从组件提供的功能来讲,存在很大重合度。但从理念上来讲,这两个类库有比较大的不同。

Kissy是大教堂式思路,所有组件,从底层基础组件,到上层UI组件,都是自主研发。这和业界的YUI3、Sencha等类库的思路是一样的。

Arale有所不同。Arale的首要理念是开放。开放不光意味着将自己做好的贡献给社区,开放更意味着将社区已有的优秀组件直接拿进来用。在开放的理念下,Arale类库里,直接引入了jQuery、Backbone、Moment、Handlerbars等业界成熟组件。在这种思路下,Arale能与开源社区紧密互动,彼此快速共进。

Kissy和Arale的初衷都很简单,Kissy是解决淘宝的前端基础类库问题,Arale则是解决支付宝的前端基础类库问题。两者的目标,都是减少前端开发过程中的重复工作量,尽量提高前端开发的工作效率,同时在通用组件层面保障全站的用户体验。

Sea.js和Arale未来会如何发展?目标是什么? Top

从2.0开始,Sea.js的发展目标是做简单、纯粹的模块加载器,甚至希望从2.x的某个版本开始,就不需要更新了,就能满足绝大部分需求,能非常稳定下来,不需要再升级。

Sea.js稳定后,更多精力会放在Arale等前端基础类库的建设上。Sea.js名称中的Sea,是海纳百川、有容乃大的意思。Sea.js希望是一片海,通过CMD规范,可以容纳各种各样的模块,希望能形成一个模块的生态圈,能形成生态链,能促进良性循环,能让整个前端开发界都受益。

为什么选择将这些项目开源出来?开源对于自己的技能提升是否有帮助? Top

选择开源有两个初衷:

  • 将好的东西贡献给社区;
  • 通过社区让东西更好。
Sea.js是在开源中不断成长流行的,很多需求点、优化点,如果不是开源,Sea.js很难走到今天。

开源本身对技能提升个人觉得是有限的,但技能之外的软技能提升,比如沟通协作、产品化思路、运营管理等非常有帮助。通过开源的方式,比较容易让一个技术人员有产品观,能让自己的眼界在编码之外看到更多美景。

在开源领域这么久,您有什么感悟?您理解的“开源精神”是什么? Top

我理解的开源精神,有三点:

1)拿来主义。懂得从现有成熟开源项目中去挑选符合自己需求的项目,直接拿来用。程序员容易犯一个病,就是什么东西都想自己造,或者对别人造的,浅尝辄止就判断别人的不行。真正的拿来主义,需要一颗谦卑的心。在「拿」的过程中,需要去看文档,甚至去读源码,这些过程,对程序员的技能增长都非常有帮助。很多程序员的技能提升,并非是写的代码太少,而是看的代码不够多。懂得去看、去理解、去用,是迈入开源世界的第一步。

2)参与比主导更重要。开源世界里永远不会有完美的项目。当你学会了「拿来主义」后,在使用开源项目时,肯定会遇到各种bug、各种特性不满足。这时,你可以自己去新开一个项目,也可以参与到该开源项目中去,帮助作者一起来完善。个人觉得对于绝大部分项目来说,参与进去帮助完善是更明智的选择。参与进去,可以让你更懂得美,懂得感恩之心,懂得回馈之情。这在过程中,你的功力,往往也会大增。不光是技术上的进步,还包括英语读写能力。在人性沟通上,你也会收获很多,这是无价的财富。

3)重视社区。除了代码,还有文档、测试用例、Issues 管理、版本发布、升级策略、书籍、视频等等。jQuery、Backbone、AngularJS 等成熟项目,成熟的是社区,而不是源码。好的社区,是在 Google 中一搜索,就能找到不少资料。好的社区,是你踩过的坑,经常已经有人也踩过并整理分享出来了。社区的形成非常不易,如果选择了开源,从项目一开始,就尽量可能的去让社区逐步形成起来。社区形成后,开源才会活起来,否则就是死开源。

最后,知易行难。上面的道理或许大家都懂,真要做到,则是一场修行。Sea.js 和 Arale 也才刚刚上路,旅途中,有西湖惬意的微风,也有沙漠般的烈日当头。好在,选择了,就不怕远。

您认为,Kissy、Seajs和Arale这些开源项目为什么能取得成功?它们是否从社区中获得了贡献? Top

还谈不上成功。目前社区未完全成型,以Sea.js和Arale为例,目前从社区中获得的贡献有:

1. bugs反馈和新功能讨论。这很重要,只满足一个公司的需求时,很多想法都想不到,当有多个公司使用你的产品时,在某些点上可以帮团队打开思路,去看到不少原来看不到的地方,甚至有时会有“为什么我们之前没想到”的感慨。

2. 全网测试。这一块,在Sea.js的开发上尤为明显。Sea.js在每次发布前,都会邀请社区人员一起帮忙运行测试用例。前端开发与后端开发的最大区别之一,就是后端代码的运行环境是固定的,是开发人员自己选择的,而前端代码的运行环境却无法固定,是用户决定的。这使得前端代码的测试,除了自己的内部测试,还需要线上的“众包测试”。开源使得“众包”成为可能。

3. 代码优化。由于是开源的,代码是公开的,偶尔就会有人会去阅读源码,并发现其中可以优化的一些点。这在Sea.js和Arale里都有一些案例,有时挺感动的。社区的力量,会给人惊喜。

您如何看待国内的开源环境? Top

国内开源环境还不够理想,但越来越好了。很期待更多的公司加入并推动开源活动。对于前端开发领域,一定程度上真没有什么秘密,期待更多公司的加入。

前、后端开发有没有明确的分界(是否能完全独立)?您心目中理想的前、后端开发模式是什么? Top

前后端开发很难完全独立,个人觉得也没有必要彼此独立。我的想法是“全端工程师”,都是Web开发工程师,从前到后应该都能做才行,这对效率、质量都有好处。

但独立的前后端开发工程师也应该存在。前端一些深钻领域,需要前端领域专家的持续投入,后端也一样。这些专家来自一线开发工程师,同时在某个领域有独到的想法和执行力,能沉淀下来形成工具和技术平台,这些平台反过来提供给「全端工程师」去用,这是往深里钻的技术工具化、平台化思路。

有人认为,过多使用框架会导致开发者忽视对JavaScript原生语言特性的学习,变得懒惰,或者基础会很薄弱;也有人认为,只要精通原生JavaScript就可以, Top

在前端开发工作中,JavaScript语言的使用只占比较小的一部分。更多的精力,需要花在语言之外。掌握JavaScript语言的基本使用,就如我们在学校学习,需要掌握中学数学的内容一样。这一块我觉得不难,只要肯花时间去学就好。

值得提醒的是,如果只精通原生JavaScript,那么就如只会中学数学一样,虽然已经能解决很多问题,但要优雅地、更简单地解决问题就比较困难了。

框架可以让你从重复低级工作中脱离出来,特别是应用复杂到一定程度时,如果没有框架层的抽象,代码往往会复杂得难以维护。在前端开发越来越复杂的今天,框架已经是必不可少的了。学会去用,去拥抱,可以事半功倍。

框架不会让你偷懒,更不会让你基础薄弱。即便是jQuery,如果你对DOM的基本原生操作不太会,那么你也很难真正把jQuery使用得很好。就如中学数学都不理解的话,要把大学数学用得很好只会是梦。

对于繁多的前端框架,应该如何选择? Top

这个问题太大了。虚的回答是,根据自己公司的需求去选择合适的就好。实的回答是,用Sea.js吧,然后模仿Arale去造一个适合自己的模块集合,目前这套方案,在我知道的各种场景下,都能比较好的用起来。

阿里的前端开发流程是什么样的? Top

不同团队不一样。比如淘系团队和支付宝系团队很多流程就很不一样。流程很大程度上取决于业务类型。淘系很多业务是导购类型,快速往往是第一要素,支付宝很多业务则是金融类型的,稳定与安全往往是第一位的。这两种要求下,产生的流程有非常大的不一样,甚至可以说是地球的两极。目前也在逐步靠拢,寻求合理的权衡下的统一。

能否分享一些您的学习经历、经验?您认为学习前端开发最重要的是什么? Top

前端开发是距离用户最近的编码工作,个人觉得,一个优秀的前端开发工程师,一定要对产品有爱。如果做的产品自己都不怎么用,那么很多交互细节很可能你会缺乏深思,你会在潜意识里忽略掉。但是,如果你自己也用这个产品,那么你就不仅仅是在编码了,你同时还是PD、PM、测试等等角色,甚至你就是这个产品的CEO。当CEO的感觉挺累但挺爽的,去找到你认可、让你为之疯狂的产品吧,你的开发能力会在你的疯狂中突飞猛进。

您眼中的技术大牛是什么样的?如何成为技术大牛? Top

我理解的技术大牛,就是把事情做得很专业的人。温伯格在《理解专业程序员》中对专业有很好的定义:

  • 专业是,具有了不起的技艺或经验。
  • 并为其他人解决问题,无论问题有多麻烦。
很多人在追求具有了不起的技艺或经验,但只有这一项,永远称不上“专业”。专业还必须不厌其烦地为他人解决问题。无论做业务还是基础技术,都能做得很专业。追求专业,变得专业,价值、成就感往往就会水到渠成。成为技术大牛,也就是自然而然了。
  • 大小: 13 KB
  • 大小: 127.7 KB


评论 共 20 条
20 楼 wsl959188 2015-03-26 23:46
http://malongs.com

http://malongs.com

<a href='http://malongs.com'>http://malongs.com</a>
19 楼 lonelybug 2013-11-21 11:53
我很好奇,模块化开发,我自己写js的时候注意用不同文件进行模块开发不就可以了?
加载一样可以自己写成lazy模式。

你还不如写一个想backbone。js更实用,至少未来趋势都是Restful接口吧前段和后端完全接偶设计!

淘宝的很多项目我觉得没必要这么宣传,又不是startup。
18 楼 edward_org 2013-11-03 22:18
终于见到玉伯真容了。。 支持玉伯~~
17 楼 michaellou 2013-09-27 16:34
哈哈,玉伯很牛逼啊!
16 楼 danny.chiu 2013-09-18 12:33
rrsy23 写道
还真吧自己当大牛了!

我补充第三条:别人用同样时间是没有办法复制的


我的理解是术业有专攻,某个方向做得好,比如模块加载器方面,玉伯肯定是大牛了。
@玉伯 是个很谦虚的大牛。
15 楼 rex0654335 2013-09-14 21:41
好欢乐的样子。干IT的果然很容易满足。
14 楼 damoqiongqiu 2013-09-10 15:16
我会告诉你我是来看照片的吗?http://damoqiongqiu.iteye.com/
13 楼 nicegege 2013-09-09 15:47
玉伯 厉害  终于见到大牛了。   
12 楼 中南大宝 2013-09-05 23:34
玉伯雄起!
11 楼 richie144 2013-09-05 21:50
明显抄袭了dojo的思想
10 楼 小林信仁 2013-09-05 18:17
支持开源。很年轻!
9 楼 好好学习行不 2013-09-05 11:44
技术大牛考虑的东西就是全面,像我这种新手还要多多努力呀
8 楼 stamen 2013-09-04 17:29
感慨良多,很不错!!看玉伯还很年轻啊 就成绩斐然!
7 楼 EricLiang 2013-09-04 10:15
API应该设计得简单,这点很认同。
有一年多没关注了,以前有个问题不知道有木有解决,就是历史项目中很多都不是AMD、CMD的形式,可以使用吗?另一问题是以前看了很多文章打包都需要spm. 这个是必须依赖吗,spm的配置是否会增加团队学习成本。
6 楼 tianshaojie 2013-09-04 09:27
支持开源!
5 楼 hbbbs 2013-09-04 08:45
在我心中,奉献者 比 大牛 更值得我尊敬
4 楼 hbbbs 2013-09-04 08:44
玉伯 为开源做出了这么大的贡献,或许应该用另外一个词来称呼 "奉献者"。

大牛这个词 年青人或许很是青睐,
但对于大众,对于你自己来说,奉献者才是真正值得我们尊敬、真正改善我们生活的人
3 楼 key232323 2013-09-03 20:49
woskyer 写道
大象飘过~
大牛不太谦虚啊,毕竟毛还没长全呢。


我倒觉得玉伯挺诚恳,谦虚的——编辑用的字眼,难免为了这篇文章。

另外:
我们公司大量使用了seajs了。支持开源!
2 楼 woskyer 2013-09-03 18:39
大象飘过~
大牛不太谦虚啊,毕竟毛还没长全呢。
1 楼 rrsy23 2013-09-03 17:28
还真吧自己当大牛了!

我补充第三条:别人用同样时间是没有办法复制的

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 哔咔漫画怎样切换横屏?

    最近有不少漫画迷反应,说哔咔哔咔漫画很多广告,很卡之类的。可能是因为版本太旧,或者不是正版导致的,小编建议大家,可以在哔咔的方法下载最新版目前市面上,其他均为假冒。很多朋友在一些奇怪的网站上下载软件,导致出现各类问题,因为网上的盗版非常多,建议在大陆地区唯一下载最新版本即可解决问题。很多小朋友反应,在看哔咔哔咔的时候,手机无法横屏流量,如果是安卓手机的,请把手机横屏功能打开,苹果手机也是类似的方式。若已知所需应用名称或关键词,点击右下角放大镜图标,输入相关信息进行搜索。步骤一:打开App Store应用。

  • 安卓掌读小说v1.5.8破解版免费分享

    掌读小说app是一款网络小说阅读软件,这款软件提供了各种各样的免费小说资源,各位用户可以在这里观看超多免费小说内容,同时在掌读小说app上还能根据你的阅读兴趣进行相关的推荐,书荒的时候看推荐直接开新本!...

  • 哔咔漫画app源码深度解析完美解析

    哔咔漫画app编写一个简单的Java计算器程序可以分为几个主要部分:用户界面(UI)、输入处理、计算逻辑和输出结果。这里我将提供一个基于控制台的简单计算器的示例,并对每一部分进行详细解析。

  • 逆推思维.

    方强兄弟的黑马学院的同学B轮融资获得1500万这在我看来是一笔巨款了,当我看到别人获得巨大的回报的时候会羡慕不已,觉得别人好牛逼啊。 在沉静下来后我想一下别人取得巨大的成功肯定也是付出了很大的代价。 我反省了一下自己,我在自己的项目上投入了多少的成本,付出了多少心血。汗颜啊,付出太少了。付出很少,凭什么要收获很多呢?就像很多人一样,什么都不付出,却又什么都想得到。 有了一颗省钱的脑袋就不要想赚多少钱了,就安心地承受贫穷吧。 有一些朋友问我有没有赚钱的路子带一下。我跟他们说如果真要赚钱的话,首

  • 主业不能换

    有一次,听军哥分享。 他说到很重要的一点。自己的老本行,主业不能换,其他可以拓展。 哪怕其他的项目比自己的老本行赚钱,也不能扔掉。就算其他项目再赚钱,主要的精力还是放在原来的主业上。 军哥一直做着他的工厂,还投资了很多个互联网项目。他现在是一个实业家,又是一个天使投资人。 我的理解,自己的老本行是自己的立身之本。是支持其他项目的资金供给。 不管做什么,改变方向就是从头再来。每换一个项目都是从头再来。没有积累,就不可能做大做强。 军哥就是一直坚持自己

  • 手机上瘾了

    前几天,接了个线上咨询。一个准备考研的大学生,假期在家复习,计划列得很好,但总是执行不了,每天一半的时间都是拿着手机玩游戏看微信,到晚上临睡前,又为这虚度的一天而自责和后悔,问我手机上瘾症该怎么治? 听到这个求助,我内心暗笑。因为我自己这几天也有手机上瘾症的迹象,只是还不到特别严重的地步。疫情原因,工作量减少,大部分时间都在家里,没有了规律性的忙碌的工作,于是就忍不住抠手机。本来只是看看微信,刷刷微博看看公众号文章,但一看就停不下来,不知不觉,大半天就过去了,计划中要看的书要写的文章都没有动。

  • 小程序源码:黑色简约带外卖CPS多功能工具箱-多玩法安装简单

    这是一款以黑色为主题所美化的一款多功能小程序 自带外卖CPS,滴滴打车CPS等优惠劵功能 另外还由多种功能组合而成的一款小程序如下: 短视频去水印(抖音,快手等全网几十家平台都支持自带高速接口) 图集去水印一键保存(抖音,快手等全网几十家平台都支持) 网易云升级 微信等平台运动步数刷一刷 图片加水印(支持多种自定义模式) 带壳截图(支持多种模板自定义多种机型截图) 外卖CPS(如美团CPS,饿了么CPS) 打车CPS(如加油CPS,滴滴CPS,高德等CPS) 手机真伪检测(检查您的手机是不是正版等

  • 哔咔漫画app安装IOS下载安装完美攻略

    哔咔漫画在C++ 是一种多范式编程语言,支持多种编程范式。这些范式包括但不限于过程式编程、面向对象编程、泛型编程和函数式编程。

  • 沟通表达的实用技巧和练习方法

    一、沟通表达的实用技巧 1.通用表达技巧——7个“C” 清晰(Clear):无论是说话还是书写,清晰传达出你的信息和目标是第一步。 简洁(Concise):去除不必要的信息,能用3个句子表达的,就不要用6个句子来表达。 具体(Concrete):描述一些必要的细节和事实(少量、有重点),让对方更能够理解你所描述的事情。 准确(Correct):这里的准确,指的是能够让对方准确地理解。你所使用的词汇、语言要确保准确无误,你的描述要使对方在理解时不出现偏差。 连贯(Coherent):你的表述需要具有内在的逻辑

  • 沟通的艺术

    2011年的冬夜,张小龙在饭否里写道:“这么多年了,我还在做通讯工具,这让我相信一个宿命,每一个不善沟通的孩子都有强大的帮助别人沟通的内在力量。” 课堂之外,我其实也是个非常内向的人,某种程度来说是不善于沟通的人,经过多年的社会教育,尤其是在强销售导向的团队中经过充分的人际摩擦,慢慢摸索了一些适合内向型人沟通的心得,沟通不是我擅长的话题,且和大家分享我在这个话题上的一些感受吧。 记得之前听得到的产品思维课,梁宁老师提到过一个现象:扎克伯格和张小龙都是非常内向的人,某种程度上不善于社交,但是他们做出了世界上最

  • 如何写出高转化率文案

    解剖1个案例,解锁8种文案写法! 1、以小写大。 关键在于有多大?只小不大无价值,只大不小无效果。 照顾树木、工人违规、修改设计是小事,却放大了土地价值:别墅的核心价值。 2、以具象写抽象。 以小写大,就是以细节写整体,也是以具象写抽象。 稀缺、珍惜、用心是抽象概念,直接写出来是瞎吆喝,要通过具象的行为和过程,让消费者感受到。 为保护这片原生林,开发商自掏腰包养了一个护林队,这才是消费者可以感受到的珍惜和用心。 3、以形象写具象 只具象,不够,还要形象。 人是通过形象来记忆、来联想的。 这几个标题和内文是具

  • PIKAPIKA:您的无广告漫画乐园

    PIKAPIKA:您的无广告漫画乐园 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 PIKAPIKA是一款美观且无广告的跨平台漫画客户端,专为热爱动漫的你精心打造。这款应用支持Windows、MacOS、Linux、Android以及iOS等多种操作系统,让你随时随地沉浸在精彩的漫画世界中。值得注意的是,由于部分内容可能涉及限制级别,18岁以下的用户应在监护人陪同下...

  • PicaCG漫画下载时DLL文件丢失?这些步骤帮你轻松解决

    当您在使用PicACG漫画应用时遇到丢失DLL文件的提示,这通常意味着应用程序在尝试运行时找不到它所需的一个或多个动态链接库(Dynamic Link Library)文件。DLL文件是Windows操作系统中的一种文件类型,它们包含了可以被多个程序同时使用的代码和数据。访问微软官网,根据您的系统架构(32位或64位),下载并安装相应的Visual C++ Redistributable for Visual Studio。请务必从可靠的来源下载DLL修复工具,因为恶意软件有时会被伪装成合法的DLL文件。

  • 这样教育鸡娃,才能考上北大清华

    文/林溪 我们主任每周二门诊,大多数情况,门口的保安大叔都要催,推门告诉我们,外面等候的人还很多,等的时间长了,都有情绪了。 几次三番,我心里就有点不开心。 主任问诊特别仔细,尤其是心理门诊,首诊时间比较长,我觉得那是因为我们主任太负责任了。 一些医院或者医生根本做不到这样,可能排队两小时,问诊三分钟。 这是我作为患者或者患者家属的亲身体会。 当然,有时候医生也确实没办法,有那么多病号等着呢,如果给一个病人太长时间,其他病人就要等待更长时间。这是个很难平衡的问题。 ..

  • 腾讯云不同账号同地域服务器创建对等连接,实现内网通讯

    腾讯云不同账号同地域服务器创建对等连接,实现内网通讯 为方便区分分为A服务器和B服务器 登录A端管理平台网络→私有网络 创建对等连接 点击左侧导航栏的“对等连接”,点击新建; 选择对方地域,账号ID,私有网络ID,点击创建。 B服务器私有网络ID,vpc开头。 点击创建时可能会出现“私有网络网段有冲突”的报错,此错误在本文下方说明。 接收对等连接 登录B端管理平台私有网络,点击左侧对等连接后会有一个等待申请通过的对等连接信息,点击“确认”或“接受”即可完成。 配置路由策略 点击左侧导航栏“子网”,点

  • 14天被动引流训练营

  • vue-cli2在IE浏览器下的兼容问题

    Vue2项目兼容IE浏览器 利用babel-polyfill npm install babel-polyfill 在入口文件main.js中引入,请在顶部引入 import 'babel-polyfill' 下面这步可要可不要,其实在main.js中引入即可了。 在build文件夹下的webpack.base.conf.js中找到module.exports下的app entry: { app: './src/main.js' }, 修改为: entry: { app: ['

  • 【金钱开道】直捣黄龙!

    在以前的社群里我分享过一个观点,就是社群搞的好一定要定期踢人! 一定要制定好规则!规则大于一切,任何聊敏感话题,或者发广告的必须强力清理! 为啥? 这就是破窗效应,人人都知道越小的圈子信息越有价值!越大的圈子就越水!东一句西一句,在社群里装逼的,捞人的,秀优越的就越多! 当然还有爆群的! 对于社群要么就是一言堂,群主分享什么,大家就看什么,要么就是像生财有术那样,20%的精英贡献内容,80%的看客去消化学习即可! 相当于80%的人要主动认识20%的人!这样价值也是很.

  • android app json6,app_android.json

    {"version":"0.5.3","versionCode":200910,"forceVersion":200722,"ruleVersion":2009250,"ruleContent":"","ruleBinUrl":"https://gentle.coding.net/p/ppcat/d/ppcat/git/raw/master/mh_rules.bin","updateUrl":"h...

Global site tag (gtag.js) - Google Analytics