真人线上国际
service phone

0566-88666668

<
>
联系我们

0566-88666666

中国杭州

技术产品中心 您的位置: 主页 > 技术产品中心 >

WEB开发还有前途吗?

发布人: 真人线上国际 来源: 真人线上国际 发布时间: 2020-07-29 23:34

  目前正在学习JAVA WEB开发(主要后台,有时间也会学习前端)。感觉现在很多WEB网站都只是展示性的,用户主要活跃在移动APP上。不知道现在WEB开发还有什么应用的前景?如果还有前景,那么WEB开发现在主要使用哪些语言和工具? 我是一名刚开始学习编程的大龄青年,怕自己方向不对,耽误时间,真心请教,还请各位大牛指点!

  对于大多数刚刚接触到互联网这个职业的人来说,对于软件是怎么编写的,大概的职业是怎么划分的,理解到这个程度就够了.

  第一层,叫展示层,又被称之为前端.展示层这个名字,其实有点不精确,确切的来说,应该叫用户层,或者是输入输出层,或者叫用户交互层.

  什么叫做输入呢?键盘,鼠标,声音,图像等等都是输入,最简单的输入就是键盘和鼠标,你们如果看过各种黑客电影,不管是在键盘上啪啪啪,还是在空气中点点点,都是输入.

  叫展示层的原因,是因为大部分的情况下,都是用户只需要看,少部分才是操作.

  其实最早在互联网没有出现之前,分层是一个相对而言,软件设计里的概念.但是在现在,就很简单了,你可以理解为,在你的手机,电脑,智能手环上运行的,都是展示层.

  在过去,单机软件的时代,你可以简单理解为它不是分层的(虽然在系统的内部依然有层次的划分).

  所以从简单的意义上来说,前端就是指的用户这一端,后端就是指的服务器这一端,也是云端.

  除了PC还有小型机,大型机等等,这种服务器不是你现在看到的样子,而是这种.

  算了不找图了,我也没怎么见过,毕竟不经常去机房,对型号什么的也没那么熟悉,搜刀片服务器就好.

  在过去,有一个笑线;不,您不可以在公司的电脑是复制,在家里的电脑上粘贴.多贵的电脑都不行

  可是现在真不是什么问题了,这就是最近几年云的价值,很多软件都改成Sass平台,或者是App这种应用,或者是多端统一.

  这也是前后端区分的重要区别,不是以语言来区分前端和后端,而是看程序是运行在用户端,还是运行在云端.在用户端的,就是前端,在云端的,就是后端.

  这个概念区分了以后,我们再来看看,为什么之前叫WEB应用,和现在的前端又有什么区别.

  在过去,没有SPA,没有客户端的时候,流行两种模式,一种叫CS架构,一种叫BS架构.

  CS架构,其实指的就是桌面端,就是PC的应用软件,一般都是用C来写(还是C++或C#?我对C这套体系不够熟悉,对桌面端接触的不多.)

  BS架构,指的就是网页端.过去的网页端,原生JS+JQuery是主流,网页又分成两种类型,一种叫静态网页,一种叫动态网页.

  静态网页就是只有Html(不考虑JS),内容是在Html里写死的.一般都用于不经常修改的部分,比如说关于我们,公司介绍之类的,每一个网页都有自己的独有设计,不好统一,也不经常修改,没有必要做成动态.

  动态网页就是指,页面的框架一致,但是内空不同,比如说知乎的个人主页,结构是相似的,但是不同的人看到的数据不一样.这就是通过前端传过来的用户ID,去后端取数据的过程.

  之前的动态网页,把数据变成Html的这个过程,是在服务器端完成的,我把它称之为渲染,因为这个术语,还有人说我不懂Http,说渲染就是浏览器做的事儿.

  这也是在过去,很多老的工程师,后端和前端一块写的原因,也是很多全菜工程师的来源.

  所以那个时候,说到WEB工程师,其实在某种程度上,就是跟CS工程师做区分而来的.你想要做一个WEB程序,你大概要懂数据库,要能读写,还要能展示给用户.

  即使在现在,在传统行业中也会有很多人这么做,外包公司和二三线城市非常常见.

  所以题主的原线;目前正在学习JAVA WEB开发(主要后台,有时间也会学习前端)。

  这里其实就是指的是传统意义上的WEB开发,前端后端都包括,这个方向,严格意义上来说,不属于互联网,更多的见于企业软件,银行,证券,学校.

  而手机端,Android和Ipone,其实就是两台小小计算机,手机手机,现在可以理解为就是拿在手里的计算机.

  那么Andriod和IOS是什么样子的呢?他们理论上来讲和CS架构是等同的.所以他们是这样的.

  其实跟没减轻相差不多,因为一旦到了云端,后端的主要工作,其实是在架构方面.这个等下,我还是会图来表示一下.

  App应用增多,大量的开发人员转向了Andriod和IOS,难道网页就死了么?

  而WEB可不可以和Android和IOS一样,也能够提前把资源加载到本地,提前把代码放到本地,和后端只通过数据接口来通信?

  Manifest可以让浏览器离线使用网页,所以,理论上来讲,你的网页也只需要让用户加载第一次.通过版本号来判断是否需要更新本地的文件.再通过Ajax获取数据,就可以实现和App一样的功能.

  那么从现在的结构图上来看,所谓的用户活跃在移动App上,对后端人员的影响有多大呢?

  2.在SPA的使用场景下,后端人员的职责减轻,和App端一样,也是只需要提供数据接口.

  什么算后端架构呢,后端不是画了一个增删改查么,不就是在图里一个方框表示么.

  Mysql本身,并不是为了支持高并发的性能而出现的,他提供的各种复杂的Sql语法,也很难在性能上达标.

  一种是找到关系数据库的弱点,直接升级为Kev-Value数据库,又被称之为NoSql数据库.

  举个例子,在修真院的课程体系中,所有的职业都有15个任务,每个任务都有任务详情,操作步骤.

  前端来请求的时候,只要是告诉我ID,我就从id_taskList里去,根本不用去访问数据库.

  写着写着突然间不想写了..我得找找继续定下去的动力,从早上写到现在已经写了几个小时了.

  为什么?太复杂,没有专精点可以拿出来炫耀。“人工智能看Pxxxx”“前端你就信Vxxxx”,这种口号式的东西,都拿不出来。不是为了钱,趁早别做JAVA。

  比如我常说,JAVA,你学好两个东西,就差不多能cover 80%的事情了。哪两个,apache基金会和spring全家桶。那么其实这两个到底是什么呢?

  你别忘了,服务器还分web和application server,还全部自带集群非集群。

  还没完,没数据库跑不起来,就算不用新潮的NOSQL,三大件就够你喝一壶,Oracle, MSSQLserver, mysql,别提各种奇技淫巧的内存数据库,sqllite。三大件连加锁方式都不一样,数据库性能报告没一行长的一样的。

  不知道你想干嘛,但无论如何python flask会比java web好很多。

  对于楼主,学编程的动机、目的什么的都不说,我没法给出答案,所以这篇答案是general的。

  我不想说为何python之类的动态语言为什么比java web好,我就说说怎么学好web开发。

  我觉得ror也很好,如果可以我其实会推荐新手先用ror,但是ror的缺点在于「你找不到资料」,你能找到的所有资料都是过时的,因为它变化太快。

  如果我能有时间写一份step by step for ror教程,那真是再好不过,但是我似乎没有时间来做这件事,所以这里我们就说python。

  python有很多web框架,我认为flask拿来学习最好,你可以有不同意见,也可以去找你喜欢的,只要你能学好就行,找不到或者学失败了你就回来从flask入手。

  flask有一本书不错,中文版在此:图灵社区 : 图书 : Flask Web开发:基于Python的Web应用开发实战

  书学完后可以做个知乎、微博、博客之类的网站练练手,不会设计可以去找模板

  这样可以让你找到一份还过得去的工作,但是如果想要在编程道路上走得更宽更远,还是应该要补全基础知识。

  所表达的只是一个程序员工程师的观点,任何回答都要需要知乎er自己斟酌判断。我们先不讨论Web开发或者Java语言的问题。我们就讨论一下技术开发这个大类是如何进行的。我觉得技术研发开发是一项特别有创造性的活动。所有创造性的活动可以分成三个步骤:1 构思。2 实现。3 使用。

  思考一下我们做研发的整个过程,首先是构思,我们要实现某个产品需求或者产品功能,我们首先是思考如何实现这个过程,能不能实现,这个过程其实是在你的头脑里面形成了一幅草图,有了这个草图,你才会胸有成竹的决策产品是否能够开发。此过程最为重要。接下来是实现,实现是你有了一个头脑里面的草图,你通过什么媒介来实现。至于你是用Java还是Python还是Php还是用什么框架,本质上只要你可以实现你的草图就是可行的。最后一个环节就是使用,你在构思的思路上使用适当的工具实现了你的产品交付给你的用户。整个过程就是这样,如果你理解整个过程,请不要再讨论我是学xxx语言的,xxx语言世界最牛逼,xxx语言无用。哎

  如果你好好的理解了我说的技术研发是一项创新性的活动,创新性活动最重要的是构思。其实应该有答案啦。

  从现在的开发情况,我是这么来理解的,在之前移动端没有火之前,大部分开发都web,桌面开发。但是我们思考一下,其实不管web,桌面,都是端的开发。所以我们要把概念放大,不管你是做移动端,桌面端,web端的开发,都是端的开发。端的开发,从表象上看,都是 展示给用户使用的界面+服务器端的数据交互。对吧!

  展示给你用户使用的界面,现在web端一般是使用html+css+js呈现,android端使用Java或者Kotlin开发,Ios端使用swift或者OC开发。那服务器端的数据交互呢,你可以使用Java,Php,Nodejs等各种你熟悉的语言。当然,从很多公司的岗位上划分,服务器端数据交互这部分一般也可以统称成后端工程师。

  对应刚入门技术的技术小白,总是对自己学的技术方向的担心,这种担心也是有道理的。这里要讨论的是技术和市场的挂钩,我们把市场缩小到技术公司这个单个因素,这样比较好论述。所以到技术公司这个层面,确实会有冷门的技术和热门的技术,但是大家还是要记住创新性活动的主要因素是构思,因为工具的学习周期是不会太久的,你只要拥有了技术思考的构思和思维逻辑,学习一门新技术难度是不大的。

  接着讨论技术的冷热,那选择使用和学习什么技术,和技术公司的技术团队和产品是有关系的。比如这个技术团队都是用PHP的,那反馈到招人上就是招聘php的工程师,所以我建议如果是为了最快的找到一份工作,可以多去拉勾等技术招聘网站看一下各个技术门类的招聘人数和技术公司的多少,并且你可以看看公司招人的要求,对初学者大有帮助。

  现在很多的手机APP与服务器交互使用的是HTTP协议和rest api。那么后端就完全是web后端那一套技术。

  现在市面上能见到越来越多的完全使用html5来写的手机APP。不知道这会不会成为未来的趋势,不过html + css + js已经成为开发手机APP的一个选择。

  大概10年前,我正式入行做程序员。“网上冲浪”的说法已经不知道多out了,WEB2.0的大潮扑面而来,编程届流行的是PHP,JSP和ASP,最后这个P是什么鬼?Page:网站页面。从那时开始,和服务器端关联的程序就分成了两类:B/S架构和C/S架构。B就是Browser(浏览器),C就是Client(客户端)。

  时至今日,没有任何悬念,B/S势如破竹,摧枯拉朽般地攻城略地,到今天,PC端的C/S开发已经极度萎缩坍塌,除了一些沉淀下来的常用的软件(如:QQ),绝大部分都已经不见踪影。

  今天的APP,其实就是昨天的C/S软件;那明天的APP,会不会是今天的C/S软件?

  这事呢,其实谁都说不准。我只能说一说,为什么之前的C/S软件会败下阵来:

  1、C/S软件需要下载安装,增加了用户上手的难度,不如B/S架构打开浏览器输入网址就用方便。在以前(现在都还有),一些项目开发完成之后,还需要一个“部署”团队,把client端的软件在用户(尤其是医院/政府机关这类大爷用户)的电脑上一台一台地安装部署——甚至还要常驻一两个人在现场,因为接着还可能有各种日常问题,你的软件是依赖于操作系统环境运行的,而操作系统环境是随时变化的,某天用户随意安装更换了一个别的软件硬件,可能你的这个软件就跑不起来了。

  2、跨平台(操作系统)的问题。就像今天我们下载APP要区分是Android还是iOS一样,对用户而言只是一个选择的问题,但对于开发人员来说,就是一个n倍工作量的问题。是n倍而不是2倍,因为你不仅要考虑Android和iOS的区别,你还要考虑Android 4.0和Android 5.0和Android 6.0的区别……现在明白为什么windows能一统江湖了吧?大家都忒烦忒烦忒烦写一个程序,要兼容多个平台啊!

  3、软件升级的问题。一方面作为用户来说(至少我这种用户吧),是很烦动不动就一个升级提示的;另一方面更大的问题是由于用户可以使用不同的版本,开发团队必须考虑不同版本之间的兼容性,这又是一个复杂得不能再复杂的问题,工作量一下子m倍以上了。所以,你看有时候一些“不负责任”的软件就直接提示“你目前使用的版本太低,该功能已不再支持,请下载最新版本”之类的——不是对用户不负责,实在是扛不住了啊,亲~~

  作为一个用户,我求求你们多多开发web,哪怕有广告,我也能接受。至少我关了浏览器就不会再弹出来。

  从另一个问题跳过来的,本来不关注这个人,发现他的言论已经有一千多人点赞了,影响还挺大,我不得不出来更正一下他的言论。我不否认他教你们的学习方法有用,我只是觉得他也没必要对Ruby on Rails睁着眼说瞎话。

  学Web开发还有比Rails资料全的吗?Ruby on Rails Guides

  我指的就是那句「ROR的资料过时了」。Rails之父DHH写过一篇Blog,我之前正好翻译了几句,给大家贴出来看看。其他我不多说了。

  记得我第一次开始写Web应用的时候,起步艰难。单是搞清楚下载哪些组件,并配置它们,用它们开始一个Hello World应用都是一件艰巨的事情。像Ruby on Rails这样的框架改变了这一切,现在你线分钟内完成一个生动的基于数据库的Web应用。

  这意味着你花了几天时间在完善的教程指导下可以从(几乎)零基础到完成一个(八九不离十)可以工作的软件原型。你会感觉这很棒,你的Web开发能力从来没有像今天这样如此熟练。

  就是因为如此大的飞跃,也难怪很多人会把开始误以为结束。虽然知道了如何上手,但是这仍然是不切实际的期望。建立一个像Basecamp、Shopify、Github或是Zendesk这样完善的信息系统还是需要深厚的技术功底的,请不要愚蠢地否认这一点。

  也许我们有时候假装不以为然。我对我们制作的入门文档只是专注于如何容易上手而没有覆盖到真正需要完成的工作上面而感到内疚。简单来说,这是因为考虑到,大多数人的学习障碍在于学习路径。

  现在这一障碍基本已经被清理掉了,是时候要把重点放在后面部分的讨论了:想要真正擅长某事必须花费时间。Web开发离开Rails也并没有什么不同。我们只是改变了游戏规则,把“上手难,精通难”变成了“上手容易,精通难”而已,是的,后半部分依然相同。

  我一直在持续学习,持续向好。我已经在这个web开发游戏上花费了该死的将近二十年(如果算上我开始使用HTML/CSS的时候)。这并不意味着你也需要花费二十年才能擅长这个游戏,但这意味着你应该对未来的三到六个月的学习有切实的预期。

  这与其说是你会花多久来学习框架、语言或系统生态系统,倒不如说你会花多久成为一名(领域)专家。知道做一件事有十种不同的方法是一件事,而知道哪种方法更好更适合则是另外一件事。

  这就是为什么我喜欢比较写软件和写散文的原因之一。大多数人在高中时代就有使用自己母语写作的基本能力,但是,需要花多久才能变成一个伟大的作家呢?大多数情况下,会比你想象的更长,很少能找到出奇的。

  在我们为入门而感到高兴的同时,也需要为真正的精通准备好一个切实的时间表。认真的准备一个闪耀的年度学习旅程,如果你知道你在做什么,它将会充满乐趣。

  ecting-unrealistic-expectations-b75c7039445d#.2usbuh1rv

  具体要看瓶颈在哪了。到时候就可以把性能瓶颈的地方用其他语言代替,比如C++、scala、golang、rust等语言,很多公司都这么干。 Rails的长项是快速生产,它的性能也完全可以支撑你的业务到百万级用户了。当然前提是,你的业务对性能要求很高的话,选Rails就不是很好了。现在的问题是,Rails入门简单,导致了大量的Rails开发者其实都不懂Ruby,很多性能问题的出现,不是因为Ruby不行,而是人不行。

  我本来已经有大概五年没写过 WEB 程序了,不过机缘巧合,现在公司急缺合适的QA平台,兜兜转转这个任务落在了我身上,项目组人数大约一人。

  虽然刚开始接手的时候挺介意的,毕竟让大家看见架构部的人天天在那儿调 css ——我们天天闲的蛋疼这件事情就实锤了。

  但是一周的开发下来,我真的很想把自己在钉钉上的签名改成——写页面让我快乐。

  的确,写几个页面看起似乎远不如数仓、数据建模、BPM、服务治理、DDD、ToGAF …… XXX 这些工作内容“高大上”。也许是我对它们都太疲倦了吧,我不想管什么CAP、不想管什么可扩展、可伸缩、可XXX……我突然又觉得写页面有意思了~~

  原因在于,大多数人只是在所谓的框架下堆砌业务,而对原理和基础漠不关心,自然这类ren也无法提高。

  所以我其实是跑题了,我的观点是不在于web开发有没有前途,而在于你自己原不愿意钻研。

  引题主一句话,感觉你对WEB开发并不了解,而且感觉你认为做WEB开发就是做网页。

  不知道其他人对WEB开发是怎样定义的,但我认为WEB开发包含一系列技术和环节,如HTTP协议,数据库,WEB服务器,HTML/CSS/JS等。

  前端包括HTML/CSS/JS等一系列技术,而你看到的知乎网页也就是这一系列技术的代码所计算出来的结果。

  后端则主要是处理一些业务逻辑处理和数据存储等很多东西,处理后的结果或数据则返回给客户端(浏览器)。不要简单的认为后端就是数据库的增删改查,你上传一张图片,后端可能要做压缩,裁剪,变换甚至高级点模式识别,你在页面上看到的数据或图表可能就是后端通过大数据分析的结果。

  我觉得你可以从JAVA WEB入手,也可以学PHP,Python等,重要的是专攻一门,打好基础然后再去学其它的知识,这样会很快。

  想从事这方面的工作话,简单容易的,大家都会,工资待遇上你就可能没有优势,还是下点苦力吧。

  业余学的话,可以学简单点的,如python flask,web.py, tornado,php也不错,简单上手快。

  技术确实可能会过时,不过JAVA,PHP,Python做WEB开发还是比较火的。

  今天中午刚好参加了一个hr组织的年底招聘交流,一个兄弟部门和我所在部门一样都要招web前端开发,但是又一直没有招到合适的人。原因在于web开发知识面不但要求广,还要求有深度!

  我自己把前端分成两类,一类是写html css 等web page,也叫网页重构吧,一类是在此基础上做web app业务开发。后面一种要求就比较高了 ,不但要求会html css js 还要求你会服务器开发的各种技能,包括但不限于数据库技术,linux shell操作,熟悉各种浏览器的兼容模式等等等等,有点全栈的感觉!

  如果少年你读到这里,发现自己可以轻松搞定,那你还等什么,成都腾讯招聘web前端多枚,赶紧私信我!看链接:

真人线上国际
版权所有©杭州 真人线上国际 通信技术股份有限公司
真人线上国际 京ICP备17049943号 网站地图