校招的本质是什么呢?

Colliot12/17/2017, 4:33:10 AM

比如我看这个热乎乎的阿里校招前端面经,感觉挺难的。 这俩问题我倒是都遇到过。貌似也是类似的方法处理的……其实第二个,express 可以设置一个 server.enable('trust proxy');,就可以直接通过 req.ip 获取了。滚动条那个我确实是用 redux 做的,当时是 Catch*Airbnb 这个项目。 这个对我来说有点难,一直没有深入去思考这些问题。不过在做了很多 Codewars 之后(比如这题) Object.defineProperty 用的倒是很熟…… 不懂啊,我一直不太在意这个。不过我会用一些分析工具去看是不是依赖了不必要的东西。以前用的是 webpack-bundle-analyzer,这个项目用的 angular-cli,不太好(其实可以)侵入式改 webpack 配置,经过这个 issue 引荐我知道了 source-map-explorer。这个网站本身就是用这个优化的,优化掉了许多误加入的依赖,以及 moment.js 不必要的 locale。 这没啥可说的 React 虽然写过,性能优化倒不是很熟……可能多用 dumb component?Immutable.js 倒是不难,持久化就是改变引用嘛,Codewars 上很多类似的题,比如 Functional Binary Trees(这题测试挺严的,没记错的话) 一直在用 redux,无论是和 react 还是 angular。其实无论是 redux-promise 还是 redux-thunk,我觉得都是被最开始 flux 架构的 action creator 模式误导了的,根本就不应该有 action creator 这种东西,而是应该把 action creation 也当作一种 action。据 @zuozijian 说,他受到 Elm 的影响,一开始就是这么做的,在 reducer 里面处理异步逻辑。现在 redux-observable 也是这种思想。 ES8 就是 ES2017 么……其实我不知道它具体有啥新功能,因为一直用的是 TypeScript。哦,想起来有个 polyfill 貌似是 ES2017 的,async generator 好象是。getOwnPropertyDescriptor 这也是 ES2017 的吗?不可能吧。后面的不想说了。 没啥可说的。不过我突然感觉我是不是对 Observable 的 race 有一定误解了,怎么感觉跟 zip 差不多了…… 可能是基于 :active 这样的选择器? 不知道,不用 Apache 没啥可说的。跟 Linux 有一定关系。 不懂。没深入研究过。看来还是要深入理解 node.js,不过没有契机啊……研究了有什么用呢? 不懂,感觉没啥意义。express 真的不能深层捕捉错误吗?这是为什么呢?有什么理论基础吗? 常识 不太懂细节 完全不懂 BFC,我只用 flex 不太熟习……仅仅是知道而已,不知道浏览器的具体策略是什么。 所以说,校招到底考察的是什么内容呢?它要寻求什么样的人才呢?是具有丰富工程经验、并且理论基础扎实的吗?(怎么感觉是谁都要的人才……)

keyboard_arrow_down
你们对王垠的 40 行代码有啥看法?

Colliot12/17/2017, 7:18:09 AM

你们懂它在做啥吗?我目前不是很懂 ;; A simple CPS transformer which does proper tail-call and does not ; duplicate contexts for if-expressions.

; author: Yin Wang (yw21@cs.indiana.edu)

load "pmatch.scm")

define cps (lambda (exp) (letrec ([trivial? (lambda (x) (memq x '(zero? add1 sub1)))] [id (lambda (v) v)] [ctx0 (lambda (v) (k ,v))] ; tail context [fv (let ([n -1]) (lambda () (set! n (+ 1 n)) (string->symbol (string-append "v" (number->string n)))))] [cps1 (lambda (exp ctx) (pmatch exp [,x (guard (not (pair? x))) (ctx x)] [(if ,test ,conseq ,alt) (cps1 test (lambda (t) (cond [(memq ctx (list ctx0 id))(if ,t ,(cps1 conseq ctx) ,(cps1 alt ctx))] [else (let ([u (fv)]) (let ([k (lambda (,u) ,(ctx u))]) (if ,t ,(cps1 conseq ctx0) ,(cps1 alt ctx0))))])))] [(lambda (,x) ,body) (ctx(lambda (,x k) ,(cps1 body ctx0)))] [(,op ,a ,b) (cps1 a (lambda (v1) (cps1 b (lambda (v2) (ctx (,op ,v1 ,v2))))))] [(,rator ,rand) (cps1 rator (lambda (r) (cps1 rand (lambda (d) (cond [(trivial? r) (ctx(,r ,d))] [(eq? ctx ctx0) (,r ,d k)] ; tail call [else (let ([u (fv)])(,r ,d (lambda (,u) ,(ctx u))))])))))]))]) (cps1 exp id))))

;; tests

; var cps 'x) cps '(lambda (x) x)) cps '(lambda (x) (x 1)))

; no lambda (will generate identity functions to return to the toplevel) cps '(if (f x) a b)) cps '(if x (f a) b))

; if stand-alone (tail) cps '(lambda (x) (if (f x) a b)))

; if inside if-test (non-tail) cps '(lambda (x) (if (if x (f a) b) c d)))

; both branches are trivial, should do some more optimizations cps '(lambda (x) (if (if x (zero? a) b) c d)))

; if inside if-branch (tail) cps '(lambda (x) (if t (if x (f a) b) c)))

; if inside if-branch, but again inside another if-test (non-tail) cps '(lambda (x) (if (if t (if x (f a) b) c) e w)))

; if as operand (non-tail) cps '(lambda (x) (h (if x (f a) b))))

; if as operator (non-tail) cps '(lambda (x) ((if x (f g) h) c)))

; why we need more than two names cps '(((f a) (g b)) ((f c) (g d))))

; factorial define fact-cps (cps '(lambda (n) ((lambda (fact) ((fact fact) n)) (lambda (fact) (lambda (n) (if (zero? n) 1 (* n ((fact fact) (sub1 n))))))))))

; print out CPSed function pretty-print fact-cps) ; => ; '(lambda (n k) ; ((lambda (fact k) (fact fact (lambda (v0) (v0 n k)))) ; (lambda (fact k) ; (k ; (lambda (n k) ; (if (zero? n) ; (k 1) ; (fact ; fact ; (lambda (v1) (v1 (sub1 n) (lambda (v2) (k (* n v2)))))))))) ; k))

(eval fact-cps) 5 (lambda (v) v)) ; => 120

keyboard_arrow_down
MathJax 预览去掉闪烁有方法吗?

Colliot12/17/2017, 5:11:02 AM

在这里 Remove MathJax Flicker in JSXGraph - processed using Mathjax 看过一个声称可以的,不过我还没试……

keyboard_arrow_down
这个无穷乘积的结果是多少?

Colliot12/17/2017, 2:04:23 AM

\prod_{n=1}^{\infty}\left(1+\dfrac{1}{n^2}\right)

keyboard_arrow_down
LaTeX 有哪些可以改进的地方?

Colliot12/17/2017, 3:14:40 AM

我感觉我可能先要写一个 PS 渲染器才能理解这个问题。

keyboard_arrow_down
为什么 HSTS 能解决 DNS 投毒的问题?

Colliot12/17/2017, 3:23:36 AM

关于如何临时解决Steam客户端无法访问社区的问题这里面提到了对 steam 开启 HSTS……难道它能把 DNS 请求也强制成加密的?

keyboard_arrow_down
如何从零开始学习算法竞赛?

Colliot12/17/2017, 2:55:37 AM

@zjuwyd

keyboard_arrow_down
机器学习的本质是什么?

Colliot12/17/2017, 2:53:00 AM

你们懂机器学习吗?

keyboard_arrow_down

Latest Replies

Colliot replied to 什么是 Young Tableau?

require{mhchem} ce{Zn^2+ <=>[+ 2OH-][+ 2H+] underset{text{zinc hydroxide}}{ce{Zn(OH)2 v}} <=>[+ 2OH-][+ 2H+] nderset{text{tetrahydroxozincate(II)}}{ce{[Zn(OH)4]^2-}}}

Colliot replied to 我们也许需要从邮件提醒功能做起

I hope you are wrong, too.

Colliot replied to 虎哥牛逼,竟然解决了净土网站的bug

我已经注意到了。谢谢!

ice1000 replied to 虎哥牛逼,竟然解决了净土网站的bug

本质原因是不知道是 WebStorm 还是啥给虎哥自动 import 了一个 from 是 import { from } from 'rxjs/internal/observable/from'; 但是 rxjs 实际上打包的时候用的是 esm5 里的。

Colliot replied to 求助帖,需要网站管理员帮助

我等会儿给你处理吧。

xiang replied to 一台电脑如何利用另一台电脑上网?

优质解决方案: 买个好的台式机无线网卡

fumeboy replied to 我们也许需要从邮件提醒功能做起

补充: 册新用户的时候,设置 > 个人档 里 有黄色提醒:“没有验证邮箱”,而我的邮箱里是没有收到邮件的

nickname replied to 哪里有能知道文件格式的百科?

intro (html) reference (djvu), from http://djvu.org/resources/

glegle replied to 为什么 Golang 和 Rust 写的东西不支持 ProxyChains?

https://github.com/rofl0r/proxychains-ng/issues/199 这里有相关的讨论,graftcp 对此做了改进,无论动态链接还是静态链接都能支持。

glegle replied to 为什么 Golang 和 Rust 写的东西不支持 ProxyChains?

proxychains 是支持 rust 编译的程序的,不支持 Golang 编译出来的东西。原理就是 proxychains 是通过劫持动态库的 connect() 等一系列 libc 函数达到重定向的目的,而 golang 是静态编译,所以无法支持。

Home

Babel

Knowledge

Epistemology

Settings