2020成长计划学习小结II

网友投稿 532 2022-05-27

11月份有移动应用开发全栈的成长计划,12月份有大数据全栈的成长计划,都是从2020年末开始,持续到2021年的,这2个计划自我评价我只是个划水的看客,惭愧。其中移动应用开发全栈学习后,可以作为打下的一个基础,然后再去入门鸿蒙的开发。姑且将周笔记总结如下:

移动应用开发全栈(Android入门、Vue&H5)

第一周

虽然是2015年的视频,但基本原理和基本技术,是一直没有太大的变化。所以是一直有用的。

Android的版本是会有比较大的变化,课程里是Android4.3.1,2015年是Android6,现在2020年已经是Android10了。

第一章.初识Android 1.Android基础知识 2.Android系统架构

第二章.第一个Adroid应用 1.搭建开发环境 2.创建并启动模拟器 3.创建安装运行应用 4.eclipse相关配置

第三章.Android项目结构 1.项目的组成结构 2.APK安装文件的组成结构 3.系统文件目录结构 4.SDK的文件目录结构

第四章.调试工具 1ADB/DDMS/Log 2尺寸单位 3调试工具练习

第四章中,关于尺寸讲解的比较细也比较清楚:英寸/像素/分辨率/ppi/dpi/Density像素密度 px/dp/sp

另外在一小时戏说android里,笼统的介绍了开发知识

四大组件:activity/broadcast/contentprovider/service,还有第五大组件:fragment

对于框架的熟悉,能够了解底层运行逻辑,是一个加分点

还有一些比较优秀的轮子

还有优化,就是能比别人做的好的地方。其中“包体积优化”越来越不像以前那么重要了,因为网络带宽越来越大;当一种资源充足的时候,(预期将来会越来越充足)那么在节约这种资源也不是一种美德了。

Java语言的基础知识:八大基础数据类型、引用类型,NIO,反射等。目前国内绝大多数使用java,kotlin很少。如果从头开始的新项目,可以使用kotlin。否则项目历史的原因,很难切换语言。

还有讲到工具和必备技能。跨平台如webapp的使用,它的缺点,比如不能使用原生API(互动效果差,比如相机的使用,扫码等就做不了),还有比较依赖网速;像flutter虽然渲染可以媲美原生,但是不敢多用,因为生态问题,版本升级会带来很多麻烦(比如以前用的属性都给你干掉了),项目中8k个问题待修复,这么敢大量投入使用呢。

第二周

本周的内容比较多。

先讲了理论,Activity。四大组件之一,内容可真多啊。

然后是Activity的应用练习。这快相当于实战了,有6个,这一块相对来说我更喜欢看一些。

2020成长计划学习小结II

比纯粹的理论和知识的学习要有趣,在当前也更实用一些。

第一个应用练习:界面布局。有垂直的和水平的。

界面做好了,一共有4个功能要实现。操作的方式分别是点击和长按。

然后是常用的UI组件,设计了几个常见问题,这样大家不会因为解决不了问题而学的慢。

常用的UI组件不少,反正多于三个我就觉得不少了

简单的有TextView,EditText,Button,ImageView,CheckBox,RadioGroup,RadioButton,Toast等

菜单有OptionMenu,ContextMenu

进度条有Progressbar,Seekbar

对话框有Dialog

内容多,所以讲完了做了一个总结

第三周

布局

有LinearLayout, RelativeLayout

其中RelativeLayout非常强大。使用的是相对定位,来控制子View.

FrameLayout帧布局。每一个子view代表一个画面,后面出现的覆盖前面的。

视图有很多标签属性。属性有很多,可以对属性进行分类。

Listview是可以滑动显示的。需要配合Adapter来使用。来组合数据和布局。

样式和主题,不太清楚是干什么的,和手机里的主题类似吗?就是提炼相同的属性的意思吧。

style&theme.

做几个布局的练习。显示所以应用列表;长按消失。等

第四周

移动端VUE入门

又解释了一遍什么是VUE。这个课程是由华为员工做的培训。

VUE是一个渐进式的,也就是说,可以一步一步来,不需要一步到位

从0创建一个工程,可以手工引入,也可以npm方式引入

VUE的简单应用,包括声明式,告诉框架要做什么,具体这么做不用管的

指令:v-前缀的属性;生命周期。

移动端适配简介

其实电脑应该也有适配的问题吧,电脑也有13.3,14,15,16,17寸的差别呀

这么在不同分辨率下保持比例一致?

其实这个问题的提问就是答案,答:按比例保持一致就可以了

包括多倍屏出来后,也是这个道理

多倍屏,就是相同物理尺寸下渲染了不同的像素数量,开发不能用px了

另外还有一些繁琐的问题无解,主要是解决起来太繁琐而不彻底,所以叫做无解

第五周

VUE的路由管理、VUE的状态管理模式VUEX、VUE升入原理-响应式原理

介绍。使用。模式。守卫。

从浏览器解析开始说起,

路由告诉单页面哪些模块要插入

基本使用,3种形式

1标签形式 to某个url

2在js里写它

3用push

VUE的状态管理模式VUEX

VUE兄弟组件之间通信有哪些方式?

1子传父,父传子 2vuex 2事件总线

1大家都清楚了,哈哈;缺点,如果有孙子的化,路径太长,孙子间不能之间传递

所以诞生了vuex统一存储管理的.以全局单例的模式来管理

VUE深入原理-响应式原理

响应式框架是什么?

比如数据双向绑定,但我们没有写任何的-和回调。因为vue帮我们做了这些事情

这个就是响应式原理了。

如果我们不使用vue,那我们这么实现呢?

写js原生代码呗。

第六周

VUE渲染过程、开发技能提升、vue服务端渲染

结合vue-router等分析渲染过程

讲了一个典型的vue项目入口文件是这么写的

VUE初始化,引入vue的时候都做了什么?生成和挂载

开发技能提升

前端的插件的使用 devtools 能帮助我们解决一些问题查看一些状态

非压缩版的vue点开图标就可以看到;Components它展示的vue组件的层级

Vuex列出发生了的一些事件

Events列出了事件含相信信息

Routings可以看到历史

Performance简单只能看到当前的帧数

Refresh去刷新我们dom树的状态

vue服务端渲染

这个说明了什么时候是白屏,还是不错的

给你Html(有2种情况:没有DOM 或是首屏HTML)

第七周

从vue2.0到3.0

怎么用这个新特性

H5简述,这个开始又和尚硅谷合作的课程,2018年年初的课程

H5的小功能。代码里起一行打个debugger 进入debug

chrome里f12就可以了

比如 class=“c1 c2 c3 c4”

操作很麻烦,现在操作更加人性化了

testNode.classList

可以testNode.classList.add(“c5”)

testNode.classList.remove(“c2”)

在国内,H5开发暗指移动H5开发

优势就是跨平台,因为浏览器跨平台

它的好处是快速开发,快速做原型投放市场看前景

没前景把开发人员开了,下一个项目

有前景再扩展,可能在做android或ios的

H5通吃PC和移动端

H5和H4的区别 还是很有干货的

讲网页处于什么渲染模式之下 其中有个怪异模式 名称听奇怪的

第八周

canvas也是一个元素

给一个提示,如果浏览器不支持画布元素

canvas只支持一种原生的图形绘制:矩形

调一次,只能画一个矩形

其他的图形都至少需要一条路径

先拿到画布,再拿到画笔

使用路径的化,先设置/移动到一个起点,然后就像划线一样一步步的去做

最后连起来

这个老师的课程看的有一点累,restore/save这部分,总是用中文输入法按回车,不累吗,看的都累

2D变换,画一个在走动的时钟

签名其实好做,就是拖拽,就是线嘛

曲线,先画一个圆,看它是顺时针还是逆时针,花个不封口的圆就可以看出来(不是360度的)

canvas的画布是一个dom节点,但里面的图像不是一个dom节点,所以通过dom方法比如css是拿不到它的

然后是多媒体中的音视频

第九周

H5实战-offsetLeft & offsetTop

音视频标签。

video和audio标签。

这个多媒体,总是比文字表格图像要更有表现力的。

都有src的属性,

这些是H5里面对音视频的支持的标签

以往都是用FLASH来做的,但现在FLASH要停更了(也有用realplay啊,quicktime啊反正是五花八门)

所以以后就是H5了

有了src后,控件怎么调用出来呢?用control

这样的化,有一个默认的尺寸,(对音频是无意义的)

视频的化,可以调整音量,但是没法拖进度

原来是因为chrome对于本地的音视频,是不让拖进度的,而firefox是可以的

真是奇怪,这是不是一个bug呢?

基本概念:

avi,mp4仅仅是容器的格式,类似于.zip

比如:视频文件(视频容器)包含了音频轨道、视频轨道和其他一些元数据

视频播放的时候,音频轨道和视频轨道是绑定在一起的

元数据包含了视频的封面、标题、子标题、字幕等相关信息

caniuse.com 直接搜索mp4,可以看到各种浏览器,包含移动端对于某个视频格式的支持情况

现状是:目前还没有一种编码器和容器的组合能应用于所有的浏览器中(也是废话~你又没有说浏览器的版本,如果把老版本的浏览器考虑进去,当然是不可能)

然后讲了音视频标签的兼容模式、各种标签

第十周

H5实战-滚动事件,第一个是MAC停靠栏。几个图标组成一排,鼠标移动到的地方图标变大。

看上去蛮炫,看实现其实很Low的

先找5个图片,大小是128*128,都放到一个div的id叫做的wrap里面。在配一下css控制一下样式。

先变小一点,然后图片组放到最下面,再居中。然后在写js

滚轮事件、曲线运动

气泡效果,就想在天上往下看放烟花的效果,就是一个一个圆,慢慢放大,然后消失

需要用canvas来做

头部布局、头部交互

没有滚动条的,先写骨架,不能只在自己的屏幕,要考虑分辨率,1200-2000的比较多

更高或更低的,做响应式

内容区布局和交互,滚轮来切换页面,从第一屏到第五屏的布局。

大数据全栈(Mysql、Hadoop、Spark)

第一周

(第一到三章:Mysql简介;查询;函数)

本课程还是和尚硅谷合作推出的课程,与之前前端的课程有一点不同的是,这一次是一名女老师哦~

亲们,女老师,是不是要尊敬一点,认真一点呢

mysql被收购了好几次,现在的东家是oracle

版本也有收费版,即企业版,但是也是很便宜的。

第一章是简介,将安装和启动。启动环境是以windows上安装和启动来讲解的。

老师讲课讲解还是很形象的,数据库比喻为一个大仓库,我们刷卡进来后(认证通过),要干什么呢?

这样就引出了一些常见的基础命令:show databases;use test;

+号的作用:将字段连接,我们是正常如果用 last_name+first_name的化,值是0,为什么呢?

因为在Mysql里,+只有对数字型的运算功能,没有对字符串的连接功能;

那咋办呢?用concat呗

第二周

第4章 语法

from子句里的连接类型:

内连接:inner

左外连接:left [outer]

右外连接:right [outer]

全外连接:full [outer]

交叉连接: cross

等值连接 t1 inner join t2 on t1.a=t2.a

这里的值是指做条件判断的字段的值; 等就是直接采用的最简单的等于判断的意思;

非等值连接 t1 join t2 on t1.salary between t2.lower and t2.high

自连接:是指表自己和自己连接 t1 join t1

以上写inner join或简写为join,都是指内连接

外连接:分为主表、从表;既然是从表,如果匹配不到主表,就用Null

第5章 数据类型

第6章 变量

第三周

第8章:JDBC概述。数据库存取技术,从下到上,是JDBC-Hibernate等OR工具。

我们可以直接使用O/R框架,但学习底层的JDBC是为了能够明白下层的原理,这样可以走得更远。

第9章:JDBC-PreparedStatement

在java工程里去获取数据库的连接;首先有驱动Driver,然后可以拿到Connection

上面的代码都是对接口的操作,那么需要实例化

Driver的实例化,在这里就是加载mysql的驱动jar包(实现了Driver接口)。

连接时要指定一个地址URL,结构是这样

协议(含子协议):地址:端口:目录

比如 jdbc:mysql://localhost:3306/test

类似与 http://localhost:8080/mall/keybaord.jpg

jdbc:mysql是协议部分,中间省略,test表示数据库名称

登录认证用的用户名和密码封装到properteis去做connect的一个参数,另一个参数是url

补充第6章:MYSQL变量

有系统的(服务器定义的),有自定义的

系统里有全局的和会话的;自定义的有用户的和局部的

show global|session variables; like ‘%xx%’; @@global.varname

set global varname = value; @@…

自定义的:1声明并初始化或赋值: set @varname=|:=value; select @var:=value;

赋值还可以:select xx into @varname from table;

var是弱类型

使用/查看:select @varname; 所以总有一下var都要用@var的形式

局部变量,是在定义它的begin end中有效,比较严格

declare varname type; | var type default value;

set varname; select @varname 矫情关于@

select varname

存储过程是和变量放在一起讲的

SP减少了编译次数,减少了和数据库服务器交互次数

第四周

学习了大数据的4个特征,可以简称为4V,这样比较好记:

1)Volume 大量

2)Velocity(高速)

3)Variety(多样)

4)Value(低价值密度)

其实这4个特征是相辅相成的,大量的数据不可能都有显著的价值,里面的价值需要艰苦的工作才可以挖掘出来

大数据概念,然后是应用场景,当然不用说,各行各业都有应用了

然后是业务分析,包含了组织结构的说明,如下

平台组。这个是基础,搭环境的,感觉没有什么技术含量是吧,其实不然。有技术含量的,是会对基础软件进行定制化优化的,这样就高大上了吧。平台都是集群的,这个不用多说

数据仓库组。分为ETL工程师,这个是初级的,做一些累活脏活,比如数据清洗啦,就像洗菜一样,把泥巴洗掉,把坏叶子摘掉等等。还有HIVE工程师,做数据分析和数据建模。这个高级一点吧

数据挖掘组。这个高级了。包含算法工程师。说到算法,想都想的到这个不是大众化的工作,也就是说不是一般工程师能做的了的。这个是最高端的工作了吧。然后是推荐系统、用户画像工程师。

报表组。和大数据只有半毛钱的关系,JAVAEE开发。

第五周

Hadoop是apache基金会的,这个基金会比较高产,好的软件产品还是有很多的

分布式系统基础架构

说历史,从Lucense说起,java写的全文搜索。2001年第成为apache基金会的一个子项目

对于海量数据的场景,有困难:存储困难,检索慢

升级为微型nutch

Google是Hadoop的思想之源:GFS>HDFS Map-Reduce->MR BigTable>HBase

2003-2004年,以google公开的思想细节,实现了DFS和MapReduce机制,Nutch性能飙升

3个发行版本:Apache的入门学习最好;Cloudera企业用的多,Hortonwords文档好

优势:4高 高可靠 副本多,这个浪费也多吧~;高扩展 节点扩展

高效性 并行工作;高容错性 失败任务自动重新分配

1.x与2.x区别

1.x Common辅助工具 HDFS MapReduce计算+调度

2.x Yarn专做资源调度 MapReduce只做计算

HDFS:NameNode DataNode SecondaryNameNode

YARN: ResourceManager(RM) NodeManager(NM) ApplicationMaster(AM) Container资源的抽象

MapReduce: Map并行处理输入数据 Reduce对Map结构进行汇总

生态体系

数据来源层 > 数据传输层 > 数据存储层 > 资源管理层 > 数据计算层

第六周

为什么要编译源码?

要编译为64位的,难道没有编译好的64位的?

应该是可以自定义要编译的功能吧?

前期准备:必须要能连外网

这里是以操作系统centos为例来说明的

如果失败,就重新执行命令。原因还是网络不好,导致的问题

版本是hadoop2.7.2

然后是1个多小时的具体安装流程,是在本机上安装vmware虚拟机来做的,比较不容易

克隆后还有修改mac地址之类的,使用的centos6

不用说,从源码安装是比较麻烦的

要安装一些开发库,准备好编译环境

maven安装也很慢,要有耐心

第七周

HDFS

它是一种分布式的文件管理系统。

适用场景:一次写入、多次读出。不支持文件的修改。所以:适合做数据分析,不适合做网盘(但适合做云空间的照片存储)

优点:高容错,通过增加副本的形式实现的,始终有3个副本。

缺点:不适合低延时访问(如ms级别);无法高效的对大量小文件进行存储:1占用NameNode大量的内存来存储文件目录和块信息 2小文件存储的寻址时间会超过读取时间

不支持并发写入(多个用户同时上传同一个文件)、文件随机修改(仅支持append)

组成:1.NN(Namenode)2.DN(DataNode) 3.Client 4.Secondary NN

HDFS的文件在物理上是分块存储(block),块的大小是dfs.blocksize定义,在hdfs-default.xml里面。128M

1.x老版本里都是64M,本地运行时是32M

启动后jps看一下进程

hadoop fs -ls / 看目录;同时可以访问50070端口来检查一下

然后有文件操作,分很多小节

网络拓扑,节点距离计算,好像就是树-枝-叶之间算距离

读数据流程;NN和2NN工作机制;DN工作机制;HDFS新特性;

第八周

Hadoop数据压缩。因为磁盘IO和网络带宽是Hadoop的宝贵资源,所以压缩很有意义。但虽然其CPU开销不大,也是有代价的。

自带的压缩格式:deflate,gzip,bzip2; lzo,snappy需要安装

Yarn资源调度器,提供运算资源,相当于一个分布式的OS,而Mapreduce等运算程序相当于运行于OS之上的应用程序。

其组件包括:ResourceManager,NodeManager,ApplicationMaster, Container等

Yarn的工作机制,工作中还好,在面试中会问的非常频繁

这个工作机制,要结合流程图来理解会比较清楚

还有问job提交全过程的。HDFS/Yarn/mapreduce学了这么多,他们3个是这么联系到一起的

Android Vue

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【 FPGA 】超声波测距小实验(三)回响脉宽计数之均值滤波
下一篇:企业私有云架构的安全挑战、安全设计和安全运营 | 最佳实践
相关文章