大家好,今天小编关注到一个比较有意思的话题,就是关于java语言逻辑的问题,于是小编就整理了2个相关介绍Java语言逻辑的解答,让我们一起看看吧。
有人说腾讯使用c++为主要开发语言?j***a少?为什么?
我所见到的一部分原因是,腾讯内部的各类C++组件已经非常丰富并且稳定了,这种情况下若非特殊原因,实在没理由花力气和冒风险去切其他性能还不如c++的语言,我c/c++,j***a,python,lua都写过,对语言并无偏执。我接触到的一个基础模块,日请求量200亿+,服务器数目却不足百台,其他语言是很难做到的。所以,新模块开发依然首选c++,但内部也一直鼓励新技术,前提是有正当理由。很多时候我们只是了解到一点皮毛,然后就根据这点皮毛去揣测不熟知的领域,这里不单指计算机语言,这种习惯是很危险的,共勉。
我负责过QQ秀和Qzone的运维,也在QQ秀做过开发,当时我所在的部门,如果用j***a作为开发语言的话以当时服务器的数量是不足以支撑数亿用户的服务的。
要知道,与淘宝不同,腾讯许多业务是免费使用的,例如qzone的许多功能都可以***包括心情,日志,相册,服务器要承担这些亿级的有大量高密集的碎片化请求,如果用j***a来支撑,经济上是不划算是一方面,响应速度方面用户体验也非常不好。
再来看淘宝,与qzone发个心情,日志相比淘宝用户在淘宝上的行为最终要触发商品交易的,说通俗点就是淘宝用户的行为大都是跟钱相关,而且淘宝要不断迭代更新的同时确保程序逻辑的严谨,J***a综合来说是个非常好的选择。
对于高效处理这些高密集的用户请求,c是一个非常好方案,非常适合腾讯的用户场景;淘宝也不是不用c,像淘宝的图片服务器,也是属于海量的高密集用户请求服务,淘宝在这里使用淘宝技术团队修改过的nginx,我们都知道nginx就是c开发的,类似的场景在淘宝的服务架构里应该还有很多这样的例子,阿里也雇佣了不少c的工程师,Linux内核工程师。
腾讯最开始是以做通讯软件开始发家的,也就是qq.因为qq主要涉及到的就是网络通讯这一块,再加上当时主要就是用在PC端,从程序的运行效率考虑C++无疑都是最好的选择。包括后面腾讯的一系列产品qq音乐,qq管家,qq游戏等等基本上都是基于C++开发的。据我所知他们的服务端应该也是用C++写的。
j***a业务逻辑,写在哪里比较好?
题主没有说明具体的应用场景。拿J***a开发Web后台服务为例,常用的是三层或者多层架构,业务逻辑和控制层、数据层分离解耦。
随着应用系统功能日趋复杂,前后端动静分离架构使用越来越普遍,前端负责用户交互,后端负责业务逻辑处理。对于复杂耗时任务,经常引入异步任务调度系统,比如Quartz和ActiveMQ消息队列。
后端开发常用J***a + Spring Boot框架,开发Web服务时,有Controller,Service,Entity,分别封装接口、业务逻辑、数据。
在Controller封装服务接口时,调用Service实现业务逻辑。以LogController为例,为前端提供接口/log,被调用时记录重要的用户操作。
这是一个非常好的问题,很多J***a初学者都会面临类似的问题,作为一名从业多年的IT人,同时也出版过J***a编程书籍,所以我来回答一下这个问题。
首先,J***a语言的抽象程度是比较高的,在进行程序开发的过程中,通常会为J***a代码按照不同的抽象程度进行模块划分,这个过程对于程序员的开发和设计能力有比较大的考验,抽象不足或者是抽象过度都会导致一定的问题。实际上,为了解决抽象设计和模块化问题,J***a开发人员通常会***用各种开发框架(Spring、OSGI等),这也是为什么学习J***a通常都[_a***_]学习框架的一个重要原因。
如果从单独的功能模块划分角度来看,J***a代码可以分为数据部分、控制部分和呈现部分,也就是比较经典的MVC结构,其中业务逻辑就可以放在控制层,早期的设计方案也会把一部分业务逻辑集中在模型部分。实际上,在当前微服务概念的推动下,抽象程度也得到了一定的提升,结合云计算服务(PaaS),很多业务逻辑可以进行独立设计,而当前业务中台和数据中台本身就是单独设计的,各自都有相应的侧重点。
对于扩展要求比较高的系统来说,把业务逻辑抽象出来,与控制层和数据层进行解耦也会获得更大的灵活性,复用程度也会比较高,而且在进行技术平台迁移时会更方便一些。实际上,J***a开发从早期的Struts向Spring过渡的过程中,就在一定程度上提升了代码的复用性和扩展性。
最后,在定义J***a业务逻辑位置的时候,一定要考虑到容器(Container)的问题,通常业务逻辑可以通过多线程的方式来提升执行效率,而实体组件(Bean)则通过容器来提升效率。
我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!
到此,以上就是小编对于j***a语言逻辑的问题就介绍到这了,希望介绍关于j***a语言逻辑的2点解答对大家有用。