jsp企业网站开发前期报告百度学术官网入口

news/2025/9/26 4:41:28/文章来源:
jsp企业网站开发前期报告,百度学术官网入口,广州商务网站建设电话,重庆大渡口网站建设简介#xff1a; 对于程序员而言#xff0c;我始终认为代码是展现能力的关键#xff0c;一个优秀程序员写的代码#xff0c;和一个普通程序员写的代码是很容易看出差别的#xff0c;代码作为程序员的硬实力和名片的展示#xff0c;怎么提升写代码的能力始终是一个关键的话… 简介 对于程序员而言我始终认为代码是展现能力的关键一个优秀程序员写的代码和一个普通程序员写的代码是很容易看出差别的代码作为程序员的硬实力和名片的展示怎么提升写代码的能力始终是一个关键的话题不过很遗憾这篇文章其实也不是讲具体的步骤、银弹方法、武功秘籍什么的这篇文章讲讲我自己印象中对我写代码能力提升比较大的四段经历也许可供参考。 第一段第一次感受每天亿级系统的挑战 2008 年HSF 的第二个版本在当时淘宝最重要的交易中心上线上线当天造成淘宝网站访问巨慢交易类的页面几乎打不开最后靠下线 HSF 才恢复。 下线后开始查问题HSF 的第二个版本基于的是 jboss-remotingjboss-remoting 在当时的版本里远程同步调用的超时时间是写死在代码里的 60s而调用的服务确实会有一些超过 10 几秒的现象出现导致了 web 应用处理 web 请求的线程池被这些慢请求给逐渐占据请求堆积最终呈现出了页面打开非常慢的现象。 查清原因后决定基于当时的 Mina 重写整个 HSF 的通信重写的这两个月时间对我自己写代码的能力有很大的提升无论是对网络 IO 方面处理的深入学习还是在高并发系统上的深入学习现在想想学习的方式也就是翻各类网络 IO 的科普资料然后是读 Mina 的源码、Java 网络 IO 的源码并发这块的学习主要还是靠那本经典的《Java 并发编程实战》以及读 Java J.U.C 里的代码这段时间的学习相比以往翻 Think in Java 之类的最大区别是学习后付诸实践随着 HSF 这个新的重写的版本的上线基本算是逐渐真正掌握了这些部分的代码能力。 除了代码能力的提升外得到了另外一个最大的教训就是对于一个亿级且长时间运行的系统很多看起来的小概率的问题都一定会成为严重的问题这也是为什么写高并发系统的难度要求了必须对自己写的代码以及自己代码调用到的各种 API 里的实现都非常的清楚这样才能真正确保最终代码的鲁棒性。 第二段民间“消防队”的故事 第二段对我自己写代码能力提升特别大的经历是在民间消防队的那段日子淘宝在 2009 年故障特别多但处理故障还没有一个标准的体系和组织导致很多时候会出现故障出了都没什么人处理或者处理效率不高于是当时有个运维团队的同学拉了一些人组建了一个群群的名字叫淘宝消防队用来处理淘宝出现的各种故障我很凑巧的也加入了这个群这个群里还有另外一个整个阿里公认的超级技术大神多隆。 一开始看到各种故障的时候压根就不知道怎么下手处理故障会需要的通常不仅仅是写代码的能力还需要对一个系统全貌要有一定的掌握例如前几年一篇特别火的文章当点击搜索背后发生了什么这样的文章其实就是要对一个系统的处理流程特别的熟悉这在处理故障的时候是非常重要的在有了故障大概在哪个环节后很重要的就是对这个环节代码运行机制的细节掌控了这个时候通常来说各种工具非常重要可以有效的帮助你知道具体发生了什么例如像系统层面的 top -H 之类的 java 层面的 btrace 等等都可以让你根据运行情况去定位问题的点。 这段时间我觉得我的提升就是靠大量的练手故障确实有点多一开始就靠看人怎么处理主要是从多隆这里学然后是尝试自己解决一些故障解决的越来越多后慢慢熟练度就上去了除了解决故障能力的提升外因为看了很多由于代码层面造成的故障对自己在写代码时如何更好的保证鲁棒性来避免故障是非常有帮助的例如我看过很多滥用线程池造成创建了大量线程最终导致线程创建不出来的 case就会明白自己在用线程池的场景里一定要非常清楚的控制最大的数量包括堆积的策略等又例如我看过 N 多的因为自增长容量的数据结构导致的 OOM 的 case就会明白在写代码的时候不能认为一定不会发生数据结构增长到超级大所以不做任何保护的 case这个时间我明白到的就是写一段能运转实现需求的代码不难但要写一段在各种情况下都能长期稳定运行的代码是真心不容易这我觉得是一个职业的写商业系统的程序员和只是写程序玩玩的最大差别。 第三段重写通信框架 2010 年我从中间件团队离开去做 HBase那个时候的 HBase 里面的通信还是用一个非常简单的写法实现的我想着要么就把以前 HSF 里用的移植到 HBase 里用这个时候刚好多隆在用 c 给各类 c 的应用写一个通用的通信框架 libeasy于是就有了一次测试我记得第一次测试结果看到原来 HSF 里面的通信框架的高并发能力和 libeasy 比相差无比巨大我和多隆便探讨他是怎么实现的我看看能不能学习下在 Java 这边的版本里也改改所以有了这段重写通信框架的经历。 本来以为之前在写 HSF 的那几年应该算是对通信框架这块的代码相关的能力掌握的不错了在和多隆一起重写的这段过程中才发现差距还是很大的多隆教会了很多细节的问题基于 NIO 的通信框架的核心是用非常少的 IO 线程来处理 IO 事件太多也没用因为有些部分就只能串行所以怎么高效的使用好这几个 IO 线程是非常关键的要尽量减少这几个 IO 线程处理一些不相关的动作另外一点就是尽量减少 IO 线程和业务处理线程的切换例如后来常见的批量把一个流里的多个请求一次性丢给业务处理线程。 这段经历对自己更加深入的掌握在代码逻辑整体的细节层面是非常有帮助的这对于写要求很高的系统是非常重要的毕竟对于一个超大规模的系统而言1% 的提升还是可观的。 第四段学习 JVM 之前因为处理故障比较多有段时间我开始给公司同事们分享如何处理故障后来发现有些问题自己也讲不清楚或者也不知道怎么处理必须深入学习 JVM 才行但其实一开始我完全摸不着门路JVM 代码打开都不知道从哪看起。 很幸运碰到了一个同样爱好又比我强很多的同学就是撒迦圈内通常叫 R 大我和撒迦好几个周末约着在公司一起看 JVM 代码有撒迦的指点我终于是入门了知道大概怎么去看了而且两个人一起看代码互相分享和探讨效率是非常高的。 有了这段经历再加上继续处理着一些故障基本上逐渐对 JVM 的代码实现有了更多的理解在后来做故障分享、问题解决什么的时候终于能更好的做到知其然知所以然同样这对处理故障的能力写代码的能力也是非常有帮助的例如会更加明白以前认为的所谓的面向 GC 友好的代码是几个意思也会有了更深的感受是其实 Java 的代码呢通常不会写的太烂因为 JVM 在运行期会做很多的尽可能的优化拉到一个平均线但要写的很好难度是非常大的因为需要懂 JVM懂 JVM 下面的 OS。 总结 其实也总结不出什么因为每个人的环境什么的不太一样也有适合各自提升的方法我看自己的经历呢我觉得 如果环境不具备就给自己一个挑战的命题例如要学高并发的通信可以尝试自己写一个和其他的做对比做性能等的 pk这个通常提升还是会很大的要学 GC可以尝试给自己几个题目来控制 GC 的行为等如果环境具备的话确实会更加有利。多和优秀的程序员一起我自己从多隆、撒迦身上学习到了很多很多从很多优秀的开源代码像 NettyOpenJDK 里面也学习到了很多很多所以多参与一些优秀的开源项目也是一个很好的提升方法看优秀的书例如并发里的那本 Java 并发编程实战JVM 里的 Oracle JRockit: The Definitive Guide深入理解 Java 虚拟机等也同样是一种向优秀程序员学习的好方法。多多尝试解决问题/故障这绝对是提升代码综合能力非常好的一个方法自己工作里机会少的话网上有大把像 stackoverflow 之类的都是很好的练习场。 最后的最后我还是想说代码能力作为程序员的硬名片始终是最有效的区分程序员能力的东西talk is cheap, show me the code 这句话我觉得是永远成立的。 作者毕玄 本文为阿里云原创内容未经允许不得转载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/917860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

寻找做网站网站批量收录

随着人工智能领域的不断突破,2024年注定将成为中国智能技术发展的一个新纪元。当下,AI技术不仅在理论研究上取得了重大进展,其在商业应用、社会服务等领域的融合也日益深入。本文将结合近期网络上的AI热点,展望中国在AI技术方面的…

美容视频视频网站建设阿里云服务器网站建设

跨页面传递数据是在移动应用开发中非常常见和重要的功能。UniApp作为一个跨平台框架,提供了多种方式来实现数据的传递。下面将介绍几种常见的跨页面传递数据的方式,并给出相应的示例代码。 URL参数传递: 在源页面(例如pages/ind…

电商网站管理唐山网站建设优化

题目描述 一家神秘餐馆准备开放N天,牛牛 和 牛妹听到这个消息后,准备尽可能多的一起去吃午饭 餐馆有M道菜,牛牛和牛妹每次来只允许点一道菜,如果在第i天买了第j道菜 那么第i7天也只能买第j道菜 第i天第j道菜的价格为price[i][j] …

中国打仗最新消息镇江优化九一

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 良好的编程习惯良好的习惯对于人的成长是非常重要的,良好的编程习惯对于我…

深圳专业做网站多少钱有哪些看设计做品的网站

简介StringTable是什么?它和String.intern有什么关系呢?在字符串对象的创建过程中,StringTable有起到了什么作用呢?一切的答案都在本文中,快来看看吧。intern简介intern是String类中的一个native方法,所以它…

成都信用建设网站和外国人做古玩生意的网站

原文链接 Android Sync Barrier机制 诡异的假死问题 前段时间,项目上遇到了一个假死问题,随机出现,无固定复现规律,大量频繁随机操作后,便会出现假死,整个应用无法操作,不会响应事件&#xff…

做玄幻封面素材网站工程人才招聘网

求素数是比较基本的内容,有时候我们会需要打一个素数表。一般如果n比较小我们会使用(%2~sqrtn)这种算法,简单但是时间耗费很多,复杂度是O(n^2)。这里介绍一种筛选求素数法,基本要点是,如果找到一…

北京谁会做网站开发做跨境的网站有哪些

系统守护进程(服务) •服务就是运行在网络服务器上监听用户请求的进程 •服务是通过端口号来区分的 常见的服务及其对应的端口 1.ftp:21 FTP指的是文件传输协议,它是用于在计算机网络上进行文件传输的标准网络协议。通过FTP&am…

做电影网站被告版权网站备案做网站必须

​开放式耳机在如今社会中已经迅速成为大家购买耳机的新趋势,深受喜欢听歌和热爱运动的人群欢迎。当大家谈到佩戴的稳固性时,开放式耳机都会收到一致好评。对于热爱运动的人士而言,高品质的开放式耳机无疑是理想之选。特别是在近年来的一些骑…

代理ip注册网站都通不过网站建设返回函数

Scala 集合 概述 集合本质上就是一个用于存储1个到多个数据的容器。在Scala中,集合可以分为三大类:Seq(序列),Set(集合)和Map(映射)。基于这三大类,衍生出来众多的子类 序列:元素有序可重复 集合:元素无…

兰溪城市建设规划网站大有网网站

提示说没有.git这样一个目录 在命令行 输入 git init 然后回车就好了 git remote add origin https:/.git git push -u origin "master"

怎样制作自己网站模板手机网站建设

本文以MATLAB自带的脂肪数据集为例,将数据保存在EXCEL工作簿内,方便替换数据使用,以下介绍粒子群算法优化BP神经网络预测的MATLAB代码编写,主要流程包括1. 读取数据 2.划分训练集和测试集 3.归一化 4.确定BP神经网络的隐含层最优节点数量 5. 使用粒子群算法优化BP的神经网络…

建设信用卡网站换积分高中信息技术课程做网站

1.路劲处理模块 path 1.1 模块概览 在nodejs中,path是个使用频率很高,但却让人又爱又恨的模块。部分因为文档说的不够清晰,部分因为接口的平台差异性。将path的接口按照用途归类,仔细琢磨琢磨,也就没那么费解了。 1.…

云南省建设工程投标中心网站瑞安app开发

个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》 文章目录 前言一、栈的实现思路1. 结构的定义2. 初始化栈(StackInit)3. 入栈(StackPush)4. 出栈(StackPop)5. 获取栈顶元素(StackTop)6. 检查栈是否为空(StackEmpty)7. 销毁栈(StackDestroy) 二、…

青岛品牌网站制作旅游网站总结

0.实现效果 效果不咋好 ,参数不好调整 1.算法原理 3D NDT(Normal Distributions Transform)算法是一种用于同时定位和地图生成(SLAM)的机器人导航算法,特别适用于三维点云数据的配准。以下是关于3D NDT算法的详细解释: 算法原理 点云划分与分布计算:3D NDT算法首先将…

凡科建站seo那个网站教人做冰点

原型&#xff1a;extern char *strstr(const char *str1, const char *str2); 需要包含的头文件&#xff1a;#include <string.h> 作用&#xff1a;用于判断字符串str2在字符串str1中第一次出现的位置。如果没有找到则返回NULL&#xff0c;找到了则返回str1中的位置。 …

seo网站推广经理公司主营业务网站建设

CheckiO 是面向初学者和高级程序员的编码游戏&#xff0c;使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务&#xff0c;从而提高你的编码技能&#xff0c;本博客主要记录自己用 Python 在闯关时的做题思路和实现代码&#xff0c;同时也学习学习其他大神写的代码。 Chec…

西安网站优化服务西安建设工程信息网新平台

2.2.2 if 案例实践 学习目标 这一节&#xff0c;我们从 服务管理、堡垒机登录、小结 三个方面来学习。 服务管理 案例需求 要求脚本执行需要有参数&#xff0c;通过传入参数来实现不同的功能。参数和功能详情如下&#xff1a;参数 执行效果start 服务启动中...sto…

西安网站设计外包公司瑞安网站建设电话

标准类型内建函数&#xff1a;cmp(obj1, obj2) 比较obj1和obj2&#xff0c;根据比较结果返回整型i:i < 0 if obj1 < obj2i > 0 if obj1 > obj2i 0 if obj1 obj2repr(obj)或obj 返回一个对象的字符串表示str(obj) 返回对象适合可读性好的字符串表示type(obj) 得到…

# vite + vue3 实现打包后 dist 文件夹可以直接打开 html 文件预览

vite + vue3 实现打包后 dist 文件夹可以直接打开 html 文件预览 问题 为什么突然写这么一篇文章,首先,自己用vite+vue写了点静态页面,需要给客户看页面效果,但是我打包之后将 dist 发送给客户后,客户没有通过ngi…