随笔分类 -  杂谈

摘要:技术学习要兼顾深度和广度 夯实技术基础 这么多年来,我面试了很多人。我越发感到「技术基础」非常重要。 很多技术的本质是一样的。技术基础足够好的话,学东西可以非常快。往下到操作系统层面,甚至计算机硬件层面,你会发现,编程语言特性和虚拟机特性不再重要。而技术基础和具体的编程语言没有太大关系,你有良好的技 阅读全文
posted @ 2018-04-09 18:30 lovecindywang 阅读(1531) 评论(3) 推荐(15) 编辑
摘要:在这里分享一些之前对某网站会员/用户系统(一般域名都是passport.xx.com)进行漏洞检查查出的一些问题,这些问题大多都是逻辑类漏洞,利用漏洞进行攻击并不需要什么高深的技术能力,所以危害尤其大,把相关经验分享给大家希望大家可以自查。这里要说明,下面很多漏洞的例子是基于已经获得有效的账号密码(... 阅读全文
posted @ 2015-06-05 13:04 lovecindywang 阅读(6440) 评论(19) 推荐(15) 编辑
摘要:说明:作者也没写过什么框架,只是分享一些自己的理解,抛砖引玉罢了。如果你写过一些框架可能会产生一些共鸣欢迎讨论,如果你正在写或正打算写一个框架可能会给你一些启发。本文以为较长可能会分多个篇博客来写,现在能想到的是主要分为步骤、模式两部分。如果你觉得好,按一个推荐举手之劳让更多的人可以看到。步骤 定位... 阅读全文
posted @ 2015-04-21 17:18 lovecindywang 阅读(41180) 评论(29) 推荐(69) 编辑
摘要:回到索引http://www.cnblogs.com/lovecindywang/archive/2012/12/23/2829828.html框架层面:近几年前端发展很快,前端之所以叫前端因为前端是已经可以独立成为一种职业了,js也不再是十年前的玩具了,以前富客户端RIA的应用可能会用flash/flex或是silverlight,现在可以使用js来完成大部分的功能,因此js作为一门前端的支撑语言也不仅仅是进行的简单的编码,越来越多框架性的东西出现了。越来越多的开发模式转变为后端只是吐json的数据源,而前端做所有UI的事情。MVCMVC实现职责分离是很好的,大多数网站在后端都会引入MVC框 阅读全文
posted @ 2012-12-25 18:21 lovecindywang 阅读(10220) 评论(14) 推荐(10) 编辑
摘要:回到索引http://www.cnblogs.com/lovecindywang/archive/2012/12/23/2829828.html性能层面:性能分析我觉得性能分析的话要注意几个要点:不要去猜:对于自己写的代码你是否知道你的代码要执行多久,是不是还在用时间相减来测试代码执行时间?现在有很多自动化的工具可以在程序运行的时候,测试代码中每一句语句的执行时间,可以有效分析出代码的性能瓶颈。对于比较重要的业务逻辑建议采用类似的工具来进行性能分析,有的时候性能慢的代码不一定是自己写的还可能是框架内提供的,如果没有一个丰富的编码经验是不太可能知道这些点的,但是通过这样的分析工具你就能知道这个地 阅读全文
posted @ 2012-12-23 18:01 lovecindywang 阅读(2351) 评论(0) 推荐(5) 编辑
摘要:回到索引http://www.cnblogs.com/lovecindywang/archive/2012/12/23/2829828.html设计层面:分层架构分层架构是项目设计中很重要的一点,从根本的目的上来说就是为了职责的分离。最经典的三层架构,到四层五层六层,甚至有人开玩笑说十八层的分层,根据项目的需要可以分不同的层。这里说的层其实是逻辑层,从物理层的角度来说也有三层、四层五层的分层架构。之所以三层架构这么流行是因为它的分层把大的关注点进行了分离,层数恰到好处,表现层、业务逻辑层和数据访问层,分别处理面向用户呈现的、面向逻辑处理的和面向数据库存取数据的三大关注点。在分层架构中除了分层之 阅读全文
posted @ 2012-12-23 16:48 lovecindywang 阅读(5160) 评论(7) 推荐(7) 编辑
摘要:回到索引http://www.cnblogs.com/lovecindywang/archive/2012/12/23/2829828.html架构层面:日志集中所谓日志集中就是把程序的所有日志和异常信息的记录都汇总到一起,在只有一台服务器的时候我们记录本地文件问题也不是最大,但是在负载均衡环境下再记录本地日志的话就出现问题了。在想查看网站日志的时候到哪台机器去查都不知道,难道有100台机器就100台机器逐一远程连上去看?因此,把这些数据汇总在一起保存对于大型网站系统来说是很必要的,这样我们就可以直接进行查看、搜索,也很明确可以知道是哪台机器的业务出了问题。至于这种日志数据是写到RDBMS还是 阅读全文
posted @ 2012-12-23 13:13 lovecindywang 阅读(4746) 评论(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 阅读(1808) 评论(0) 推荐(0) 编辑
摘要:回到索引http://www.cnblogs.com/lovecindywang/archive/2012/12/23/2829828.html语言层面:运行时元数据获取所谓运行时元数据获取也就是在程序运行的时候通过代码动态获得类型、方法、属性的信息,然后可以动态获得属性的值,执行方法等等,在有的语言中称为反射。反射不一定是高效的,但是在写框架程序的时候反射是一种很有用的技术,并且反射的性能开销往往是可以通过诸如缓存等手段来最小化的。比如在ORM中,根据实体类的信息动态获得所有的属性,然后取得其值,生成要到数据库中执行的SQL语句。理解反射熟练掌握反射的使用以及性能优化是编写框架类代码很重要的 阅读全文
posted @ 2012-12-23 12:22 lovecindywang 阅读(2232) 评论(0) 推荐(0) 编辑
摘要:下面是一些个人架构上的总结,本来想只在公司内部进行共享的,因此内容写的口语化一点,也没什么图示,所有内容没有查任何资料是脑子里面的东西吐出来的因此可能会不准确不全,希望抛砖引玉,大家互相讨论。 要注意,我这些文章是一个总体的架构经验不针对具体的语言和平台,因此也不一定是适用所有的语言和平台的。 (内 阅读全文
posted @ 2012-12-23 12:20 lovecindywang 阅读(4683) 评论(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 阅读(2654) 评论(0) 推荐(1) 编辑
摘要:招聘后端(Java、Php)前端、数据库等各类人才(开发经理、架构师、开发、DBA)(四)大学的时候接上文。在大学的时候有各种各样的社团,出于对做网站的喜欢,当时加入了一个网络社团,想学学做网站的东西,当时对社团里面会动态语言做asp网站的人钦佩的不得了,于是回家买了一本asp的书:我真正的启蒙书,当时我室友也是会一点html和静态网站的,他看了我学asp就说你不要尝试了,这个很难学的学不会的。后来我还是没有放弃,坚持照着书上的例子做,大概几个月的时间我发现居然会用asp做一些小系统了,由于和网络学会一个学长关系比较好,于是他拉我和其他几个学长一起“创业”接一些外包的小网站来做,当时我们这个小 阅读全文
posted @ 2012-10-23 16:17 lovecindywang 阅读(12585) 评论(113) 推荐(68) 编辑
摘要:招聘后端(Java、Php)前端、数据库等各类人才(开发经理、架构师、开发、DBA)小的时候有写日记的习惯,不是自己要写而是为了完成任务,后来发现写日记确实也是可以培养语言表达能力的。上了高中之后除了作业就很少写东西了,趁着这几天休息想写一下我使用电脑、学习技术的历程。一来当作分享,看看大家是否能有一些共鸣和启示;二来当作回忆,随着年龄的增长很多事情渐渐记不住了,想在纸面上留下点记忆。(一)小学的时候我是很早就接触和喜欢计算机的,可能有近20年的历史了,不过说来也惭愧,我经常和同事们说虽然接触电脑这么长时间,但是技术水平并不比你们接触电脑几年的人多几倍。记得最早的时候是我在上小学的时候,在我妈 阅读全文
posted @ 2012-10-23 13:52 lovecindywang 阅读(13492) 评论(44) 推荐(14) 编辑
摘要:带链接的完整版本:http://files.cnblogs.com/lovecindywang/.net.pdfhttp://files.cnblogs.com/lovecindywang/j2ee.pdf开源和非开源(当然,现在微软很多产品也开源了)平台的很大不同在于:开源的好东西确实是多,但质量也是参差参差不齐的,各个不同产品在不同版本的兼容性也是问题。非开源社区贡献相对较小,微软产品线的产品兼容性是不错的,但是一家独大也容易造成社区积极性不足。补充说明:J2EE的图中看不到Spring,.NET的图中看不到IIS,有一些共识的东西就不提了。这里不比较谁好谁坏,只是列出一些关键词,在做架构 阅读全文
posted @ 2012-08-06 10:05 lovecindywang 阅读(4596) 评论(15) 推荐(14) 编辑
摘要:一个比较成规模的系统,很多东西依赖官方组件不能满足定制、灵活、性能、监控的要求,需要开发哪些东西?略微整理了一下,这也是我们的目标。宗旨:1)自己的组件需要处处体现集中配置、集中日志、内置性能监视器、集中监控、自动部署等理念!2)考虑分期,先实现必要的东西,尽量轻量化,微软搞的东西很容易太重!3)尽量考虑不依赖硬件的横向扩展!4)分布式分布式说白了很多时候是对用户来说是集中的单点的,在后端是分布式的用于承载大量数据和大量请求!5)分布式要解决的问题?同步、路由、负载均衡、可用性检测、数据迁移、性能、治理。。。 阅读全文
posted @ 2012-01-11 11:13 lovecindywang 阅读(4170) 评论(15) 推荐(7) 编辑
摘要:有一个很常见的功能,我们需要在一个子窗口中定时调用服务,然后更新控件的内容,只要窗口开着就一直会调用服务。 那么现在就来完成这个功能,首先定义一个服务: public class Service1 : IService1 { public string DoWork(string name) { File.AppendAllTex... 阅读全文
posted @ 2011-11-09 12:43 lovecindywang 阅读(2394) 评论(0) 推荐(1) 编辑
摘要:在公司内部有很多基础框架或者基础组件,甚至对于使用SOA架构的公司来说,会有大量的业务组件的契约程序集,对于这些框架或组件的引用管理有的人使用源代码管理工具,但是NuGet相比源代码管理工具更方便:1) 安装和卸载:不需要手动添加和移除引用,不需要手动改写配置文件甚至是一些初始化服务的代码。版本升级也只需要执行一条命令。2) 打包:多文件打包,支持依赖管理等,使用的人没有繁琐的配置。对于官方的包,可以在http://www.nuget.org/ 找到,自己也可以提交包上去。但是如果不希望把包公开的话,可以在内部架设一个NuGet服务器。下面介绍一下基本步骤以及如何进行打包。1) 下载 NuGe 阅读全文
posted @ 2011-05-12 13:59 lovecindywang 阅读(11372) 评论(10) 推荐(9) 编辑
摘要:我们知道TCP连接的代价是比较大的,因此很多时候我们都会使用长连接,对于客户端也就会使用连接池。 而各种客户端实现的方式不尽相同,API的最佳使用方式也不尽相同,如果使用不当则会发生很大的问题。 ... 阅读全文
posted @ 2011-02-16 18:00 lovecindywang 阅读(2881) 评论(3) 推荐(1) 编辑
摘要:如果我们记录用户的点击或者鼠标的移动,并且绘制成热点图,生成的结果可以帮助我们分析和改良UI。 用于分析网站UI友好性的点击热点图可以这么来做: 最简单的方式是记录页面地址,鼠标相当于页面左上角的... 阅读全文
posted @ 2011-01-28 16:13 lovecindywang 阅读(2834) 评论(3) 推荐(2) 编辑
摘要:测试代码点击这里下载,通过此代码也剖析了MVC2的扩展点和扩展方式。   MVC执行流程如下: ----------------开始执行TestMvcApplication 类的 App... 阅读全文
posted @ 2010-12-02 17:51 lovecindywang 阅读(4056) 评论(5) 推荐(5) 编辑