我的股票审美标准

  今天涨停60家,跌停63家,市场从来没有这么撕裂过,风格巨大变化的同时,意味着主力在快速的调仓换股。

今天说说现阶段我选妹子,抱歉,说错了,我选股的审美标准。

我的审美标准

  标准一:屁股要大。

屁股代表流通盘,我现在不会选小于100亿流通的股,小市值的股遇到黑天鹅的风险更大,什么财务造假、产品造假,或者庄股控盘都发生在小市值的股里。

 

这个标准甚至可以提升到不小于150亿流通盘。

我知道很多人都是倾向于小市值的股,认为好拉升,很多时候蹭到题材了,还能成妖股,但是放眼A股几千家来说,真正小市值脱颖而出的少之又少,大部分都是沦落为炮灰,得不到流动性。

标准二:不能太年轻,喜欢成熟的。

去年科创板,今年创业板注册制试点,以后也许主板也会搞成注册,不出五年,A股可能会有上万家公司。

新股已经不值钱,所以没经历过时间考验的次新股都没有关注价值,至少要过半年以上,如果你还叫的出它名字,说明它杀出重围了,那就有关注价值了。

最近一年大家能叫的出名字的新股估计就这么几只:宁德时代、迈瑞医疗、中国人保、京沪高铁、药明康德、工业富联、澜起科技,还有吗?

有关注度才有流动性溢价。

标准三:前凸后翘

 

前凸后翘指的是要有拿得出手的地方,必须有亮点。

波哥是一个图形控,对图形审美要求很高,那种几连板上去的,我看都不会看一眼。再说一遍波哥擅长的模式,潜伏、波段、趋势和绩优成长

也按照以上模式去划分仓位,以前都是25%划等分,以后随着创业板注册制,会更偏重趋势和绩优成长的仓位。

波段股的完美图形就是华胜天成这种,而且它也是绩优成长。

我的审美标准

趋势股的完美图形是海螺水泥这种,从来不会跌破趋势线。

我的审美标准

绩优成长如果展开来讲就太长了,今晚就讲两点。

第一做成长股一定要分清周期性,比如说手机产业链就是有周期的,去年是周期大年,今年是周期小年,今年就算要做科技股,重心也不能放在手机产业链。

第二要警惕“业绩换挡”的风险。成长股的也增速都非常漂亮,这是东方雨虹从08年到现在的业绩增速,净利润从每年4千万,提升到了20亿,成为建材龙头,但是高速增长的同时一定要警惕“业绩换挡”。

我的审美标准

还记得前两年的老板电器吗?它连续很多年都是持续40%年增长,突然在18年的时候业绩下滑到20%的年增长,市场马上给了它雷霆之击,直到现在才缓过一口气,市场逐渐接受它20%的增速。

今晚就分享这些,我估计等下肯定有人要给我总结,结合以上几点,波哥喜欢的姑娘原来是老阿姨

我觉得这篇文章价值万金,我的审美标准基本都是贴近主力的审美标准,有了标准再去选股,可以过滤掉很多垃圾股。

光波笔记是一个开放式的公众号,你不赞赏依然可以看,只是我认为“力”的作用一定是相互的,你付出了真心,那你就会更重视我说的话,对笔记的内容也能理解的更深,最重要的是有一种对作者的反馈机制,让读者和作者之间更加良性,而不是白嫖。

转自:https://mp.weixin.qq.com/s/ajQtaZy98R54rlwl-A9GqA

黄光裕“王者归来” ,一代枭雄能否带领国美东山再起!

黄光裕“王者归来” ,一代枭雄能否带领国美东山再起!

从10年关进去到明年就要出来了

黄光裕跌宕起伏的一生就是那么传奇

在阶层固化的今天

举目望去方圆百公里

都找不到白手起家的典范!

一代枭雄的经历令人唏嘘不已

在黄光裕离去的这十年里

马云马化腾崛起争夺首富位置

美团王兴滴滴程维和字节张一鸣跃跃欲试

然而老对手苏宁股价却比10年跌了一半

市场在日切渴望黄光裕回归

当然也在怀疑廉颇老矣尚能饭否?

黄光裕快出来了,本月19号拼多多宣布溢价66.44%认购国美零售2亿美元期限三年的可转债,票面年利率为5%。初步转换价为每股1.215港元。拼多多若行使转换权,拼多多将成为国美第三大股东,约5.62%的股份。拼多多和国美的联手,以及即将刑满的黄光裕出狱,是否会再创国美曾经的辉煌??

黄光裕“王者归来” ,一代枭雄能否带领国美东山再起!

整整十年了,黄光裕离开我们的时间实在是太长了,十年里发生了太多的事情,无数巨头拔地而起,而曾经的庞然大物国美苏宁也渐渐在互联网的夹击中迷失了自己的方向。

 

我们为什么有点渴望黄光裕的回归,我个人觉得有以下几点

 

1 到处都是学区房暴涨的新闻,到处都是红二代富二代炫富的新闻,首富又都是几千亿身价,每天都是被平均被刺激!我们普通人实在是活得太难受了!阶层日益固化的今天,我们太需要曾经倒下去的一个枭雄给我们再次树立一个榜样!

 

我们太需要黄光裕用实际行动告诉我们,倒下去还可以再爬起来! 

 

2 黄光裕的倒台实在有点莫名其妙,至今我也想不通身价460亿的首富会为了几个亿铤而走险,到底背后是什么原因呢?我们想知道真相

 

3 现在的国美已经几乎没有了生机,也没有了当年的话语权,我们太想知道黄光裕回来会怎么做才能重振雄风,会给我们太多的启示!

 

今天,我就想写一篇文章回忆一下黄光裕的发家史

 

1、黄光裕的成长轨迹:

 

为中国家电零售业连锁模式的创始人,黄光裕说起来也是一个传奇性的人物,1969年5月生在广东汕头潮阳区凤壶村一个穷困人家,从小为了生计,他捡过破烂,走私过家电。三教九流能赚钱的活他基本都做过,所以后来他的胆子才敢那么大。

“出了北京站,花5毛钱住一个地下旅馆,又花了1块钱让一辆三轮车拉我去找那家旅馆,找了半天,实际上他是绕了一大圈,第二天起来以后我一看北京站就在门口,还花了我1块钱!”

初来北京的黄光裕,“觉得北京大得不得了”。于是,他一整天就在北京站周围转来转去,不知道哪里是商业区,也不知道在这么大的北京城里应该怎么去做买卖。“下午两三点钟了,我就在栏杆那儿站着,看着北京站。这时有个人过来了,问我要不要拍一张照片。”黄光裕 “很奢侈地”花了10元钱,拍了一张一次成像的照片

1986年,17岁的黄光裕(那时他还叫黄俊烈)跟着哥哥黄俊钦,揣着在内蒙古攒下的4000元,又借了3万元,在北京前门珠市口东大街420号盘下一个100平方米的门面——这就是国美电器连锁店的发端。1988、1990、1993和1999年,国美电器经过4次调整扩张后,如今正步入快速成长期。

 

面对走私的质疑,黄光裕则说自己当时出售的很多国外家电主要来自北京最大的收购站——在那里有大量出国人员从国外带回来的家电产品。

 

1987年和之前的很长一段时间,中国人买家电的唯一去处就是大商场,而作为国有企业,大商场的家电定价普遍比较高,这也造成了整个行业缺乏竞争力。如何把消费者从大商场吸引到自己的小店里来呢?黄光裕想到的就是价格,他分析说,当时国有商场的家电价格过高,所以一旦一个电视机的价格相差一两千元的话,就完全能够把顾客吸引过来。

黄光裕“王者归来” ,一代枭雄能否带领国美东山再起!

黑白电视可能是70后 80后最深的记忆,极少数90后比如我也有很深的印象啊

在80年代,彩电是个稀缺东西,不是有钱就能买的,还需要有票,很多黑市上的都是国外家属带过来了,一个村子里面能有一两个彩电黑白电视不得了了!

短短十多年间,国美以其低廉的价格迅速打开各地市场,所到之处刮起阵阵价格旋风,逐渐成为连锁老大。

黄光裕曾在2004、2005、2008登顶胡润中国富豪榜,在2006福布斯中国富豪榜上排名第一。当时他的身价达到了460亿元,当时马化腾身价为125亿,马云还没进入中国富豪前一百…详细过程如下图:

黄光裕“王者归来” ,一代枭雄能否带领国美东山再起!

潮汕有句说有潮水的地方就有潮人,有钱赚的地方就有潮商。潮汕出了很富商,像李嘉诚,泰国正大的谢国民、泰国新首富苏旭明,香港的林百欣、刘銮雄都是潮汕人。国内比如马化腾、朱孟依、赖海明、黄楚龙、姚振华等。

 

而且潮汕人能吃苦,创业几乎都是从底层做起的:李嘉诚做过学徒,林百欣做过苦力,黄光裕初中辍学后在即没有学历也还没有一技之长的情况下就到北京从摆地摊开始创业,做老板的想法刻在潮汕人的心里,”宁做穷老板,也不做打工仔“。

当然潮汕女人也是以贤惠著称啊!娶一个潮汕女人那也是不得了的成就啊!

 2、黄光裕因何坐牢:

黄光裕在2010年5月因犯非法经营罪、内幕交易罪、单位行贿罪被判处有期徒刑14年,罚金6亿元,没收财产2亿元。刑期从2008年11月17日到2022年11月16日。2012年,黄光裕被北京市第二中级人民法院减刑十个月。2015年12月14日,北京市二中院将其刑期减去一年。两次减刑,一共减去了21个月的刑期,按理来说黄光裕应该在2021年2月出狱。

 

当年瑞士《新苏黎世报》记者猜测其很可能是”失去了政治保护“,真相是什么不得而知,法院宣判的就是黄光裕犯非法经营罪、内幕交易罪、单位行贿罪,三罪并罚,主要是:

 

1 国美海外上市期间及并购永乐期间多次行贿;名下资产注入海外壳公司过程中偷漏税;对ST金泰部分洗钱 ;

 

2 对中关村、三联商社等股价进行操纵;

 

3 通过地下钱庄秘密流动转移资产等。

 

有份胡润富豪榜报告说,过去十年内榜上有名的1330名企业家中,有19人因腐败入狱或正在等待判刑,政商关系的风险和利益同样巨大,如兴于政商关系又败于政商暗战漩涡中的红顶商人胡雪岩

黄光裕“王者归来” ,一代枭雄能否带领国美东山再起!

马云曾说过他对于政商关系的理解:新型的政商关系是亲清的政商关系,既要清清白白,也要亲亲热热。新型的政商关系,应该是最大限度地发挥企业家精神,最大限度地发挥企业家的创造性和能动性,政府要为发展企业打造良好的环境。马爸爸这方面做得非常好,早早退休,对于危及银联地位的支付宝,马爸爸表示支付宝做好了随时上交国家的准备

3、  代替丈夫“垂帘执政”的杜鹃

黄光裕“王者归来” ,一代枭雄能否带领国美东山再起!

这世界上最美的爱情就是烟火夫妻,荣辱与共。你赢,我陪你君临天下;你输,我替你东山再起。诠释这句话的“黄太太”杜鹃。

 

杜鹃是出生于北京高知家庭的”白富美”,毕业于北京科技大学,毕业后是北京某中国银行任放款专员。当年潮汕穷小子黄光裕去中国银行进行贷款,而杜鹃这家银行的放款专员…两个人从业务关系变发展成夫妻,并与黄光裕一起经营国美。据熟悉两者的人说杜鹃性格温和做事比黄光裕细腻,对于金融业务非常了解。而黄光裕,性格粗犷,做事情比较大开大合的个性,和黄光裕正好相反,这或许也是黄光裕入狱之后国美守业大于进攻的一个原因

 

黄光裕“王者归来” ,一代枭雄能否带领国美东山再起!

黄光裕入狱后,陈晓逼宫,国美险些改朝换代,之后杜鹃临危受命,杜鹃将自己所有的能力到爆发出来,先向黄光裕的旧部寻求帮助,另一边将夺权者全部赶在门外。通过两年多的时间,杜鹃终于将夺权者全部剔除出去,重新拿回了公司的控制权。保住了黄氏江山,并从此开始黄光裕在狱中遥控指挥的国美新时代。

黄光裕“王者归来” ,一代枭雄能否带领国美东山再起!

虽然守住了江山,但国美已经被苏宁、京东、天猫远远超越。2008年,黄光裕第三度成为大陆首富时,黄光裕家族资产达430亿元。而时至今日,黄氏家族资产仅为200亿元左右,比巅峰时蒸发了一半。市场份额更是急剧减少,曾经的国美是和苏宁并驾齐驱的两大电器零售巨头。但在最新发布的2019年财报显示,国美零售销售收入为594.83亿元,亏损25.9亿元。

 

黄光裕“王者归来” ,一代枭雄能否带领国美东山再起!

面对国美杜鹃,格力董事长董明珠表示她挺不容易的。而且两人认识也非常多时间,双方生意也经常往来,而董明珠反复强调都是不容易。或许是女人更懂女人吧,当年 陈晓逼宫的事情闹得满城风雨,事后看陈晓真不是个东西,打工仔就是打工仔,不守本分没有把国美做好 反而想着抢创始人的资产。

 

欺负女人的男人没有什么好下场,所以陈晓离开国美之后再也没声音了。

 

有人看了我的文章马云牛皮吹破?天猫总裁蒋凡婚内出轨网红张大奕是接受性贿赂?问我,为啥蒋凡和刘强东结局不一样啊?这不是明摆着吗?一个是打工仔 一个是创始人,有本事你也办公司啊,守本分应该就是这样的道理,老板其实压力并不小,特别是今年疫情期间,其实很多老板降到打工仔了也是分分钟的事!

4、拼多多国美联手+“王者“回归,国美能否重振雄风?

黄光裕“王者归来” ,一代枭雄能否带领国美东山再起!

在市场份额方面,根据《2019年中国家电市场报告》显示,京东商城、苏宁易购、天猫分别以22.39%、18.09%、11.72%的市场份额位列前三,国美以4.88%屈居第四,而这才是家电行业排名。而且2017年开始,国美零售再度陷入亏损,从亏损4.5亿,一路亏到2018年48亿,2019年的亏损也有25亿之多。

          

2020年受疫情的影响,线下商业的冲击更加巨大。国美从今年年开始加速互联网布局,除与拼多多数次合作以外,国美还入驻京东设立旗舰店。但是,现在的国美还来的及吗,或许需要等待黄光裕归来才能知晓?黄光裕的归来能否带领国美重振雄风,我们且拭目以待。

对于拼多多和国美合作我认为是两者的互补:

1、国美零售全量商品将上架拼多多,品牌大家电将接入拼多多“百亿补贴”计划,弥补了拼多多主要以农村电商为主的业务结构,是拼多多构建全生态,全场景,全流量布局的第一步。

2、物流支持,国美旗下安迅物流将接入拼多多平台,为平台商家在大件物流、仓配一体化、安装交付等环节提供定向服务,有助于拼多多提升平台竞争力,更好的与京东、苏宁竞争。

3、2020年第一季度拼多多月活跃用户超过淘宝,国美可以获得拼多多5.8亿用户,将给国美带来非常大的线上客群。拼多多的平台流量优势以及消费趋势性大数据可以提供国美更强的竞争力。

在电商行业和家电行业均已呈现出“强者愈强,弱者更弱”的马太效应,国美已很难依靠自身力量对家电行业形成再次搅局,此时与拼多多的联合,国美加入现有的电商阵营+黄光裕出狱回归国美,给国美的“二次崛起重振雄风”带来了更多的可能性。

转自:https://mp.weixin.qq.com/s/OI1dyW500CJujzFU0xTTiQ

RESTful 入门知识

学习elasticsearch,看到REST接口,于是了解了一下REST,备忘记录一下

Elasticsearch是一个分布式的基于REST接口的为云而设计的搜索引擎

REST即Representational State Transfer的缩写,可译为”表现层状态转化”。REST最大的几个特点为:资源、统一接口、URI和无状态。 它是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件,它主要用于客户端和服务端交互类的软件。基于这个风格设计的软件可以更简介,更有层次,更易于实现缓存等机制。

RESTful架构风格最初由Roy T. Fielding(HTTP/1.1协议专家组负责人)在其2000年的博士学位论文中提出。HTTP就是该架构风格的一个典型应用。

作者:布莱恩特
链接:https://zhuanlan.zhihu.com/p/90367875
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

RESTful6大原则

REST之父Roy Fielding在论文中阐述REST架构的6大原则。

1. C-S架构

数据的存储在Server端,Client端只需使用就行。两端彻底分离的好处使client端代码的可移植性变强,Server端的拓展性变强。两端单独开发,互不干扰。

2. 无状态

http请求本身就是无状态的,基于C-S架构,客户端的每一次请求带有充分的信息能够让服务端识别。请求所需的一些信息都包含在URL的查询参数、header、body,服务端能够根据请求的各种参数,无需保存客户端的状态,将响应正确返回给客户端。无状态的特征大大提高的服务端的健壮性和可拓展性。

当然这总无状态性的约束也是有缺点的,客户端的每一次请求都必须带上相同重复的信息确定自己的身份和状态(这也是必须的),造成传输数据的冗余性,但这种确定对于性能和使用来说,几乎是忽略不计的。

3.统一的接口

这个才是REST架构的核心,统一的接口对于RESTful服务非常重要。客户端只需要关注实现接口就可以,接口的可读性加强,使用人员方便调用。

4.一致的数据格式

服务端返回的数据格式要么是XML,要么是Json(获取数据),或者直接返回状态码,有兴趣的可以看看博客园的开放平台的操作数据的api,post、put、patch都是返回的一个状态码 。

自我描述的信息,每项数据应该是可以自我描述的,方便代码去处理和解析其中的内容。比如通过HTTP返回的数据里面有 [MIME type ]信息,我们从MIME type里面可以知道数据的具体格式,是图片,视频还是JSON,客户端通过body内容、查询串参数、请求头和URI(资源名称)来传送状态。服务端通过body内容,响应码和响应头传送状态给客户端。这项技术被称为超媒体(或超文本链接)。

除了上述内容外,HATEOS也意味着,必要的时候链接也可被包含在返回的body(或头部)中,以提供URI来检索对象本身或关联对象。下文将对此进行更详细的阐述。

如请求一条微博信息,服务端响应信息应该包含这条微博相关的其他URL,客户端可以进一步利用这些URL发起请求获取感兴趣的信息,再如分页可以从第一页的返回数据中获取下一页的URT也是基于这个原理。

4.系统分层

客户端通常无法表明自己是直接还是间接与端服务器进行连接,分层时同样要考虑安全策略。

5.可缓存

在万维网上,客户端可以缓存页面的响应内容。因此响应都应隐式或显式的定义为可缓存的,若不可缓存则要避免客户端在多次请求后用旧数据或脏数据来响应。管理得当的缓存会部分地或完全地除去客户端和服务端之间的交互,进一步改善性能和延展性。

6.按需编码、可定制代码(可选)

服务端可选择临时给客户端下发一些功能代码让客户端来执行,从而定制和扩展客户端的某些功能。比如服务端可以返回一些 Javascript 代码让客户端执行,去实现某些特定的功能。 提示:REST架构中的设计准则中,只有按需编码为可选项。如果某个服务违反了其他任意一项准则,严格意思上不能称之为RESTful风格。

RESTful架构风格的特点

1.1.1 资源

所谓”资源”,就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。资源总要通过某种载体反应其内容,文本可以用txt格式表现,也可以用HTML格式、XML格式表现,甚至可以采用二进制格式;图片可以用JPG格式表现,也可以用PNG格式表现;JSON是现在最常用的资源表示格式。

结合我的开发实践,我对资源和数据理解如下:

资源是以json(或其他Representation)为载体的、面向用户的一组数据集,资源对信息的表达倾向于概念模型中的数据:

  • 资源总是以某种Representation为载体显示的,即序列化的信息
  • 常用的Representation是json(推荐)或者xml(不推荐)等
  • Represntation 是REST架构的表现层

相对而言,数据(尤其是数据库)是一种更加抽象的、对计算机更高效和友好的数据表现形式,更多的存在于逻辑模型中

资源和数据关系如下:

resource vs data

1.1.2 统一接口

RESTful架构风格规定,数据的元操作,即CRUD(create, read, update和delete,即数据的增删查改)操作,分别对应于HTTP方法:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源,这样就统一了数据操作的接口,仅通过HTTP方法,就可以完成对数据的所有增删查改工作。

即:

  • GET(SELECT):从服务器取出资源(一项或多项)。
  • POST(CREATE):在服务器新建一个资源。
  • PUT(UPDATE):在服务器更新资源(客户端提供完整资源数据)。
  • PATCH(UPDATE):在服务器更新资源(客户端提供需要修改的资源数据)。
  • DELETE(DELETE):从服务器删除资源。

1.1.3 URI

可以用一个URI(统一资源定位符)指向资源,即每个URI都对应一个特定的资源。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或识别符。

一般的,每个资源至少有一个URI与之对应,最典型的URI即URL。

1.1.4 无状态

所谓无状态的,即所有的资源,都可以通过URI定位,而且这个定位与其他资源无关,也不会因为其他资源的变化而改变。有状态和无状态的区别,举个简单的例子说明一下。如查询员工的工资,如果查询工资是需要登录系统,进入查询工资的页面,执行相关操作后,获取工资的多少,则这种情况是有状态的,因为查询工资的每一步操作都依赖于前一步操作,只要前置操作不成功,后续操作就无法执行;如果输入一个url即可得到指定员工的工资,则这种情况是无状态的,因为获取工资不依赖于其他资源或状态,且这种情况下,员工工资是一个资源,由一个url与之对应,可以通过HTTP中的GET方法得到资源,这是典型的RESTful风格。

作者:布莱恩特
链接:https://zhuanlan.zhihu.com/p/90367875
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

RESTful的7个最佳实践

1. 版本

如github开放平台 https://developer.github.com/v3/
就是将版本放在url,简洁明了,这个只有用了才知道,一般的项目加版本v1,v2,v3?好吧,这个加版本估计只有大公司大项目才会去使用,说出来不怕尴尬,我真没用过。有的会将版本号放在header里面,但是不如url直接了当。

举例

https://example.com/api/v1/

2.参数命名规范

query parameter可以采用驼峰命名法,也可以采用下划线命名的方式,推荐采用下划线命名的方式,据说后者比前者的识别度要高,可能是用的人多了吧,因人而异,因团队规范而异吧。

举例

https://example.com/api/users/today_login 获取今天登陆的用户 
https://example.com/api/users/today_login&sort=login_desc 获取今天登陆的用户、登陆时间降序排列

3.url命名规范

API 命名应该采用约定俗成的方式,保持简洁明了。在RESTful架构中,每个url代表一种资源所以url中不能有动词,只能有名词,并且名词中也应该使用复数。实现者应使用相应的Http动词GET、POST、PUT、PATCH、DELETE、HEAD来操作这些资源即可

不规范的的url,冗余没有意义,形式不固定,不同的开发者还需要了解文档才能调用。

举例

https://example.com/api/getallUsers GET 获取所有用户 
https://example.com/api/getuser/1 GET 获取标识为1用户信息 
https://example.com/api/user/delete/1 GET/POST 删除标识为1用户信息 
https://example.com/api/updateUser/1 POST 更新标识为1用户信息 
https://example.com/api/User/add POST 添加新的用户

规范后的RESTful风格的url,形式固定,可读性强,根据users名词和http动词就可以操作这些资源

举例

https://example.com/api/users GET 获取所有用户信息 
https://example.com/api/users/1 GET 获取标识为1用户信息 
https://example.com/api/users/1 DELETE 删除标识为1用户信息 
https://example.com/api/users/1 Patch 更新标识为1用户部分信息,包含在body中 
https://example.com/api/users POST 添加新的用户

4. 统一返回数据格式

对于合法的请求应该统一返回数据格式,这里演示的是json

  • code——包含一个整数类型的HTTP响应状态码。
  • status——包含文本:”success”,”fail”或”error”。HTTP状态响应码在500-599之间为”fail”,在400-499之间为”error”,其它均为”success”(例如:响应状态码为1XX、2XX和3XX)。这个根据实际情况其实是可要可不要的。
  • message——当状态值为”fail”和”error”时有效,用于显示错误信息。参照国际化(il8n)标准,它可以包含信息号或者编码,可以只包含其中一个,或者同时包含并用分隔符隔开。
  • data——包含响应的body。当状态值为”fail”或”error”时,data仅包含错误原因或异常名称、或者null也是可以的

举例

返回成功的响应json格式

{
  "code": 200,
  "message": "success",
  "data": {
    "userName": "123456",
    "age": 16,
    "address": "beijing"
  }
}

返回失败的响应json格式

{
  "code": 401,
  "message": "error  message",
  "data": null
}

下面这个ApiResult的泛型类是在项目中用到的,拓展性强,使用方便。返回值使用统一的 ApiResult 或 ApiResult 错误返回 使用 ApiResult.Error 进行返回; 成功返回,要求使用 ApiResult.Ok 进行返回

public class ApiResult: ApiResult
    {
        public new static ApiResult<T> Error(string message)
        {
            return new ApiResult<T>
            {
                Code = 1,
                Message = message,
            };
        }
        [JsonProperty("data")]
        public T Data { get; set; }
    }
    public class ApiResult
    {
        public static ApiResult Error(string message)
        {
            return new ApiResult
            {
                Code = 1,
                Message = message,
            };
        }

        public static ApiResult<T> Ok<T>(T data)
        {
            return new ApiResult<T>()
            {
                Code = 0,
                Message = "",
                Data = data
            };
        }
        /// <summary>
        /// 0 是 正常 1 是有错误
        /// </summary>
        [JsonProperty("code")]
        public int Code { get; set; }
        [JsonProperty("msg")]
        public string Message { get; set; }

        [JsonIgnore]
        public bool IsSuccess => Code == 0;
    }

5. http状态码

在之前开发的xamarin android博客园客户端的时候,patch、delete、post操作时body响应里面没有任何信息,仅仅只有http status code。HTTP状态码本身就有足够的含义,根据http status code就可以知道删除、添加、修改等是否成功。(ps:有点linux设计的味道哦,没有返回消息就是最好的消息,表示已经成功了)服务段向用户返回这些状态码并不是一个强制性的约束。简单点说你可以指定这些状态,但是不是强制的。常用HTTP状态码对照表 HTTP状态码也是有规律的

  • 1**请求未成功
  • 2**请求成功、表示成功处理了请求的状态代码。
  • 3**请求被重定向、表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。
  • 4** 请求错误这些状态代码表示请求可能出错,妨碍了服务器的处理。
  • 5**(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。

6. 合理使用query parameter

在请求数据时,客户端经常会对数据进行过滤和分页等要求,而这些参数推荐采用HTTP Query Parameter的方式实现

比如设计一个最近登陆的所有用户
https://example.com/api/users?recently_login_day=3
搜索用户,并按照注册时间降序
https://example.com/api/users?recently_login_day=3
搜索用户,并按照注册时间升序、活跃度降序
https://example.com/api/users?q=key&sort=create_title_asc,liveness_desc
关于分页,看看博客园开放平台分页获取精华区博文列表
https://api.cnblogs.com/api/blogposts/@picked?pageIndex={pageIndex}&pageSize={pageSize} 
返回示例: 
[ 
{ 
“Id”: 1, 
“Title”: “sample string 2”, 
“Url”: “sample string 3”, 
“Description”: “sample string 4”, 
“Author”: “sample string 5”, 
“BlogApp”: “sample string 6”, 
“Avatar”: “sample string 7”, 
“PostDate”: “2017-06-25T20:13:38.892135+08:00”, 
“ViewCount”: 9, 
“CommentCount”: 10, 
“DiggCount”: 11 
}, 
{ 
“Id”: 1, 
“Title”: “sample string 2”, 
“Url”: “sample string 3”, 
“Description”: “sample string 4”, 
“Author”: “sample string 5”, 
“BlogApp”: “sample string 6”, 
“Avatar”: “sample string 7”, 
“PostDate”: “2017-06-25T20:13:38.892135+08:00”, 
“ViewCount”: 9, 
“CommentCount”: 10, 
“DiggCount”: 11 
} 
]

7. 多表、多参数连接查询如何设计URL

这是一个比较头痛的问题,在做单个实体的查询比较容易和规范操作,但是在实际的API并不是这么简单而已,这其中常常会设计到多表连接、多条件筛选、排序等。 比如我想查询一个获取在6月份的订单中大于500元的且用户地址是北京,用户年龄在22岁到40岁、购买金额降序排列的订单列表

https://example.com/api/orders?order_month=6&order_amount_greater=500&address_city=北京&sort=order_amount_desc&age_min=22&age_max=40

从这个URL上看,参数众多、调用起来还得一个一个仔细对着,而且API本身非常不容易维护,命名看起来不是很容易,不能太长,也不能太随意。

在.net WebAPI总我们可以使用属性路由,属性路由就是讲路由附加到特定的控制器或操作方法上装饰Controll及其使用[Route]属性定义路由的方法称为属性路由。

这种好处就是可以精准地控制URL,而不是基于约定的路由,简直就是为这种多表查询量身定制似的的。 从webapi 2开发,现在是RESTful API开发中最推荐的路由类型。 我们可以在Controll中标记Route

[Route(“api/orders/{address}/{month}”)]

Action中的查询参数就只有金额、排序、年龄。减少了查询参数、API的可读性和可维护行增强了。

https://example.com/api/orders/beijing/6?order_amount_greater=500&sort=order_amount_desc&age_min=22&age_max=40

这种属性路由比如在博客园开放的API也有这方面的应用,如获取个人博客随笔列表

请求方式:GET 
请求地址:https://api.cnblogs.com/api/blogs/{blogApp}/posts?pageIndex={pageIndex} 
(ps:blogApp:博客名)

认证机制

stateless-auth

由于RESTful风格的服务是无状态的,认证机制尤为重要。例如上文提到的员工工资,这应该是一个隐私资源,只有员工本人或其他少数有权限的人有资格看到,如果不通过权限认证机制对资源做一层限制,那么所有资源都以公开方式暴露出来,这是不合理的,也是很危险的。

认证机制解决的问题是,确定访问资源的用户是谁;权限机制解决的问题是,确定用户是否被许可使用、修改、删除或创建资源。权限机制通常与服务的业务逻辑绑定,因此权限机制需要在每个系统内部定制,而认证机制基本上是通用的,常用的认证机制包括 session auth(即通过用户名密码登录),basic authtoken authOAuth,服务开发中常用的认证机制为后三者。

2.1 Basic Auth

HTTP Basic authentication (BA) implementation is the simplest technique for enforcing access controls to web resources because it doesn’t require cookies, session identifier and login pages. Rather, HTTP Basic authentication uses static, standard fields in the HTTP header which means that no handshakes have to be done in anticipation.

Visit Wikipedia To Read More

简言之,Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少。因此,在开发对外开放的RESTful API时,尽量避免采用Basic Auth

2.2 Token Auth

Token Auth并不常用,它与Basic Auth的区别是,不将用户名和密码发送给服务器做用户认证,而是向服务器发送一个事先在服务器端生成的token来做认证。因此Token Auth要求服务器端要具备一套完整的Token创建和管理机制,该机制的实现会增加大量且非必须的服务器端开发工作,也不见得这套机制足够安全和通用,因此Token Auth用的并不多。

本文不在展开介绍Token Auth,我个人对这套机制也了解有限,有兴趣了解这套机制的同学不妨从Stack Overflow上的这篇讨论入手。

2.3 OAuth

OAuth is an open standard for authorization. OAuth provides client applications a ‘secure delegated access’ to server resources on behalf of a resource owner. It specifies a process for resource owners to authorize third-party access to their server resources without sharing their credentials. Designed specifically to work with Hypertext Transfer Protocol (HTTP), OAuth essentially allows access tokens to be issued to third-party clients by an authorization server, with the approval of the resource owner. The client then uses the access token to access the protected resources hosted by the resource server. OAuth is commonly used as a way for Internet users to log into third party websites using their Microsoft, Google, Facebook or Twitter accounts without exposing their password.

OAuth is a service that is complementary to and distinct from OpenID. OAuth is also distinct from OATH, which is a reference architecture for authentication, not a standard for authorization. However, OAuth is directly related to OpenID Connect (OIDC) since OIDC is an authentication layer built on top of OAuth 2.0.

Visit Wikipedia To Read More

OAuth(开放授权)是一个开放的授权标准,允许用户让第三方应用访问该用户在某一web服务上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。

OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的第三方系统(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。

为什么要使用REST风格呢?

肯定是因为它的优点,所以才选择使用它呀。因此现在先介绍它的优点,

要介绍它的优点又要提到它的六个限制,我看其他答案只提到了限制,但是没有写限制的好处,在这里我列出限制和它的好处:

1.客户-服务器(Client-Server)客户端服务器分离

优点,提高用户界面的便携性(操作简单)

通过简化服务器提高可伸缩性(高性能,低成本)

允许组件分别优化(可以让服务端和客户端分别进行改进和优化)

2.无状态(Stateless)

从客户端的每个请求要包含服务器所需要的所有信息

优点:

提高可见性(可以单独考虑每个请求)

提高了可靠性(更容易从局部故障中修复)

提高可扩展性(降低了服务器资源使用)

3.缓存(Cachable)

服务器返回信息必须被标记是否可以缓存,如果缓存,客户端可能会重用之前的信息发送请求。

优点:

减少交互次数

减少交互的平均延迟

4.分层系统(Layered System)

系统组件不需要知道与他交流组件之外的事情。封装服务,引入中间层。

优点:

限制了系统的复杂性

提高可扩展性

5.统一接口(Uniform Interface)

优点:

提高交互的可见性

鼓励单独改善组件

6.支持按需代码(Code-On-Demand 可选)

优点:

提高可扩展性

Restful风格API 设计指南

RESTful 是目前最流行的 API 设计规范,用于 Web 数据接口的设计。

个人对restful风格API的理解即遵循restful风格和期设计原则设计的API

【以下摘至 RESTful API 设计指南 – 阮一峰的网络日志

一、协议

API与用户的通信协议,总是使用HTTPs协议

二、域名

应该尽量将API部署在专用域名之下。

https://api.example.com

如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。

https://example.org/api/

三、版本(Versioning)

应该将API的版本号放入URL。

https://api.example.com/v1/

另一种做法是,将版本号放在HTTP头信息中,但不如放入URL方便和直观。Github采用这种做法。

四、路径(Endpoint)

路径又称”终点”(endpoint),表示API的具体网址。

在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的”集合”(collection),所以API中的名词也应该使用复数。

举例来说,有一个API提供动物园(zoo)的信息,还包括各种动物和雇员的信息,则它的路径应该设计成下面这样。

https://api.example.com/v1/zoos

https://api.example.com/v1/animals

https://api.example.com/v1/employees

五、HTTP动词

对于资源的具体操作类型,由HTTP动词表示。

常用的HTTP动词有下面五个(括号里是对应的SQL命令)。

GET(SELECT):从服务器取出资源(一项或多项)。

POST(CREATE):在服务器新建一个资源。

PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。

PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。

DELETE(DELETE):从服务器删除资源。

还有两个不常用的HTTP动词。

HEAD:获取资源的元数据。

OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。

下面是一些例子。

GET /zoos:列出所有动物园

POST /zoos:新建一个动物园

GET /zoos/ID:获取某个指定动物园的信息

PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)

PATCH /zoos/ID:更新某个指定动物园的信息(提供该动物园的部分信息)

DELETE /zoos/ID:删除某个动物园

GET /zoos/ID/animals:列出某个指定动物园的所有动物

DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物

六、过滤信息(Filtering)

如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果。

下面是一些常见的参数。

?limit=10:指定返回记录的数量

?offset=10:指定返回记录的开始位置。

?page=2&per_page=100:指定第几页,以及每页的记录数。

?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。

?animal_type_id=1:指定筛选条件

参数的设计允许存在冗余,即允许API路径和URL参数偶尔有重复。比如,GET /zoo/ID/animals 与 GET /animals?zoo_id=ID 的含义是相同的。

七、状态码(Status Codes)

服务器向用户返回的状态码和提示信息,常见的有以下一些(方括号中是该状态码对应的HTTP动词)。

200 OK – [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。

201 CREATED – [POST/PUT/PATCH]:用户新建或修改数据成功。

202 Accepted – [*]:表示一个请求已经进入后台排队(异步任务)

204 NO CONTENT – [DELETE]:用户删除数据成功。

400 INVALID REQUEST – [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。

401 Unauthorized – [*]:表示用户没有权限(令牌、用户名、密码错误)。

403 Forbidden – [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。

404 NOT FOUND – [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。

406 Not Acceptable – [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。

410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。

422 Unprocesable entity – [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。

500 INTERNAL SERVER ERROR – [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

状态码的完全列表参见这里

八、错误处理(Error handling)

如果状态码是4xx,就应该向用户返回出错信息。一般来说,返回的信息中将error作为键名,出错信息作为键值即可。

{error:”Invalid API key”}

九、返回结果

针对不同操作,服务器向用户返回的结果应该符合以下规范。

GET /collection:返回资源对象的列表(数组)

GET /collection/resource:返回单个资源对象

POST /collection:返回新生成的资源对象

PUT /collection/resource:返回完整的资源对象

PATCH /collection/resource:返回完整的资源对象

DELETE /collection/resource:返回一个空文档

十、Hypermedia API

RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么。

比如,当用户向api.example.com的根目录发出请求,会得到这样一个文档。

{“link”:

    {“rel”:”collectionhttps://www.example.com/zoos“,

      “href”:”https://api.example.com/zoos“,

      “title”:”List of zoos”,

      “type”:”application/vnd.yourformat+json”

}}

上面代码表示,文档中有一个link属性,用户读取这个属性就知道下一步该调用什么API了。rel表示这个API与当前网址的关系(collection关系,并给出该collection的网址),href表示API的路径,title表示API的标题,type表示返回类型。

Hypermedia API的设计被称为HATEOAS。Github的API就是这种设计,访问api.github.com会得到一个所有可用API的网址列表。

{

“current_user_url”:”https://api.github.com/user“,

“authorizations_url”:”https://api.github.com/authorizations“,

// …

}

从上面可以看到,如果想获取当前用户的信息,应该去访问api.github.com/user,然后就得到了下面结果。

{

“message”:”Requires authentication”,

“documentation_url”:”https://developer.github.com/v3

}

上面代码表示,服务器给出了提示信息,以及文档的网址。

十一、其他

(1)API的身份认证应该使用OAuth 2.0框架。

(2)服务器返回的数据格式,应该尽量使用JSON,避免使用XML。

作者:Fairy_妍
链接:https://www.jianshu.com/p/73d2415956bd
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

读书:《 孩子看的编程启蒙书(第1辑,共4册)》

稍微空闲一点,手上正好有《 孩子看的编程启蒙书》,那就翻来看一看吧

怎么只有三本了,第4本不知道跑到哪去了

买的书太多,下次找找估计出来了

一上来就说算法,感觉还比较新颖,这也算是让小朋友从开始就认识到算法了

流程图这一册,还是不错的

每一册确实是用小朋友熟悉的例子引入新的概念,浅显易懂

大篇幅的图画,少量的文字,对于成人来说翻翻只是十来分钟的事情

算法是解决问题、实现目标的方法。 每当想做一件事(目的)时,我们都会思考该怎么做(方法),这里的方法,就是算法。算法要解决的是:按什么顺序,做什么事情。

编程:思考算法,指挥计算机去做做的事情 。是为了指挥计算机实现特定的目标,用字母和符号来编写程序。

过水洼的不同办法,就是不同的算法。

排序算法:冒泡排序,选择排序,插入排序

检索算法:二分检索,线性检索

流程图:用线条和箭头把写有文字的指令框连接起来

算法的三种基本结构 :顺序结构,条件结构,循环结构

二流文青的鄙视链自嗨,迟早被真香定律暴打

二流文青的鄙视链自嗨,迟早被真香定律暴打

在这个世界上,

大多数愚蠢里,

含有假装和弄假成真的成分。

——作家·王小波

逝于1997年4月11日

代表作品:《沉默的大多数》

……

01.
《晓说》最后一季,大紧讲《三体》花了整整四集。第一集便说这本巨著是他近10年读过的最伟大的中文小说。实际上最早他读到40页就读不下去了,实在没瞧出好来。

 

首先文字水平上,就觉得很一般,无美感。此后每与人搓饭,听各路豪杰谈起《三体》滔滔不绝,大紧就纳闷,这书到底哪儿好?

 

对方斜眼看他:

 

“哼,你?文艺青年,骚柔小资!你的胸怀怎么能装下这么浩瀚的宇宙?”

 

回去后,大紧跳过前40页往下读,一读就跪了。并在节目里为大刘辩护:

 

“伟大作品的文笔都是次要的。有人说这书男女爱情写得不好,要我说,在这么宏大的哲学和科学面前,爱情那算个屁呀?”

 

文艺青年的成见和鄙视链情节是有历史传承的,它是每一个文青成长岁月里逃不掉的通病。读完《三体》的大紧采访大刘时,“真香”二字一寸寸都写在脸上。

不瞒各位,我也有太多这样的时刻。

 

早年青葱、幼稚如我,以不读、不看烂大街的通俗作品为荣,除了经典小说和豆瓣8.0以上的电影,其他不屑一顾。

 

每一次,我都觉得好骄傲,好不做作,跟那些只顾肤浅快乐的肥宅们好不一样,被自己的审美追求感动得一塌糊涂。

 

是“真香定律”狠狠暴打了我。

 

 

 

02.

 

 

 

刚上大学那会儿,我迷上80年代严肃作家的作品。其中尤爱朔爷,他那套四卷本文集读了不下十遍。每当看到身边读网络小说的同学,以读纯文学为乐的我,眼神都变得犀利了。觉得人家读垃圾,浪费青春。

 

为了解王老师的趣味,我曾把《无知者无畏》通读三遍。每次读《我看金庸》都乐不可支。现在的年轻人可能不知道当年他是如何评价金大侠的。这里我随手摘一段:

 

“初读金庸是一次很糟糕的体验:情节重复,行文啰嗦,永远是见面就打架,一句话能说清楚的偏不说清楚,而且谁也干不掉谁,一到要出人命的时候,就从天上掉下来一个挡横儿的,全部人物都有一些胡乱的深仇大恨,整个故事情节就靠这个推动着。”

 

对于这些,金写过一篇回复,大意是要宠辱不惊,对王老师的小说表示认可,也对他的批评表示理解,气量相当大。双方一来一回,就是上世纪有名的“金王论战”。论战扩大后,变成纯文学和通俗文学之间的审美较量。

 

当时涉世未深如我,自然觉得严肃文学赛高,武侠小说很Low,至于网络小说,那能叫Low吗?那叫Low穿地球,Low出天际。

 

三年后,被自己啪啪打脸。

起因也简单,当年我给杂志社写悬疑故事混生计,编辑让我读《盗墓笔记》学习学习。我就为混个稿费,哪有心思学悬疑架构?骨子里认为在《收获》《当代》发文才有追求。可架不住编辑一直唠叨,只好去看。

 

结果这一看,简直一发不可收拾。在我有限的阅读生涯里,茶饭不思追读的两套书,一本是《三体》,一本就是《盗墓笔记》。

 

后者虽然在深度上不可与前者相提并论。但万分诚恳地说,在故事的宏观构架上,在悬念的铺设上,在人物有血有肉的塑造上,《盗墓》一点不输美剧。

 

我一口气追完三本,大呼“真香!”,此后再不敢说什么网文很Low。

 

又过了两年,当我捧起金大侠的小说,才发觉以前图样图乃义务,是多么浅薄的一个青年人。听了老师几句胡话,就以为了解整个世界。在金庸小说里,对社会风气的批判,对人性深刻的挖掘,丝毫不输严肃文学。

 

讲故事的方式是通俗的,但不代表人家的观念、洞察是俗气的。读完金大侠的小说,回过头看,某些所谓严肃作家,可能一辈子还达不到人家一本书的高度。严肃性达不到,故事好看,更是被金大侠甩出一万条街。

 

雅俗共赏,焉能不香?

 

我这才懊悔啊,二流文青病难治啊,以为自己读了几本经典,别的东西就不入眼了,没想到错过了好东西。尤其看到某些公号文章对金庸作品反复咂摸,看到金大侠离世时各界人士的追怀感念,更加认识到:

 

以固有的审美成见,将某些作品拒之门外,是多么可怕、多么狭隘的一件事。

 

总之就是,非常后悔,非常自责。

 

 

 

03.

 

 

历史循环往复,人生兜兜转转,在漫长的文青自我修养岁月里,我抱有的偏见不止一次,犯过的错误也不止一次,但最终都以“真香”收场。也正是通过这些教训,我对世间每个人的趣味,有了更多理解和尊重。

 

早年我自由撰稿,每月完成定期稿额,剩下时间都很自由。那时节,我几乎每天一部电影,部部都是经典。什么王家卫、杨德昌、侯孝贤、姜文、大卫·林奇、昆丁、戈达尔,费里尼…像集邮一样看下去。所谓大师电影看得越多,自我陶醉也越深。

 

仿佛牛逼的作品,我也有份。

 

当然也不能时刻看电影,尤其文艺片,超级费脑子。像《柏林苍穹下》《伊万的童年》这种,一口气看下来,需要多大的毅力?不想费脑子,只能看电视剧。

 

而众所周知,在电视剧观影圈里,也有着深深的鄙视链。它一般是这样的:

 

看英剧的瞧不起看美剧的,看美剧的瞧不起看日剧的,看日剧的瞧不起看泰剧的,看泰剧的瞧不起看韩剧的,而所有这些人加起来,统统瞧不起看国产剧的。

 

骄傲如我,只看英剧、美剧。

 

然而就在2013年,一部名叫《来自星星的你》的韩剧火遍全国。现在的年轻人可能不知道了,都教授当年的流量,可以说吊打蔡徐坤。一开始我还绷着,后来实在抵不住诱惑,好奇地打开这部剧,也是我人生中第一部韩剧。那叫一个香啊。一口气追完,我终于理解了那句著名论断:

韩剧就是给女生看的毛片。

 

换我是一女的,我也想要都敏俊。

 

两年后,我上班。由于要追热点,观影鄙视链再一次被颠覆。这部国产网剧,就是《太子妃升职记》。现在来看,这剧也没啥。可当初这部兼搞笑和悲情于一体被各公号吹烂的网剧,让我熬夜追了一宿。

 

追完后,对自己产生了深深的怀疑。

 

是我堕落了吗?

 

我一个看《权力游戏》的人,居然被太子妃的命运牵着走,恨不能跟她同呼吸、共悲欢,时不时流两滴感伤热泪。随后我清醒了:

 

去他妈的文艺骄傲。

 

好看不是硬道理?

 

 

 

04.

 

 

随着一次次被“真香”暴打,昔日我二流文青的自嗨病,终于得到有效缓解。也是从那之后,我开始学会理解别人的趣味,开始学会接纳更多形式审美。哪怕有人说Low,也不能带着固有的Low的目光去审视。

 

往昔看严肃文学和经典电影得到品味优越感,更是彻底没有了。接触不同审美的作品越多,就越能理解王二常引用罗素的话:

 

“参差多态,才是幸福本源。”

 

美有高低么?有。作品有金线吗?也有。但是,怀揣不同审美的个体和看不同层次作品的人,没必要扯出个高低之分。

 

每个人的教育背景不同,每个人的生命经历不同,每个人的生活频道也不一样。不能因为自以为是的高雅,就觉得别人低级。就跟老郭说的,有人喜欢咖啡,有人就喜欢大蒜。喝咖啡就高雅?吃大蒜就低级?

 

你以为卡车司机听《冲动的惩罚》低级?在他的情感共振上,那跟坐在高级写字楼里下了班之后听《处处吻》的白领是一样的。

 

都是心灵抚慰,谁瞧不起谁呀。

 

作为一名三好文艺青年,如不能从这个层面去理解差异,包容更多趣味,书就是白读了。自以为是的品味,会变成一厢情愿的自嗨。

 

节目里,大紧也说了:

 

“都说摇滚乐伟大,那摇滚乐里也有垃圾;民谣骚柔吧,可写民谣的也有厉害的笔。重要不在类型,而在创作者本身。”

 

这就是为啥会有那么多真香现场。

 

当我们抛开固有偏见,抛开外界打在事物身上的标签、符号,亲自去触摸那些事物,我们八成会发现它们背后的别有洞天。

 

不仅是审美,万事万物,都是如此。

 

 

 

05.

 

 

 

说来惭愧,当年我一个浅薄文青,不但在观影、阅读趣味上凹造型,在其他趣味上也脑抽过。最典型是买智能机,一看满大街都用苹果,我就想,那不能啊,咱得遗世独立啊。

 

王二说,一个人只拥有此生此世是不够的,还应该拥有诗意的世界。然而很多文青误会了,他们拥有的不是诗意的世界,是装逼的世界。

 

譬如我就非要买诺基亚撸妹儿的1520,手机是Windows系统的,小众到不像智能机。因为别人在APP海洋里畅游时,我连日常使用的APP都凑不齐。没有用过Windows系统的人,根本无法想象它是多么简陋。

 

可当时我还觉得自己不入俗流。

 

这简直是天大的误会。

 

终于,在滴滴都打不到后,我换了一台苹果。不出意外,又一次真香向我袭来,让我明白了自己陶醉的趣味是多么卑微。那顺滑的触感,五彩斑斓的界面,浩如烟海的APP,极佳的用户体验,吊打了我的执念和装。

 

「全文完,下次再会」

 


END

转自:https://mp.weixin.qq.com/s/z_WkrYRVJz9ADkPIDjaYxA