CSBlogV2.11问题收集与信息反馈 ; CSCMSV1正式上线公测。
CSWave系列官方QQ群:24301472(最新版的一般都先发布在共享里哟) 。
转自:http://www.infoq.com/cn/articles/ebay-scalability-best-practices
在eBay,可伸缩性是我们每天奋力抵抗的一大架构压力。我们所做的每一项架构及设计决策,身前身后都能看到它的踪影。当我们面对的是全世界数以亿计的用户,每天的页面浏览量超过10亿,系统中的数据量要用皮字节(1015或250)来计算——可伸缩性是生死交关的问题。
可伸缩性有很多侧面——事务的方面、运营的方面、还有开发的方面。我们在改善一个Web系统的事务吞吐量的过程中学到了很多经验,本文总结了其中若 干关键的最佳实践。可能很多最佳实践你会觉得似曾相识,也可能有素未谋面的。这些都是开发和运营eBay网站的众人的集体经验结晶。
阅读全文及评论...一直在想,可是进度不是很尽人意呀.
目前的想法是:
1. 具体模块的权限设定写在配置文件里.通过类似于反射或是反序列化来映射到不同的模块上(可动太增加,这样多少插件来了也不怕)
2. 权限验证要灵活,不能像现在这样写死在方法里了(典型的面向过程编程呀).初步想到可能要用到工厂方法模式[目前本人这方面欠缺,正在学习中]
-----------无奈的分割线---------------
今天[2009-6-8]想到,为什么我们要把权限绑定到角色上呢? 如果反过来呢? 比如某一方法(或是模块)用的权限,我给一个资源Id(Gid) 然后将这个Gid和角色映射起来(应该也能用到OO里面的重载来实现)! 这样,新的模块出来了,只需要分配新的Gid和新的角色映射即可,而不是再预先想到某些模块可能用到什么权限.
可能说的不是很清楚,不过大家有什么好点子,欢迎提出来呀!
阅读全文及评论...CSCMS正式开工了, 里面有用到样式的切换,看到动网的办法是直接写的javascript, 因为最近看了一下JQuery发现真的是小巧精悍,比较喜欢.就用上了.先放出来,嘿嘿,最学乍练的.有啥不对的提出来.
- /**
- * author : atwind
- * url : http://max.cszi.com
- * use : $(function(){$(".objClassName").formStyle({className:"button_on"});};
- **/
- $.fn.formStyle = function(options) {
- var settings = {
- version : '0.10',
- onEvent : 'hover', //focus,blur,hover is default
- className : '' //事件发生时切换的样式
- };
- if(options) {
- $.extend(settings, options);
- }
- var eStyle = settings['onEvent'] ;
- if(eStyle == 'hover')
- this.hover(function(){$(this).addClass(settings['className']);},function(){$(this).removeClass(settings['className']);});
- if(eStyle == 'focus')
- this.bind(function(){$(this).addClass(settings['className']);});
- if(eStyle == 'blur')
- this.bind(function(){$(this).removeClass(settings['className']);});
- };
阅读全文及评论...还是权限部分的东东,因为要一个个的手选实在是太麻烦了,为什么不用JQuery呢?
- <script language="javascript" type="text/javascript" src="/Scripts/jquery-1.2.6.pack.js" ></script>
- <script type="text/javascript">
- <!--
- //全部
- function unCheckAll () {
- $("input:checkbox").attr('checked', false);
- }
- //组选中
- function unCheckGroup(clas,isCheck){
- $("."+clas).each(function(){ this.checked = isCheck;});
- }
- //-->
- </script>
阅读全文及评论...这几天在写权限的时候,使用Xslt的转换过程中,因为要在Xpath表达式中用使用变量来进行路径筛选,想当然用的使用 <xsl:value-of select="$Permission/$Name" /> ($Name是在循环中已经获取值的变量) 当然,出错了.
网上查了一下,好像也没有这种类似的选择, 准备用choose来手动写的时候,早上问了一下slightboy,结果问题就解决了,嘿嘿~~~ $Permission/*[name()=$Name](这种是查找出Permission下一级的名字为变量$Name的) , $Permission/@*[name()=$name] (这种是查找出Permission下一级属性的名字为变量$Name的) 嘿嘿,简单的循环就搞定一大片.
plus:这些天真是郁闷,天天下雨,最近还晚上下雨,我的鞋子呀,已经一个多月了,还是湿的,昨天晚上还把被单给都淋湿了.哎~~~~
阅读全文及评论...在CSBlog中的配置文件里,保存的是序列化后的Xml文档格式的信息,这种方式的好处是意义明确,易于扩展,并且不需要不停的修改数据库的字段.只要改变了程序,就能自动的进行升级.
在XML文档与对象的互相转换过程是,CSBlogV2.11以前的版本都是在方法里手动处理的,这样做不利于复用并且也比较容易出错,所以在今后的版本中,所有的要序列化成XML数据保存的对象都继承一个XmlComponentBase类.
- public abstract class XmlComponentBase
- {
- #region 与String类型的互相转换
- /// <summary>
- /// 转换为标准的Xml文档
- /// </summary>
- /// <returns></returns>
- public string ToXml()
- {
- return Serializer.XmlSerializerToXml(this);
- }
- /// <summary>
- /// 序列化成Xml的文本片断
- /// </summary>
- /// <returns></returns>
- public override string ToString()
- {
- return Serializer.XmlSerializerToText(this);
- }
- #endregion
- }
此类有两个方法,一个是ToXml()生成标准的XML文档保存至数据库,ToString()方法是生成Xml的片断,以挂接在要输出的进行转换的XML中.
阅读全文及评论...

订阅地址
