
获得徽章 0
- 来说说 php 的糟糕设计,其中最令我不能接受的就是脚本文件加载方式:
与 nodejs 的 cjs 加载方式相比起来,更显劣势(我明白原理不同,php 并没有模块化之说,只是单纯的载入脚本)。
nodejs 的模块只有第一次加载的时候才会执行模块代码,并且导出的引用类型变量指向模块闭包之中。每个模块文件都需要从其他模块(闭包)中导入需要的变量才能使用,否则只能使用全局变量。这样一来,每个模块都有输入和输出,一目了然。
而当开发者打开某个 php 文件时,可能发现一些莫名其妙的变量/常量/类/函数,另他们摸不着头脑。例如 laravel 的路由文件,你不知道 Route 类是从哪里来的。这是因为 php 载入一个脚本文件时,这个文件就会继承父文件所在行的上下文,所以通过单个文件你完全无法判别他的上下文环境。
并且,当一个 php 脚本未声明任何变量/常量/类/函数时,是可以被多次加载的,每次加载这个脚本都会被执行一次。
虽然现在 php 提倡 oop + namespace + autoload,但这个设计依旧让我不爽。展开2点赞 - 来说说 php 的糟糕设计,其中最令我不能接受的就是脚本文件加载方式:
与 nodejs 的 cjs 加载方式相比起来,更显劣势(我明白原理不同,php 并没有模块化之说,只是单纯的载入脚本)。
nodejs 的模块只有第一次加载的时候才会执行模块代码,并且导出的引用类型变量指向模块闭包之中。每个模块文件都需要从其他模块(闭包)中导入需要的变量才能使用,否则只能使用全局变量。这样一来,每个模块都有输入和输出,一目了然。
而当开发者打开某个 php 文件时,可能发现一些莫名其妙的变量/常量/类/函数,另他们摸不着头脑。例如 laravel 的路由文件,你不知道 Route 类是从哪里来的。这是因为 php 载入一个脚本文件时,这个文件就会继承父文件所在行的上下文,所以通过单个文件你完全无法判别他的上下文环境。
并且,当一个 php 脚本未声明任何变量/常量/类/函数时,是可以被多次加载的,每次加载这个脚本都会被执行一次。
虽然现在 php 提倡 oop + namespace + autoload,但这个设计依旧让我不爽。展开评论点赞 - 回头看自己 16 年到 18 年初间写了 60 多篇博客,而这些经过实践的技术点也是目前掌握最牢靠的,因每次忘记时可以回头去翻当时的总结。期间没有被博客记录的知识点如今大多已经模棱两可。写博客长远角度看还是有帮助的,慢慢的整个知识架构就出来了。还是需要抽出时间来总结记录呀。等人赞过112
- 发现 js built-in 的 Promise 构造函数中两个方法 Promise.resolve 和 Promise.reject 非常有趣的一个地方:
当两个方法都接受一个 promise 实例的时候,这个实例的状态(pending/resolved/rejected)完全影响 Promise.resolve 所产生的实例,即参数实例的状态就是产生实例的状态(虽然方法名叫做 resolve,但也有可能产生一个即将 rejected 的实例);而 Promise.reject 就算接受一个 pending 状态或者 resolved 状态的实例,所产生的实例也都是 rejectd 状态的,完全不受影响,并且会将这个 promise 实例参数传递给后续的 catch 回调,并且可以在此做所传递的 promise 的后续回调绑定。展开赞过评论1 - 写博客不难,但写一个完整、权威、结构清晰、逻辑正确的博客,也不难,但是太耗时间,从发现问题,到解决问题,到发现深坑,到查阅资料,到整理碎片成系统,到思考总结,最后到书写,并保持良好的排版和文章结构,整个过程甚至要花上几天的时间。
在碎片化信息时代,博客的权威性非常重要,真的请大家不要轻易对待,不要轻易写博客,一个错误的观点,损害和消耗的是所有阅读者的时间。展开评论点赞 - CleanMyMac X 版本发布了,可谓是 MacPaw 团队的良心之作,从此 Mac OS 卸载软件再也不会有配置文件残留了。从 3.x.x 版本升级还可以享受半折优惠,我们现在正在拼团五人购买,5 缺 1 了,马上发车,还有老哥上车吗?一次性付费(¥698 / 5),永久使用正版软件哦~
www.v2ex.com
赞过13 - 图灵机真的太伟大了,它是计算机的原型,其实一切程序都可以运行在图灵完备的机器上面,不一定非得是计算机。想象一下,你可以发明一种物理机器,把纸划分成每一个小格,作为最基本的记忆单元,你机器能做的无非就是把数据存取,分支操作,递归循环等具象到纸上。只不过后来人类发明了基于电驱动的计算机来实现了高效的图灵机。
延伸出来的道理就是,无论再高级的语言,也最终只能做图灵机所做的工作,他们只是提供了一个操作封装,可以让你做的更方便,计算机世界不存在魔法。展开评论点赞