随笔分类 - [20]DesignAnalysis设计分析
-
桌面及移动设备的网页性能
摘要:前言移动设备由于受到带宽、处理器运算速度的限制,因而对网页的性能有更高的要求。究竟是网页中的何种元素拉低了网页在移动设备中加载的速度呢?这些元素应该做何处理以提升页面在移动设备中的整体性能?是否存在一种设计模式可以同时满足移动端及桌面端的页面设计呢?本文目录:1、桌面网页的性能检测2、移动设备中网页的性能检测3、移动设备网页的性能瓶颈4、如何改善移动设备网页的性能5、什么是Mobile-first Responsive Web Design和Progressive Enhancement正文1、桌面网页的性能检测桌面浏览器使用的页面可以利用一个插件来检测,名为Yslow。Firefox和chr 阅读全文
-
响应式的WEB设计
摘要:现在移动设备越来越普及,用户使用智能手机、pad上网页越来越普遍。但是传统的fix型的页面在移动终端上无法很好的显示。因此,Ethan Marcotte提出一种响应式web设计的概念。响应式web设计的英文为Responsive Web Design,简写为RWD。在图书馆借到一本O'REILLY的《Head First Moblie Web》,里面讲到了一些做RWD的技巧。今天学到的两招是:1、使用media信息来帮助判断屏幕尺寸2、使用百分比来替换以前使用的像素来声明宽度等与尺寸相关的信息看看今天试验的成果(本文最后有试验例子的下载链接):视频:全屏幕显示页面时将浏览器拉窄模仿移动 阅读全文
-
CodeLove初版发布
摘要:也许你还在为生活庸庸碌碌而感到迷茫,也许你还在虚拟生活中游戏人生,也许你还在加班生活而痛苦挣扎……无论怎样,都不应该阻挡你的积极进取的心。既然你选择了程序员,那么就做一个积极进取的程序员吧。为兴趣而编程,让生活不再庸碌。最近一直在苦逼忙碌,一直在苦逼加班,但并不表示就无所作为。为了让大家更好理解,就让我描述下构思的来源吧。构思一直在想做点什么,虽然我几乎不做桌面程序,但是我很想做一款能够提高生产效率的软件。当我喜欢上bat时,我想到了让Bat飞起来,于是有了以下的构思:也就是让bat可以执行SQL、JS、C#表达式、发送邮件等等,当我做的差不多的时候,面临着不断的加班,于是暂时搁浅了。在沉寂的 阅读全文
-
仿照博客园网站的找找看功能实现 预览
摘要:http://www.cnblogs.com/jiagoushi/archive/2013/01/05/2846920.html经过接近半个月的努力,今天我总算完成了博客园找找看功能的大部分实现,说实话,干编程真是费脑细胞啊。我本着不能白干的原则来描述一下我的本地模拟博客园找找看功能的实现。 首先我先说明一下我采用的结构,采用Lucene.net 2.9 作为全文检索的工具,并配合盘古分词进行中文分词。其实我当时是通过NuGet获取到的Lucene.net 3.0 的最新版本,但是和盘古分词一起使用的时候出现了各种问题,无奈之下,只能采用Lucene.net 2.9,如果各位有更好的中文检索方 阅读全文
-
.NET三层架构开发初步
摘要:今天咱们来谈下三层架构。说到三层架构,搞过点程序的可能都知道三层架构的概念。但是对三层的精髓可能不是很了解。首先说下自己对三层的理解,就是使用三个(多个)项目结合起来开发出一个应用系统。下层项目为上层项目提供了接口(说白了就是可以从上层类访问下层类的方法),并且将结果返回到上层。接下来咱们来看下三层的优势三层架构的优势适应变化、利于维护:项目需求往往随市场的变化而发生变化,三层架构通过将各功能模块分离,提高了项目的可维护性和代码的可重用性。适用于协作开发。主流趋势,越来越多的企业在开发项目时采用三层架构作为项目的基础架构。三层架构在将来会有更多的市场。当然,这些优势在后续的开发中我们会有更新的 阅读全文
-
REST Convention
摘要:Portal-Basic Java Web应用开发框架(简称 Portal-Basic)是一套功能完备的高性能Full-Stack Web应用开发框架,内置稳定高效的MVC基础架构和DAO框架(已内置Hibernate、MyBatis和JDBC支持),集成 Action拦截、Form Bean / Dao Bean / Spring Bean装配、国际化、文件上传下载和缓存等基础Web应用组件,提供高度灵活的纯 Jsp/Servlet API 编程模型,完美整合 Spring,支持Action Convention“零配置”,能快速开发传统风格和RESTful风格的Web应用程序,文档和代码清 阅读全文
-
OEA 中的多国语言实现
摘要:本篇博客主要描述在OEA框架中的多国语言框架的原理及应用。多国语言常见实现及原理分析 管理软件平台,一般来说,都应该支持多国语言,以支持应用程序走向国际化。OEA 最近也提供了多国语言框架,它可以在修改少量甚至不修改代码的情况下,快速、灵活地,使得整个应用软件支持各个国家的语言。在 .NET 平台上,要实现多国语言切换,一般可以使用资源文件实现;在WPF中,也可以使用动态引用实现。这些可以参考以下几篇文章中讲到的方法:《WP7多国语言支持》、《一种灵活的WPF程序多国语言支持》、《.NET多国语言支持》。 而这些方法背后的本质,其实都是在开发期,通过开发人员定义的“键(Key)”,找到在运行期 阅读全文
-
Sqler 工具
摘要:Sqler 工具介绍用MSSQL做大型网站,基本上会牵涉到群集、复制、消息队列 、镜像、日志传送 、always On.SQLer 作者有 多年 大型 网站 一线 DBA工作 经验,深刻理解自动化运维、自动化工具重要型 。自动化 工具必须 满足精细化管理,准确无误的定位到问题点。DBA工作本身是未雨绸缪,要走在前面,走的快,还不累趴下,自动化工具必须到位。下面介绍下sqler 工具:sqler 工具是通过powershell 脚本来实现,自动化配置。下面 是 大型网站架构图和sqler收集流程。这次主要讲监控我们来看下 sqler 能为我们带来什么Windows 层 :error log报警P 阅读全文
-
电子政务数据库管理系统及应用软件系统安全分享(一)
摘要:本文主要目录如下:1、概述1、1 背景1、2 信息系统安全等级1、3 信息系统面临的主要安全问题1、4 目的1、5 术语和定义2、数据库管理系统安全(SqlServer)2、1 身份鉴别2、2 数据加解密和完整性2、3 标记和访问控制2、4 数据审核审计3、应用软件系统安全3、1 身份鉴别3、2 数据加解密和完整性3、3 标记和访问控制3、4 数据审核审计4、参考文献1、概述 随着国家对信息安全的高度重视,我们的客户对信息安全也越来越关切,我们在与客户交流时如何让客户认可我们的信息安全?我们一般都会直接跟客户讲一些我们技术上的信息安全解决方式,不过由于客户的水平所致,他们听不懂甚至可能不想.. 阅读全文
-
写一个编译器
摘要:本文介绍前一段时间开发的BDD语言iQA的编写以及设计过程,概要介绍词法分析、语法分析以及分析语法树生成代码的过程,由于iQA语言只是一个简单的代码生成工具,所以里面并没有使用到任何的语义分析的过程。iQA是开源的,其源码位置在:https://github.com/vowei/iqa要编译它,请从antlr的官网下载最新版本,放在src文件夹的lib目录里,然后按照READM.md文件逐步编译即可。关于antlr的词法、语法分析过程我在前面的文章里已经写过很多了,请读者参阅文章:编译器的词法分析简介:http://www.cnblogs.com/vowei/archive/2012/08/2 阅读全文
-
高性能分布式计算与存储系统设计概要——暨2012年工作3年半总结(下)
摘要:高性能分布式计算与存储系统设计概要——暨2012年工作3年半总结(下) (上篇) 在上篇里,我们主要讨论了,这个系统怎样处理大数据的“读”操作,当然还有一些细节没有讲述。下篇,我们将主要讲述,“写”操作是如何被处理的。我们都知道,如果只有“读”,那几乎是不用做任何数据同步的,也不会有并发安全问题,之所以,会产生这样那样的问题,会导致缓存和数据库的数据不一致,其实根源就在于“写”操作的存在。下面,让我们看一看,当系统需要写一条数据的时候,又会发生怎样的事情? 同样,我们还是以friend list为例。现在,我登陆了这个网站,获取了friend list之后,我添加了一个好友,那... 阅读全文
-
[开源] AccountMaster - 账户管理 -> 项目介绍及用户使用流程设计
摘要:[开源] AccountMaster - 账户管理 -> 项目介绍及用户使用流程设计很有幸参与由我的好友 WT 发起的开源项目,AccountMaster - 账户管理, 这个软件的名字里没有"大湿", 也没有"砖家", 只有开源。软件功能:让您轻松而又放心的管理您的互联网账户和密码。发起背景:在这个账号密码横行的年代, 想要记住自己全部的账号和密码似乎已经不太可能。 对于这点, 笔者是深有体会, 各种密码写了密密麻麻两页纸, 甚至有时笔者连某个网站是否注册过都忘记了, 如果不同网站使用相同的用户名以及密码虽说好记但是这样是十分危险的, 一些网站由 阅读全文
-
大视角、大方向、大问题、大架构:(结局)解决问题的出发点
摘要:大视角、大方向、大问题、大架构:(结局)解决问题的出发点为了便于理解建议先阅读前两篇大视角、大方向、大问题、大架构:(一)信息时代下的管理大视角、大方向、大问题、大架构:(二)应用的相关问题信息化所带来的业务的大规模运作是远胜于机器制造时代所具有的产业规模的,请试想一下,一个企业能同时服务于上亿的在线用户的情景,但这并不能说明企业家的胃口到此为止,只要系统能支持,是越大越好。而问题是现在不是没有市场,而是我们的承载能力。这来源与多个方面,管理便是其中一个重要的要素。每个企业都试图能够尽量的扁平化人员组织结构,刘强东说过“战略目的是希望不管组织规模怎样扩大,一定要保证决策层到基层不超过三层。” 阅读全文
-
再谈设计高并发的电子商店
摘要:上次我发布了设计高并发的电子商店初稿,得到大家的很多优秀建议和反馈,在此基础上,我对设计做了调整,希望大家多多拍砖。我会将实现的全过程记录下来,并通过博客园分享给大家,当然最后也会把这个电子商店网站免费开源。我们的电子商店都准备实现哪些功能模块呢?详细描述,等我们下一个章节再说说道说道......首先从架构上考虑,我们采用四层的面向服务的架构:一个标准的四层架构包含如下四个部分:商店应用程序展示层,负责商店应用程序与客户的交互服务层,负责与商店应用程序进行数据交互业务逻辑层,负责处理系统的业务数据访问层,负责处理数据,与不同的数据库打交道然后从物理部署上考虑,我们采用分布式部署:我们的目的就是 阅读全文
-
以淘宝商品搜索漫谈查询条件的排序对效率的影响(SQL查询性能优化,附调优(性能诊断)DMV)
摘要:有时候一个念头或想法在不经意间蹦出——就像是一段美好的邂逅,让人淡然而有些欣喜。写这篇博客的由来也是如此,——“查询条件的排序的不同可能会对查询效率有影响”的想法突然出现在我的脑海里,而且我饶有兴致的细想了下,经过测试,但无奈的是我本地只有2w多的数据量,数据量太小,无法测试出其真实的结果,这也是为何这篇博客的标题中说是'漫谈'的原因;'漫谈'很可能就是乱弹,我所说的只是我想当然的,未经证实;但我仍想也感觉有必要把所考虑的跟大家分享交流下,就是板儿砖满天飞也无所谓,以求正解! 如上图,就是淘宝网的商品搜索页,我所要说的会直截了当的围绕上图谈起——只用看上图中绿色 阅读全文
-
设计高并发的电子商店
摘要:闲暇之余准备开发一套电子商店的网站,要求能够面对大数据量,高并发。我会将实现的全过程记录下来,并通过博客分享给大家,当然最后也会把这个电子商店网站免费开源,希望大家多多拍砖。我们的电子商店都准备实现哪些功能模块呢?商品管理商品类别管理打折管理评价管理订单管理网站菜单管理首页五图连播管理内容管理权限管理 详细描述,等我们下一个章节再说说道说道......首先从架构上考虑,我们采用四层的面向服务的架构:一个标准的四层架构包含如下四个部分:商店应用程序展示层,负责商店应用程序与客户的交互服务层,负责与商店应用程序进行数据交互业务逻辑层,负责处理系统的业务数据访问层,负责处理数据,与不同的数据库打交. 阅读全文
-
CDN-内容推送网络
摘要:前段时间介绍了浏览器缓存机制,通过浏览器缓存一方面可以改善用户的体验,而不用漫长地等待从服务器下载资源;另一方面减轻服务器压力、节省流量。CDN是另一种可以大幅度优化用户体验,且减轻服务器压力的技术。下面就自己了解的CDN技术分享下。CDN的实现是一组技术的组合,每个技术都可以单独成文详细讨论,这里就不深入每个技术。内容目录:1.什么是CDN?2.CDN技术原理2.1.分布式存储2.2.内容管理2.3.负载均衡2.4.网络请求的重定向3.CDN资源访问流程4.关于CDN的疑问4.1.使用CDN后,如何获取客户端真实IP?4.2.采用CDN服务以后如何保证内容的更新和同步?1.什么是CDN?CD 阅读全文
-
图书商城项目总论
摘要:图书商城项目总论图书商城项目总论这些年来,我随指南针公司做了一些网站。在这里也感谢指南针用户对鄙人的大力支持,厚爱。汇聚很多程序员多年的智慧,今天我把多年来积累的经验汇聚到一个图书商城项目里面,为大家介绍网站的源代码。关键的环节在于融会贯通,举一反三。先从注册开始,注册说起来相对来比较简单 一、登录界面注册界面里面有文本框,有用户名的检测 – 用到“AJAX”这个知识点填写完信息点击注册后,有个js或是jq的校验当信息全部填写完,用户点击注册按钮后,把表单里面的数据向服务端提交,在服务端接收数据,插入数据库。那么,除了把用户信息插入数据库当中之外,我们还要实现用户激活的功能... 阅读全文
-
RabbitMQ Boot Step
摘要:之前提到[链接]RabbitMQ会把启动过程分成若干阶段,按照依赖关系进行启动.rabbit_boot_step里面的requires 和 enables配置节是描述这种依赖关系的关键.require约定了该项目启动所依赖的前置条件,enables 表示当前项目启动之后可以启动什么;如果有多个项目enable一个项目(比如:external_infrastructure),要等这些项目都启动了external_infrastructure 才可以启动. 为什么要搞得那么复杂?一股脑调用启动不就行了?RabbitMQ启动过程中复杂的依赖关系,以及灵活扩展的要求,不可能随机顺序启动或者硬编码启动顺 阅读全文
-
使用RabbitMQ做的一些工作及经验教训
摘要:使用RabbitMQ半年有余,每天跑的数据量数亿这个量级吧,期间做了些工作,也处理了些问题,稍加总结。我们使用的场景主要是用于模块件的数据中转和分发,客户端以C++为主,php和python为辅。工作:基于rabbitmq-c开发了c/c++客户端,主要实现了连接管理、统一配置管理、负载均衡、QPS限制等功能,同时为支持队列迁移,提供了消息本地缓存功能,通过信号开关;为解决特定场景下内存暴涨的问题,额外提供了thrift形式的访问接口,在thrift层增加了统计、配额管理等功能,同时提供队列抽象层及多队列机制,支持后续不中断服务的扩容;开发了配套的工具脚本,一键创建vhost\exchange 阅读全文