精华内容
下载资源
问答
  • 该文档为后端开发个人简历模板,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • 后端开发工具

    2018-12-21 00:30:19
    idea的免安装版的idea,支持go,java,mysql, web的开发
  • 个人觉得,Java开发对于初入互联网的人来说是一个不错的选择,前不久一个不知名的招聘平台(Boss直聘)发布了一个自己统计的2019年的就业...因为Java后端作为一个开发性的工作,说到底工作还是做业务逻辑上的处理,就是
  • Java后端开发一个月速成八股文,考研失败参加春招,常见java基础,集合,设计模式,JVM,MYSQL,计算机网络,redis,spring,springmvc,springboot,Mybatis,多线程,JUC并发编程,分布式理论,常见面试问题
  • Java后端开发简历

    2018-09-08 00:28:36
    Java后台简历模板,希望可以帮到学弟,祝你一路顺风,
  • 非常详细,一步一步教你搭环境
  • java开发流程,一般人我不告诉他!看到了不要下载啊!
  • Java实用工具类(后端开发必备), GZIPUtil、HttpUtil、HttpUtil、NetworkUtil、RegexUtils、PropertiesUtil、DateUtil、BigDecimalUtil、EmailUtil、FastJsonUtil、ProtobufUtil等等
  • 后端开发-源码

    2021-02-08 22:18:34
    后端开发
  • java的一个视频网站前后端都有,主要用于让新手习惯开发格式
  • 一文看懂Web后端开发

    千次阅读 多人点赞 2021-03-20 23:53:34
    一文看懂Web后端开发 前言 由于网络上系统地介绍后端开发的文章实在太少,而最近有恰巧有许多同学问我“什么是后端开发?”、“你为什么喜欢后端开发?”、“做后端都需要学什么?”,那么我们就来讲一讲,到底什么...

    一文看懂Web后端开发

    前言

    由于网络上系统地介绍后端开发的文章实在太少,而最近有恰巧有许多同学问我“什么是后端开发?”、“你为什么喜欢后端开发?”、“做后端都需要学什么?”,那么我们就来讲一讲,到底什么才是后端开发。

    定义

    后端开发Back-End Development,也称服务端开发服务器端开发等)是创建完整可运行的Web应用服务端程序(服务端程序和资源合称为后端,即在服务器上运行的、不涉及用户界面的部分)的过程,是Web应用程序开发的一部分。后端开发者使用JavaGolang等语言及其衍生的各种框架、库和解决方案来实现Web应用程序的核心业务逻辑,并向外提供特定的API,使得Web应用能够高效、安全、稳定地运行。

    说人话!

    好吧,如果你看了定义仍然很懵,那我就用一些非常易于理解的表达形式来说一说“什么是后端开发”。虽然这些表述可能并不严谨或完全正确,但是我相信这样一定能使你明白什么是后端开发。

    这里我们拿前端来类比一下,因为我相信绝大多数看到这篇文章的人都已经对“什么是前端开发”、“什么是前端”有一定了解了:

    1. 前端就相当于我们的肉体,后端就相当于我们的灵魂和思想;
    2. 前端是如何操作游戏,后端是具体的游戏规则;
    3. 前端是用户能看到的,后端是用户看不到的;
    4. 前端是跑在浏览器上的,后端是跑在服务器上的;
    5. 前端采集用户的输入,后端处理用户的输入;
    6. 前端开发是写代码给用户看,后端开发是写代码给服务器看。

    是不是这样一讲就明白了?那我们接着往下看。

    具体职责

    1. **实现Web应用程序的实际业务逻辑。**即:实现Web应用程序的具体功能(如注册、发表和查询信息等)或Web应用程序在服务端执行的具体操作。这是后端开发这项工作的主要内容;
    2. **使用API和创建API。**后端需要向前端提供前端所需的数据,也需要使用第三方API来完成业务逻辑(如完成某个功能需要通过API调用其他应用、在使用框架进行开发时需要使用语言和框架的API、操作数据库时需要使用数据库或ORM框架的API等)。因为在后端开发的过程中经常需要与API打交道,所以有人也把后端开发称为“API开发”,就像有些人将前端称为“GUI开发”一样;
    3. **优化。**在用户量达到一定程度后,就会出现诸如响应慢等各种问题(不理解的话想想你们大学的选课系统);同时,随着代码行数的增多,许多架构上的缺陷可能也会随之暴露出来,如代码逻辑混乱、模块划分不正确等。此时就需要后端开发人员对Web应用程序进行优化,如重构、分布式部署、优化业务逻辑、单体应用拆分成微服务等;
    4. **架构设计。**虽然一般只有高级的后端开发人员和架构师才需要关注架构问题,但是架构设计是后端开发中非常重要的一环,因为它决定了如何组织代码、某个模块负责解决什么样的问题、系统的扩展性和可维护性如何、业务逻辑如何进行组织等,也会一定程度上影响到业务逻辑的具体实现(比如微服务和单体架构这两种架构下,同一种业务逻辑的实现可能完全不同)。

    特征

    1. 后端是工作在服务器上的,负责通过API向前端或其他系统提供其所需的信息(如数据等);
    2. 后端开发实际上是开发Web应用中对用户不可见的部分(如核心业务逻辑、数据库等),大多数的后端开发都是不涉及用户界面的(除了在前后端不分离的架构中将前端的静态页面通过模板引擎改造成动态页面时);
    3. 通常情况下,一个Web应用的绝大多数代码都属于后端代码,因为后端承担了Web应用实际的业务逻辑;
    4. 后端开发的压力通常比前端开发要大,因为后端是Web应用的“灵魂”,它影响着Web应用的方方面面,除了业务逻辑之外还需要考虑安全性、稳定性、可维护性、可扩展性、伸缩性等问题。

    技术

    1. 程序设计语言。许多语言都可以用于后端开发,比较流行的是JavaGo。例如我所使用的就是Go语言,也曾经使用过Java。此外,由于后端开发中经常需要和数据库打交道,所以作为后端开发者,还需要懂SQL语言(如果使用了NoSQL的话,也需要懂NoSQL数据库的语言);
    2. 数据库。数据库作为一种简单易用的持久化机制,可以让用户的信息不因为断电等故障而丢失,Web应用开发中经常需要用到数据库,甚至许多简单的Web应用本质上都只是“数据库的可视化系统”,也因为绝大多数简单的业务逻辑本质上都只是对数据库的增删改查(即CRUD);
    3. 框架、库和解决方案。想要高效率地开发Web应用,框架、库和解决方案是必不可少的,比如MVC框架、ORM框架、RPC框架、微服务开发框架、云基础设施(如Service Mesh、容器编排工具等)、运行时环境/容器(如Docker)、消息队列(Message Queue,MQ)、日志收集和分析工具等;这部分有一些框架是可以跨语言通用的,比如gRPC(RPC框架)、Istio(Service Mesh),也有一些是某种语言专用的,如Spring Cloud(微服务开发工具,JVM技术栈专用)、Gin(MVC框架,Go语言专用);
    4. 架构和指导思想。架构是后端开发中非常重要的一部分,作为一名后端开发者需要了解常见的架构,如三层架构、SOA、微服务架构、六边形架构等,还需要了解常用于后端开发中的指导思想,如设计模式、MVC模式、DDD、CQRS/ES等;
    5. 包管理工具/项目管理工具。因为后端开发中经常要用到各种框架和库,所以用于管理这些框架和库的管理工具是非常重要的。每一门语言都有自己的包管理工具,如Java的Maven,Go语言的go mod等;
    6. 基础知识。不管是前端开发还是后端开发,都需要对操作系统、计算机网络、数据结构等基础知识有一定了解,还需要了解对应语言的编码规范、重构等知识,这可以帮助你理解框架和库,也能帮助你写出更高质量的代码;
    7. 开发方法。实际上这个也可以说是属于指导思想的一部分,包括CI/CD、敏捷开发、DevOps等;
    8. 版本管理工具。相信我,几乎没有人能离开这玩意。最常用的是Git

    误解

    有不少人其实对后端开发误解很深,以下是一些常见的误解:

    1. 后端开发就是CRUD/后端开发太简单了;
    2. 不同系统的后端面临的问题高度相似;
    3. 后端开发很枯燥;
    4. 后端的逻辑比前端复杂;
    5. 对于后端开发者来说,设计业务逻辑是一件很简单的事情;
    6. 后端开发的工作太单一了/后端不是一个综合的领域;

    这些误解有时候会劝退一些有意从事后端开发的同学,我们现在就来澄清一下这些误解:

    1. 我不否认很多简单的Web应用确实就是CRUD,但是绝大多数的Web应用都不仅仅是CRUD。至于“太简单了”,能说出这话的人一定没做过后端,或者只做过CRUD,或者是超级大牛。如果不是超级大牛的话,请说这话的人写一个能撑住五万并发的秒杀系统出来,并做压力测试,然后再看看这句话;另外,后端开发是一个非常综合的领域,既有非常抽象的架构和指导思想,又有具体的解决方案和业务逻辑,还涉及到许多计算机底层问题(如多线程、网络、I/O等)。并且,虽然后端技术稳定,但也不至于学了点东西就可以到哪里都通吃,例如,如果你没听说过云原生、微服务、Serverless等新技术的话,那说明你已经很久没有跟上后端技术的发展了;以及,如果你现在还在用JSP,那我敢肯定你一定没有意识到诸如前后端分离之类的新问题;
    2. 这个说法也完全不对。不同的系统所面临的具体问题是完全不同的。先不说对一个具体的需求可能有很多种不同的解决方案(如针对单点登录(Single Sign On,SSO)问题就有长连接(虽然我没见过落地案例)、共享Session、JWT等方案),有时候甚至当你拿到一个需求时,可能连要解决什么问题都搞不清楚,这也就是为什么诸如DDD这样的系统分析方法一直备受关注,且重构也经常在各种规模的Web应用中都引起重视,因为用户需求往往不是那么明确,可能会引导我们做出错误的设计;
    3. 记住,枯燥的是CRUD,而不是后端。后端开发的技术含量实际上是非常高的,也非常有意思,充满了未知与挑战。像微服务、云原生、DDD、CQRS/ES、高并发、负载均衡、缓存、消息队列、多线程、微服务监控、Service Mesh等技术,每一项都值得我们去研究,而这些技术中有很多都是在大型Web应用中被频繁使用的,如果你真正了解后端开发的话,是绝无可能说出“后端开发很枯燥”这样的话的。请记住,并不是不涉及界面的工作就一定很枯燥;
    4. 在大多数的系统中是这样的,但是有些Web应用的前端逻辑复杂程度可能不亚于后端,甚至可能还会超过后端,比如像石墨文档这样的多人协作文档系统,还有ProcessOn这样的在线绘图系统,其前端逻辑可能都是非常复杂的;
    5. 参见2。能说出这话的人一定没重构过一个“大泥球”一样的应用,也没设计过一个用户需求非常模糊的系统(比如用户只给了一条需求:做一个CMS(内容管理系统),你觉得简单你可以来试试,然后用它一个月,如果你不是个有经验的后端开发者的话,我相信你一定会被你自己所写的这个系统逼疯,恨不得将它完全重构);
    6. 参见1和2。如果后端开发还不综合的话,那什么才是综合的呢?

    我不否认做一个只会CRUD的后端开发者很简单,但既然对后端开发感兴趣,那我们就要有更高的志向,不能把自己框死在CRUD里。

    这里送给各位未来的后端开发者一句话:“我等采石之人,当心怀大教堂之愿景”。如果自己一个人完成一个简简单单的CRUD项目,你可以有自己的想法,例如在其中应用DDD和CQRS,或不断地优化它以达到最佳状态;如果迫于工作经验而不得不CRUD,你也可以用业余时间去提升自己的技术,让自己有更光明的未来。

    什么样的人适合做后端?

    说了这么多,那什么样的人才适合做后端开发这份工作呢?

    1. 讨厌写用户界面或与用户界面打交道的人。有很多人是因为讨厌写界面(尤其是CSS这种反人类的东西)才来做后端开发的。这里没有界面,讨厌与用户界面打交道的人不妨尝试一下后端开发;
    2. 细心的人。后端开发实际上比前端开发更需要细心。就如前文所述,后端是Web应用程序的“灵魂”,后端开发中的许多问题都决定着Web应用的“生死存亡”,尤其是数据校验多线程/多进程异步编程事务/分布式事务与第三方系统的交互等,这些问题有非常非常多的细节,且既复杂又非常重要,一旦在细节上出现问题(如数据校验不完全或加锁解锁的逻辑出现错误),轻则出现错误的数据或业务逻辑不能正常运行,重则直接导致整个Web应用挂掉或出现安全问题(如数据校验不完全导致的文件上传漏洞、函数使用错误导致的远程命令执行漏洞等)。所以如果你想从事后端开发,那足够细心绝对是一个必要的条件;
    3. 喜欢与机器打交道多于与人打交道的人。与前端开发是“写代码给人看”的不同,后端开发是“写代码给服务器看”(或者说给前端/第三方系统看)的。虽然这两个说法都不太严谨,但是后端开发更多的就是与服务器打交道(如降低资源使用率、提高Web应用程序的运行效率等等),而不是与人打交道(如提高页面的美观程度、思考用户的使用逻辑和心理等等);
    4. 想编写实际的业务逻辑的人,或喜欢算法和逻辑的人。前端的逻辑更多的是交互逻辑,如点击某个按钮应该弹出什么窗口、怎么把数据渲染成用户想要看到的页面等,而后端的逻辑更多的是实际的业务逻辑,如完成某个功能需要怎样做、请求某个API应该返回什么样的数据等。如果你和我一样写前端时因为总是接触不到实际的业务逻辑而感到不爽,那么大后端欢迎你;
    5. 好奇心强、自学能力强且有终身学习的觉悟的人,或者喜欢钻研技术的人,或喜欢充满挑战性的工作的人。后端看似简单,实际上技术含量是非常高的。就如前面所说,现在的后端可不仅仅是CRUD,而是随着互联网和云计算技术的发展而不断改变,Web应用程序在需求不断变化的过程中功能变得越来越强,架构变得越来越复杂,对性能的考验也越来越严峻,技术含量自然也就越来越高。作为一名后端开发工程师,需要有不断学习新技术的觉悟,还需要有一定的自学能力,因为不是什么技术都有人教你的,在学习和使用最新技术时对着英文文档啃是常有的事;
    6. 对系统架构感兴趣或想要成为架构师的人。虽然不可否认的是由于前端至今没有“一统天下”的解决方案而使得前端开发人员经常会比后端开发人员更早地接触到架构的部分,但是传统意义上的前端说白了也就是浏览器那“一亩三分地”(前端同学别喷我,这里仅仅说的是传统的Web前端,“大前端”是不算的哈),而后端技术的天花板则是“地球上人类的数量”(接触过高并发的同学看到这句话应该很有感触吧,哈哈),而核心的业务逻辑往往存在于后端,后端的优化压力往往比前端更大,这就使得初级的后端开发者在进行开发时需要对系统的架构有一定了解、高级的后端开发者需要经常思考系统的架构设计的问题,这也使得后端开发者更容易成长为架构师;
    7. 沉得住气的人。除了有第5条中提到的“后端的技术含量实际上是非常高的”这一原因之外,还有一个原因就是后端并不是“所见即所得”的,经常需要你编写几十甚至几百行代码、做无数复杂的配置才能把Web应用运行起来(注意,是运行,写业务逻辑的话需要更多代码),另一个原因是后端开发的门槛比前端要高——你至少得掌握一门语言和这门语言在后端开发方面的一些框架或库才能开始开发。所以,后端开发者必须要沉得住气,不能因为写几行代码看不到任何效果就想放弃;
    8. 对系统的基础设施(如框架、库和解决方案等)感兴趣的人。据我所知,许多在云原生方面有深刻造诣的大佬都是从后端开发者成长起来的,许多框架的作者曾经也是后端开发者。如果你碰巧像我一样对框架、库和解决方案(如Spring BootSpring CloudGinKubernetesIstio等)十分感兴趣,那么可以从成为一名后端开发者开始,在编写业务代码的过程中慢慢体会框架的重要性和所用框架的优缺点,以及如何设计一个好的框架。

    虽然你并不需要满足以上每一项才能成为一个后端开发工程师,但是如果你发现你满足上面的某一条或某几条,而且你还没有找到自己的方向,那么不妨来尝试一下后端开发。

    我为什么喜欢后端开发

    先简单介绍以下我的经历吧。我从2019年1月开始接触前端开发,于2019年8月正式转向后端开发,并一直从事后端开发至今。我喜欢后端开发的原因,其实很简单:

    1. 我反感写界面,痛恨GUI编程,每次一写界面我就想遁地。后端开发不需要考虑界面的问题,这里没有界面,只有API;
    2. 我喜欢写实在的业务逻辑,不想总是隔着个API而“任人摆布”,解决实际问题对我来说简直棒极了;
    3. 我喜欢与机器打交道,可以写一天的代码而不感到无聊,但我不喜欢与人打交道,尤其是面对面交谈非技术问题时总会感到不自然(当然,聊技术我能聊一天都不嫌烦);
    4. 我想要成为一名架构师,想成就优秀的设计,而后端开发能更多地接触到系统的架构和设计;
    5. 接触到后端开发后,我发现我对这一领域内的绝大多数事物都感兴趣,如云原生、DDD、Service Mesh、系统架构等;
    6. 写前端会让我感到痛苦万分,因为我审美诡异、不擅长思考用户的使用逻辑、不擅长编写交互逻辑,写出来的东西又丑又反人类。而当我开始写后端时,我发现我的思考方式经常和真实的业务逻辑出奇地一致,有时候还能在做项目的过程中发现当前所使用的工具的不足,并且思考如何才能设计得更好;
    7. 做后端开发做了一年左右,我越来越感觉到我喜欢这份工作。

    如果你也和我有一样的想法,那么你说不定也非常适合从事后端开发的工作。大后端欢迎你的到来。

    结语

    很多人对后端开发的误解源于缺少一篇系统地介绍后端开发的文章。虽然作为一个仅仅入行一年半(截止到2021年3月)的菜鸟,我对后端开发的理解肯定还有许多不足与偏颇,这篇文章也并不那么“系统”,但我仍希望这篇文章能帮助到其他同学了解后端开发或消除对后端开发的误解,抑或找到自己的方向而走上后端开发这条路。

    如果发现文中的错漏之处,欢迎发表评论或联系我进行改正。希望能帮到更多对后端开发感兴趣的同学。

    展开全文
  • 后端开发综合笔记.pdf

    2021-09-11 21:01:46
    后端开发综合笔记
  • java后端开发规范.docx

    2020-08-26 17:08:53
    1. 【强制】类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:DO / BO / DTO / VO / AO 正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion 反例:macroPolo / UserDo / XML...
  • 很多刚开始学习java的小伙伴可能都比较迷茫,不知道从哪里开始学,学习过一位up主程序羊的java学习相关视频,跟着把java后端开发学习路线自己整理了一份,供大家参考,大家一起努力!
  • java后端开发面试题总结
  • 物联网后端开发手册.pdf
  • 该文档是我在完美世界时leader给我的一份适用于java后端职位的实习生练习题。
  • mac下后端开发常用软件

    万次阅读 2021-11-19 17:14:38
    Google浏览器 浏览器中的加特林,这无论中前端开发还是后端开发都是经常用到的 Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中。有了Docker,平时常用的mysql...

    简介

    换了台macbook,接下来分享下我在mac里安装的常用软件,也方便自己以后重装

    Intellij IDEA

    Java开发神器,开发效率高,功能非常强大,社区版阉割了太多功能,满足不了开发需求,旗舰版收费,没钱也可以用,你懂的,这里除了IDEA要安装外,还可以在其之上安装很多好用的插件,详情可以看这里:Web开发中IDEA常用的插件
    在这里插入图片描述

    navicat premium 12

    数据库连接工具,支持多种主流数据库,mysql,oracle,sqlServer,以及各种云数据库(阿里云,腾讯云,AWS),功能强大,页面元素扁平化,美观,同样需要收费,同样。。。
    在这里插入图片描述

    Google浏览器

    浏览器中的加特林,这无论中前端开发还是后端开发都是经常用到的
    在这里插入图片描述

    Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中。有了Docker,平时常用的mysql,redis,各种消息队列就可“一键安装”了,方便平时开发和调试代码,可以说是另一个开发神器了
    在这里插入图片描述

    Postman

    服务端接口调试神器,支持多种请求方式,界面美观,功能强大,也可以作为前后端分离开发调试的工具
    在这里插入图片描述

    Git

    用于代码版本管理,做开发必装工具
    在这里插入图片描述

    Java

    安装开发的jdk,我安了好几个版本,但建议安三个版本就好:1.8、11、最新版
    在这里插入图片描述

    Mysql

    本地安装一下Mysql数据库,当然如果是开发的话,最好还是在虚拟机中安装所有开发环境,本地安装只是为了方便单机写代码
    在这里插入图片描述

    FinalShell

    mac下没有Xshell,Xshell这个软件据说会收集你的服务器信息,太不安全了,所以可以用国产软件FinalShell代替
    在这里插入图片描述

    iTerm

    iTerm也代替Xshell的好选择,iTerm 是一个为Mac OS X编写的,功能齐全的终端仿真程序。目标是在为用户提供OS X下最佳的命令行体验。iTerm都不会用,还敢说自己是老司机?
    在这里插入图片描述

    Sublime

    Sublime Text 是一个文本编辑器,同时也是一个先进的代码编辑器。Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim。
    在这里插入图片描述

    Python

    用以做Python开发,建议安装python3+版本,写写脚本,当当计算器什么的,还是很方便的
    在这里插入图片描述

    pycharm

    PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。IDEA Python版
    在这里插入图片描述

    csdn 客户端

    用以登陆csdn,上班摸鱼用
    在这里插入图片描述

    leetcode 客户端

    leetcode 刷题用,上班摸鱼必备x2
    在这里插入图片描述

    ClashX

    lash是一款用Go语言开发的支持 Linux/MacOS/Windows/Android 等多平台的代理工具,支持 ss/v2ray(不支持 ssr),支持规则分流等
    在这里插入图片描述

    draw.io

    draw.io 是一款Mac平台上免费的流程图绘制工具。提供了流程图、工程图、UML图等丰富的图表
    在这里插入图片描述

    Typora

    MarkDown文本编辑器,Windows上最佳markDown语法编辑器,用着很舒服
    在这里插入图片描述

    XMind8

    思维导图工具,用来画思维导图很方便,可以用来梳理工作,学习流程,说起画图,这个网址也很方便:www.processon.com
    在这里插入图片描述

    网易有道词典

    这个软件翻译功能强大,而且其中的取词和划词功能,简直就是妙啊。
    在这里插入图片描述

    键指如飞

    键指如飞,Mac上优秀的快捷键学习工具。只需双击Command,就能够显示当前app的所有快捷键。学习软件,从快捷键开始,大大提高工作效率,让操作变得更丝滑。
    在这里插入图片描述

    snipaste

    Snipaste 是一个简单但强大的截图工具,也可以让你将截图贴回到屏幕上,很多人推荐的一款截图软件,尽管在我心目中最好的截图软件叫QQ
    在这里插入图片描述

    有道云笔记

    一款非常好用的云笔记软件,采用了增量式同步技术,即每次只同步修改的内容而不是整个笔记,“三备份存储”技术将用户的数据在三台服务器上进行备份存储。好记性不如烂笔头,多记笔记,工作几年后,会感谢自己有这个习惯的
    在这里插入图片描述

    rectangle

    Rectangle 是一款开源免费的 Mac 窗口管理工具。Rectangle 可以让用户使用键盘快捷键来移动和调整窗口大小,很好用的窗口管理工具。
    在这里插入图片描述

    腾讯柠檬清理

    腾讯柠檬清理是腾讯电脑管家团队针对Mac系统专属制定的Mac清理软件,能辅助你更好的了解你的Mac,匠心打磨清理体验,一键释放磁盘空间,最主要它是免费的,且好用
    在这里插入图片描述

    QQ和微信

    QQ拿来截图的,微信拿来点赞的
    在这里插入图片描述

    office

    Word、PPT、Excel的办公重要性就不说了吧,百度 KMSpico ,你懂的
    在这里插入图片描述

    IINA

    IINA是一款macOS下的视频播放器软件,它契合 macOS 设计风格、力求做到最佳用户体验、是一个轻便且功能强大的视频播放器。
    在这里插入图片描述

    iStat Menus

    iStat Menus是Mac上最优秀的系统监控工具,能够在系统菜单栏实时监控CPU、GPU、内存、硬盘、网络、温度、电池以及系统时间等,稳定且占用资源少,可以说是装机必备的软件。
    在这里插入图片描述

    AdGuard

    Adguard是一款功能强大堪称完美的广告拦截插件,可以拦截所有浏览器上的广告!各种视频广告、弹窗内容也是可以正常拦截的,它几乎是超越一切广告拦截软件的存在,且不会对你浏览网页或者看视频造成任何不良影响。
    在这里插入图片描述

    HazeOver

    HazeOver是一款窗口管理工具,摆脱分心,专注于当前的任务。通过调暗所有背景窗口,它自动突出显示前端应用程序窗口。
    在这里插入图片描述

    App Cleaner & Uninstaller

    App Cleaner & Uninstaller 是一款系统增强的软件卸载和清理工具,它具有专业的软件卸载管理功能,可以深度的卸载清理某一个应用,删除软件的同时,可以一并清理软件生成的配置文件、依赖文件等等,同时还可以管理macOS开机自启动程序的管理、扩张管理功能等等。
    在这里插入图片描述

    QQ音乐和网易云音乐

    音乐就是生产力
    在这里插入图片描述
    在这里插入图片描述

    搜狗输入法

    下载自己常用输入法
    在这里插入图片描述

    钉钉和企业微信

    根据公司需要选择安装吧
    在这里插入图片描述
    在这里插入图片描述

    百度网盘和迅雷

    方便下载资源
    在这里插入图片描述
    在这里插入图片描述

    windows 常用软件参考如下

    windows 下后端开发常用软件

    最后

    最后给大家介绍一个网站,打开后,全是惊喜
    https://macwk.com/

    展开全文
  • 整合spring+springmvc+mybatis,可以直接开发在上面继续开发,并且备注了详细的讲解
  • web后端开发学习路线My previous article described how you can get into frontend development. It also discussed how the front end can be a place filled with landmines – step in the wrong place and you'...

    web后端开发学习路线

    My previous article described how you can get into frontend development. It also discussed how the front end can be a place filled with landmines – step in the wrong place and you'll be overwhelmed by the many frameworks of the JavaScript ecosystem.

    我以前的文章描述了如何进行前端开发 。 它还讨论了前端如何成为一个充满地雷的地方-进入错误的地方,JavaScript生态系统的许多框架会让您不知所措。

    In this blog article, let's see how you can get into back end development. Along the way, I'll answer some of the most common questions people ask me about it.

    在这篇博客文章中,让我们看看如何进行后端开发。 在此过程中,我将回答人们问我的一些最常见问题。

    什么是后端开发? (What is Backend Development?)

    Front end development involves what a user sees on the screen when they open a specific URL owned by you. Even in a completely static environment (with only HTML/CSS), when someone opens a website, some server on the planet needs to respond to you with those HTML and CSS files.

    前端开发涉及用户打开您拥有的特定URL时在屏幕上看到的内容。 即使在完全静态的环境(只有HTML / CSS)中,当有人打开网站时,地球上的某些服务器也需要使用这些HTML和CSS文件来响应您。

    That server is just a computer, just like the one you use yourself to browse the internet. But it has been tuned for performance, and doesn't have unnecessary components like a mouse or keyboard attached. And it sits with tons of other computers probably in a data warehouse.

    该服务器只是一台计算机,就像您自己用来浏览互联网的计算机一样。 但是它已经过性能调整,并且没有多余的组件,如鼠标或键盘。 它与数以千计的其他计算机一起放置在数据仓库中。

    Programming those computers in some special way is called back end development.

    以某种特殊方式对这些计算机进行编程称为后端开发

    You may think that backend development is called what it is because it runs behind the user's back. A visitor to your website never really "accesses" the back end completely. They just communicate with your server, either directly through ports for very limited access (like transferring HTML/CSS files) or not even that – buried deep under CDNs or firewalls (like Cloudflare).

    您可能会认为后端开发就是所谓的,因为它在用户背后运行。 您网站的访问者永远不会真正完全“访问”后端。 它们只是直接通过端口与您的服务器进行通信,以进行非常有限的访问(例如传输HTML / CSS文件),甚至不进行通信–将它们深深地埋在CDN或防火墙(如Cloudflare)下。

    Now that we have a raw understanding of what back end development means, let's get into some real questions.

    现在,我们对后端开发的含义有了一个初步的了解,让我们进入一些实际的问题。

    后端需要前端编程知识吗? (Is front end programming knowledge required for the back end?)

    TLDR; No.

    TLDR; 没有。

    Back end development, as mentioned above, involves the programming of a computer sitting probably on the other side of the planet responsible for responding to what your users say from their own computers.

    如上所述,后端开发涉及对计算机的编程,该计算机可能位于地球的另一侧,负责响应用户从其自己的计算机发出的信息。

    If you're a full-time backend developer, you do not really need to care about what goes on inside those HTML, CSS and JavaScript files you send to the user's browser. Instead, you've to focus more on the performance of the server, the server code, and throughput.

    如果您是一名全职后端开发人员,那么您实际上不必关心发送到用户浏览器HTML,CSS和JavaScript文件中的内容。 相反,您必须更多地关注服务器的性能,服务器代码和吞吐量。

    后端开发有哪些内容? (What goes into back end development?)

    Well, going by the books, you may say that a person who codes an application that can respond to HTTP requests is a back end developer.

    好吧,按照这些书,您可能会说,编写可以响应HTTP请求的应用程序的人是后端开发人员。

    But in reality, sometimes back end developers are able to do much more than just writing server scripts. They have the knowledge to set up reverse proxy servers (NGiNX/HAProxy), enable compression and other ways to speed up the site, and set up a production docker environment.

    但是实际上,有时后端开发人员不仅可以编写服务器脚本,还能做更多的事情。 他们具有设置反向代理服务器(NGiNX / HAProxy),启用压缩和其他方式以加快站点速度以及建立生产docker环境的知识。

    To qualify as a back end developer, I'd say the bare minimum skills you need are:

    要成为合格的后端开发人员,我想说的是,您需要的最低技能是:

    1. Good knowledge about a programming language in which you can write HTTP servers. Examples: C#, Java, Node, PHP, Python, etc. (there are many!)

      对可以用来编写HTTP服务器的编程语言的丰富知识。 示例:C#,Java,Node,PHP,Python等(有很多!)
    2. Manage to host using cPanel (traditional) or using bash terminal (cloud hosting/traditional)

      使用cPanel(传统)或bash终端(云托管/传统)管理托管
    3. Working with Version Control Systems (VCS) like git for managing and deploying builds

      使用git等版本控制系统(VCS)来管理和部署构建

    Just like every game comes with minimum and recommended specifications, for back end developers, my recommend specifications would be (inclusive of the minimum skills):

    就像每款游戏都有最低要求和推荐规格一样,对于后端开发人员,我的推荐规格将是(包括最低要求):

    1. NGiNX for static file assets and server management

      NGiNX用于静态文件资产和服务器管理
    2. Database Management skills (SQL/NoSQL)

      数据库管理技能(SQL / NoSQL)
    3. Security of backend (Writing safe and robust code, running applications in docker containers with limited privileges, protection against DoS attacks)

      后端的安全性(编写安全可靠的代码,以有限的特权在Docker容器中运行应用程序,防范DoS攻击)
    4. Autoscaling/Load balancing

      自动缩放/负载平衡

    Alright, too much talking about what goes into back end development. But how do you become one?

    好吧,过多地讨论了后端开发的内容。 但是你如何成为一个?

    从最低要求开始 (Start with minimum requirements)

    Like I said, for the back end, just like games, we have a set of minimum requirements and recommended requirements. The minimum requirements consists of 3 things:

    就像我说的那样,对于后端,就像游戏一样,我们有一组最低要求和建议要求。 最低要求包括三件事:

    学习后端编程语言 (Learn a backend programming language)

    When people learn by themselves, they usually do not have a team or anyone who can do front end development. They're all on their own. So you'll often have to create webpages and servers all by yourself, at least in the beginning.

    人们自己学习时,通常没有团队或任何可以进行前端开发的人。 他们全靠自己。 因此,至少在开始时,您通常必须自己全部创建网页和服务器。

    Although there are a lot of choices for back end programming languages, and I cannot think of any popular system language which doesn't support HTTP servers out of the box. The advantage of choosing Node is that your front end JavaScript skills are transferrable to the back end.

    尽管后端编程语言有很多选择,但我想不出任何不支持HTTP服务器的流行系统语言。 选择Node的好处是您的前端JavaScript技能可以转移到后端。

    Nonetheless, you can choose from a variety of languages like Java, C++, C#, Python, PHP, etc.

    但是,您可以从多种语言中进行选择,例如Java,C ++,C#,Python,PHP等。

    How do you pick one, you might ask. The answer is the same as it was in the front end development article: you have gotta try everything initially and see which one clicks the best with you.

    您可能会问,如何挑选一个。 答案与前端开发文章中的答案相同:您必须首先尝试一切,然后看看哪个点击最适合您。

    Node is easy as you might have already done JS programming for the front end. But if you're a Python or Java developer, you might find those easy to pick up. It depends on your profession and taste completely.

    Node很容易,因为您可能已经为前端完成了JS编程。 但是,如果您是Python或Java开发人员,则可能会发现它们很容易上手。 这完全取决于您的职业和品味。

    了解有关管理托管的信息 (Learn about managing hosting)

    Gone are the days when you'll have to manually purchase servers and set them up in your home, connect to your ISP, do all that stuff yourself. This is the era of cloud computing. Now, when hosting your website, you have mainly 2 options:

    您将不得不手动购买服务器并在家里设置它们,连接到ISP,自行完成所有这些工作的日子已经一去不复返了。 这是云计算的时代。 现在,在托管网站时,主要有两种选择:

    1. Going for managed hosting servers like HostGator or GoDaddy.

      用于托管主机服务器,例如HostGator或GoDaddy。
    2. Going for cloud hosting providers like GCP, AWS, or DigitalOcean.

      寻找GCP,AWS或DigitalOcean等云托管提供商。

    What is the difference between the two? In both cases, the servers are owned and operated by the respective companies. But the major difference is that managed hosting is more GUI friendly, has a rich set of tools for seeing the filesystem, monitoring usage, managing your official domain emails, uploading/downloading files from your server, and so on. It's basically a setup for people with less technical skills.

    两者有什么区别? 在这两种情况下,服务器均由各自的公司拥有和运营。 但是主要的区别是托管托管更易于使用GUI,具有丰富的工具集,可用于查看文件系统,监视使用情况,管理官方域电子邮件,从服务器上载/下载文件,等等。 基本上,它是为技术技能较弱的人准备的。

    For that reason, I do not recommend managed sites like HostGator or GoDaddy for seasoned developers. Still, it might be a good platform to make mistakes and learn on, primarily because you usually have prepaid plans for them. You'll also have a nice UI for managing things, which doesn't allow you to accidentally shoot up your bills.

    因此,我不建议经验丰富的开发人员使用托管网站如HostGator或GoDaddy。 尽管如此,它仍然可能是犯错和学习的好平台,主要是因为您通常会为他们预先准备好计划。 您还将拥有一个不错的用户界面来管理事情,这不允许您意外地付账。

    But when you start picking up speed, I recommend that you switch to a cloud provider. This takes away all the nice tools from cPanel that you used to manage files and folders on servers. But at the same time, it will challenge you to level up your skills a lot.

    但是,当您开始加快速度时,建议您切换到云提供商。 这消除了cPanel中用于管理服务器上文件和文件夹的所有漂亮工具。 但是与此同时,它将挑战您大量提高您的技能。

    Today, a lot of cloud providers offer a decent free trial, too, so that you can actually try out their platform before going full in. I host my website for developers - codedamn - on DigitalOcean and find it to be at a sweet balance of site complexity and features.

    如今,许多云提供商也提供了不错的免费试用版,因此您可以在全面试用之前实际试用他们的平台。我在DigitalOcean上为开发人员托管了我的网站-Codedamn,并发现它与网站的复杂性和功能。

    You can use this link to signup on DigitalOcean and get free $100 credits. DigitalOcean instances are as cheap as $5 a month, so you have a runway of about 20 months on that instance, great deal, huh?

    您可以使用此链接在DigitalOcean 上注册免费获得$ 100的信用 。 DigitalOcean实例的价格低至每月5美元,因此您在该实例上的运行时间约为20个月,是吗?

    Anyway, you can choose any cloud provider. Then it's important to learn to manage the server using just the command line by ssh'ing into it.

    无论如何,您可以选择任何云提供商。 然后,重要的是学会通过仅使用命令行来管理服务器。

    了解版本控制系统 (Learn about Version Control Systems)

    There are other solutions apart from Git for VCS. But Git is the most used and simplest to understand.

    除了适用于VCS的Git之外,还有其他解决方案。 但是Git是最常用和最容易理解的。

    As an individual, you might not appreciate it right away. But you'll understand why it is so important the moment you start working either in a team on multiple features simultaneously in your project.

    作为个人,您可能不会立即欣赏它。 但是当您开始在一个团队中同时在项目中同时处理多个功能时,您就会理解为什么如此重要。

    Git allows you to manage your workflow using commits and branches. Commits are like checkpoints in your codebase - the ones you can always revert to if you screw up.

    Git允许您使用提交和分支来管理工作流。 提交就像代码库中的检查点一样-如果您搞砸了,可以随时恢复到这些检查点

    Branches are like alternate realities of your project, where something completely different could happen. These alternate realities can be created from any point in time and can be merged back again at any time.

    分支就像项目的替代现实 ,其中可能会发生完全不同的事情。 这些替代现实可以在任何时间点创建,并且可以随时重新合并。

    If those realities can be merged together with compatibility, then it's fine. But if there's a conflict (like if you're alive in one reality and dead in other), then you have to manually make a choice. Other changes can be merged automatically.

    如果可以将这些现实与兼容性合并在一起,那就很好。 但是,如果存在冲突(例如,您在一个现实中还活着而在另一个现实中死了),那么您必须手动做出选择。 其他更改可以自动合并。

    Git is super interesting, and once you get hang of it, you'll want to use it in every project. You get to keep a history of your work in an efficient manner (it compresses and stores only the difference between commits).

    Git非常有趣,一旦您掌握了它,就可以在每个项目中使用它。 您可以高效地保留工作历史记录(它仅压缩和存储提交之间的差异)。

    It also allows you to create online git repositories on sites like GitHub, which acts as a central source of truth for your website. Sites like GitHub can be configured with special webhooks that can actually update your website whenever you add a new checkpoint (a new commit) without you ever needing to manually go to the server and update it yourself.

    它还允许您在GitHub之类的网站上创建在线git存储库,这是网站真相的主要来源。 可以像GitHub这样的网站配置特殊的Webhook,这些Webhook实际上可以在您添加新的检查点(新的提交)时更新您的网站,而无需手动转到服务器并自行更新。

    I'm a big believer in learning by doing. And the best way to do something comes out of necessity or interest. Once you consider yourself good enough with the minimum requirements, it's time to acquire the recommended skills. This includes all the tools like Docker and NGiNX mentioned above.

    我坚信边做边学。 而做某事的最好方法是出于必要或兴趣。 一旦您认为自己的最低要求足够好,就可以开始学习推荐的技能。 其中包括上述所有工具,例如Docker和NGiNX。

    DevOps is also something which fits in super nicely with back end developers. You could try and explore TravisCI or CircleCI for automated build deployments. Continuous Integration and Deployment (CI/CD) is a topic that could take another whole blog post, so I'll not get into that. In fact, once it is set up correctly, it'll save you a ridiculous amount of developer time!

    DevOps也非常适合后端开发人员。 您可以尝试探索TravisCICircleCI进行自动构建部署。 持续集成和部署(CI / CD)是一个主题,可能需要撰写另一篇完整的博客文章,因此我不再赘述。 实际上,一旦正确设置,它将为您节省大量的开发时间!

    Then comes databases, which I placed in recommended skills. But you're gonna need databases for pretty much any application which involves some sort of data persistence generated by the user.

    然后是数据库,我把这些数据库放在推荐的技能上。 但是,几乎所有涉及用户生成的数据持久性的应用程序都将需要数据库。

    Databases are usually easy to begin working with, but harder to maintain and tweak properly. The best way to start working on a back end tech stack is to have everything together on a single server - the code of your application, the reverse proxy servers, the database, etc. Then as you become more proficient in each thing, you can decouple it from the existing business logic.

    数据库通常很容易上手,但是很难维护和正确调整。 开始在后端技术堆栈上工作的最佳方法是将所有内容整合到单个服务器上-您的应用程序代码,反向代理服务器,数据库等。然后,当您精通每件事时,您可以将其与现有业务逻辑分离。

    By doing this, you're enabling an architecture that can be highly scaled. A database-operation intensive application could have an optimized solution for databases. And a heavy traffic bound site should have a good CDN mechanism to offload static assets, and so on.

    通过这样做,您可以实现高度可扩展的体系结构。 数据库操作密集型应用程序可能具有针对数据库的优化解决方案。 流量受限的站点应该具有良好的CDN机制来卸载静态资产,依此类推。

    结论 (Conclusion)

    There's so much to learn, but it's all achievable if you don't give up. Let me know what you think about this post through my twitter and Instagram handles. It'll mean a lot to me if we connect over there!

    有很多东西要学,但是如果您不放弃,这一切都是可以实现的。 让我知道您对我的TwitterInstagram句柄的看法。 如果我们在那里连接对我来说意义重大!

    Also, if you're interested, checkout codedamn - a developer-focused platform for learning technologies like backend development! I even posted a YT video on spinning up your own simple website server in 2 minutes! Check that out and let me know what you think!

    另外,如果您有兴趣,请签出codedamn-一个面向开发人员的平台,用于学习后端开发等技术! 我什至在2分钟内发布了一个YT视频,介绍了如何旋转您自己的简单网站服务器 ! 检查一下,让我知道您的想法!

    Peace!

    和平!

    翻译自: https://www.freecodecamp.org/news/learn-backend-development/

    web后端开发学习路线

    展开全文
  • JAVA后端开发浅谈

    千次阅读 多人点赞 2020-02-28 16:00:40
    两个阵营的开发基本上都是各自围绕着各自的开发语言(php/Java),选取最为兼容合适的框架结构和数据库,然后进行服务器端的开发。以下附上PHP和Java语言的区别介绍和原文链接: 《php和java的区别有哪些》 php中文...

    一、背景

    从后端来讲,目前市场上的电子商务软件基本上可以分为两个阵营,即php阵营和Java阵营。两个阵营的开发基本上都是各自围绕着各自的开发语言(php/Java),选取最为兼容合适的框架结构和数据库,然后进行服务器端的开发。以下附上PHP和Java语言的区别介绍和原文链接:
    《php和java的区别有哪些》 php中文网

    Java语言

    Java是一门计算机编程语言,和C++、Python等编程语言一样,Java如今依旧应用广泛。从我们日常用的安卓手机APP到大部分网站或管理信息系统的应用服务器程序都是用Java这中语言来写的。

    PHP语言

    PHP是Hypertext Preprocessor的缩写,是一种计算机脚本语言(Script languages)。脚本语言不需要像编程语言那样在编译时生成二进制可执行文件,而是直接对写好的PHP代码执行以达到效果。

    PHP和Java的区别

    一、技术区别
    java是纯面向对象开发,功能强大,分支众多,没有java不能做的软件。C/S也好B/S也好。从功能上讲,没有语言可以和java相比。但其优势也是其劣势。

    PHP吸收了java和c以及perl等语言优点,专注互联网领域。在WEB领域中PHP拥有得天独厚的优势,WEB领域没有语言可以和PHP相比。

    二、数据库访问区别
    Java通过JDBC来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库。访问数据库的接口比较统一。

    三、安全性区别
    在同是开源和跨平台的java面前,php丢掉了很多的优势,在代码的安全性上尤为突出。

    php的开发程序在别人拿到代码后,可以很容易的进行修改。而java开发的程序由于无法看到完整的源代码,只能看到一些编译好的类文件,所以安全性较高。

    四、开发成本比较
    PHP在互联网应用诸多方面都强于Java,那么Java开发出的电子商务产品何以与PHP产品竞争呢?这在于Java阵营普遍走的是政府路线, 而PHP阵营走的是全民路线。Java在互联网方面靠的是大学老师的言传身教,才得以在互联网世界狺狺狂啸,而PHP是靠得是自身品质而得民心,所以才一路赞歌。

    软件价格的高低很大程度上和自身成本和功能相挂钩。PHP的入门门槛较低,但是任何方面成为高手,都是万里挑一。绝大多数学过c的程序员都很容易转型为PHP程序员,这使得PHP程序员如同国球一样普及,同样更是高手如云,高质量的PHP软件产品也层出不穷。
    服务器成本方面,PHP最经典的组合PHP+ MySQL + Apache,Java也是经常与MySQL + Tomcat、JBoss等软件配合。所有软件都是开源免费的,所以服务器端的投入都并不高

    而Java程序员的学习成 本却是PHP成本的几倍,原因也很明朗,本身Java就不是专门给WEB开发用的。所以,Java开发电子商务的成本要远远高于PHP开发出来的同类软件 产品。但也正由于Java开发的成本较高,所以往往也是做一个同样的产品,达到同样的效果,Java需要付出比PHP开发多出N倍的时间及经济成本。直接的造成了巨大的时间及成本浪费。

    二、Java后端开发之路

    其实php和Java作为主流的服务端开发语言,并没有对错是非之分,语言的选取还是要根据自己的需要而来,这里我不再过多评论。在这篇文章里,我会简单介绍一下Java后端开发的一些事项和思路。

    1. 什么是Java后端

    所谓后端,就是服务端,接收前台传过来的信息数据,或是进行业务逻辑处理,或是与数据库进行交互(说严谨些,数据库交互也算是业务的一种,但希望你能了解我所表达的意思),服务端代码一般运行在服务器上,这也是为什么有的人也叫后端为服务器端开发(这是从广义上来讲的,因为包括数据库操作在内的后端代码通常都是挂载在服务器上,而从狭义角度来讲,服务器端只指明了服务器的行为而未包括数据库)。因此,Java后端开发就是利用Java语言,对所需的业务逻辑和数据库操作的实现。也许你觉得这个定义下的并不是很严谨,因为一个后端程序光靠Java是没法儿实现的。不用着急,接下来我还会对Java后端的开发进行更为详尽的说明,现在,你只需了解Java语言本身在后端开发中是一个怎样的角色就行。

    2. Java后端要学什么

    这一节,我会按照学习的先后顺序简单介绍一下Java后端需要的知识,这只是大致的思路,并不能兼顾现有的所有情况。比如web框架一栏,我也只是推荐了最为常见并广为应用的SSM框架,也许你在开发的过程中发现了更为优秀的框架或模式,也欢迎你告诉我。

    ①java基础
    如果你是计算机专业的学生或者说从前接触过Java编程,曾自己做过一些小程序,比如计算器、时钟,那么恭喜你,你已经完成了这一项的大半工作,接下来你需要做的就是强化封装、继承、多态、泛型(视个人爱好决定,但是写的一手好泛型将会使你的代码得到质的飞跃)、反射的相关知识,以及java的网络编程和数据库操作部分,为了工程需要,你还需要熟悉java的标准库,如集合,I/O,并发。当然随着日后软件的逐渐壮大,你也许还会用到更为深入的并发编程,这些直接在“那时”学习就行。如果你之前没有学习过Java编程,那么我推荐你先在网上找一些Java的基础教程来学习,但是不能光听课,上手练习是学习一门语言最快的方法。

    ②Web开发
    也许你会认为,后端工程师并不需要了解前端制作页面的知识。我的回答是,不尽然。虽然前后端分离是现在的趋势,但是全栈式工程师也是一抓一大把,而且当你了解前端页面的制作方法后,可以在后端制作过程中兼顾前端的功能,从而扬长避短,减少不必要的麻烦。言语是虚幻的,真正理解这句话需要你在实际开发项目中去体会。言归正传,在学习web开发之前,我仍建议你学习一些前端的知识,哪怕做不出比较美观的界面。对于学习的内容,我建议按照HTML+CSS+JavaScript的顺序来。
    在对前端的知识有一定了解后,你将要学习以下知识:(由于笔者能力有限,在这里我只告诉你一些理念和力所能及的学习网址,其详细内容还需你去查找学习)
    1. Servlet开发
    https://www.runoob.com/servlet/servlet-intro.html
    https://www.oschina.net/question/12_52027
    你想问什么是Servlet?这里我摘取了一部分介绍,希望对你的理解有一定的帮助。
    Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
    使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。更为详细的内容可以参考上面第一个链接。
    2.JSP(J2EE)
    https://www.runoob.com/jsp/jsp-tutorial.html
    JSP 与 PHP、ASP、ASP.NET 等语言类似,是运行在服务端的语言。
    JSP(全称Java Server Pages)是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成 HTML、XML 或其他格式文档的Web网页的技术标准。
    JSP 技术是以 Java 语言作为脚本语言的,JSP 网页为整个服务器端的 Java 库单元提供了一个接口来服务于HTTP的应用程序。
    JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
    3.Tomcat
    tomcat是一个开源而且免费的jsp服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。它可实现JavaWeb程序的装载,是配置JSP(Java Server Page)和JAVA系统必备的一款环境。
    可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
    你也许发现了,以上3个内容之间有着明显的联系,所以我也建议你将他们放在一起学习,值得强调的是,这部分是Java后端开发必须非常精通的部分,因此这部分是这三部分中最需要花精力的。
    4.Http协议
    https://www.cnblogs.com/ranyonsue/p/5984001.html
    https://www.runoob.com/http/http-tutorial.html
    对于网络开发来说,了解Http协议的内容是必要的,虽然它的内容并不多,但这里我还是将它单独作为一项放了出来,你可以通过上面的链接来了解它。
    5.开发框架
    关于这一项内容,你可以趁热打铁按着顺序学,也可以先跳过,等学习完数据库操作的相关知识后再回来补充。开发框架,顾名思义就是为了提高开发效率而引入的Web框架,你用或不用,只是开发效率的问题,甚至你自己都可以写一个新的框架。这也是我为什么把它的优先度放后。现在的主流框架是:Spring,SpringMVC,Mybatis 即SSM框架。你需要学会这三个框架的搭建,并用它们做出一个简单的增删改查的Web项目。要相对系统地入门 Spring,我推荐评价最高的两本书:《Spring实战(第4版)》和《精通Spring 4.x:企业应用开发实战》。在构建框架的时候,也许众多的配置会使你头晕,不过你也可以不去理解哪些配置都是什么含义。不明觉厉也并不会过分阻挠你将框架搭建起来。你先拿来用,解析的过程留给后面。在这里再介绍一些进阶级的框架:SpringBoot 和 SpringCloud,它们在各自的领域都有着独特的表现,其中SpringBoot则大大减少了Spring过多的配置文件,真是头发的福音。
    篇幅有限,我便不在这里深入介绍框架的内容了,你可以通过下面博客中的通道来查找自己喜欢的框架内容学习。
    https://blog.csdn.net/JusticeOfHeaven/article/details/79295587

    ③数据库
    Java会了,网络开发也学了,接下来就是数据存储的地方——数据库方面的学习。关于数据库的学习你可以分为两步,一是先学习一个数据库的相关知识,二是学习Java连接该数据库的方法,即JDBC。
    1. SQL
    对于数据库的选取,我建议采用MySQL,它不仅对新人很友好,而且还是Java的老搭档。你需要学习它的构成,使用方法,以及SQL语句,为了方便,你可以在网上查找网络教程。
    2.JDBC
    JDBC,其实就是Java与数据库之间连接所用的规范接口,你需要弄懂JDBC API的用法,连接并能操控数据库的增删查改。
    3.关于数据库Redis和JDBC框架
    对于 Redis,因为是基于内存的,所以性能非常高,很多项目用它作缓存。虽然是一个 key - value数据库,但 value 可以是字符串(String)、哈希(Map)、列表(List)、集合(Sets)、有序集合(Sorted Sets)等类型。推荐一个菜鸟的简明教程,可以简单入门:
    http://www.runoob.com/redis/redis-tutorial.html
    书籍方面,推荐看《Redis实战》,是一本非常不错且广受好评的入门书籍。
    另外,Redis 的 Java 库叫 Jedis,也要简单了解下其用法。

    前面我们知道,Java 访问数据库的标准 API 是 JDBC,只是,直接使用 JDBC API 进行编码操作数据库的话,代码非常繁琐,可扩展性非常低,因此,才会衍生出 Hibernate、MyBatis、SpringJDBC等对 JDBC 进行了封装的 ORM 框架,以简化开发。目前最流行的还是 MyBatis,另外 MyBatis 也容易上手。
    先来了解下 ORM 这个概念,ORM = Object Relational Mapping,称为对象关系映射,即业务实体对象和关系数据库之间建立起一种映射关系,最简单的映射关系就是:一个类对应一张数据表,类的每个实例对应表中的一条记录,类的每个属性则对应表的每个字段。Hibernate 是一个标准的 ORM 框架,在实体类和数据库之间建立了完整的映射关系,基本不需要开发人员自己写 SQL,内部会自动生成 SQL 语句,因此,对于数据量非常大的应用,想要优化 SQL 语句就比较困难。MyBatis 则是一个半自动化的 ORM 框架,不同于 Hibernate 提供了从实体类到数据库表的全套映射机制,SQL 是自动生成的;而 MyBatis 则只是在实体类和 SQL 之间建立映射关系,并不自动生成 SQL 语句,因此,开发人员是需要自己写 SQL 的。这样,对 SQL 进行优化则比较方便了。
    要了解 MyBatis 的用法,直接看官方文档即可,内容不多,且还有中文版本,以下是链接地址:
    http://www.mybatis.org/mybatis-3/zh/index.html

    当以上内容都学习完之后,你便可以自己动手进行后端开发了,如果初次做不知道流程,可以查找教程跟着做一遍。在此,我再简单说几个开发工具,希望对你的开发会有帮助。

    ④开发工具
    1. Intellij IDEA
    一种Java程序编辑器。比起eclipse,我还是更为青睐Intellij IDEA,它用起来更加的便捷舒适。
    2.Maven
    一个用于构建项目的工具,在构建SSM框架就可能会接触到。你在将项目间的依赖通过 xml 完美地组织到一起,可通过编译插件将项目编译成字节码文件。还有类似的 Gradle 也是不错的选择。
    3. Postman
    很好用的一个接口调试工具。

    3.后端的开发思路

    一般后端开发的过程分为以下几步:

    ①搭建服务器
    首先要存放后端程序代码,需要一台机器,自己的电脑虽然也可以,但是自己的电脑可不能保证24小时都开机且让外网能访问到,所以需要购买一台云服务器;其次,外网能访问到意味着需要一个公网IP,购买的云服务器会配套一个对应的IP地址。
    之后你可以购买一个域名。域名是用来映射到IP上,便于直接使用域名访问其绑定IP所在的服务器。在购买之后,不要忘了将该域名绑定到我们的服务器IP上,并且进行域名备案,使其合法化。
    最后一步是购买SSL证书(似乎有免费的),因为配置了SSL证书后可以让我们的url访问以https开头,以加密传输的方式更加安全。这也是你做微信小程序必须的要求。
    经过了这些步骤,这时我们的服务器具备了使用https协议通过域名访问的能力。接下来的工作就剩下开发我们的后端接口以及把后端程序代码部署到这台服务器上供前端访问。

    ②后端程序开发
    这里其实就是八仙过海各显神通了,主要是写后端接口和数据库等内容。在开始之前,你要决定好以下的内容:
    开发语言:Java 8
    开发集成环境:IntelliJ IDEA Ultimate 2017
    web框架:Springboot
    构建工具:Maven
    数据库:MySQL
    具体的内容当然不限于我上面所举的例子,推荐使用Maven,因为用它将项目打包很方便。

    ③部署后端程序
    首先登录购买的那台云服务器,部署前先安装好环境,主要是安装JRE和Tomcat,安装好后还需要对Tomcat进行一番配置,其中包括把我们的SSL证书配置上去。
    之后将我们之前用Maven打包好的war包拷贝到安装Tomcat的webapps目录下,然后去Tomcat的bin文件夹下运行startup.bat启动tomcat,即可自动解压war包,并部署。具体实现细节视你的情况可自行百度。随着Tomcat的配置以及部署成功,我们的后端接口就可以通过url访问到了。

    参考文献:
    《php和Java之间的差异》 whataltair,博客园
    《php和java的区别有哪些》 php中文网
    《用大白话告诉你 :Java 后端到底是在做什么?》 黄小斜 CSDN博客
    《Java 后端自学之路》JusticeOfHeaven CSDN博客
    《怎样做Java后端学习路线合理》 动力节点Java学院
    https://juejin.im/post/5cb33f4a5188251ae64a7c3e
    快速入门Java后端开发的正确姿势 --Keegan小钢
    (部分参考内容来源不可考,如有侵权请联系我删除)

    展开全文
  • 后端开发 Spring 3.x 企业应用开发实战 完整版 后端开发 Spring 3.x 企业应用开发实战 完整版
  • 然而,在网络建设时,网络建设开发师常常为了选择哪一种网络开发语言而发愁,下面小编给您收集整理了一篇《后端开发语言哪一种比较好?》,对目前常见的后端语言进行简单的介绍,希望您能从中选择出一款您满意的后端...
  • 前端开发与后端开发的区别是什么?在实际开发过程中,前端开发人员精通JS能熟练应用JQuery,懂CSS能熟练运用这些知识,进行交互效果的开发;后端开发人员会写Java代码SQL语句,能做简单的数据库设计会Spring和iBatis...
  • 薪酬报告系列-2020全国地区后端开发工程师岗位薪酬调查报告.pdf
  • 后端开发岗位要求汇总

    千次阅读 2020-08-15 14:27:08
    后端开发岗位要求汇总 一、前言 ​ 2020年,是一个“多灾多难”之年,我们经历了疫情,经历了美股熔断,经历了全球大放水,同样经历了各种活久见的事情;不过,还好国内疫情已经没有那么严重了,剩下的就是等待疫苗...
  • 编程之JAVA后端开发与python后端开发的区别及类的方法技巧[图] 今天总算闲了一会,趁着这个闲暇来写篇文章。 今天我想以个人观点来简单说说Java后端开发和Python后端开发的区别。 Java&PythonBackEnd 公众号老粉...
  • web前端开发和后端开发的区别是:前端开发主要负责用户能看到的前端展示界面,后端开发主要负责用户不可见的逻辑功能模块。前端开发和后端开发需要掌握的技术也是不相同的,前端开发需要掌握html、css、js等技术,...
  • 2021年唐山地区后端开发工程师岗位薪酬水平报告-最新数据.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 536,934
精华内容 214,773
关键字:

后端开发

友情链接: 24小时计时时钟.zip