记得上学的时候,看到一个编程很厉害的同窗,给咱们搭建框架,谈到系统架构这样一个概念,看着他把文件分门别类的放到不一样的路径下。后来,知道这有个学名,叫分层。 javascript
再接下来,一个老师在教咱们的时候,开始遇到dao,service这样熟悉的关键字。这也是一种分层的思想。在以后的日子里,本身写程序也就模仿这样的思路作了,具体有什么好处,也是都是从网上查到的好处,却没有真正的体验与理解。 css
后来,学了设计模式,开始注意重构代码,明白了分层的时候,能够提升代码的复用性。慢慢的,也开始一些为何了。在思考这些东西的时候,本身开始成长,也开始看一些开源框架,好比Spring。随之也慢慢认识了一些关于服务器代码的组织规则,可是也仅限在知其然,不知因此然。 前端
对知识的理解,在没有很大理论作积淀的前提,大部分都是解决问题中,自我感受到的。一直停留在如何写好java代码的我,相继写了一些javascript,css方面的东西,感觉了前端交互的一些知识。不太久而久之,发现本身一直在忙于思考的是如何写代码,却忽略了一个很大的问题,那就是如何让代码,如何让程序更好的运行。我我的认为这个东西应该归咎于项目的部署以及运维。 java
线上的项目与咱们平时作的小项目不一样的是,线上的每个错误均可能蕴藏着杀机,让你略感迷茫。若是不能正确的判断问题的缘由,那就更痛苦啦。这个时候,我发现了日志(LOG4J)这个东西的好处,帮咱们解决了不少东西。慢慢的,发现这不单单是在java程序中,包括服务器日志,Servlet容器日志以及数据库的日志。一个好的日志习惯,可以让你的程序跑的更舒服。 web
在顺着上面的问题,我接下来遇到的这个,多是我一直都在耳边听,却一直没有作的事情。人有的时候,就是这样,东西摆在那儿的时候,老是懒得去拿,但是当把你逼得不去作不行的时候,本身又急忙的去抢。 数据库
问题的背景是,咱们使用Apache作了跳转,将请求转发到Tomcat中。想必这个东西你们都有所认识,网上也有不少的资料。可是,咱们依旧把静态资源存放在了Tomcat下,这样就出现了一个问题,Tomcat做为一个Servlet容器,处理静态资源的能力远远低于了Apache这样的webServer(具体处理方式,上一篇文章已经有说明)。因而,这里出现了咱们常常挂在嘴边的【动静分离】的概念。 编程
也正是在理解Apache+Tomcat完成动静分离的过程当中,让我理解了,为何咱们以前会把css/js这样的静态资源与jsp/servlert这样的动态资源分开放置,须要在项目部署时进行资源优化处理。 设计模式