2
回答
请解救爪哇路上迷茫弱小的我
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
@各路大神们,自小弟入门Java至今日已刚好一年了,工作中仍有不少痴惑,正打算利用这小段实战经历,来重新理解下web开发常用的各大基础技术要领(主要是当时初学,涉猎的太笼统,都只记住了概念)。还请各位前人帮忙指点下,具体有哪些基础知识是值得重点思量?哪些技能是值得归纳提升和深入渗透的?还有如果要横向扩展技术的话,有哪些方面或者哪一块是值得推荐的呢?
<无标签>
举报
royalZJ
发帖于1年前 2回/98阅
共有2个答案 最后回答: 1年前
首先你要熟练的开发一个web系统,然后被各种蛋疼的需求搞的要死要活的,然后不断的重构你的代码,你突然发现我要是一开始设计好一点也许现在就不会这么苦逼的重构代码了,然后一点一点的思考要设计什么样的系统才能解决这些问题,然后你就会想到你用到了mvc,为什么用他,他解决了你哪些问题,然后你又想到了服务化,服务化有帮助你解决了什么问题,渐渐的你明白了架构的重要性,后面你又开始纠结性能问题,然后开始理解单线程和多线程的好处和坏处,发现多线程编码的时候要注意许多细节,后面又遇到集群,服务集群又要注意许多细节,然后你就开始想为什么要使用多线程,你会发现单线程每次请求进来你都要等待他人执行完了你才能执行,然后就得用多线程,就好比你去店里买东西,如果多几个营业员是不是用户买单的时候就会快多了,然后你又开始想为什么集群,突然发现集群和多线程的原理类似,都是解决单人服务需要排队或者扛不住的问题,要是能把所有流量分散开来处理,这样是不是就快了,服务的性能问题解决了,你突然发现数据库的压力又来了,这个时候你又开始想怎么优化数据库才能让数据库承受更大的压力,你突然发现数据库是不是也可以像你的程序一样使用集群分散压力,但是你就会想到数据是需要保证acid的呀,那要怎么处理才能保证数据的acid呢,或者说怎么去折中处理,那这个时候诞生分库分表等策略,以及集群数据冗余等策略,还有添加缓存的策略,数据库压力终于降下来了,那这个时候服务又开始出问题了,然后你就发现其实这个庞大的系统有很多接口并不是每时每刻都会访问到,然后你就开始想微服务化模块化,以及开始使用分布式了,唉,写了那么多,太累了,你自己慢慢想想
--- 共有 1 条评论 ---
royalZJ对您来说虽然字数繁多,但对我可以说是字字珠玑,恰是需要这样的引路线 1年前 回复
其实最终总结四个字:分治治之。也就是把流量分流,推荐几本书给你看把:《[深入理解Java虚拟机:JVM高级特性与最佳实践].周志明》《大型网站技术核心原理与案例分析》《大型分布式网站架构设计与实践》《大型网站系统与Java中间件实践》《分布式Java应用基础与实践》,代码写了,也不要忘了去学习一下其他语言,这样能帮助你对语言的深刻理解,说白了,每种语言每种策略其实大多时候都是万变不离其宗,关键看你具体的场景和业务然后具体去使用这些技术,写程序注重脑子灵活。这些书京东都可以找到,我最喜欢的是李智慧的那本《大型网站技术核心原理与案例分析》
--- 共有 1 条评论 ---
royalZJ好的,谢谢您的箴言。稍待静心,鄙人定当细细体味,慢慢研习。 1年前 回复
顶部