2020成长计划学习小结II
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个,这一块相对来说我更喜欢看一些。
比纯粹的理论和知识的学习要有趣,在当前也更实用一些。
第一个应用练习:界面布局。有垂直的和水平的。
界面做好了,一共有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个是这么联系到一起的
- 点赞
- 收藏
- 关注作者
评论(0)