‘壹’ 面试问我技术栈是什么
技术栈,好像是指某项工作或某个职位需要掌握的一系列技能组合的统称。
也就是说,这是一个多技能综合的结果。
与之类似,还有个“全栈”的概念……就是指万金油式的状态……啥都会,干啥都行……
这些词儿,都是新冒出来的时髦词儿……
‘贰’ 技术栈是什么意思
IT术语,某项工作或某个职位需要掌握的一系列技能组合的统称。
一般来说是指将N种技术互相组合在一起(N>1),作为一个有机的整体来实现某种目的或功能。也可以指掌握这些技术以及配合使用的经验。
打个比方,开发一个医疗管理系统,你使用了html + css + javascript + jquery + springmvc + hibernate + spring + linux + mysql等等,这些技术就可以称为技术栈。
另外说法
还流行一个说法,是Full Stack (全栈),简单地说是万金油,说得具体一点就是前端、后台、存储、架构等多种技术都懂一点。
这里的“栈”就是英文的stack的意思(一些东西堆叠在一起),掌握不同种类技术更有概括性的一种说法。
‘叁’ 软件开发和编程有什么联系
软行闷件开发与编程区别为:需求不同、考虑不同、最终成品不同。
一、需求不同
1、软件开发:软件开发需要了解客户的软件顷森需求。
2、编程:编程不需要过多了解客户的软件需求,针对的是系统的功能需求。
二、考虑不同
1、软件开发:软件开发不必过多考虑系统的容错性和健壮性等。
2、编程:编程需要考虑系统的容错性和雀带亩健壮性等特性,进行系统测试。
三、最终成品不同
1、软件开发:软件开发的最终成品是系统软件、代码和文档。
2、编程:编程的最终成品是系统软件和代码。
‘肆’ 技术栈是什么
技术栈:IT术语,某项工作或某个职位需要掌握的一系列技能组合的统称。technology stack 技术栈一般来说是指将N种技术互相组合在一起(N>1),作为一个有机的整体来实现某种目的。也可以指掌握这些技术以及配合使用的经验。就是Full Stack (全栈),简单地说是万金油,说得体面一点就是前端、后台、存储、架构等都懂。就是掌握不同种类技术。
栈在程序的运行中有着举足轻重的作用。最重要的是栈保存了一个函数调用时所需要的维护信息,这常常称之为堆栈帧或者活动记录。堆栈帧一般包含如下几方面的信息:
1、函数的返回地址和参数。
2、临时变量:包括函数的非静态局部变量以及编译器自动生成的其他临时变量。
‘伍’ “全栈开发已死”
如果整个团队全是全栈开发人员,不区分前端和后端,似乎是一个不错的主意。但是在这个新时代,没有人能够掌握开发的所有技术。
作者 | Joe Honton
译者 | 弯月,责编 | 屠敏
以下为译文:
全栈的起源
在新千年来临之际,Web工具已发展得极为成熟,创建网站所需的一切都可以通过开源软件组建。我们可以仿照OSI网络模型,简单地将应用程序开发的各种技术分层,而整个开发所需的技术集合称为栈。
LAMP栈就是第一个栈,它包含四层:L表示Linux操作系统,A表示Apache HTTP服务器,M表示MySQL数据库服务器,而P表示PHP脚本语言。随着时间的推移,我们看到了分层概念的优势,因此衍生出了许多其他栈:WAMP、MAMP、XAMPP、LEMP、LEPP、MEAN、JAMStack等等。
有了这些技术栈,我们就相当于免费获得了软件开发复兴的钥匙,对于有兴趣创建网站的人来说,如今的门槛更低了。只要你有毅力和学习新工具、语言和协议的欲望就够了。你不需要使用微软蚂和、Oracle、IBM或其他商业软件。这是一个公平的领域,吸引了很多人的目光,以至于90年代后期出现了互联网的泡沫时代。
不久后,浏览器(XMLHttpRequest)引入了 AJAX,从而引领了Web 2.0时代和Web应用程序。但是,开发这些应用程序需要大量的工作,因此开发人员无法仅凭一己之力满足业务的需求。
后来,开发人员开始分工专业化。由前端开发人员处理HTML、CSS和JavaScript。后端开发人员处理主机操作系统、HTTP服务器和数据库。而同时精通前后端的开发人员则称之为全栈开发人员。
全栈时代
专业化是一件好事。但并不会永久。一方面,这意味着团队可以并行工作以缩短开发周期。另一方面,这也意味着我们必须付出更多的努力来传达最初的要求和变更的规范,否则我们就会失去并行工作所带来的优势。
因此,整个团队全是全栈开发人员,不区分前端和后端,似乎是一个不错的主意。
最重要的好处是,团队中的每个开发人员都充分了解每一处代码变更带来的后果。他们每个人都可以正确地评估影响和风险,让管理层清楚地了解成本和延误状况。此外,每当有工作人员离职时,团队可以立即换人,而且新人也可以很快地熟悉工作。然而,随着基础技术的提升,这种美好的景象也失去了原有的魅力。技术栈不再局限于最初的四层:操作系统、HTTP服务器、数据库和脚本语言。
随着开发能力的增强,我们开始更加密切地倾听用户的意见:
此外,贯穿所有这些需求的基本技术也在不断发展:
全栈时代并没有完全死亡。技术栈的各层迅速发展,没有人可以成为掌握一切的专家。职责多样化和专业化是很自然的结果。
全栈工程师的荣耀已成为传说。在这个新时代,没有人能够掌握开发的所有技术。
2020栈
我们不得不思考:拥有跨层知识和技术力且才华横溢的个人仍有优势吗?我们应该如何对待全栈开发人员带来的项目经验多样化?管理如何才能满足这些需求?招聘人员应如何筛选应聘人员?求职者又当如何凸显自己的技术力?
我们应当重新考虑“全栈”这个术语了。
我之所以这样说,是因为我帮助推广了这个概念。早在2009年,毁启我就曾介绍过这个术语。但可悲的是,时至2019年,这个术语已经成了计算机 历史 博物馆的纪念物。
奇怪的是,人们对“全栈”这个词的好奇心在不断增加。2009-2019年期间,Google 搜索词语趋势快照显示,在过去五年中,“全栈”这个词的搜索次数急剧增加,而且年年创新高。
但是,如果人们都在寻找下一个趋势是什么,那么我们就来谈一谈吧。为了方便讨论期间,让我们先来给它起一个名字。
我将其称为2020栈。新一代的新名称。
我认为:
2020栈专家的特征可以总结如下:
没有人可以掌握所有技术,因此2020栈必须由一个团队来分担。不是一群人,而是一个真正的团队。这意味着,当一个人落后时,另一个人就会挺身而出。当一个人拥有出色的技术力时,就可以通过一种机制来指导其他人。当团队的知识库不足时,闷余盯他们就会寻找一名更聪明的团队成员。
每个2020栈团队成员都必须是跨领域专家。仅掌握了一两层技术栈的人都算不上合格的2020栈团队成员,这类的个人有望成为未来2020栈团队成员,但也有可能不行。但是在他们掌握各层技术栈上的深入知识之前,他们只能作为2020栈团队的候选人。
2020栈团队成员为项目带来的各项技术并未严格分类。与我们到目前为止采用的前端/后端分类不同,2020栈的分类是多种多样的。2020栈团队中的某位成员可能熟悉NoSQL、云配置和持续集成等技术。同时,另一个2020栈团队中可能有一位类似的成员,而他熟悉SQL数据库、Node.js服务器、容器和容器编排。如果我们把他们统称为2020栈团队的后端开发,就低估了他们的技术力。
最后,这个团队最关键的组成部分:每次交流都应该以针对当前问题做出最佳决策为共同的目标。这意味着拥有相同技术的成员之间应该以开放的心态进行交流。成员之间不仅应该互相传达最新的进展,还应该展开讨论。这可以让每个人都变得更聪明,而且还可以防止重新步入专业化的漩涡。团队成员一起成长。
你好,“2020栈! ”
下面我们来想想看,如何利用2020栈更好地匹配职位要求与求职者的技术力。项目经理发布的招聘广告可能包含以下内容,他们希望找到适合公司文化的人才:
我公司希望招募在测试、文档和代码管理方面具有深厚背景的“2020栈”团队成员。该职位要求在以下领域中,至少拥有跨两个领域的技术力:云配置、容器、容器编排、CI/CD以及服务器端脚本。
通过帮助我们选择最佳的工具来塑造我们的未来。职业发展是每位公司员工工作的一部分。每周二我们都会举行内部2020栈学习大会。
同一个职位的另一则招聘广告则要求应聘者具备不同的技术力:
我们希望寻找一名“2020栈”团队成员,担任回归测试、API文档、Github工作流管理以及开发运维的工作。
如果你掌握了上述技术,请联系我们。
而求职者可以按照如下方式完善LinkedIn信息:
我拥有多年的“2020栈”团队工作经验,拥有丰富的后端开发经验以及最新的2020开发运维知识,包括Gitlab、Kubernetes 和 Digital Ocean。
我是开源和DRY的忠实拥护者,我认为成功重用的关键在于出色的文档。
通过上述描述,我们看到了一名同时掌握了代码管理域和开发运维域技术的开发人员。“2020栈”团队成员比敏捷团队更加成熟。
2020栈的分层
那么,2020栈应该如何分层呢?前端和后端等术语是否足以描述各层的特性?服务器和Web、设计和运维呢?当然,这些类别足够广泛。
同时,我们也不能忽视测试人员,因为我们知道如果没有他们,我们就无法交付质量胜过竞争对手的产品。此外,如果没有营销人员,我们甚至连客户都找不到。
所有这些因素我们都需要考虑。有关我心目中完美的2020栈,请参考这篇文章(https://medium .com /better-programming/2020-002-my-perfect-2020-stack-43be78df37 dd )。说到底,2020栈就是跨领域沟通。我相信这是一次全新的文艺复兴。
原文:https://medium .com /better-programming/2020-001-full-stack-pronounced-dead-355d7f78e 73 3
本文为 CSDN 翻译,转载请注明来源出处。
‘陆’ 技术栈的含义是什么
技术栈指将N种技术互相组合在一起(N>1),作为一个有机的整体来实现某种目的或功能。也可以指掌握这些技术以及配合使用的经验。
举个例子:开发一个普通OA(办公自动化)系统,我们使用了html+css+javascript+vue+ Spring Boot+Spring cloud+hibernate + Spring+rocket Mq+Redis+Es+linux+ mysql等等,这些技术加起来就可以称为技术栈。
前端技术栈
使用css3作为页面的样式控制:解决页面渲染问题。
使用Html5作为页面结构的标签语言:解决移动端的页面兼容性问题。
使用seajs框架:解决项目中模块开发和加载的问题。
使用使用Jquery前端js框架:解决方便操作页面元素的问题。
引用流行的前端插件实现业务需求:使用bootstrapValidator作为表单的验证插件。
‘柒’ 什么是技术栈
技术栈的意思大概就是你掌握了一堆的技术。
‘捌’ 入门IT 行业,该具备哪些技能
对于刚开始进入IT的新人来说,“必备技能”往往意味着一个长长的、标有重要度的学习列表,但是过长的列表通常会导致新人不知如何开始学习,压力倍增。本文尝试列举出最重要的几个技能,也期望通过此列表能给新人一个比较明确的学习重点和路径。
深入学习一门编程语言
没有掌握任何一门编程语言,就不可能成为一名编程人员。
许多程序员试图在学习之初一次学习几种编程语言,以便应对他们第一份软件开发工作的需要。虽然我认为开发人员最终会学习多种编程语言, 但建议不要在开始时这样做。
因为同时学习多种语言只会导致混乱,也会分散学习其它技能的精力。相反,我建议深入的学习一种编程语言,这样也会对使用这种语言编写代码感到非常有自信。
如何组织代码
目前, 主要有两种数据库技术:关系数据库和文档数据库。
现在的开发人员应该很熟悉关系数据库,但同时也应该对文档数据库有所了解。
在软件开发中,数据库通常用于存储应用程序的数据。
对于数据库,开发人员至少应该了解以下方面:
- 数据库的工作原理
- 如何执行基本查询来获取数据
- 如何插入、更新和删除数据
- 如何添加数据集
源代码管理
管理源代码是任何软件开发项目不可或缺的组成部分。在使用源代码之前,应该有一个网络来共享项目的所有文件。
源代码管理工具最基本的功能,是保留软件项目中对文件所做更改的历史记录。它还允许多个开发人员同时处理相同的代码, 并将这些处理代码融合在一起。
所有的开发人员都应该知道如何使用源代码管理工具,以便能够检查代码并从多个来源融合代码。
构建和部署
目前,大多数软件开发项目都有一些自动化的构建和部署系统。同时也有许多不同的软件应用程序,来帮助团队自动化构建和部署任务。
构建
当你编写代码并将其合入到源代码管理系统中后,你想通过一些方法了解你合入的代码是否运行的很好,这就需要进行构建。构建会编译系统中的所有代码,并确保没有编译错误。一个复杂的构建系统还可以运行单元测试和用户测试,或者代码质量检查,并提供一些有关代码库当前状态的报告。
部署
部署系统负责将代码部署到产品机器上,或者将其部署到某种测试环境中。
虽然开发人员不一定要成为部署方面的专家,但是了解系统的基础知识以及构建和部署代码的过程也是非常的重要。
调试
对于软件开发人员来说,经常会花费90%左右的时间,来弄清楚自己的代码为什么不起作用了。不论你从事任何语言的代码开发,代码调试都是开发过程中不可缺少的一部分。
所以开发人员应该下定决心,认真的学习如何做到高效的调试代码。
方法论
一些软件开发团队在编写代码并完成他们的项目时,都遵循着一些方法论。所以开发人员至少应该熟悉诸多最常见的软件开发方法论中的基本几种,这里要说的就是瀑布开发和敏捷开发。
总结
尽管本文中列举的软件开发人员应该了解的知识很多,其中很多知识也许正是你所不了解,但是请不要沮丧。我们要做的就是认真的补充这些知识,不断的提高自己。
‘玖’ 技术平台和技术栈有什么区别
技术平台是一套完整的、严密的服务于研制应用软件产品的软件产品及相关文文件。,技术协议栈是协议的实现,可以理解为代码,函数库,供上层应用调用。
商业化的协议栈就是给你写好了底层的代码,符合协议标准,提供给你一个功能模块给你调用。
你需要关心的就是你的应用逻辑,数据从哪里到哪里,怎么存储,处理
还有系统里的设备之间的通信顺序什么的
当你的应用需要数据通信时,
调用组网函数给你组建你想要的网络;
当你想从一个设备发数据到另一个设备时,调用无线数据发送函数;当然,接收端就调用接收函数;
当你的设备没事干的时候,你就调用睡眠函数;要干活的时候就调用唤醒函数。
所以当你做具体应用时,不需要关心协议栈是怎么写的,里面的每条代码是什么意思。除非你要做协议研究。
‘拾’ 技术栈迁移弊端是什么
技术栈迁移弊端包括:毕弯昂贵的成本、培训和积累经验的时间;不一致的API和架构;与现有系统的不兼容性;测试和机制差异;以及复杂慎数丛的部署和宽樱运行环境。