nodejs前置学习
Node.js
概念
1. Nodejs概述
一些概念
- 异步回调
适用场景(优缺点)
- 不适合用于大型后端要求的项目,图像处理、视频转换等、文件压缩(用Ruby、PHP、python)
基础使用
0.模块导入
一般有两种导入办法,commonjs和ESMoudle方法
1.repl
2.file
node:fs
模块能够以标准 POSIX 函数为模型的方式与文件系统进行交互。人话:读写文档用的
同步办法
同步(synchronous)代码也称为阻塞(blocking)代码,阻塞代码在执行完之前,后面的代码都不会执行
1 | const fs = require("fs"); |
异步办法
1 | //异步读取文件,读取完毕执行回调函数,回调函数中的第一个参数是错误信息,第二个参数是读取的数据 |
光看可能还是不容易理解,这里记住同步就是要把文件读完后才会执行下面代码,异步就是会边读文件边运行回调函数
3.Server
尝试第一个接口编写
1 | const http = require("http"); |
4.Url
这时我们可以尝试使用Url了
1 | const http = require("http"); |
__dirname
:当前文件所在位置
5.第一个APi
视频的013:9:56
可以利用同步的缓存来优化文件输出,不用每次都得读一次文件,而是缓存后直接输出。
6.path模块
对路径操作
path.resolve()
7.使用npm
npm(node package manager)node包管理器。我们可以从上面下载模块,并导入使用
npm在node安装时,会自动安装。这里我们使用npm安装nodemon
、slugify
来优化项目。
nodemon
:用于服务器热更新slugify
:用于解析字符串、转换为url友好
学了半天都是再讲概念(都是自己知道的,因为写过python后端),我真的会谢
Untitled
JavaScript事件机制
https://www.bookstack.cn/read/javascript-tutorial/docs-events-eventtarget.md
addEventListener
:绑定事件的监听函数removeEventListener
:移除事件的监听函数dispatchEvent
:触发事件
react事件机制
参考:React事件机制
React的事件机制
原生Js的事件机制
- 事件捕获
- 事件目标
- 事件冒泡
- 事件委托/事件代理
1 | <!DOCTYPE html> |
react事件机制
github action
概念
github action是 Github 推出的持续集成工具。
Yaml是什么
Github Action 的使用限制
每个 Workflow 中的 job 最多可以执行 6 个小时
每个 Workflow 最多可以执行 72 小时
每个 Workflow 中的 job 最多可以排队 24 小时
在一个存储库的所有 Action 中,一个小时最多可以执行 1000 个 API 请求
并发工作数:Linux:20,Mac:5(专业版可以最多提高到 180 / 50)
什么是 Workflow?
Workflow 是由一个或多个 job 组成的可配置的自动化过程。我们通过创建 YAML 文件来创建 Workflow 配置。
从iflab聊运营
有些学累了,出去骑车听了会播客,听到了关于社群管理方面的知识,想着简单聊聊现在呆的社团,也权当换换脑子休息一下。
写文章总归还是得有一个对象的,这里暂定是新同学了。
前言
iflab是我校的一个科技类社团,是少有的运营了十几年的并且一直散发活力的社团,其主要以就业为导向。我也曾尝试加入过不少社团,但最后基本上都退出了。
加入iflab已经有一些时间了,一直十分庆幸能加入这个社团,也十分高兴能在后来成为导师的这一角色。
在成为导师后,我便加入对社团的管理。期间我便不断思考,比如:为什么我要留在这个社团?为什么这个社团凝聚力如此之强?之类的问题。这里简单总结一些我目前能看见的。
要素分析
通过思考,我把iflab成功的一些点记录如下:
- iflab的成功不可缺的便是人才
- 轻松的扁平化社团氛围。
- 在互联网的大环境下,社团处于计算机学院下,拥有着信息差,能对同学做到实质的帮助。同时积累了不少校友,有着不少资源。
这个只是我思维风暴想出来的一些点。接下来根据它来简单聊聊iflab它的文化和成功的原因。
细说运营
1. iflab的成功不可缺的便是人才。(说的非常的官方😉)
以前与某位管理社团的老师交流过,她说学校社团很多时候都撑不过三四年。因为一般社群的繁荣都是靠着那一小撮“专家”,他们在社群中长期分享、发言,带动其他人加入。而随着毕业,这一小撮核心玩家就会离场,如此就会造成社群空洞。就比如我如今呆的小营桌游社(娱乐类社团,但小营校区人员较少).在核心玩家要不去考研,要不去找工作的情况下,社团已经很久没有活跃了
题外话,等明年都搬去新校区了,小营桌游社也没必要存在了吧😂。
说回iflab,在iflab社团老师的带领下,社团其实一直处于一个良好的“出、入”。而在此同时,老师还建立了校友圈,将前辈与社团的关系一直联系着,这就让这一批“核心玩家”一直可以时不时的回来,带动社团氛围。
2.扁平化的交流环境
知识的傲慢,不知你是否有听说?举例子说就是,当A有某个信息/知识,而B不具备这一知识,当B向A提问时,A懒得做出回答。
这一情况可以说非常普遍,或者说我们日常生活中,大部分的矛盾都是基于这样的信息不对等。(以后单调出一篇讲讲)
而iflaber很幸运,可以在社团里可以遇见很多很多没有”知识的傲慢“的人们。
没有“知识的傲慢”就会让社团中,交谈的气氛会活跃很多。
大家对于老师其实一直有着一种排斥心理,我感觉随着时代的发展,有着开放思想的老师其实也很多(简单的说,会办社团的老师都是)。所以很多时候并不需要诚惶诚恐(中国人的通病?),应该直接以平等的角度与他们交流,就像朋友一样,要知道社团的成立,并不是为了展示谁很强,而是为了信息交流,当然要保持基本的礼貌(毕竟我们还是中国人,尊师重教也是一种文化特色)。
3.强大的资源
当然这一点一定得与上面扁平化一起讲,因为就算有资源,大家获取不到,那也是白瞎。
这里就不展开说了,资源这些与人脉、社会影响力等等关联。
总结
从iflab上我们就能看见许多社群成功的要素,但根本的不是要素是什么,而是如何获取、保留这些要素,这些都是管理者所需要思考的。
放宽到社会上,社群可能没有像社团一样的吸纳人才的固定途径,人才的入场也良莠不齐。
而氛围这点,更是需要不断的调整社群文化,注入好的、杜绝不好的。
至于资源,其实是大部分人加入的核心,也需要细细斟酌。
iflab当然还会不断迭代(这也是其优点之一),希望其变得更好。
好了,休息结束。😫
Leecode127
https://leetcode.cn/problems/valid-palindrome/?envType=study-plan-v2&envId=top-interview-150
这一题还是使用到来JavaScript的字符串对象操作。
可以看看阮一峰大佬对replace的描述(这里用到了replace和正则匹配)
https://www.bookstack.cn/read/javascript-tutorial/docs-stdlib-string.md#adal1j
1 | /** |
javascript可以算比较奇葩的语言了,但我喜欢😂
Leecode27
总体而言,该题并不难,对于js来说,数组的操作足够快速解决该题。
1 | /** |
这里用数组对象的两个方法就能快速秒杀,至于了解两个方法可以看
https://www.bookstack.cn/read/javascript-tutorial/docs-stdlib-array.md
阮一峰大佬的文章一直是顶尖的。
看了官网后知道原来可以用双指针的方法。
简单的理解就是一个指针用于处理数据,一个指针用于存储数据。
1 | /** |
ps:感觉速度并没有快多少。
总结:
关于数组字符串的问题,在通读完阮一峰的教程后,了解完两种对象的方法后,处理起来是比较迅速的。当然可能影响我考虑到双指针这种不用函数的办法。