2018-11-10lesson

Nov 10, 2018

双十一 怎么消费只放假一天的周末

因为上海国际进口博览会召开,公司周末调休。今天是周六放假,周日上班(调休了)。
我之前也有和周俊(粉粉可萌node 后台,我的js 都是他无私教入门的,非常异常感谢他)交流说找时间一起吃个饭。前两天遇到问题找他,刚好他”猫咪死了,女朋友分了,工作丢了,刚好又拿到offer了“。其实遇到这么多事,还是挺伤心的。坏事多磨,哈哈。然后约周六中午一起吃,喊上高祥(粉粉可萌上一任iOS)一起小聚一个。

只有一天的周末,三个光棍齐聚陆家嘴2号口。

先聊了聊各自家常:

周俊拿30k offer,当场给,但是再尝试尝试还有别的面试不,面试了两个月了(两点:30k有点多,有丢丢羡慕哟,不过希望能呆久点,稳定为好;面试了两个月,希望他赶紧有个好结果);他女朋友是因为她家里人不同意他们在一起(艰难);周俊前几天还约了一个外国回来的硕士妹子(给力,不过说后面没后文了,所以吃饭期间我们都调侃他,多补补腰子);之前公司解散员工还没获得补偿(他的心态就是最近再看看能不能有补偿,有多少算多少,我也觉得是,不然挺好费时间的,得不偿失);之前的是区块链公司;

高祥如今在浦东一个ezbuy 电子商务的公司,呆一年多(我和周俊就比较惨,一直奔波);公司采用swift,之前可以内推我的(可惜了,不过当时我已经住在闵行,应该不会去浦东,跨度挺大,plus我还没被内推过,下次尝试尝试);儿子6个月了在身边,老婆和他一起带着(这时候孩子挺不好带,真辛苦了,他们父母有帮助就好了);他之前也学js,但是没有实践、没继续学下去(实践很重要);他正要学go(多学一些挺重要,我和他都感悟到,不能被前端单一技能拖死,哈哈);他大概20k左右(我要的真是太少了,他听到我在粉粉才14k,也觉得我粉粉要的太少了,不过我自己觉得当时自己确实太差,刻苦点吧);

听讲,我刚去时候的前台菇凉怀孕,伟哥知道想把她辞了,这样就不会有休产假之类的。后来也不愿意给赔偿。最后是仲裁解决的。
我觉得伟哥,还好吧,原来还有这一面。看来我确实一心宅,不了解“市事”。

以上不能算八卦的吧,嘎嘎,米西米西,我就记下来吧,反正我当这博文是我的日记本,记录记录身边朋友,哈哈。

我们吃完午餐去附近星巴克找了个位置坐下来,三个人围在一起学习交流起来了。

首先周俊讲了Nuxt.js 可以快速搭一个网站(我选择成熟的React 的框架:Next.js – 纯React.js 用create-react-app 搭起来的挺多麻烦事的,试试新的吧)。说了服务器创建、网页、ElementUI,这些我都懂,vary OK,感谢一年来的拼了狗命的努力。

然后我们探讨了下

  1. 数据传输加密。我本来的设想是RSA 传递”AES 的secretKey“ 之后使用AES 加密数据进行传输。后来探讨下来,确实,”服务器怎么存储 IP 和对应的 secretKey” 这种行为是异想天开(我没想通就提出来问,好事)。直接采用:AES 或者JWT,,其实就是直接是客户端和服务器端同时保存相同secretkey这种方法。不要太太太复杂化解决,加上https,基本都是OK 的了。
  2. 区块链 nodejs 怎么接触:使用go语言写的以太坊项目,就可以有区块链功能啦,棒棒哒💯。
  3. 如何保证网站不会被爬数据,周俊推荐一个开源的拖动图片对位的东西,就能解决机器拖库拉。

接着我来给他们展示我之前写的girl项目服务器,还有girl 网页代码,然后推荐他们可以做做小游戏盈利,给他们看了我之前写的小游戏代码。

之后剩下我和周俊(祥哥先回去了,孩子重要,嘿嘿),我让他考考我js一些问题,我可能打算明年冬天转换服务器工作,突破,嘿嘿😜。

有这么几个问题:

  1. es6 let
1
2
3
4
5
console.log(a);
var a = 0;
console.log(a);
let a = 0;(var a = 0;)
console.log(a);
  1. bind/call
1
2
3
4
5
6
7
8
9
10
11
12
13
14
let obj = {
name: "zhoujun";
get: function () {
return this.name;
}
}
let obj2 = {
name: "aKer"
}
console.log(obj.get());
如何输出aKer

obj.get.bind(obj2)()
obj.get.call(obj2)
  1. 如何实现继承
1
2
3
4
5
6
7
8
9
我记得node 有个inherit 的模块,很方便就可以继承,但是忘记怎么搞了。
那我们直接解决实际问题:
function A () {
this.name = "zhoujun"
}
function B () {
}
B.prototype = new A();//意思是源头采用A 里面的数据、对象、方法,但是导致B 成为了A'
B.prototype.constructor = B;//意思是使B 成为的A' 转换回B,B 的this 就正确的为B,而不是A了。
  1. 考了个算法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
给定一个包含N个整数的数组A,假设这个数组表示的是一条链条,其中
每个元素表示链条上的一环。现在我们想把这条链条断成3小部分。我们需 要做的就是断开不相连的两个环,更确切的说,我们需要断开环P、Q (0<P<Q<N-1, Q-P > 1),得到三个小链条[0,P-1],[P+1,Q-1],[Q+1,N-1]。 上述操作的成本是A[P]+A[Q]。
例如:数组A为 A[0] = 5
A[1] = 2
A[2] = 4
A[3] = 6
A[4] = 3
A[5] = 7
我们可以选择如下方式断开链条 - (13):成本是 2+6 = 8 - (14):成本是 2+3 = 5 - (24):成本是 4+3 = 7
写一个函数
int breakchain(int A[], int N);
对任一个给定的链条,返回断开链条的最低成本,比如上面的例子中, 需要返回最低成本5
假设:
- N是整数,范围[5,100000]
A的元素是范围在[1,1000000000]的整数




解法有两个,高祥用了两个小时,我用了5分钟(我的方法比较消耗性能估计,采用空间换时间)
1. 读懂题目,那就是头尾去掉的所有数“取其中最小三个数,必然能构成解”(他们两个采用的这个)
2.
let results = [];
let resulti = [];
let resultj = [];

for (let i = 1; i < arr.length -1; i++) {
for (let j = i+1; j < arr.length-1 - i; j++) {
let result = arr[i] + arr[j];
results.push(result);
resulti.push(i);
resultj.push(j);
}
}
j 层for 循环找到最小一堆i 和j;
然后i 层得到所有j 层获取的最小值然后比较谁是最小的那一对。
啊哈,比较消耗资源。

5分钟我没有解决完“方法2”,只解决完一半(想问题时,想太久怕周俊无聊,哈哈)。

也算幸好找到了一些思路,开心开心。虽然性能差、与最终答案不正对,不过还是开心,哈哈。

晚上回到家,看看阿黄,写完博文,已经是双十一凌晨30分,赶紧入睡,明天要上班的哟,哎呦不错哟。