关于招新
具体事例在社团招新时遇到的问题。我们社团是帮助大家学习技术的,当前的互联网技术我们都有大佬指点,同时有BAT大佬坐镇,享有各种内推名额。
问题是,我在进行宣传的时候,给一位大一新生介绍我们部门,问他的意向时,他的态度变化的很快,仿佛我们站在了对立面,而事实是,我希望他进我们社团,学习优秀的东西,自己将来有更好的选择。
他给我的感觉是,我仿佛一个推销员,而他对我推销的产品毫无兴趣。
简单的分析本来我很困惑,为什么明明对他百利而无一害的东西,他却是拒绝的态度,但是在码这篇文章的时候,我有了一点明白。
在心理学上,有下面几种情况
是否你们存在思维的差异人与人是不同的,有时你对别人好,他人并不一定领情,可能是因为你们彼此思维的差异问题。举个例子来说,心理学发现,男女是有思维差异的,比如女性更注重过程,男性更注重结果。
所以有时女人跟男人倾诉的时候,男人恨不得马上就替对方解决问题,但是实际上女性对解决问题并没有那么在乎,她们更关注是否自己的倾诉欲望得到完全的尊重,如果男性不了解女性这一思维差异,常常也会费力不讨好。
像我们这种情况,应该是我觉得对他有帮助,而他觉得我有自己的其他目的。
是否与他人 ...
博客系统设计
基本流程File-structure 文件结构├── public
| ├──...
| └──list.json
├── source
| ├── ...
| └── articles
├── src
| ├── other-component
| ├── themes
| └── index.ts
├── config.yml
├── package.json
└── ...Router-structure 路由结构
/
根路由,显示博客首页
/article/[article-name]
文章页
Deploy-process 部署流程
yarn generate
生成部署的依赖项,主要针对 source 目录下的文件,在public生成list.json文件
yarn start
本地展示
yarn build
生成部署文件,并部署(github action)
博客特点
支持更换主题
采用github action部署
serverless
迷茫--探索
面试之后花了几天时间写了写面经,按照吴大佬的看法,面经又改了几次,但是,他还是会感觉不是很完美,后面便没改了。
当时的想法是:基础的知识还是很不扎实,准备从基础的看起。
所以又花了几天时间从头看MDN的文档,看了一部分,确实很有收获,又想从freecodecamp学起,跟着又做了几天。
期间,水了几天。
面试结束时间是9.18,今天是10.4,这16天时间不知道学什么,不知道从哪学起,不会的东西太多了。
面临的问题
JavaScript掌握的有问题,仅仅停留在写React函数的程度
浏览器API是什么?没用过
常用的array、string的方法记得住?
js的数据类型都没搞明白
ts文档都没看完
React?具体实现一头雾水
HTML unfamiliar tags
CSS 之你会UI切图师?你不配🙃
canvas 只知道名字?
svg 也只知道名字?
前端特效怎么做?
前端动画怎么做?
前端游戏怎么做?
视频播放怎么控制?
直播?好神奇
弹幕hhhh
……
呵呵,我是个菜鸡2333~~
后面的想法从文档入手着重学习MDN的文档知识,同时在freecodecamp做做练习。
优势 ...
第一期计划
目前的拥有的资源样本资源此处的筛选标准以virustotal为准。
恶意样本集(未筛选)
良性样本集
恶性样本集
良性样本指该网站检测后认为良性的样本
恶性样本为virusShare获取的样本,并未用该网站检测后认为是恶性的样本
恶性样本(未筛选)指该样本集从virusShare获取,但未使用该网站进行检测
工具资源
virustotal
专业的样本分析网站,提供API接口,方便二次开发(很重要)
安卓相关工具集
该网站收集了当下流行的安卓反编译工具和分析工具,并提供使用教程
HyBrid
提供样本混合分析的专业网站,但是不提供API接口,批量处理不方便
人脉资源
导师
研究生学长
其他相关同学
下一步任务有以下几种选择:
利用已经筛选好的样本研究利用相关工具分析已经筛选好的样本,得到相关特征。
自主进行筛选
利用virustotal筛选
需要编写相关程序进行apk上传,手动每次只能传一个效率太低,详细请阅读virustotalapi文档
自主设计筛选方案
静态特征分析利用相关工具利用上述的相关工具,完成静态特征的提取
自主提取自己根据恶意样本设计分 ...
面经
第一题:节流函数在规定的时间内,只执行一次。
1234567891011121314151617function throttle(fn: (m: number) => void, pars: any, time: number) { let lastTime: number = null; let context = this; return function () { let nowTime = Date.now(); if (nowTime - lastTime > time || lastTime === null) { fn.apply(context, pars); lastTime = nowTime; } };}export function fn(m: number) { console.log("节流函数" + m);}setInterval(throttle(fn, [123], 3000), 1000); ...
js中this的绑定
总体来说,this 总是指向离他最近的 function 关键字所属的对象。
可以分为严格模式下的和非严格模式下的;
严格模式下函数调用时123456function foo() { this.bar = "123"; console.log(this.bar);}foo(); // 报错
此处的 this 为 undefined,因为 function 关键字所属的对象为 undefined,所以不能添加属性。
所有函数中,this 都是 undefined,包括函数内部的函数,如:
12345678function foo() { this.bar = "123"; function test() { console.log(this.bar); }}foo(); // 报错
test()函数的 this 依旧指向 undefined,与外层函数并无关系。
方法调用时123456789function Foo() { this.bar = " ...
No title
前端“标准组件”在长期的代码开发中,组件的标准化尤为重要,那么何为“标准组件”呢?
通用性我们可以设想这样一个需求:我们需要一个能发红光的灯泡,然后我们就编写了一个发红光的灯泡;又来一个新的需求:需要一个能发绿光的灯泡。那么我们就要想,同样是灯泡,为什么不能复用呢?因为功能不一样,前面的能发红光,我们需要发绿光的。那么我们就可以将前面的代码拷贝一份,将其中的发红光的功能改成发绿光,需求似乎很快完成(🐶狗头保命)。这就是我们要说的通用性,很显然这样的组件并不满足通用性。
将我们面临的问题抽象成日常生活中的对象,往往是易于理解的,一个通用组件要实现的是某一类功能,就像刚才的灯泡,我们不仅需要他能发不同颜色的光,而且光的强度也要可以改变。
从编码角度来说,再编写组件时,通用性就表现在接口的丰富度上。
健壮性这是任何软件系统都必须尽力满足的要求,具体而言就表现在每个组件的健壮性。
这里并不提供构建“标准组件”的方法,只是提供了一个思路。
总的来说,组件内部不应该产生严重的副作用。对于数据而言,组件内部应该只是消费数据的,不应该生产数据,当然这只是对于具体的功能组件而言的。
No title
对当前任务进行梳理前面遗留的问题
哈士奇文档
webpack
PWA缓存,新版本就绪提醒更新
文件全部ts化
依赖项优化
接入semantic-release自动生成changelog与发布流程等
接下来的任务
建设tf社区,tf-design
了解welab
bilibili继续优化页面
bilibili个页面添加业务逻辑
video-player完善控件与倍速
学习canvas
搭建一个简单的网站(你画我猜)
完成类SWR库
了解前端其他请求方式
学习ngnix
尝试添加多台服务器,利用ngnix进行负载均衡
No title
React 的优势与不足优势virtual dom虚拟DOM概念react引入了虚拟DOM的概念,他并不直接对浏览器的DOM进行操作,这样做的优势在于减少了对于DOM的操作,提高了浏览器的渲染性能。
对于小型项目而言,表面上看不出react虚拟DOM的优势,但是对于复杂的大型项目优势就很明显。由此便出现了数据驱动UI。
数据驱动UI的模式对于习惯了经典的操作浏览器DOM的前端人员来说,数据驱动UI可能是难以理解的,对于习惯了React编程的人员来说,渲染不同的UI界面只需要考虑给React传入不同的数据,这相对于最直接操作DOM来说可能是间接的,但是对于虚拟DOM来说,这个是非常必要的,但是事实上并不是所有的DOM操作都可以用虚拟DOM来解决,因此直接操作DOM是必不可少的。
数据驱动与DOM操作并存的模式React在提出虚拟DOM后,针对操作数据无法解决的问题,依然支持直接的操作DOM,这对于React的使用者而言,如何减少直接操作DOM,是一个需要考虑的问题。
对于React而言,不同的数据是渲染不同UI的基础。
自上而下的单向数据流React采用的是单项数据流模式,这样做的好处 ...
No title
Document
大数一: 大数二:
请输入两个大数测试
确定
function sumString(a, b) {
//取两个数字的最大长度
let maxLength = Math.max(a.length, b.length);
//用0去补齐长度
a = a.padStart(maxLength, 0); //"0009007199254740991"
b = b.padStart(maxLength, 0); //"1234567899999999999"
//定义加法过程中需要用到的变量
let t = 0;
let f = 0; //"进位"
let sum = "";
for (let i = maxLength - 1; i >= 0; i--) {
t = parseInt(a[i]) + pa ...