diff --git "a/1\345\210\235\345\247\213node.md" "b/1\345\210\235\345\247\213node.md" new file mode 100644 index 0000000000000000000000000000000000000000..63ca018ce0a019e03fddf3bfdd09bd67cdebda4e --- /dev/null +++ "b/1\345\210\235\345\247\213node.md" @@ -0,0 +1,179 @@ +## 微专业 3,4月份会开设微专业 + +### 实施工程师 + +​首先,在整个互联网行业中,主要基石就是研发。研发人员负责软件的开发和需求定制,设计人员负责绘制软件logo、图标和版式,封装完成之后,打成软件包,如.exe、.war等格式的安装包,此时产品完成。销售人员把产品销售给客户后,诞生了一个问题:研发会安装,但是他需要查找漏洞发布补丁或者写新的产品;销售不懂技术,无法教给客户使用。所以有需求才有市场,诞生了一个新的岗位:实施工程师。那么说实施工程师负责的内容,就是把产品的安装包带到客户现场,进行安装和调试,并且教给客户如何使用,不恰当的比喻可以理解为一个经常出差的弱化版的研发。 + +实施开发工程师与软件开发工程师不同,实施开发人员事实上很少接触到项目的编码,主要以数据库的操作,编码存储过程和数据转换为主,因而工作多年后在编码能力上非常弱。但是实施开发工程师极其了解项目的业务逻辑,擅长客户沟通。继而多以需求沟通分析为主,而对于实施工程师而言,多以项目经理与管理行政为发展方向。当然数据库管理员是最理想的职位。 + +### 硬件实施 + +​​首先看到“硬件”二字,有的人可能会理解为干体力活,搬东西。其实不然,举个最简单的例子:个人电脑上的QQ,是软件,如果你把QQ.exe带到客户现场,没有服务器等硬件设备作为支撑的话软件也是无法安装运行的。所以,硬件实施的职责,就是负责把硬件设备带到客户现场进行安装调试,中间可能会需要体力付出,比如拉货,但是大部分情况下是不需要的。当然,货拉来摆上并不意味着完了,硬件实施也需要一定的软件基础,举个例子:你新买一台无系统的电脑,是需要装操作系统的,涉及到硬盘分区、系统引导等知识。所以,硬件实施也是需要了解软件知识,简单的如:系统安装,稍微难的,例如:交换机的调试、防火墙的配置等。所以,想要从事硬件实施工程师,你可以不会SQL语句等操作,但是必须要会Linux等指令型的知识。 + + +### 软件实施 + +当硬件实施将客户现场的硬件环境搭建好之后,就到了软件实施大显身手的时刻。首先,就系统软件层来讲,可能操作系统为Windows、也可能为Linux,所以软件实施要懂得系统的基本操作、指令以及一些简单问题的处理;其次,产品本身要存放数据的,所以要学会对数据库的使用,由于大部分实施工程师的权限不够高,所以只需要掌握基本的查询语句即可,当然,要想在这一行有个更好的发展,一些高级用法,比如:存储过程、触发器、索引等也是需要会写,这个是后话;然后,在软件实施工作时,硬件实施应该离开客户现场了,这时也需要掌握一些常见的硬件问题排查,比如Windows蓝屏代码阅读、网络无法连接等;最后,客户可能会需要一些文档,比如培训PPT、实施方案等,所以,也需要对office办公软件有一定的知识掌握。 + + +### 运维工程师 + + +在谈及运维工程师之前,首先了解一个软件行业的基本概念:厂家、渠道(集成商)和客户:厂家研发产品,但是不会直接售卖给客户,客户购买产品需要进行招标,那么渠道就是中间人。所以在厂家的软件实施、硬件实施都完成工作后,渠道会给客户派运维人员进行售后运维工作。其主要工作内容,就包括:熟知客户软硬件环境、了解客户使用的产品等,所以侧面也说明了,运维工程师需要了解的技术知识要比实施人员更杂,需要了解到多方位的信息,全方位懂得如何排障,以及在无法处理的情况如何及时联系实施人员,确保得到厂家的售后技术支持。总的来说,运维工程师是博众家之长,集大成者。 + + +### 技术支持 + +技术支持这个岗位,相比于前三者而言,属于较为轻松的一个。技术支持一般不需要出差,以在公司办公为主,基本为电话、远程解决客户提出的问题,可以简单理解为实施人员的附属团队,实施人员负责前期安装调试,技术支持人员负责后期简单的问题解答,以及无法处理时联系研发、实施人员获得解决办法。所以需要了解的技术和实施人员相似,在此不做复述。 + +### 测试工程师 + +简单的说就是对开发的项目进行测试,看功能是否能达到产品的业务逻辑. + + +## 课程安排 + +本学期的三门课:node(后端技术) vue(国内最热的前端的框架) webapi(以java的springboot为例) + +7,8月安装实训项目 + + + +## 什么是node + +从本章开始,我们就正式开启JavaScript的后端开发之旅。 + +Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 + +众所周知,在Netscape设计出JavaScript后的短短几个月,JavaScript事实上已经是前端开发的唯一标准。 + +后来,微软通过IE击败了Netscape后一统桌面,结果几年时间,浏览器毫无进步。(2001年推出的古老的IE 6到今天仍然有人在使用!) + +没有竞争就没有发展。微软认为IE6浏览器已经非常完善,几乎没有可改进之处,然后解散了IE6开发团队!而Google却认为支持现代Web应用的新一代浏览器才刚刚起步,尤其是浏览器负责运行JavaScript的引擎性能还可提升10倍。 + +先是Mozilla借助已壮烈牺牲的Netscape遗产在2002年推出了Firefox浏览器,紧接着Apple于2003年在开源的KHTML浏览器的基础上推出了WebKit内核的Safari浏览器,不过仅限于Mac平台。 + +随后,Google也开始创建自家的浏览器。他们也看中了WebKit内核,于是基于WebKit内核推出了Chrome浏览器。 + +Chrome浏览器是跨Windows和Mac平台的,并且,Google认为要运行现代Web应用,浏览器必须有一个性能非常强劲的JavaScript引擎,于是Google自己开发了一个高性能JavaScript引擎,名字叫V8,以BSD许可证开源。 + +现代浏览器大战让微软的IE浏览器远远地落后了,因为他们解散了最有经验、战斗力最强的浏览器团队!回过头再追赶却发现,支持HTML5的WebKit已经成为手机端的标准了,IE浏览器从此与主流移动端设备绝缘。 + +浏览器大战和Node有何关系? + +话说有个叫Ryan Dahl的歪果仁,他的工作是用C/C++写高性能Web服务。对于高性能,异步IO、事件驱动是基本原则,但是用C/C++写就太痛苦了。于是这位仁兄开始设想用高级语言开发Web服务。他评估了很多种高级语言,发现很多语言虽然同时提供了同步IO和异步IO,但是开发人员一旦用了同步IO,他们就再也懒得写异步IO了,所以,最终,Ryan瞄向了JavaScript。 + +因为JavaScript是单线程执行,根本不能进行同步IO操作,所以,JavaScript的这一“缺陷”导致了它只能使用异步IO。 + +选定了开发语言,还要有运行时引擎。这位仁兄曾考虑过自己写一个,不过明智地放弃了,因为V8就是开源的JavaScript引擎。让Google投资去优化V8,咱只负责改造一下拿来用,还不用付钱,这个买卖很划算。 + +于是在2009年,Ryan正式推出了基于JavaScript语言和V8引擎的开源Web服务器项目,命名为Node.js。虽然名字很土,但是,Node第一次把JavaScript带入到后端服务器开发,加上世界上已经有无数的JavaScript开发人员,所以Node一下子就火了起来。 + +在Node上运行的JavaScript相比其他后端开发语言有何优势? + +最大的优势是借助JavaScript天生的事件驱动机制加V8高性能引擎,使编写高性能Web服务轻而易举。 + +其次,JavaScript语言本身是完善的函数式语言,在前端开发时,开发人员往往写得比较随意,让人感觉JavaScript就是个“玩具语言”。但是,在Node环境下,通过模块化的JavaScript代码,加上函数式编程,并且无需考虑浏览器兼容性问题,直接使用最新的ECMAScript 6标准,可以完全满足工程上的需求 + +## 环境的安装 + + +官网:https://nodejs.org/en/download/ + + +### 怎么判断有没安装成功 + +在cmd终端输入node如果有输出版本信息等则安装成功 + +## 第一个node代码 + +```javascript + +console.log("hello world"); + +``` +## 什么是npm + +npm是什么东东?npm其实是Node.js的包管理工具(package manager),比较新的node(node11以上)都自带了npm. + +为啥我们需要一个包管理工具呢?因为我们在Node.js上开发时,会用到很多别人写的JavaScript代码。如果我们要使用别人写的某个包,每次都根据名称搜索一下官方网站,下载代码,解压,再使用,非常繁琐。于是一个集中管理的工具应运而生:大家都把自己开发的模块打包后放到npm官网上,如果要使用,直接通过npm安装就可以直接用,不用管代码存在哪,应该从哪下载。 + +更重要的是,如果我们要使用模块A,而模块A又依赖于模块B,模块B又依赖于模块X和模块Y,npm可以根据依赖关系,把所有依赖的包都下载下来并管理起来。否则,靠我们自己手动管理,肯定既麻烦又容易出错。 + +### 注意现有的版本(16)的node是自带npm的,早期的版本10的node以下是不带npm + + +## 查看npm的版本 + +```javascript + + npm -v + + +``` + +## git 工具,码云,github,gitlab(相对少点) git之父:linux之父 + + +node作业:https://gitee.com/lai123/class6nodehomework/invite_link?invite=7ec51fa0a5171339cd80d606a438442e8f23f6d9069ee2ad8b40572f73d50c1eac58cac1038731afe766b0d826817bc9 + +node课件地址:https://gitee.com/lai123/21st-node-courseware/invite_link?invite=7ec51fa0a5171339cd80d606a438442ef3f35ea4ed1da3458b40572f73d50c1e08e9827e84effb33e766b0d826817bc9 + + + +### 要记得切分支,master(主分支),工作中会创建一个 developer (开发)分支 + + +master 分支是最终分支,生产环境就用master分支。developer 是开发分支,开发最终都是合并到developer分支 + + +git branch 查看分支,和创建分支(创建分支需要具体给个分支名称) + + +git checkout '分支名' 切换分支 (提交作业时每个同学自己起一个分支名称) + + +commit 和 push 提交跟邱老师之前说的一样 + + +提交作业时候:在自己码云上提交一个 pr(到master分支) + + + + +## 作业:搭建node环境 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/README.en.md b/README.en.md deleted file mode 100644 index bd131813254a0b8c94187abcd1296ce3ea7ed2fd..0000000000000000000000000000000000000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# 21届6班node作业 - -#### Description -{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md deleted file mode 100644 index 1fa361e9e70cb0dcfa135ee60d4f50e44ba04b84..0000000000000000000000000000000000000000 --- a/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# 21届6班node作业 - -#### 介绍 -{**以下是 Gitee 平台说明,您可以替换此简介** -Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git "a/\350\200\201\351\273\230\346\210\221\346\203\263\345\220\203\351\261\274\344\272\206.txt" "b/\350\200\201\351\273\230\346\210\221\346\203\263\345\220\203\351\261\274\344\272\206.txt" new file mode 100644 index 0000000000000000000000000000000000000000..1eb0f87694867466c8fa893543ab15c988f1bb2f --- /dev/null +++ "b/\350\200\201\351\273\230\346\210\221\346\203\263\345\220\203\351\261\274\344\272\206.txt" @@ -0,0 +1 @@ +莫得鱼啊545646545 \ No newline at end of file