摘要: 回到索引http://www.cnblogs.com/lovecindywang/archive/2012/12/23/2829828.html性能层面:性能分析我觉得性能分析的话要注意几个要点:不要去猜:对于自己写的代码你是否知道你的代码要执行多久,是不是还在用时间相减来测试代码执行时间?现在有很多自动化的工具可以在程序运行的时候,测试代码中每一句语句的执行时间,可以有效分析出代码的性能瓶颈。对于比较重要的业务逻辑建议采用类似的工具来进行性能分析,有的时候性能慢的代码不一定是自己写的还可能是框架内提供的,如果没有一个丰富的编码经验是不太可能知道这些点的,但是通过这样的分析工具你就能知道这个地 阅读全文
posted @ 2012-12-23 18:01 lovecindywang 阅读(2349) 评论(0) 推荐(5) 编辑
摘要: 回到索引http://www.cnblogs.com/lovecindywang/archive/2012/12/23/2829828.html设计层面:分层架构分层架构是项目设计中很重要的一点,从根本的目的上来说就是为了职责的分离。最经典的三层架构,到四层五层六层,甚至有人开玩笑说十八层的分层,根据项目的需要可以分不同的层。这里说的层其实是逻辑层,从物理层的角度来说也有三层、四层五层的分层架构。之所以三层架构这么流行是因为它的分层把大的关注点进行了分离,层数恰到好处,表现层、业务逻辑层和数据访问层,分别处理面向用户呈现的、面向逻辑处理的和面向数据库存取数据的三大关注点。在分层架构中除了分层之 阅读全文
posted @ 2012-12-23 16:48 lovecindywang 阅读(5154) 评论(7) 推荐(7) 编辑
摘要: 回到索引http://www.cnblogs.com/lovecindywang/archive/2012/12/23/2829828.html框架层面:SOA在这一篇中会逐个介绍一下自己对这些XXX的理解,其实每一个理念都不是莫名其妙产生的而是有产生背景的,这些时髦的名词不是用来炫耀的,而是真正要理解它们是干什么的,并且框架千万不能乱用理念也千万不能乱用,并不是把所有的这些都用上你的系统才是一个牛逼的系统,一定要适合才是最好的,并且要保持简单可靠的原则。所谓SOA,字面上来说是面向服务的架构。有的人不说SOA其实他已经SOA了,有的人大谈SOA但其实只是在用Web服务,SOA可大可小。你可以 阅读全文
posted @ 2012-12-23 15:50 lovecindywang 阅读(4075) 评论(4) 推荐(3) 编辑
摘要: 回到索引http://www.cnblogs.com/lovecindywang/archive/2012/12/23/2829828.html架构层面:日志集中所谓日志集中就是把程序的所有日志和异常信息的记录都汇总到一起,在只有一台服务器的时候我们记录本地文件问题也不是最大,但是在负载均衡环境下再记录本地日志的话就出现问题了。在想查看网站日志的时候到哪台机器去查都不知道,难道有100台机器就100台机器逐一远程连上去看?因此,把这些数据汇总在一起保存对于大型网站系统来说是很必要的,这样我们就可以直接进行查看、搜索,也很明确可以知道是哪台机器的业务出了问题。至于这种日志数据是写到RDBMS还是 阅读全文
posted @ 2012-12-23 13:13 lovecindywang 阅读(4734) 评论(2) 推荐(1) 编辑
摘要: 回到索引http://www.cnblogs.com/lovecindywang/archive/2012/12/23/2829828.html安全层面:SQL注入SQL注入是一个古老的安全问题,现在任何程序都不应该再出现这样的问题了,其原理非常简单,在过去大多数程序都是直肠子通数据库的,因此如果拼接SQL并且在参数上没有做好过滤或者没有使用参数形式来生成SQL语句的话可能会导致用户在页面上输入的恶意代码直接在数据库中执行。SQL注入的危害点在于整个网站有1000个数据点,如果其中有1个点有漏洞那么整站的数据其实都有危险了,很多开发会注重资金相关的模块但是忽略新闻相关的模块,如果都是使用一套数 阅读全文
posted @ 2012-12-23 12:27 lovecindywang 阅读(1803) 评论(0) 推荐(0) 编辑
摘要: 回到索引http://www.cnblogs.com/lovecindywang/archive/2012/12/23/2829828.html语言层面:运行时元数据获取所谓运行时元数据获取也就是在程序运行的时候通过代码动态获得类型、方法、属性的信息,然后可以动态获得属性的值,执行方法等等,在有的语言中称为反射。反射不一定是高效的,但是在写框架程序的时候反射是一种很有用的技术,并且反射的性能开销往往是可以通过诸如缓存等手段来最小化的。比如在ORM中,根据实体类的信息动态获得所有的属性,然后取得其值,生成要到数据库中执行的SQL语句。理解反射熟练掌握反射的使用以及性能优化是编写框架类代码很重要的 阅读全文
posted @ 2012-12-23 12:22 lovecindywang 阅读(2228) 评论(0) 推荐(0) 编辑
摘要: 下面是一些个人架构上的总结,本来想只在公司内部进行共享的,因此内容写的口语化一点,也没什么图示,所有内容没有查任何资料是脑子里面的东西吐出来的因此可能会不准确不全,希望抛砖引玉,大家互相讨论。 要注意,我这些文章是一个总体的架构经验不针对具体的语言和平台,因此也不一定是适用所有的语言和平台的。 (内 阅读全文
posted @ 2012-12-23 12:20 lovecindywang 阅读(4665) 评论(3) 推荐(5) 编辑
摘要: 回到索引http://www.cnblogs.com/lovecindywang/archive/2012/12/23/2829828.html系统层面:高可用性所谓高可用性也就是通过避免单独故障加上快速故障转移实现一旦某台物理服务器出现故障能实现故障快速恢复。一般来说,可以采用两种方式,如果可以做业务可以做负载均衡则通过负载均衡实现集群,然后针对每一台服务器进行监控,一旦发生故障则从集群中移除;如果业务只能有单点入口那么可以通过实现Standby机加上虚拟IP机制,实现Active机在出现故障之后虚拟IP转移到Standby的快速故障转移。一般可以使用KeepAlived或HeartBeat 阅读全文
posted @ 2012-12-23 12:20 lovecindywang 阅读(2647) 评论(0) 推荐(1) 编辑