前端学习踩坑(1)
前端学习踩坑(1)
笔者这两天正在进行JavaScript与TypeScript基础项目的编写,涉及到的问题多为基础
关于TS与JS的爱恨情仇通过属性的key访问value众所周知,js中我们在定义了某个对象的属性的前提下,可以直接使用key来访问该属性的value,如下:
12345class User { name: "aaa"}let user = new User();console.log(user[name])
在显式的类定义下,ts也可以做到相同的事情,写法仅仅是添加一个属性的类型
12345class User{ name : string = '111'}let user = new User();console.log(user.name)
但是在某些情况下,我们需要遍历某个对象里的所有属性,并且可能这个对象的定义对于我们来说是非显式定义的,即我们也不知道他的类型,所以我们在ts中便出现了以下的问题:
123456function span(user : obje ...
前端小demo讲解(1)
前端小demo讲解(1)
CSS 布局:实现适应性卡片布局的网页
需求:
卡片样式如图所示,上面一半为图片,下面一半为内容(标题,详情,read more按钮)
卡片与按钮要求圆角,颜色与字体没有什么硬性要求
按钮在鼠标悬浮(hover)后需要变色、鼠标变成指针pointer,且read more文字居中
布局上
主体宽度不超过1200px,视口宽度大于1200px时,主体居中
当视口宽度较大时,三栏布局,较小时,两栏布局。临界点可自定义。(运用CSS里的媒体查询)
卡片之间保证一定的左右间距与上下间距,间距大小不做具体要求
例子参考:https://codepen.io/mahmudulhrabby/pen/GGqdvr
思路分析html思路分析:
通过一个大div作为主体,在其中加入3个div分别用于表示标题部分、卡片部分和最下方的签名部分
卡片内部通过使用无序列表添加新卡片
单个卡片的div中包括一个img,和一个用于存储文字 + 按钮的小div
小div内包括一个h2,一个p,一个button
CSS思路分析:
卡片排布和卡片内内容排布主要使用flex布局 ...
HTTP协议详解
HTTP协议详解重要性:无论是以后用WebService还是用Rust做大型架构,都离不开HTTP
WebService = HTTP + XML
Rust = HTTP + Json
HTTP请求信息和响应信息的格式请求信息
请求行
请求方法
请求路径
所用协议
请求头信息
请求主体信息
请求方法
GET
POST
PUT
DELETE
TRACE
OPTIONS
软件工程与计算II-复习提纲
本文转载自24-复习提纲 | EagleBear2002’s Blog
第一章-软件工程基础软件工程的概念:
应用系统的、规范的、可量化的方法来开发、运行和维护软件,即将工程应用到软件。
对1)中各种方法的研究。
第二章-软件工程的发展
1950s:科学计算;以机器为中心进行编程;像生产硬件一样生产软件。
1960s:业务应用(批量数据处理和事务计算);软件不同于硬件;用软件工艺的方式生产软件。
1970s:结构化方法;瀑布模型;强调规则和纪律。它们奠定了软件工程的基础,是后续年代软件工程发展的支撑。
1980s:追求生产力最大化;现代结构化方法/面向对象编程广泛应用;重视过程的作用。
1990s:企业为中心的大规模软件系统开发;追求快速开发、可变更性和用户价值;web应用出现
2000s:大规模web应用;大量面向大众的web产品;追求快速开发、可变更性、用户价值和创新。
第四章-项目管理基础团队结构分类
主程序员团队
民主团队
开放团队
团队建设
建立团队章程
持续成功
和谐沟通
不断总结
避免团队杀手
防范式管理
官僚主义
地理分布:异地办公
时间分割:保证全天候有 ...
设计模式-行为型模式
声明:文章内容绝大多数来自于南京大学 计算机科学与技术系 面向对象设计方法 课程课件
设计模式-行为型模式
行为型模式(Behavioral Pattern) 关注系统中对象之间的交互,研究系统在运行时对象之间的相互通信与协作,进一步明确对象的职责
行为型模式:不仅仅关注类和对象本身,还重点关注它们之间的相互作用和职责划分
类行为型模式
使用继承关系在几个类之间分配行为,主要通过多态等方式来分配父类与子类的职责
对象行为型模式
使用对象的关联关系来分配行为,主要通过对象关联等方式来分配两个或多个类的职责
Chain of Responsibility Pattern 职责链模式职责链模式:避免将一个请求的发送者与接受者耦合在一起,让多个对象都有机会处理请求。将处理请求的对象连接成一条链,并且沿着这条链传递请求,直到有一个对象能够处理它为止。
职责链模式的定义
将请求的处理者组织成一条链,并让请求沿着链传递,由链上的处理者对请求进行相应的处理
客户端无须关心请求的处理细节以及请求的传递,只需将请求发送到链上,将请求的发送者和请求的处理者解耦
Handler ...
设计模式-结构型模式
声明:文章内容绝大多数来自于南京大学 计算机科学与技术系 面向对象设计方法 课程课件
结构型模式
结构型模式(Structural Pattern)关注如何将现有类或对象组织在一起形成更加强大的结构
不同的结构型模式从不同的角度组合类或对象,它们在尽可能满足各种面向对象设计原则的同时为类或对象的组合提供一系列巧妙的解决方案
类结构型模式
关心类的组合,由多个类组合成一个更大的系统,在类结构型模式中一般只存在继承关系和实现关系
对象结构型模式
关心类与对象的组合,通过关联关系,在一个类中定义另一个类的实例对象,然后通过该对象调用相应的方法
Adapter Pattern 适配器模式适配器模式:将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。
又名:包装器(Wrapper)模式
定义中所提及的接口是指广义的接口,它可以表示一个方法或者方法的集合
适配器模式的结构(类适配器)
Adapter适配器同时是Target和Adaptee的子类,Target通过调用Adatper来获取Adaptee的功能,Target为接口。
123456 ...
设计模式-创建型模式
声明:文章内容绝大多数来自于南京大学 计算机科学与技术系 面向对象设计方法 课程课件
创建型模式
创建模式是对类的实例化过程的抽象化。
怎样创建对象?
创建哪些对象?
如何组合和表示这些对象?
创建模式描述了怎样构造和封装这些动态决定
Simply Factory 简单工厂又名Static Factory Method 静态工厂方法
由一个工会参股地向决定创建出哪一种产品类的实例。
负责将大量有共同接口的类实例化。
具体产品类:将需要创建的各种不同产品对象的相关代码封装到具体产品类中
抽象产品类:将具体产品类公共的代码进行抽象和提取后封装在一个抽象产品类中
工厂类:提供一个工厂类用于创建各种产品,在工厂类中提供一个创建产品的工厂方法,该方法可以根据所传入参数的不同创建不同的具体产品对象
客户端:只需调用工厂类的工厂方法并传入相应的参数即可得到一个产品对象
简单工厂模式:定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。
在简单工厂模式中用于创建实例的方法通常是静态(static)方法,因此又被称为静态工厂方法(StaticFac ...
软件维护与演化
软件维护与演化软件维护软件可修改性与软件维护在将产品交互给用户后进行维护工作,主要是为了保证产品的正常运转人进行的使用帮助、故障解决喝磨损处理等工作。
软件不会磨村,但是软件的维护涉及到人们需要经常“修改软件”。
软件维护:
软件维护是在交付之后修改软件系统或其部件的活动过程,以修正缺陷、提高性能或其他属性、适应变化的环境
软件维护的类型软件的变更情景:
问题发生了改变
环境发生了改变
软件产品中存在缺陷
软件维护类型:
完善性维护:满足新需求,增加新功能
适应性维护:使软件能适应新的环境
修正性维护:排除软件产品中遗留的缺陷
预防性维护:使软件产品在将来可维护,提升可维护性的软件修改工作
软件维护的高代价性
为什么在数量上少于新开发需求,但是变更需求却耗费了比新开发大得多的成本?
软件维护的困难性
程序理解
修改过程中,不管被修改的是哪个部分,开发者都需要全面理解整个软件系统的结构和行为,才能确定需要修改的程序位置和修改方法。所以,也要理解程序的代码。
维护时间的50%~90%被消耗在了程序理解上
维护人员不是程序代码的编写者,只能靠文档和代码片段拼接来理解编写 ...
面经(2)——记第一次技术面 + 面试官采访
采访部分采访对象某校内公司部门leader,由于对方个人意愿保密信息
采访过程使用QQ聊天的形式,为了更好的观感,进行了部分消息的省略和顺序的调整,不能完全代表采访对象及作者的完整观点
采访内容采访对象: 一面结果我给了良好,然后之后还会有一轮面试
大致流程是这样的,第一轮面试是技术面,第二轮是mentor面
我: 好的好的,学长辛苦啦
采访对象: (新人加入***以后,会配一个老人带着参与项目)
我: 嗷嗷嗷,这个mentor面试怎么理解呢
采访对象: 然后第二轮也有可能有多场面试
(当然,大部分情况下只有一场)
就是mentor们会可以看到所有人的一面评价还有面试记录
他会选和他当前主要负责的业务比较契合的邀请后续面试,然后主要会聊一下业务场景
我: 嗷嗷嗷,请问是群面么
...
面经(1)——第一次正式群面记录
第一次正式群面记录前言这学期有幸抢到了一个探索个人优势和就业的公选课,老师安排了两位中化集团的HR来带着我们感受一下真正的群面,结束之后感觉受益良多,希望能记录下来,不光为了自己,也能够为一些还没有经历过群面的同学提供一些经验和帮助。
面试过程
声明:下面的过程主要针对面试,而不是题目本身,不会涉及到太多关于题目的具体讨论内容
首先,由面试官发放题目和草稿纸。(正式面试中,题目会反扣在桌面上,同时还有一张草稿纸和笔以及一张姓名牌),随后,面试官宣布面试开始,可以打开题目。
(题目由老师提供,侵删)
然后,面试就正式开始了。
这个时候,有一个有经验的同学主动承担了leader的角色,为我们大概做了一个时间的规划,并且大家都表示认可。
先读题,然后每位依次发言,之后讨论。
其实这里这位同学的时间安排有个比较严重的问题,但是大家被带了节奏,可能也没有注意到,后面会说。
从我自己的角度,我当时是带着自己的pad,然后先自己在pad上记录了我自己的顺序,然后标注了一下每个位次原因的关键词,方便一会我自己的陈述。
(我还准备了自我介绍,但是这次没有用到)
同时,我还用pad打开了秒表开 ...