海阔天空的云

我们在自己的世界里独自狂欢

0%

这个话题蛮有意思的,尤其是当我进入一家外企之后。

进到外企,有一个需要注意的就是名字,大家几乎都不再使用自己的中文名,而代之以英文名。我进入的外企,是北京研发中心,人数并不算多,只有不到一百人,然而,就在这近一百人中,有很多英文名以andy结尾的的同学,有时候还真的是很容易弄混了。外企里面起英文名这件事,还算比较好理解。第一,它的确是我们进入这家公司做的第一件事,有助于公司巩固企业的工作氛围。毕竟你的工作,还是要和老外有接触的,老外当然愿意面对jack,tom,而不是xiaoming,xiaozhang,这件事,本身就对公司的沟通是有利的。第二,可以形成一种相对平等的企业文化,如果没有英文名或者阿里所推崇的别名制度,那么人们之间互相称呼,就会是张总, 李总,这些称谓本身就加强了这种不平等,而有了英文名之后,即便是跟你的领导或者领导的领导,也是可以直呼其名的,虽然你还是知道,他们都是你的领导,你还是要注意分寸,要保持谦卑的态度,但是,那种谦卑感,那种上下级的感觉已经削弱了太多太多,也因此,我们才能够表达地更加直接,工作效率提高。

看吧,从上面这件事就能看出来,起名字这件事多么重要。所谓,名不正则言不顺,说的就是这个道理。

但是其实除了英文名之外,我们更多时候接触的是外号。这些年来,从小学到工作后,但凡亲近些的朋友,很少有人会直接称呼我的全名,往往是其他的称呼,或者把我的名字最后一个字叠起来称呼我,或者去掉姓,只称呼最后两个字,或者叫我W仔,或者叫我W哥。因为我姓张,所以还有的时候,会有朋友直接跟我叫老张,都蛮有趣的。

网络昵称也是网络世界的第一印象,我这些年来,网络昵称一直都使用的是“海阔天空” 这个名字,这取自Beyond歌曲《海阔天空》,希望自己有一个海阔天空的人生。我的寓意是好的,但也偶尔会遇到尴尬,年轻人们已经很少再取这样四个字的昵称了,于是我女朋友当初加到我的微信后,看到我的微信名,第一印象就是一个落伍的糟老头子,于是又连忙向她解释了一番。现在想想,也很有意思。而说到我女朋友,她自己也经常吐槽自己的大名是她奶奶起的,奶奶都没有上过几天学,就给她起了名字,以至于名字浅薄而没有文化,到了这个时候,我也只能安慰她了。

我的英文名是olive,是当初大一的时候上外教课,外教老师要求取一个英文名的时候取的 。之所以取这个名字,是因为那个时候,正在追一部美剧《绿箭侠》,里面的男主角是一个白天正常上班,晚上拯救这个城市的肌肉男富二代,我当时很迷恋它,于是也就将他的名字用做了我的英文名,一直到了现在。最后再吐槽一下,有些英文名的确很难读出来,有一次,我第一次跟某个同事搭讪,问工作中的一件事情,开头称呼她的英文名,结果,却被问,你是在叫我吗?那一瞬间,很好奇是不是自己的发音不够标准,然而无论怎样,也算是一件趣事吧。

前些天,跟女朋友聊天,聊到她有个亲戚家的孩子很懂事,就算是被带着去超市买零食,也只是挑一两样自己喜欢的食物,从来也不多拿,相比之下,有些小孩子,表现地就像是饿狼一样,一旦被带去超市,就会拿好多东西,也不管自己能不能消化得了。

我于是跟她讲,这也能够看出家里面的教养,教养好的,平时零食就吃得够够的,自然不会说去了超市,还要玩命得拿,玩命地占别人便宜。相反,有些孩子,家里可能条件不是很好,平时很少能够吃到零食,自然就想趁这个机会好好拿些吃的了。

某种程度上来说,我们和小孩子是一样的。几年以前,我们刚刚开始接触自助餐的时候,也是希望通过吃得多,吃得好来回本,于是把自己吃得很撑,因此有些人,吃了一顿自助餐,搞成胃病来,得不偿失。最近,吃的自助餐多了,慢慢地我们也知道身体更加重要,与其吃一顿饭,搞得自己不舒服,还不如吃着舒心,吃着舒服,才是正理。于是,我们也渐渐地将心态放平和了。

很多时候,我们会表现得很饥饿,因为以前太过欠缺。就像是那些被带去超市,随意挑选的小孩,肆意地消费别人的钱财。也很像那些平日里不发朋友圈,一年出去玩两次,便在这两次旅行中,刷屏朋友圈的微信好友。有时候,我看着那些突然刷屏的微信好友的朋友圈,总是会想,他平时一定也很无聊。所以,才会用力过猛。当然,我在这里,并没有瞧不起人的意思,因为我的父母,就是这样,很少发朋友圈,旅行一次,就刷屏。我真的能够从这里面看出来,他们真的是很高兴。但也能够看出来,他们太饥渴了。

有句话说,三代富人才能培养出来一代贵族,这话不是没有道理。突然暴富,有时候,就是会表现地用力过猛。就像是,郭德纲相声里面说的那样,陡然而富,转眼富家翁,然后就不知道钱该怎么花了,就容易出现用力过猛的情况。所以,只有一辈辈人都习惯了那种富裕的生活,才能够不用力过猛。

再举个例子,也是我女朋友所说的。她说她的妈妈一直到现在都很爱吃饺子,然而女朋友她已经不爱吃饺子了。我想,女朋友的妈妈,在她小的时候,能吃上一顿饺子,也一定是一件很难得的事情。所以,每次一直到四五十岁,仍然对饺子保有热情,相对应的,女朋友出生在一个不愁吃饺子的家庭,对饺子的需求没有那么大,自然也就不算爱吃饺子。

我希望我的孩子,始终能够以平和的心态去面对这个世界,不必用力过猛,能够从他的言行举止看出他的家庭教养,看出他的生活环境,然而这实现终究要有很大部分落在我的身上,我似乎也只能更加努力,提供一个更好的环境,不让他有饥饿感。当然,我也必须要说,那种用力过猛并非完全是坏事,有时候会一次性获得数倍的快乐,然而只是会在结束之后,留下惆怅和空虚。所以,觉得最好的状态,还是保持平和的心态。

路径

  • 硬件角度
  • 网络安全角度
  • 后端角度
  • 前端角度
    科普,用最简洁的语言说明复杂的原理。

硬件角度

  1. 输入到识别

每次输入的过程,都是硬件之间交互的过,是键盘与显示终端交互的过程。如果有外接键盘的话,情况会更加复杂一些。外接键盘,又分为有线键盘和蓝牙无线键盘等。具体来说,无论是有线键盘,还是蓝牙键盘,都需要在电脑上安装驱动程序,让计算机能够识别到这个键盘的存在。只是说蓝牙键盘,这个设备并没有直接与计算机产生联系,而是通过另一种网络来传递信号。这个时候,传递的速度,可能赶不上有线键盘那么快。

键盘的输入,是电信号。电信号需要转化成数字信号,才能够最终被计算机识别,再呈现在显示屏上面。以前我们说,计算机主要由四个部分组成,主机,显示器,键盘,鼠标,其中,显示器,键盘,鼠标都是外部设备,只有主机才是核心设备。主机又可以细分为CPU,硬盘,显卡,内存,散热器等等。我们键盘输入,最后文字显示在显示器上面的过程,其实是包含了主机计算的过程,由键盘先到主机,再到显示器。

输入结束之后,接下来,如果我们按下了回车键,这个时候,就又与前端知识相关联了。

浏览器

浏览器是个啥,浏览器是一个电脑应用程序,它的作用就是展示网页。网页,也就是HTML,超文本标记语言,我们按照约定,这个约定就是这门语言,HTML,这个约定告诉我们应该怎样书写,才能够实现我们想要的布局,排版。网页作为一个载体,需要承载的内容会非常多,非常全面,它需要支持文字,视频,音频等众多媒体形式,这也就决定了浏览器需要支持这些内容的展示。于是,如果你细心的话,你会发现:如果你的电脑上没有安装视频播放器或者图片预览器,那么随便找一个MP4格式的视频,或者一jpeg格式的图片,直接将他们拖动到浏览器中,都是能够播放或查看的。注意,我这里特别强调了视频或图片的格式,并不是所有的视频格式的视频都能够在浏览器上面播放,浏览器并不是专业的视频播放器,它还要好多其他的重要任务,因此它只约定播放某些特定格式的视频资源。

当我们按下回车键的时候,浏览器就认为你的输入已经完成,可以跳转到输入的网址了。

一旦建立起了通信,这个时候,服务端得到了客户端的请求了.但是还有一个问题,就是我们在浏览器地址栏输入的其实是域名,而服务器真正认识的是ip地址,这里就有一个DNS的过程了。所谓的DNS,就是domain name system。我在写到这里的时候,以为是domain name service,只是一个服务,而不是一个系统了。因为DNS确实也只是做了一件事情,那就是把域名解析为ip地址。

浏览器又做了什么事情呢,在此过程之中?

一、浏览器解析域名一般包含以下步骤。

1.浏览器查询自身的DNS缓存。没找到继续。

2.浏览器向本机查询域名对应ip地址。windows操作系统的域名和IP的映射关系存在host文件中。没找到继续。

3.本机向本地的DNS服务器请求解析。本地的服务器一般指公司,学校或者运营商的DNS。没找到继续。

4.本地的DNS服务器向根服务器发起解析请求,返回顶级国际域名服务器解析地址。继续。

5.本地的DNS服务器向顶级域名服务器地址请求解析,返回域名服务商的解析地址。继续。

6.本地的DNS服务器向域名服务商请求解析,得到对应的ip,告知浏览器。

本地域名服务器 (本地DNS) 是什么鬼?我们通过网络属性看一看↓↓↓

v2-727c5491ef9501f7f7a53efdec8ed969_hd.jpg

通过DNS的过程,找到ip地址。

但是这个过程其实是相对的,客户端当然想去找到一个ip地址,但是服务端也当然希望找到一个能够让客户端访问速度最快的ip给到客户端。现在很多大型网站,都有很多的ip地址。把访问最快的ip给到客户端当然最好。

DNSPod 是一款免费智能DNS产品。DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,达到互联互通的效果。能够让使用 双线路或拥有多镜像的网站站长轻松实现智能DNS解析,让用户仅用单域名即可访问到最快速的镜像。

这个问题,也跟国情有关系,我国的网络情况,再我天朝,各个运营商控制的网络之间进行通信,往往速度会差很多。单个运营商网络内部的通信,才能够保证速度。因此,如果我们留心发现,也能够看到在一些资源下载网站,时至今日还会在下载的位置提供多个下载按钮,每一个按钮对应一条线路,也就对应了一个下载服务器,其原因,也是想优化用户的体验。然而,其实说起来,大部分用户都是小白,他们可能也就随便找条线路下载罢了。

总之,DNS的过程是双向的,客户端在努力去找到访问最好的服务端线路,服务端也想提供一条最好的线路给客户端 。

现在DNS的问题解决了,我们已经能够根据地址栏上输入的www.google.com 去找到它的真实ip地址了。这个时候,还有一个小问题,假如我们输入的是http://www.google.com ,那么如果是在chrome最新版浏览器(version 76)上,会优先去寻找它的https站点,从地址栏上可以看到这些变化,地址栏上去掉了http://www.这部分内容,在google.com前面加了一把锁,指示这时候已经用上了https。

我们可以进一步拓展一下,

https有证书。

http 默认监听80端口
https 默认监听443端口。在http下加入了ssl层,https的安全基础是https。

如果攻击者截取了web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。

https的缺点:

https证书需要钱,https连接缓存不如http高效,会增加数据开销和功耗。https握手阶段比较费时,会使页面加载时间延长,会更耗电。

  • http承载层是tcp层,https是在http协议之上加了一个ssl,tsl安全协议层。

  • http的默认端口号是80端口,https协议的默认端口号是443端口

为什么说https更加安全呢,普通的架构在http协议之上的网站,他是可以通过运营商劫持来给网站注入内容的,运营商或者其他人也是可以直接来得到你的访问的具体内容。如果你在这个网站有用户名密码等信息,很有可能会泄漏。但是https的话,是不存在运营商挟持的问题的。整个数据的传输过程,只有你和站点才有密钥。

像chrome这样的浏览器,在推动着web安全的发展,之前也是chrome最早将非https的站点,标记为不安全的。这样看来,https是大势所趋。

有了https,可以简单地理解为报文非明文传输,而是在传输过程中经过了一层加密。

请求

好了,好了,现在双方已经建立起了桥梁,可以互相通信了。

随着网络情况越来越好,浏览器上出现的空白页非常短,随即就展示了谷歌的网站首页。那么浏览器又是怎么做到的呢?这就牵扯到了另外一门计算机课程,《计算机网络》。

计算机科学的发展,是建立在种种的协议和标准之上的。到我们现在要谈论的这个话题上,用到了TCP/IP 协议,这个协议规定了两台计算机之间如何通信。下面具体来说一说,所谓的TCP/IP协议,分为两部分,TCP协议规定了中间过程的实现,IP协议规定了怎样找到对方,给对方发送信息。

知道了这些,就可以详细点来解答我们的问题了。首先,当你在浏览器上完成输入,敲击回车键的时候,随即浏览器作为客户端,就向服务端发送了一条请求,希望能够得到谷歌首页的网页响应。

对于新同学来讲,可能又懵逼了。这些客户端,服务端又是啥。毫无疑问,这也是计算机科学里面的术语。他们都描述了计算机的状态,如果换到我们经常使用的场景来看,如果你玩《和平精英》这样的游戏的话,那么我们自己的每一台手机都是客户端,相对应的,在腾讯那里,也将会有数不清的服务端机器,也就是服务器来做支撑,确保我们的游戏体验顺畅。客户端和服务端就像是它们各自的名字所描述的那样,一个负责服务他人,一个负责享受服务。其实有点像是你去餐馆吃饭,点菜的过程,就是客户端向服务端发送请求的过程,服务端当然也会有应答,也会最终上来一大桌美食。

切回到我们说的实际工作,客户端与服务端之间要进行通信,服务端才能够将信息发送给客户端。然而,客户端与服务端又不能是简单通信,需要进行三次握手,这是一个授信的过程,目的就是确保我信任你。

七层的协议。那么又在第几层呢?又经历了三次握手,最后才终于建立了联系。

TCP协议,

返回内容

报文的内容是怎样的呢?

请求头,请求的body

HTTP Request
HTTP 的请求报文分为三个部分 请求行、请求头和请求体。

其中请求头说的是请求的基本信息,请求体说的是携带的大量信息。请求行

具体的可以参见这篇文章: https://segmentfault.com/a/1190000006689767

有请求,当然也要有响应。

响应也是如是一样,分为响应头,响应体。

在响应头,又有很多常规的字段,来说明一些常规事情,比如响应状态,status 200 ok等等。为什么要设计成响应头和响应体这样的区分开来的响应结构呢?我们可以结合实际调用来看,如果我们有一个接口,一般来说,我们会把结构的返回值,放到响应体中,而把其他的信息放到响应头之中,有个响应头,我们可以鉴权,可以判断响应是否正常,而把这两部分分开有助于我们代码的书写。

回传部分

这里涉及到一些网页基础知识。前面其实已经简单介绍了浏览器,接下来就说一说网页,我们必须承认今天看到的网页,已经远比20年前要更加复杂了,这种复杂度,从表面上看来,体现在网页更加酷炫,现代化,而从更深层次来看,则体现了网页前端技术的变革。然而,我也不打算在这里再拓展到前端技术变革的话题,我想说的是,无论技术如何变革,网页这个诞生三十年左右的事物,也始终是核心是由三部分组成。即HTML,JS,CSS,这三部分是网页技术的核心。

一般来说,每一个网页,就是一个html页面。HTML是基本,JS和CSS只不过是潜入在HTML页面内部而已,只不过相比于其他的潜入资源,比如视频,音频,图片等多媒体资源用于作为内容来进行展示,JS和CSS的作用并不是作为内容,而是辅助内容去进行展示,甚至是进行交互。(展示还只是UI层面,交互就是UE层面的事情了)。

如果我们探寻,网页技术的历史,很有意思。网页(HTML)的发明是在20世纪90年代初

根据维基百科:

HTML规范虽然规定了网页中的标题、段落应该使用的标签,但是没有涉及这些内容应该以何种样式(比如大小、位置、间距、缩进等属性)呈现在浏览器中。从1990年代初HTML被发明开始,样式表就以各种形式出现了。不同的浏览器结合了它们各自的样式语言,读者(也就是浏览网页的用户)可以使用这些样式语言来调节网页的显示方式。一开始样式表是给读者用的,最初的HTML版本只含有很少的显示属性,读者来决定网页应该怎样被显示。

1993年,Robert Raisch提出了一种名为“RRP”的样式规则建议。但这个RRP只允许网页使用1个样式表,不像现在的CSS能支持同时加载多个。不久后出现的Mosaic浏览器就采用增加新种类的HTML标签实现样式的表达,以满足设计师的要求,这也与现在的CSS设计原则不符。随着HTML自带的样式功能的增加,外来定义样式的语言逐渐减弱了。1993年发布的这个Mosaic浏览器是第一款用户界面,并支持书签、图标按钮和图片显示。[8]之前的浏览器都是纯文字浏览器。即使在今天,只使用操作系统命令行自带的Telnet命令,也可以查看网页的源代码。[9]

后来,台湾人魏培源开发的ViolaWWW浏览器使用了一种规则具有层次嵌套性的样式表,并第1个支持通过<link>标签引用外部样式表。FOSI最早支持以相对尺寸值来表示字体大小。函数式风格的DSSSL语言支持在样式表中进行定义变量、继承变量、定义函数等功能,但是语法复杂。1994年,万维网之父蒂姆·伯纳斯-李在欧美众多高能物理研究者和技术人员的支持下,于美国麻省理工学院创立了万维网联盟(W3C),其职责是提供网络标准化建议。[10]1994年,Håkon W Lie提出层叠HTML样式表(Cascading HTML Style Sheets,CHSS)。CHSS既支持用户自定义样式表,也支持网页作者样式表,而且可以满足不同规则以百分比的方式组合使用。它的权重规则计算方式不够直观,当不同规则混合时会得到什么实际效果并不容易从代码中看出。1996年,出现了与CSS语法很像的表现指明语言(Presentation Specification Language,简称”PSL 96”)。PSL 96除表达样式外,也支持条件判断等功能,还可根据对浏览器信息的判断来使用不同的样式,但未获得青睐。

其实可以看出来,如果简单地去认为,CSS是实现UI层面地内容,JS是实现UE层面的内容,那么也就不难理解,这三者的诞生顺序了。当然是先要有基础的HTML,先要能够展示内容,无论美丑,之后是一个视觉上UI层面的提升,最后才是UE层面的完善(JS语言在1996年发明),有兴趣的同学,可以自行看一下《javascript高级程序设计》,这本书的前几章,就是在介绍网页技术的历史,还是蛮有趣的。

回来说,网页,遍历,渲染,浏览器的工作,最后呈现出来页面的内容。

现在,我们想想,我们已经完成了这么多的工作了。

换工作之后,从南五环的黄村火车站搬到了东四环的百子湾。伴随而来的,也是生活习惯,生活方式的改变,因此,我想把这些记录下来。

拼多多

拼多多刚刚上市那会,能够看到网络上劈天盖地的嘲讽之声,后来经过了一年的时间,风向就180度的大转变。因为的确能够发现,拼多多上面,山寨产品越来越少了,正品低价商品越来越多了。最近也能够看到拼多多搞百亿补贴来为自己正名,很不错。

我在拼多多下过几单,都是19年下半年的单。之所以使用拼多多,当然一个核心诉求是因为便宜。我在那上面买过衣服,买过电饭煲,买过路由器,总体来说还算满意。我不会去使用他的拼单功能,去分享到群里面,打扰别人,我只会默默地选择跟单,其效果也仍然是用一个比较便宜地价格来购买商品。

拼多多的很多玩法,我并不算很赞成。比如我的这几个订单,都是从他的微信小程序上面下的单,我不想安装他的App,但是每次我打开他的小程序,他都在各个明显的位置,去鼓励我下载App,去告诉我,下载App可以领取到好多优惠券,这对我已经形成了骚扰。另外,刚才说了,我不会去使用拼多多的拼单,去分享到群里,最多的时候,我会分享给我女朋友。但不妨碍我说他牛,因为他的确满足了我沾小便宜的心理。

每日优鲜

与拼多多一样,每日优鲜也是一家社交化电商平台,主打的是生鲜买卖,十分依赖微信这个生态来做推广。因此,我在

前面说了,我是搬家之后,才开始使用每日优鲜的,其原因则是,搬家之前,我和其他人合租,而搬家之后,我和女朋友住在一起,因此在家吃饭成了一个普遍现象,这个时候,我其实有多个选择,比如盒马鲜生,但是最终,我在买菜做饭这个事情上,选择了每日优鲜。

其实说白了,原因有以下几点。第一,app做的好,用户体验足够好,相比之下,盒马鲜生的App,我下载好打开之后,完全没有在上面购物的欲望。第二,优惠力度,现在电商平台给予新用户大额优惠,来让他们完成首单,已经是基本操作。但是能不能在完成首单之后,继续让用户购买是另一个挑战,这个时候,就能看出来每日优鲜比盒马鲜生做得好,他把这个挑战抛给了用户,他会在用户完成首单之后,告诉用户,你通过分享订单可以获取奖励,这个奖励就是真金白银,可以在你得下一单中使用。他会在你的个人中心,告诉你需要完成新手任务,几个新手任务的核心就是促使你买买买,而这几个新手任务当然对你没有啥坏处,优惠的力度虽然不及首单,但依然有很大的力度,这些优惠都会以优惠券的形式发送到你的账户里面,只要你留心,就能够以一个比较好的价格来购买产品。另外,配送也是每日优鲜的优势,我虽然不是会员,但是对我来说,也是能够做到一小时送达的,这种体验,你一旦习惯了,就很可能回不去了。就像是京东顺丰的快递,你一旦习惯了,就不愿意再苦等好久。

我是很克制的,不想打扰到别人。因为我不想成为那个被打扰的人。但是我又很明白,并不是所有人都跟我一样。甚至,其实相当一部分人喜欢这样的形式。我之前看过这样的文章,拼多多也好,每日优鲜也罢,其实都是利用人类心理,就像是手机游戏一样做电商,他们想不成功都难。这样的说法,我觉得有几分道理,的确是这样,我克制了我自己,但也能够在这种贪小便宜的游戏中寻找快感。

便利蜂

便利蜂是我最近十天才开始用的,之前一直有所耳闻,后来,新公司入职,老大给我介绍公司的基本情况,还特意说了,中午如果想要吃饭,可以到楼下的711,便利蜂,也可以去美食广场。当时,就又对便利蜂加深了印象。

我对便利蜂的喜爱,当然是因为他的午餐,我其实也只在便利蜂吃过午餐,没有再买过其他东西。便利蜂给我的感觉是信任,我在那里买过那么多次饭,基本流程都是跟服务员说好要哪些菜之后,服务员给我打好饭,计算好价格,生成一张带有二维码的纸,通过小程序可以扫描这个二维码进行结算,但是店里没有其他人去监督你扫码核算,他信任你能够做到自觉遵守规则。你也可以在便利蜂堂食,我一般会选择堂食,很多时候,我都是吃到一半,想起来要扫码结算,于是赶紧拿出手机来结算。便利蜂的这种信任,让我很原因去那里,自由让我喜欢。当然,便利蜂的午餐味道并不算惊艳,但是性价比足够高,也是我喜欢他的一个原因。

另外,便利蜂的App设计地也很现代,用户体验也很不错。如果想用他的自助购功能,入口也很容易查找,整个体验非常棒。当然,就像是每日优鲜一样,便利蜂也通过优惠券来提高用户的复购率,不过他并不是通过简单地发放优惠券来完成,而是用户只需要花费1分钱,就可以拿到多张7.9折优惠券,这当然不亏,于是我们就会去做这样一件事。拿到了优惠券,就又想要去用,于是复购就产生了。

后话

时代在变化,其实像我们这种奔三的人,最怕的就是思维僵化,不愿意接受新鲜事物。然后慢慢地落后于这个时代,这几年,也的确发现,手机上常用的App不再有太多变化,年轻人都在用的快手,抖音也不愿意去尝试,觉得尝试了也会排斥。但是,好在我还是有一颗探索的心,想要学习了解一些其他的事物。就算是买菜做饭也不例外,还是应该保持一颗折腾的心,所以,我是不是还是应该安装一个抖音呢?毕竟连我妈都开始频繁地玩抖音了。不知道。

前两天,我司我这个小组来新同事,于是大家一起吃了个饭,席间,竟然谈到了香港问题。

简单地,也来说说我的理解。

  1. 之前写的 港片和回归 以及 香港是袭人,英国是雷锋 。 这两篇都是两年前我写的,当时正是香港回归20周年的时候,其实那个时候,就已经从外网能够看到很多不和谐的信息,主要集中在普选的问题上,再往前推到14年左右,也是能够看到很多关于香港的流言蜚语,所以我也一直很关注香港。

  2. 我也没有去过香港,但一直都对香港有些好感,可能也是因为看过很多港片的原因。

  3. 香港问题,就像是我之前写的两篇文章提到的,很复杂。不能够直接说,你们连国都不爱了,还谈什么皿煮。

4.关于香港的报道,大陆这边宣传地也不客观,香港那边宣传地也不客观。大陆这边不会报道香港这次大游行地起源和所谓的五大诉求,香港那边也很少报道警察怎样受到抗议者的伤害。这也很难找到制衡点,只好都看一看,然而,越看越是难以得到一个轻易的答案。

  1. 香港某些民众的诉求有没有问题呢?有问题,站在中央政府的角度来看,当然是不答应的。站在大多数香港人的角度来看呢,也不应该答应。香港还是应该认命,一国两制,五十年不变,现在已经快一半了。香港的繁荣稳定,很重要,发展经济很重要。有时候,我看中央电视台采访香港人,那些香港人说要稳定,不要游行,再一看他们的身份,都是旅游从业者,服务业从业者,显然对于他们来说,香港的这件事,减少了他们的收入,让他们不开心了。

  2. 我对学生的一个基本看法是,年轻气盛,吃饱了没事干,有时候又会过于理想主义。而对社会人的基本判断是唯利是图,争取自己利益最大化。这个判断,不光是说香港学生,香港社会人,也是在说大陆,说这个世界。在我看来,如果能够把学生和社会人的这些特点均匀一下,那自然是太好了,这一点上来看,其实现在大陆这边算是做得不错了,可惜似乎又有点过了,学生们往往过于看重自身利益了。

  3. 对香港的判断离不开对祖国大陆的基本判断,目前也快要国庆了,又到了表达爱国心态的时候了。有人说,爱国不等于爱党,也有人说,连自己的国家都不爱,连畜生都不如。我爱这个生我养我的国家,喜欢这里的一草一木,喜欢这里的人文,风土,
    如果有一天,我也要永久地离开这片土地,我也会像《亮剑》里面的楚云飞那样,把故乡的一抔土带走,寄托思念。但,我也不会无条件地宠溺它,我爱我的国家,爱它,当然是为了它好,爱它当然也会指出它的缺点和问题。而从我的个人利益出发,我也不得不爱这个国家,希望它越来越强大,越来越繁荣稳定,因为我会从中受益。

爱国家,也许是一个很抽象的事情,就像我所表达的,爱这里的一草一木,人文风土。但也可能很具体,比如爱这个中华人民共和国,爱五星红旗,就是很具体。对具体的事物表达爱意很容易,对抽象的事物表达爱意就很难了。我希望做一个自由的人,对具体的事物表达爱意要克制,对抽象的事物表达爱意要放纵。

我的居家生活

居家生活中,一开始我也不习惯。但是更多的其实是享受,在我以前的租房经历中,有相当长的一段时间,我是住在不到十平米的隔断房里的,还有一段时间,则是住在郊区的公寓里,体验其实都不是很好。但是能够两个人住在近百平的房子里,我还是很开心的。这又让我想到,物质还真的能够提升幸福感,因为之前的物质,确实很难有幸福感。

我是很爽的,但我女朋友可能并不爽。我们需要经过一段时间的磨合,她是个爱干净的人。于是每次,我回家,她都会要求我在门口换鞋,这样她才能够让我进屋。她也会要求我每天都要洗澡,每天都要换内裤,每天都要洗袜子,每次都要把柜子里自己的衣服叠得整整齐齐,我还真的很不习惯。

但是,我总觉得,这只不过是我不习惯而已,她说得很多事情其实很有道理。

其实后来,我们磨合地越来越好了。经常地,我的一天是这样度过的:早上六点多种起床,这个时候她还不顾形象地躺成个八字睡觉,我简单洗漱,然后一个人对着电脑计划一下接下来一天乃至几天要做的事情,然后就开始简单对学习一些业余知识,可能是英文,也可能是web知识,也可能会像今天这样,写一些文字。之后,等到快七点半的时候,就去做饭吃。做的饭其实也很简单,为了少浪费时间,往往我会选择煮面吃或者炒米饭吃,做法很简单,吃起来却还是蛮香的。吃饭的时候,我会打开电视,看会时政新闻,或者体育新闻。只有客厅有这么一个大电视,才能享受看电视的乐趣,才能更加感受到居家的乐趣。

之后,八点钟,我亲吻一下她,向她告别,离开家,去上班。我觉得告别前,亲吻一下,是一件很西方的事情,做得久了也很习惯了,我们也变得越来越没羞没臊,可能老外也只是亲吻下面颊,我们则会亲嘴。

上班的路上,还是会刷一些新闻和公众号,虽然只有五站地的路程,但是因为转车和客流量大,实际上也会在路上耽误很久,索性,刷手机会让时间过去得快一些,我也渐渐地体会到了北漂挤地铁的感受,这是前两年所没有的,而我也渐渐习惯了。挤地铁久了,也就不觉得多么累了。搬家之前,曾经有一段时间,是要坐北京地铁四号线再转二号线,到达公司的,要坐好久的四号线,早高峰的四号线,总能遇到人们因为太挤不懂得礼让而争吵起来的,他们争吵起来,最直接的后果就是也会连累到我们这些乘客,心情变得很丧。搬家之后,看到别人争吵的情况很少了,我还是很感恩现状的。不过有时候,无论早晚高峰,下车总是一件很困难的事情,你需要提前换到出口处,不然就很难出去,我自己经常会在换到出口处的过程中,问旁边人“您好,下一站下吗?” 很客气地问句下不下车,时间久了,就会很敏感,同样的,别人问我的时候,“下车吗?”,我都觉得很没有礼貌,很没好气。有时候也想,年龄越大,规矩也还越来越多了,也更容易因为别人生气了。

我会在九点钟左右到达公司,公司是弹性工作制,只需要上够八小时的班就可以了,一般来说,是早上九点到十点上班,晚上六点到七点下班。我往往会选择早到早走,这也比较符合我以前的工作习惯。工作时间的事情,以后单独聊。

下班,仍然是挤地铁回家,到了地铁站,我会选择找一辆共享单车骑车回家。我当然想要尽快地回家,尽快地见到她,尽快回家抱一抱她。往往在我回家之前,我们已经决定了晚上要吃什么,她会负责将那些菜切出来,等我回家来炒,有次她看着我整个炒菜的过程,后来问我,下次我直接给你把这些东西炸出来,你回来直接炒吧,这样更快,我并不同意,说女神是不能沾油烟的,很大程度上说,我的确是这样想的,我总觉得,我不希望她沦落成为一个家庭主妇,这样也会降低她对我的吸引力。而且,我曾经跟她多次说过,我喜欢做饭,也愿意做饭,我的确这么说,也的确这么想,所以,我当然更要言行一致了。不过坦白讲,我其实更喜欢一个人在厨房的感觉,那次两个人一起在厨房,给我的感觉并不美好,反倒觉得生活如此平庸,碌碌无为,只能生活做饭了。而一个人的厨房,是一个属于自己的小天地,还能释放缓解压力,让我很怡然自得,甚至有一次,本来我是不喜欢刷碗的,在做完一件很有压力的事情之后,自己一个人跑去刷碗了,我给我自己的理由是,缓解压力,轻松一下。总之,下厨房这件事,我是喜欢的,我也很享受厨房与爱。

我们往往晚饭会做两个菜,这样,她如果哪样菜不喜欢吃,就可以多吃另外一个菜。我们做的菜,往往不会做少了,宁可做得多了,第二天吃掉,也不愿意做少了,吃不饱。我喜欢她吃得多,吃得香,喜欢她夸赞我厨艺好,这样我也有几分成就感。其实对比之下,我喜欢吃自己做得饭,甚于外面的普通快餐,我觉得自己随便做些什么都好吃,外面的,不仅不卫生,还不可口。当然,外面的正经馆子,另当别论,所以我也考虑,每个月,要下几次馆子,吃吃其他的风味。另一个对比,是个老家的对比,老妈每天繁忙,于是只是随便炒个菜,还特别少,有的时候只能蘸汤儿吃,相比之下,我们在北京,简直是阔绰得很,好吧,我又给自己找了一个不回老家的理由。

居家生活之中,我们享受着厨房与爱。然而,毕竟有那么一首歌,我们来自山川湖海,却囿于厨房与爱。我自己又是一个蛮容易焦虑的人,每每下班之后,享受厨房与爱的过程,两个人做饭,吃饭,在沙发上抱在一起看电视的时候,也会生出来两分焦虑。怕自己沉迷于岁月静好的生活,慢慢地,就落后于其他人了。所以,就又说回来,我还是会利用早上的时间和周末的时间来学习,来进步。

跟她一起住之后,我跟她调侃,我说,我现在已经不知道“家”的指代了,有的时候,我们说的“家”就是北京的住处,这个时候,我在公司上班,她在家休息,她会问我啥时候回家,回家记得买啥买啥。可是有的时候,我说的家又可能是我的老家,这时候,又有可能是我老家的新房和老房,各不相同。偶尔,只说“回家“会很让人困惑,这个时候,就会加上一两个定语,来说明究竟这个”家“说的是哪里。不过,无论我们聊的家究竟是哪里,总又让我想起那句,”吾心安处是吾家“,的确很有道理。坦白讲,在北京两个人住了一个多月,更加觉得北京的这个‘家’更加轻松自在,颇有些岁月静好之感,而老家,则又会面临父母的很多”老理老例“,他们会告诉你,别人都那样做,你也需要那样做,会有很多的束缚,这些还只是心理上的。至于物质上,当然还是北京更加丰富,所以,回老家并不是一件特别开心的事情,不过能够见见亲人,尽尽孝心罢了。前两天看一篇文章,讲的是,在当代,所谓父母在不远游是一个错误的说法,有理有据,其中一个理由是说,如今科技这么发达,完全可以通过视频电话来达到”回家“的效果,但是我却觉得,视频电话,对于我和我的父母来说,完全不成立。我非常不喜欢视频电话,就算是跟同龄人的女朋友,也很少进行视频电话,所以如果可能的话,我还是会选择回家。

我很享受现在的时光,就像我前面说的,岁月静好。但是,我并不确定,是否有一天,我会厌倦。觉得,还是海阔天空,闯荡江湖,更加刺激。无论怎样,跟随内心,享受当下吧。

偶尔,我会回想起我从业三年的经历,不能说多么精彩,但也步步为营。我还是会再想的过一些,想起到底是什么样的原因,让我想要学习前端,了解前端,如果用现在的话,叫做初心。

我想起来,当初上高中的时候,我的手机流量套餐是每月30M流量,平均下来每天大概只有1M的流量,这在现在看来简直不可想象。那时候,我只在下了晚自习之后,躺在被窝里用UC浏览器的无图模式刷刷微博,每月勉勉强强流量够用。那时候,蛮好奇这些词汇的,“流量”,“无图模式”。我当时一直很好奇,“流量”到底是怎么算的。为什么我的流量有时候就不够用了呢,本着有事情问百度的精神,当时去百度了“手机流量”的定义方法。于是的出来一个计算方法,也就是看获取到的网页上的内容,来计算“流量”。图片需要消耗更多“流量” ,因此当时的UC浏览器采用无图模式,能够省流量。一切似乎都没有我呢提,我记得那个时候,我为了计算自己每天的流量消耗,还曾经打开一个无图网页,根据里面的字数,去计算消耗的流量,结果却发现,实际消耗的流量,总是超过当时的计算值。直到很多年以后,我仍然记得当年做过的这件“蠢事” ,并且终于弄懂了所谓流量的含义。当时的我,只是看到了表面上的网页展示内容的流量,却忽略了还有很多其他的网络请求,比如CSS,js文件的加载同样消耗流量,这说到底,是因为我对计算机网络这门课不了解。 而后来慢慢地接触了计算机网络,入门了前端,也就能够明白这其中的道理了。

我也想起来,大二大三的时候,曾经很喜欢折腾浏览器,包括火狐浏览器和谷歌浏览器,就是希望能够把浏览器折腾得更加高级,实现更多功能。当时按照网络上面的教程,各种鼓捣,安装各种插件,脚本,样式。其实后来想想,这所有的这些鼓捣,也都是在用前端技术,改造浏览器浏览网页的体验。当时,完全不懂前端技术的我,只是觉得很神奇。后来,大三的时候,我按照网络上的教程,给某个站点写了一个去广告的样式,其代码只有两三行。在当时看来,我写这两三行代码折腾了好几个小时,终于简单明白了审查元素,元素选择器怎么用,我只用了一条语法规则,也就是display:none。我花了几个小时,只为了学习这样一条语法,实现一个功能。这当然是因为我在此前,没有接触过前端知识,更没有系统地学习过。但是你问我现在的我后不后悔?我并不会觉得后悔,因为大概也就是从这个时候开始,我越来越对前端技术感兴趣,于是后来的转行前端也就顺理成章了。

工作之后,我的技术栈是在不断扩张的。随着技术栈的扩张,知识也越来越多。当我想到过去的那些“蠢事”时,也会觉得有几分可笑。可是,那就是青春啊。

身为一个程序员,经常会遇到的一个问题是,我们一旦换工作,就会有老的技术栈不再使用,需要学习新的技术栈。如果你是一个像我一样抠门的程序员,可能就会觉得可惜,觉得以前学的技能,又都浪费掉了,又都白学了。就拿我个人的例子来说,我在上一家单位的时候,担任的是全栈开发工程师的角色,后端语言是Python,不过我是偏向前端的全栈。到了新的公司,我开始全职担任前端开发,这个时候,就面临技术栈的废弃。我不再需要使用Python语言作为日常开发,而用进废退的道理大家都懂,一旦一个知识不常被使用,那么它就会退步。有这样的道理在先,就又会加剧几分可惜。

但是,其实回想一下我们过往的学习经历,就会发现,我们有太多的知识,学到了,过了一段时间,就再也没有用了。如果你是计算机相关专业,那么大学以前学到的几乎所有的化学,生物相干知识都没用了。太多太多的,需要强行记住的公式被你遗忘掉了,只有一些常识性的知识成为了常识,放到了你的记忆表层,能够随时被取出来使用,比如水的分子式是H20,一个理工男恐怕这辈子也不会忘记这样的知识。但是那些常常出在高考试卷上面的题目,当我们离开多年后,就再也答不上来了。于是,照样也会有人感慨,当前学到的知识,后来又还给了老师。

不过,即便是很多知识我们不再那么熟悉,可是又有什么关心呢?高中时候的化学,生物知识没用了,还给了老师,但是很多的思维方式和思想保留了下来。比如控制变量法,比如相信物种进化,相信人人平等。相应地,我可能不再会在工作之中使用Python,但是那又又什么关系,Python的很多思想我学到手了,可以借此类比去学其他的语言。比如前不久公司内部有同事分享JAVA8引入的函数式编程的思想,我就想到了Python的函数式编程的思想,lamda匿名函数的思想。学的多了,很多东西不再使用,这非常正常。再比如最经典的,我们上学的时候,都要会使用C语言,当年我还考过C语言的计算机二级证书。但是工作之后,也没有再在工作中使用过C语言,但是好在C语言是我的编程语言入门语言,从中,我了解到了变量,for循环,递归等等一个编程语言所不可获取的元素。后来学习新的编程语言,也因为有了C语言的基础而变得更加容易了。以往的知识,不是没有用了,而是内化成了一些思想,留在了大脑中。

但是,如果我们可以选择的话,所学都能致用,那当然也是一件很美妙的事情。

其实再想想,太多的人,甚至毕业之后,工作的内容,跟自己上学的时候学到的都八杆子打不着。

断舍离是一种境界,并非所有人都能够做到。面对知识,我们也应该有断舍离的心胸。

如果没有这样的心胸,当然也没有什么关系。计算机编程语言,每一门都有它的特点,就算工作中你不能使用曾经学到过的语言,技能,那么只要你有心,也是可以在自己的小项目中使用上的。总之,我们无需觉得学而无用,有一个平和的心态对待学过的知识,才是正理。

五六七三个月,总结起来干了三件事。五月份交接工作,六月份找工作,七月份找房子。每一件事,对于我个人而言,都是不小的改变。

五月份

五月份,虽说是交接工作,但是还有一个很紧急的开发工作,所以基本上就是边开发边交接。5月过完五一小长假回来,就跟领导提了辞职,也留出来了将近一个月的时间,也算是仁至义尽了。后来的事情是,领导找我谈了次话,说是项目紧急,希望我能够呆到六月份,她还说我这个人太犟了,为什么就不能从大局出发呢?我又只能说,希望自己的利益不受损害。后来也做了权衡,做了妥协,说是五月底离职之后,再去公司啥事不干,完整地交接工作三天时间。双方这才谈得比较顺利。

以前在这家单位上班的时候,除了有那么三个月的时间,老大一时兴起在公司附近租房住,于是我们跟着他一起加班。 其他的时间,几乎没有加班。但是恰恰在这即将离开的一个月的时间里,加了很多班, 最多的一次,到了晚上十点半。当然,跟我交接工作的同事,加班加得更狠,加到了凌晨1点。这次加班之后,我感冒了,又难受了好几天的时间。

之前离职,很大原因是因为这个新的直属领导, 他几乎并不懂技术,不懂互联网,不懂前端开发。他唯大领导是从,大领导今天说这个, 他就要求我们做这个。明天,大领导心情换了,想要做别的。他就又要求我们做别的。相比之下,我的上一位老大,能够很好地帮我们过滤需求,少了很多无用功。另外,这个直属领导,由于不懂技术,导致项目估算期限,出了很多问题,当项目来不及的时候,也只好让我们加班了。

有那么几天,我很怕自己突然发火,跟这位直属领导直接闹翻。不过有意思的是,自打我提出了离职,这位直属领导对我的态度也发生了转变。甚至后来,我离职之后,在部门微信群里面道别,也得到了他的祝福。我很难说,我们两个谁做错了。毕竟从他当我的领导的第一天起,我就不服气。

六月份

六月在老公司又交接了两天工作,完全是义务的,没有收任何费用。后来端午节回家,跟家人呆了两天,然后就又回到帝都,准备找工作了。

于是那个月,好长时间的工作状态是这样的:去大兴区图书馆看半天书,下午去面试,面试回来吃个饭,跟女朋友在微信上聊聊天。

面试的经历,其实也可以简单说一说。从6月13日开始面试,后来陆续有很多面试,一开始对待的态度有点漫不经心,后来发现面试结果一次比一次糟糕。有两个面试,都已经进行了两三轮了,还是被答复说,某位主管领导不在,要择日再找机会来面试,后来就等了等,问了问,人家也真给了个机会,电话面试,不过结果也不尽如人意。

五月份的时候,当时在职,断断续续面试了三家单位,面试的第一家单位,很快就给我开了一个蛮不错的待遇。只是考虑到他们公司开发人员太少,可能要做的事情太多,最后委婉地拒绝了。第一个面试就有这样一个好的待遇,其实我还是很欣慰,甚至有些飘飘然的,于是后来很自信。

七月份

找房子也不容易,首先是我们的条件,我们希望能够有一个大客厅,用来放古筝,能够进行古筝的一对一教学。其次,希望我自己的上班路程都能控制在一个小时以内。开始,我对北京的房租有一个简单的印象,认为大概五六千块钱每个月的房租,就可以搞定,满足我们的需要,后来发现,北京五环以里,稍微靠近些地铁站,房子再稍微大点,都要六千以上。这是第一个误解,第二个误解是,我以为整租一个四五十平米的房子,也就可以了。后来经过多次看房,却发现四五十平米显然不能满足我们的需要。

找房子的过程,我们起先是在手机上在线看房,女朋友比较倾向于自如,一个理由是她的一个大学同学跟别人合租,就是在自如找房,而且有趣的是,她那位大学同学多次换房,也都只找自如,足以见得对于自如的忠心。然而,我对自如的印象并不好,原因也大概就是这几年爆出来的自如房源有甲醛的事件,另外,一个理由,简而言之,就是觉得自如房源贵。而又有什么服务费,而他们的服务,我们又觉得全无需要。

之后,贝壳找房,安居客,蛋壳公寓这些app也被我装进了手机,这些app在找房的那段时间,几乎每天都在翻,都在看。于是就发现一些规律,像蛋壳公寓app上面的房源,都是以公寓形式来出租的房源,可能也由于并非是房东直租,房源量并不多,完全无法满足我们的需要。在线看来,房源量比较大的是贝壳找房和安居客,这两个app都是所谓中介模式,贝壳找房背后的中介公司是链家,安居客背后的中介公司是我爱我家。一个蛮有趣的事情是,有一次,一个我爱我家的中介带着我跟我女朋友去看房,女朋友突然问那位中介一句,链家跟我爱我家是一家公司吗?这句话一问出口,搞得我一脸黑线,中介只简单回了一句,不是。女朋友又说,我看我爱我家总是跟链家开在一起,我则连忙开玩笑,这就有点像是麦当劳跟肯德基,他俩也总是开在一起的。话说回来,安居客和贝壳找房,都是支持在app内部在线联系中介,聊租房相关事宜的。不过很快我就发现,在app内部聊着聊着,中介就会让你加他微信,然后试图将app内部的流量转化到微信,毕竟微信就是我们的生活。于是,摸着了这个套路之后,我在这两个app上,都会做的一件事情就是,在联系经纪人那里,找到他的手机号,然后将这个手机号复制下来,去微信里搜索联系人,添加为好友。然后在微信上进行交流。

再来说一说房源,首先要给安居客一个差评,也给我爱我家一个差评。安居客app是一个平台,里面有除我爱我家之外的其他一些小中介公司的房源,有时候,女朋友在安居客上,找到一个觉得满意的房源,把连接发给我看,我一看是某个小中介公司的房源,就会告诉他,咱们还是换个大中介公司吧。毕竟每个月好几千块钱的事情,还是要做得靠谱。另外一个需要吐槽的,往往在安居客上,看上了觉得满意的房源,一旦问中介,他就会各种理由,告诉你这套房子看不了。这不由得让人怀疑我爱我家,干了一件事,也就是上架虚假房源,然后诱骗消费者去跟他沟通,他好推荐其他房源。在这一点上,链家其实做的不错,基本上看,每次在线联系中介,都能得到比较靠谱的答案。不过话说回来,即便是在线上觉得满意的房源,到了线下实地去看的时候,也往往会觉得网上挂的房源图片与真实的房源之间有很大差距,毕竟图片即便没有PS,仅仅是拍摄时的光线,角度,等原因就可以让人们产生错觉。好在中介往往带看的时候,会带看不止一套房源,这个时候,选择也就更多了。然而,其实后来经过摸索,渐渐发现,其实与其每天拿着个手机不停地在刷房源,还不如看看有哪些地段值得考虑,然后直接去到附近,那附近也一定会有链家或者我爱我家,这个时候,就直接去到门店,告诉他们,我们的需求。然后让他们在他们的内部系统里面做搜索,找出附近最符合我们要求的房源,然后带看,效率是最高的。说到这里,顺便再说一句,无论是链家还是我爱我家,他们对外都有面向消费者的系统,就像前面提到的,链家是贝壳找房,我爱我家则是安居客。而他们对内也有一套面对自己员工,也就是中介的系统,可以说内部系统的房源更加齐全,很多在内部上架的房源,并没有在外部上架。所以,如果去到店里找房,也能够让选择面更大一些。不过话说回来,虽然说去到店里是一个好的选择,但是前期还是可以通过这些对外的app,来进行简单的搜索,目的是大概看看各个地段的价格区间。

由于我7月10日开始上班,从上班前两天开始找房看房,到7月21日终于定下来,总共算下来,也有两周多的时间在做这件事情了。总共,我们看了有二十几套房子,都是我和女朋友利用休息时间去看的,最早的时候,也就是7月9日的时候,我自己一个人去看房,因为我的需求不高,我不太清楚需求,于是看房的时候,还专门给她拍摄视频,录像,信号条件好的时候,拨打微信视频电话,光那一天就看了七八套房子。也正是从那一天开始,我才感觉,还是找到一个地段,然后去附近看房比较省事。那一天看的七八套房子里,最后只筛选出来一套。女朋友又要在周四的时候,才能来北京看房,确认是否需要。于是又被中介在微信上催促,我们对之不予理睬。后来的事情是,周四的时候,女朋友过来,我们两个人在那天晚上又看了三四套房子,女朋友对之前提到的那套比较满意,但又不是特别满意,反倒对另外一套之前没有带看的特别满意,因为房子装修好,又内部有钢琴,女朋友喜欢弹钢琴,然而中介报完价,我就犹豫了,超出了我的预算800块钱,如果租了这套房子,就真的成了月光族,搞不好还有可能入不敷出。对此,我当时就跟中介表态超出了预算不予考虑,女朋友却笑开了花,中介又在那天忽悠,说着这个房子确实好,每个月也只多出来几百块钱而已。可是我还是很难接受,那套房子也是那天晚上看的最后一套房子,于是我们回去商量。

周末的时候,女朋友问我,说是要掷硬币,正面的话,就租下来阿姨那套房子,也就是那套不是特别满意的那套,反面的话,就不租了。我没有掷硬币,觉得她会这么想,就说明还是不想祖那套房子。后来,也是在这个周末我们犹豫过之后,阿姨的那套房子被别人抢先一步拿走了,那个周日,女朋友没有在朋友,经历了十多天的找房,我有点疲惫了,于是跟她讲,我们提高了上限,可以考虑租那套带钢琴的房子,带钢琴的那一套只要不要超过上限就好,后来我又去跟中介联系,结果中介却告知我,带钢琴的那套房子,由于装修豪华,还带了一台钢琴,光押金就需要一万元。当我将中介的话,转告给女朋友时,女朋友一身硬气,说着她面对这样的房东,已经不喜欢那套房子了,于是只好作罢。

其实当时帮我们带看的中介,我们找了三个,其中有两个,在经历了一周多的折腾之后,不再把我们作为目标客户。反倒是有一个小哥一直不断地给我们推荐房源,也的确是够敬业,约定好了周日去看房。与此同时,女朋友开始从自如上面搜索房源,看上了百子湾附近的一个复式,我们两个周六去看房,结果发现并不理想。告别了自如的管家,又扭头去到了附近的链家,跟里面的中介描述了我们的情况之后,中介又带看了三四套房子,结果真的有一套女朋友和我都很满意,当然重点是女朋友比较满意,价格也没有超出我们的上限。我们两个回来商量,如果周日看房没有比这个条件更好的房子,那么就定下来这个房源。结果是,周日的时候,我和女朋友两个人,顶着三伏天的大太阳,在外面跟着中介小哥又遛了两个多小时,但也没有找到满意的房源。我和女朋友经过商量,决定在再去看一次周六满意的那套房源,如果仍然都很喜欢,就定下来。于是我们又跑过去,中介带看房,这一次,也仍然觉得很喜欢,于是都打算签合同了,却发现房东因为出差在外地,房产证等信息暂时不能提供,当天不能办理合同了。又是一波三折,但是好在之后,一切顺利,女朋友也于下一周的周四入住了,她入住的同时,顺带着带上了她的爸妈,我的爸妈前去参观,也让我的爸妈高兴了一阵。

我退掉了原来的房子,没有退押金,又多交了一些钱,拖着两箱行李,离开了黄村,搬到了朝阳。

我们后来发现,生活终究是现实的,离不开钱,所以也要努力挣钱,有更好的物质生活。但是我们也不要忘记了,物质生活,是为精神生活服务的。也不要忘记了,钱不是万能的,没有钱是万万不能的。

我在北京刚刚租好的房子里写下这篇博客,而这个房子,我也把它看作我的家。希望,在北京的家,越来越好,越来越温馨。

简单介绍

前面提到了我在过去的五个月内,一个人维护开发一个系统 ,也正是有了这样的经历,让我想要总结一下。

先简单介绍一下这个产品,产品是移动端商城。根据情况,可以放到微信里,也可以放到app壳子里。

技术栈

前端

我自己并没有参与当初项目的选型,但是后来,我主导了项目的前端工程化的升级改造。后来,我也写了很多篇博客来说相关事宜。

前端方面主要的技术栈

  • react
  • react-router
  • webback
  • sass
  • babel

商城采用前后端分离的技术架构,前端的框架为React, 配合上相应的一些工程化的工具,达到快速响应开发的目的。

后端

后端使用python语言进行程序编写,版本为2.7,这是由于当初移动端商城开发之前,已经有一版PC端商城,PC端商城就用到了python2.7 ,后端框架也是基于python2.7 自主研发的,因此并不想在整个大的项目中,只能继续使用python2.7编程。

  • python2.7
  • jinjia2
  • tasktiger
  • ELK(Elasticsearch, logstash, kibana)
  • git

在这里,用到了jinjia2作为PC端商城的渲染引擎。它有点像是Django的模板引擎,总体来说,使用起来比较简单。另外,使用tasktiger作为任务队列(消息队列)的处理引擎。使用ELK 进行日志监控和错误筛选。将项目部署到git私有服务器
,同时备份到github的私有仓库中,使用github的issue进行项目管理。

运维

自主研发的后端框架,支持运维的一系列工作。包括:

  • 两种部署方式
  • 容器
  • git

部署方式

一一说来,两种部署方式分为patch和deploy两种。patch顾名思义就是打补丁,全程停机时间非常短,简单来说,只是将代码上的改动放到服务器上,并不涉及到依赖包的注册或更新,而deploy的方式,是全量更新,这样的更新方式,由于是做一遍全量的检查,因此会特别慢,也因此停机时间会很长。因为非常影响用户体验,所以往往选择在夜里进行这样的部署操作。由于财力物力的限制,不能做成服务器集群。因此每次部署又会短暂地停机。如果是通过deploy的方式来部署,那么这个停机的时间就会更长。框架也没有考虑这些情况

原有的自研框架,是12年左右的时候,几个技术牛人开发的,后来就一直只是小修小改,但是其实站在19年来看已经无法满足当今的需求了。一个最明显可见的缺点是,它还在以python2.7 作为编程语言,而python官方已经明确提出,到了2020年,就会废弃python2.7,相应地,很多python2的第三方库也将不再对2.7版本进行支持。这样这个框架就显得十分落伍,相应地,性能上也无法跟上潮流。记得之前的老大曾经提到过,sanic异步框架。他还给我们科普了,如果以后上了python3,用上了sanic,去掉了tornado之后,整体的性能会有飞跃式的发展。然后,时隔近一年,他的想法也不会再在那个项目中得到施展了。

容器

并没有使用docker作为容器,而是使用了lxc这样的方式。从效果上看,lxc也有它的好处,但是还不够好。

但是框架还是提供了很强大的能力的,从一个裸机安装好ubuntu系统之后,通过框架,自动安装好所需的环境,全程不再需要运维做过多的工作,其实是能够将人从运维的工作中解脱出来的,只是说,由于这个自研框架也没有一个完善的文档,导致一旦框架本身不符合要求,出了问题,就不得不去看源码,尝试修改框架源码,而框架源码又往往更加抽象,这时候,也就到了提高自己能力的时候。比如,我曾经就因为一个误操作,搞坏了测试环境的服务器,没办法,只能给这个机器重新安装环境,结果又出现了一些曲折,最后终于算是搞定了。但这个过程,需要对这个框架的源码深入了解。

git

据我了解,有些公司的项目,代码托管方式是,整一台自己的git服务器,然后安装上gitlab,gitlab实现了一个可视化的界面,也能够进行issue管理,项目管理等常规的项目操作。不过也由于历史原因,当时我们的项目,采用了git服务器+github的方式,即项目的真实git源是在自有的git服务器上,但会将代码备份到github上,也就使用了github 的项目管理操作。

感想

可以看出来,很多时候,一个项目开发好,只是它的初生。之后,如果这个项目不死亡,就需要不断地对它进行更新,变革,这样才能跟得上时代。但是往往,这种变革伴随着疼痛,也伴随着可能的力不从心。比如,给一个以万行代码计的项目从2.7升级到3.5,是一个巨大的工作量,如果又没有更高层领导的推动,如果更高层领导又对代码一所我所知,这就是一件很吃力不讨好的事情了。所以有时候,可能将一个项目放弃,推倒重来,或许是更好的选择。

我在那家公司做了两年,其实经过这么一个过程,我看着一个产品生长,壮大,又慢慢半死不活。我看着这个庞大的项目,怎样发展,对我也是一种成长。我有一种欲望,把那段经历记录下来,总结自己的知识,所以也就有了这篇文了。

也许再过几年,回过头来看这篇文,我会感念,现在的自己视野还蛮开阔的。因为我是一个全栈工程师,只要我想学,我就能够胜任计算机相关的任何工作,就能解决遇到的问题。