编程

WebContainers 现在在桌面和 Android 上的 Firefox 中得到支持

几乎就在一年前,我们推出了WebContainers,我们的浏览器内操作系统能够运行完整的 Node.js 工具链。使用Web即时构建Web的能力引起了开发人员的共鸣,现在数百万开发人员每月使用 StackBlitz 进行即时错误报告、实时文档示例等等。

虽然 WebContainer 完全建立在 WebAssembly 和 Service Worker 等 Web 标准化 API 之上,但迄今为止,由于这些 API 在不同浏览器实现中的工作方式存在差异,它们仅限于在基于 Chromium 的浏览器中运行。这可以在一定程度上在用户空间中解决,但由于 WebContainer 是在浏览器引擎中运行的最复杂的应用程序之一,我们需要直接与平台供应商合作,将这些即时开发体验带到所有浏览器和设备。

nodejs创建服务器步骤

1、引入http模块。这个模块是内置模块

const http = require('http')

2、http身上有个createServer() 函数 创建服务器的。

const server = http.createServer() //得到 个服务器对象

3、 兼听事件: 兼听用户发的请求事件

server.on( 'request',function(req,res){
    					/*
    						req:request简写。语法上只是一个形参而已,请求消息
                       		res:response简写,响应消息
    					*/
    console.log('一个用户发起了请求')
    //此时这里没有响应。按照协议:一个请求必须对应一个响应啊。
    res.end('hello node.js') //这就是响应。
} )

4、开放一个端口

 server.listen(3000)

当端口开启后,叫:服务器开启了、服务器挂载成功了。

然后我们访问这个服务器

http://localhost:3000

http:127.0.0.1:3000

上面的两个作用一样:代表访问的是你自己电脑上的服务器。

自己的IP
http://192.168.30.128:3000

使用nodejs搭建一个简单服务器

1. nodejs 服务器搭建

nodejs 写一个服务器,别人能够访问到;

http 协议:浏览器 和 服务器 遵守的规范;

http 服务器 和 浏览器 之间的通信,都是通过 http 实现的

我们的服务器,最重要的一环,监听,也就是说,http 向服务器发送请求,那么服务器就应该接收到这样的请求,这就是监听;

第一步: 我们创建server.js文件如下:
// 1. 导入http模块
const http = require("http");

// 2. 创建一个web服务器对象
const server = http.createServer();

// 3. 监听请求事件
server.on("request", (req, 
    

PHP 正在干掉 Python

PHP 正在干掉 python .
在流行文化的冲击下,也许很多人都不赞同本文表达的观点,但我毅然决定再一次逆流而上。我认为,虽然 PHP 百般受轻视,但这门编程语言的流行度比以往任何时候都高!
为什么?怎么 PHP 还没死吗?不是有那么多比 PHP 更优秀的编程语言吗?
不,并没有。如果真的有这样的语言的话,它们早就带头干掉 PHP 了。我们需要重新审视什么才是“更好”的编程语言。
为什么 PHP 还没死?如果你表示不解,那可能是因为你并不了解编程、程序员、市场和民主。实际上,这与代码、函数或语法没有任何关系。

抨击 PHP 成为了一种时尚

 
如今,为了在编程的圈子内走红,你就必须抨击与“主流文化”吹捧的编程语言有竞争关系的语言。这与语言本身的功能无关,只是因为文化,就有点像宗教。
程序员是一群固执己见的人,非常傲慢,但我们必须克服这些缺点。我们喜欢抨击我们不喜欢和不使用的编程语言。你会发现有些工程师说 Java 很糟糕,有些说 C# 很糟糕,而有些则说 Go 很糟糕。至于具体是什么语言根本不重要,总会有人批评。
此外,还有一种更深的鄙视,最近这段日子 PHP 和 Python 之间默默地展开了一场较量,似乎学术界正在策划一场阴谋:干掉 PHP,让 Python 取而代之。
如今,你甚至会发现在一些维基百科的页面中,LAMP 技术栈中的 P …
    

如果你要开始一个大项目,不要使用 Python……

在很大程度上,Python并不像你想象的那么好。
在开发者的职业生涯中,有一个特定阶段,开发者们会从为项目做贡献到掌握自己的技巧。这个阶段对有些人来说会来得早一些,有些则也会晚一些,而另一部分人则无法到达这个阶段。

不过,大多数职业生涯较长的开发人员都经历过这个阶段。我将这称之为自己构建的点。

如果你已经到达了那个阶段,你面对的第一个问题是:它是如何运作的?用户体验如何?架构是怎样的?数据如何流动?以及很多类似这样的问题。

我在这里就不为你回答这些这些问题的答案了。无论你开始哪一个项目,它们都需要根据项目来高度定制,并且每一个都应该至少有一篇独立的文章来解答。

不过,我想回答其中一个问题:哪种语言最适合这个项目?…

如何优雅地使用 Stack Overflow?

 

stackoverflow作为全球最大的技术问答网站,可以说每个搞过技术的人是必上的网站。

作为出入技术的人,我强烈建议学会使用,并习惯使用这个网站。

stackoverflow网站地址:

Stack Overflow

从我个人使用的经历来聊聊:如何更好的使用stackoverflow。

1.使用英文搜索

这是个英文网站,很多问题和回答都是英文的,所以首先养成用英文来搜索你的问题。

比如你在遇到这样一个问题:python 列表如何删除元素?

这时候你就可以像下面这样搜索答案,然后在搜索结果中慢慢寻找符合你问题的答案。

到这里,估计会有人会提出一个新的问题:我不会英文怎么办?

不会英文也没关系,你可以在电脑上安装个有道词典,不懂的地方翻译下。学英文没那么难,不用专门花时间去学,每天多用自然就会了。

2.如何精确定位你的问题

你只需要下面3步就可以提高搜索到问题的答案:

1)第1步:你使用的编程语言是什么

永远在输入问题关键词的时候先输入你使用的是哪种编程语言,这样可以很好的定位对应的编程语言的问题。

2)第2步:定位你在做什么事情中遇到了问题。
例如我曾经在使用数据分析工具Anaconda的过程中碰到了安装包装不上的问题。描述这件事情的英文单词是:Anaconda install pacakge
3)第3步:复制错误信息
一定要详细看你写代码或者安装软件过程中的报错信息,务必把报错信息的关键信息输入。例如我在使用Anaconda安装pandas的过程中报了下面的错误信息:

分析这个报错信息,我发现是上面图中红色框的关键内容,我就可以把这个报错信息复制下来。

做好上面3步以后,我就有了上面3个步骤的关键词,最后提问的问题也是这3个关键词的组合,简单吧:

上面举得例子,可以说是搜索任何问题的一个通用方法.

 

sessionStorage详解

sessionStorage可以使用setItem设置、getItem获取、removeItem删除、clear清空。具体详见MDN

MDN解释

sessionStorage 属性允许你访问一个 session Storage 对象。它与 localStorage 相似,不同之处在于 localStorage 里面存储的数据没有过期时间设置,而存储在 sessionStorage 里面的数据在页面会话结束时会被清除。页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话。**在新标签或窗口打开一个页面时会在顶级浏览上下文中初始化一个新的会话,**这点和 session cookies 的运行方式不同。

可以看到sessionStorage在页面会话结束时会被清除,也就是讲一个页面上的sessionStorage在页面刷新或者恢复页面的时候都不会丢失或者被清空。

那一个域名下的sessionStorage 的数据会在同一网站的多个标签页之间共享吗?要解决这个问题,使用chrome测试了一下场景。

当在一个a页面有sessionStorage时,这时新增一个标签并输入与a页面相同的url。新的标签里面打开的页面是没有另一个标签页面里面的sessionStorage时。也就是讲,新标签是新的会话。

_blank: 在a页面点击链接或者使用window.open打开与a页面相同url的标签页面时,新标签页面sessionStorage继承自之前页面的sessionStorage,但是后续两个页面的sessionStorage是单独控制的。两个页面之间并无关联

结论

  1. 不同tab之间就算相同url,sessionStorage也是不会共享的。sessionStorage只存在于当前会话中。
  2. 使用window.open或者点击链接跳转的页面,新页面的sessionStorage会拷贝老页面的。但两者之间并无关联,还是两个会话。

参考

https://html.spec.whatwg.org/multipage/browsers.html#top-level-browsing-context

https://liyaoli.com/2015-03-12/HTML-iframe.html

https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

https://github.com/lmk123/blog/issues/66

https://segmentfault.com/a/1190000016910121

Stack Overflow 2022 开发者调查:Rust/PostgreSQL 最受喜爱,PHP 薪水偏低

Stack Overflow 2022 开发者调查报告现已出炉。Stack Overflow 年度开发者调查是面向全球开发者进行的规模最大、最全面的调查,调查涵盖了从开发者喜爱的技术到工作偏好等内容。2022 年是 Stack Overflow 发布年度开发者调查报告的第十二年,有来自 180 个国家 / 地区的 73000 多名开发人员参与了这个调查。其中,依旧是来自美国和印度的受访者数量最多,其次是德国和 UKI(英国和爱尔兰);仅有 632 份调查反馈来自中国开发者,占比为 0.88%。

此次调查的一些亮点内容如下:

  • 在线学习编程的比例从 60% 上升到了 70%,45 岁以上的受访者喜欢从书本上学习知识,年轻人(18 岁以下)依赖在线学习与资源。
  • Docker 似乎正在成为专业开发人员的基本工具,从 55% 增加到 69%。
  • Rust 已连续第七年成为最受喜爱的语言,87% 的开发人员表示他们希望继续使用它。
  • Phoenix 取代 Svelte