Octopus系列之开发中灵光点收集,先放到这里,后面会整理的

项目中引用的组件javascript

1.System.Data.SQLite.dll 自行编译 SQLite-1.0.66.0-source 3.5的框架;F:\Code\开源项目\SQLite\1.0.66.0_x86\源码\SQLite-1.0.66.0-source\bin【目前已经更新了,不在使用这个了,这个有个bug】
2.F:\Code\开源组件\LitJSON\0.9.0
3.NVelocity.dll 来自小泥鳅blog
******************************************************************************************************************
一些想法html

1.将一个大对象拆开有好处,省得在获取数据的时候, 查询过多的数据【好比Product对象】
2.定义一个SQL函数的管理器,管理程序中的SQL语句, select部分,from部分,where部分,条件部分,分组部分,排序部分 【这个想法来自于PetShop】
3.委托功能实现分页【这个就算了】
4.良好而规范的变量命名,能够下降注释的代码量 同时增长代码的易读性java

拆分多个数据库的想法
Octopus.db                产品分类 品牌 门类
OctopusMember.db     网站会员信息,购物车  
OctopusOrders.db       订单数据库
OctopusCommon.db    通用配置信息 之类公共广告信息 静态代码 模板管理web

******************************************************************************************************************
需求模块ajax

1.看我思惟导图
2.参照开源程序 PetShop,zencart,magento,BalloonShop,opencart,nopCommerce,小泥鳅.... 
3.ShoppingNetwork
4.在线购物网站 算法

兰亭
http://www.footlocker.com/
http://www.sierratradingpost.com/site-map/
5.要进行测试每个函数
******************************************************************************************************************数据库

2.0版本
重大更新
1.实体中VO对象里面的 业务代码提取出来 放置到 业务BLL层里面去json

须要更新
1.加入一个产品关联的属性【已经实现】
2.请不要调用产品的图片信息【没有初始化】浏览器

3.升级先有的数据库,存储顾客和订单的信息 【采用json存储 由于自己数据量不是很大】
4.升级数据库 将如今的数据库进行拆分 用于支持更多的数据库【已经拆分】
5.关于注册表单的问题,采用magento的那套表单注册机制和采用兰亭集势的注册机制【没有采用】缓存


缘由分析一下:
由于咱们的网站大多数的客户是属于一次性交易的客户,所以开放匿名购买的功能很是的有必要性【实现了】
像兰亭这样的大站,他们有固定的用户群体,因此每次下单结算的时候必需要登录网站才能操做,可是咱们的不同的


6.更新分类的调用:指定几个分类的调用;指定条数的调用【已经实现,尚未使用】
7.分类自定义的样式属性,为分类呈现出特殊的 标识样式 好比加上Hot 【后期扩展使用】
8.更新产品详情 展现的 批量折扣的优惠提示信息【后面实现】


9.前台增长一个访客的历史记录【后面实现】


10.简单的产品评论
11.优惠的三种方案 优惠码优惠方案 满多少金额优惠方案 批量件数的优惠方案
12.产品详情的展现部分 增长产品的关联产品 增长产品的搭配产品
13.增长产品属性 的可输入属性
14.增长价格属性部分 产品属性影响价格的部分
15.购物车部分的实现 采用数据库的方式进行实现
16.会员中心
内置几套固定的模板可供选择
登录注册部分采用ajax的方式实现
会员中心的一部分采用的是Webservice的方式实现

17.增长语言包的缓存功能【已经实现】

后台管理部分

1.批量修改产品的价格
2.批量增长新的产品

开发采用新的数据Web服务接口
经过一个 简单的开放API的 东西进行控制

运费和汇率的统一调整服务

要求实现:确保全部的网站的汇率可以获得统一的更新
运费实现:和各个国家区域相关联的部分

产品Size
单一的这种
带有属性价格的这种

多个Size的这种

带有颜色图片的这种

******************************************************************************************************************
1.关于多语言汉化的问题
注意几个地方:js中使用的固定字符串; title; 标签中文字; alt;Help连接的名字
建议在最开始的时候 定义一个全局的json对象,用来存储全部的js中的多语言字符颇有效果,包括cookie的名字

2.关于当前系统中全部的排序:排序数字越大 越靠前 【默认的关系规则】

分类列表读取时的排序
order by SortOrder asc,CategoryID desc
产品列表读取时的排序

3.增长link信息表 链接管理--主要用于对【帮助,隐私政策链接】的实现
4.
增长产品Color颜色属性,增长产品关联的算法【需求来自于uggouteltonline.us.com】
更新增长团购的功能,买的更多,将会有更多的优惠【需求来自于zencart 为产品设置批量优惠】
更新属性图片--图片地址的存储 ${siteurl}/red.gif; 输出到前台的时候将会自动装换【等待实现】

5.ProductInfo扩展函数的问题
备注:扩展函数能够提取到 公共实体当中去 EntityInfo
这些函数有 好比建立产品URL的地址格式;建立分类产品的URL地址格式,将这个提取到公共的类里面

6.是否应该在VO对象中掺杂业务逻辑
是否应该在业务层中来构造VO对象呢? 不在VO对象掺杂复杂的 业务获取逻辑呢?
******************************************************************************************************************

关于分类
分类是不是虚拟分类
分类下的子分类分类列表
分类的产品列表
分类营销信息

1.并非全部的字段都是必须的
2.应该将信息进行分类
3.写一个版本的调用说明书
******************************************************************************************************************
即将要作的事情
1.迁移升级数据库
2.后台项目功能的基本需求 简单为主 能够参考小泥鳅的设计思路
3.购物车和会员中心 以及一些小的功能的 东西
4.还有一个东西就是前段的问题


******************************************************************************************************************
基本常识问题
SAVE off 25%意思是指节省25%
就是7.5折的意思
节省百分之二十五


一些经常使用的操做 前台最好同时使用脚本的方式完成
这些年便于在各个地方调用

 

******************************************************************************************************************
购物车两种思路
第一种:在本页本作提交
第二种:采集脚本的方式

为网站的表单提交增长一个 安全值
<input type="hidden" name="securityToken" value="94b6f35fd3e84e42c5742a83dab0f235">

经过区分不用的页面,来实现不一样页面,js的加载,区分请求的页面类型便可【主要指的是head区域】

和上面的一个问题同样,不一样页面的文档加载完毕以后 执行的函数是不同的 ready函数【是写在页面中去?仍是在外置代码中去呢?】

注意任什么时候候 都不要在form 标记上添加设置样式

NV能够读取:注意不要 在后面加“--” 不然没法识别

扩展开启一个GZIP的压缩模式【已经获得支持了】

HttpCustom类优化:

1.不要过多的查询不少的数据,好比以前想的将购物车的东西加入进去,最好不要这样作
2.后期优化是要加入 对象缓存的功能
3.用户缓存的对象 写入到全局对象中去【还要考虑如何让业务层使用Cache对象】

购物车必定要实现的是:能够支持异步调用

注意这个地方:Cache-Control: private

从Cookie中读取购物车的ID 和 货币同样加入到数据上下文中
能够经过Cookie的过时时间来实如今关闭浏览器以后 能够继续存在购物车中 方式设置

兼容jq的写法
var $a = jQuery.noConflict();
$a(document).ready(function(){
$a('#nav li').hover(
function(){
$a(this).addClass("hover");
},
function(){
$a(this).removeClass("hover");
}
);
$a('#nav ul').each(function(){
$a(this).parent().addClass('items');
});

在订单模块 增长一个用户风险 的字段判断

检查密码的规则:经过规则验证以后,才能注册

限制某个IP 某个时间 某个地方的用户注册

登录部分
检测请求 是否是 人为操做的 同时防止 机器登录【注意千军万马】
先进行客户端的 安全检测 而后再进行服务端的检查【用户Email邮件有效性检查】

注意优化IOption

注意优化不要在session中存放 过大的对象

js函数分类:全局页面函数;单个页面的函数

页面中带有明链 的一些链接 好比 shopping car.ashx等等 能够参考qblog 中处理的方法 在系统中定义好

要实现URL中 连接 后缀的自定义

思路:将页面的类进行抽象化的处理
1.分离出抽象了和接口
2.相似aspx 有页面基类和控件基类 实现各自不一样的生命周期
3.抽象出公共的代码:好比模板的实例放在公共类里面; 公共的接口;继承以后就会有公共的部分

接下来 拆分数据库
数据库的分离这样来搞:

1 将读写的分开了
2. 公共配置的分开

实现对SQLite的版本数据库的支持
和对URL重写模块的实现


关于优惠码的放置问题
放在购物车的部分?【须要更新数据库的字段问题】
仍是放在结算的部分?

URL重写的配置 采用全域名重写的配置

还有一种思路:子模板的实现

widget

 

//protected int productID = 0;


//根据产品的ID 得到产品对象属性
//接下来的这几个模块
//购物车模块
//登录注册模块
//匿名购买功能
//会员中心
//产品评论


//经过POST 提交数据
//提交方式
/*
* submit方式提交
* 经过ajax方式提交
*
* 属性值无效
* 属性价格
* 属性展现的样式
* select下拉框
* span样式的单选框 经过隐藏字段获取值
* 文本框 用于用户输入球衣号码 或者一些其余信息
*
* 数量
*
* 产品的批量优惠【自动优惠方案设计】
* 批发提交多个产品到购物车
* 经过隐藏字段action的标记 引起不一样的 代码

productID = 12;
switch (action)
{
case "add":
productID = 123;
break;
case "remove":
break;
case "update":
break;
case "view":
break;
default:
break;
}*/

使用标准SQL写法

----------------------------
订单模块:

何时生成订单?

如何防止重复订单的生成?

匿名用户的处理

收货地址的处理

订单信息:
订单号 订单金额 订单的收货地址信息 帐单地址信息


注意在添加产品图片的时候,必定要将产品的主图和详细图 放在产品的Imglist字段中去


#region 备注
//处理分类URL地址格式
//http://localhost:40966/women-s-boots/
//http://www.hermesglobalshop.com/hermes-birkin-c-1.html

//http://localhost:40966/shop-women/c11.html
//http://www.hermesglobalshop.com/hermes-birkin-c-1.html?page=2&sort=20a
//http://localhost:40966/florent-rio-pink-314011.html
//http://localhost:45956/page/3.html
//http://localhost:45956/category/default/page/3.html
//http://www.hermesglobalshop.com/hermes-birkin-bag-30-alezanchestnut-brown-ostrich-skin-gold-har-p-98.html

//分类
//http://www.hermesglobalshop.com/hermes-birkin-c-1.html
//http://www.hermesglobalshop.com/hermes-birkin-c-1/page-1.html
//http://localhost:45956/category/default/page/3.html

//http://official.usahandbagsonline.com/Satchels-c-2/p3.html
//http://official.usahandbagsonline.com/Satchels-c-2.html

//产品
//处理产品URL的地址格式
//http://localhost:40966/florent-rio-pink-314011.html
//http://www.hermesglobalshop.com/hermes-birkin-bag-30-alezanchestnut-brown-ostrich-skin-gold-har-p-98.html
#endregion

为了简化制做模板的流程
从购物车的这个地方开始 作分离

CSS 要划分开

1.购物车模块
2.登录注册模块
3.支付模块
4.会员中心模块
要让以上几个地方 实现单独的独立 这样在制做模板的时候 就能够少作一些页面

只须要 首页 分类页 详情页 便可

同时将帮助中心进行 单独的模块化

要求目标
1.兼容各个浏览器
2.规范化的命名
3.页面中不要加入过多的CSS样式代码

载入说明
先载入样式,在引入脚本

改进 一些静态图片的引入算法
var thempath="";
批量替换这些图片

防止更改图片文件夹形成的问题

 

<img src="images/common/addtocart.jpg" data-theme="img"/>
<script type="text/javascript">
$(document).ready(function () {
var themepath = "themes/fitflops/pc/";
var src = $("img[data-theme='img']").attr("src");
$("img[data-theme='img']").attr("src", themepath + src);
});
</script>

 

//绑定最新最热产品

//绑定静态代码

//绑定广告图片

//应该做为全局对象进行加载

追加一个测试:测试 一个请求 须要访问几回数据库?
追加一个自定一个 文件缓存功能

//为何我这个地方一修改 就会更新数据库呢? 缘由是反序列化 出现异常了

注意追踪 GetCookie 1193 行 public static string GetCookie(string strName)

URL重写的关键

1.看清楚有哪些请求
2.找出须要重写的请求
3.到底使用哪个函数进行重写

4.在众多的请求中寻找出 咱们须要重写的URL路径

两个点子
自定的HTML应该支持多个 模板才能实现的
后台判断登录的时候,经过islogin 实现【经过前台的脚本实现】


后台增长一个日志的功能:
各自的统计:
好比:
是否开启URL重写日志记录
是否开启SQL的日志分析记录
是否开启网站程序失败的日志记录

增长一个 后台的 “后门程序”-- 重启网站 防止死锁使用
不再要使用 自增字段了【经过编码控制】


经过日志分析 双top的分页算法 升级分页算法


增长一个注册js的脚本 用来作前台的多语言 静态的输出 相似于兰亭的实现 经过ashx 方式响应到前台
扩展购物车的地方 采用magento的样式

扩展diag对话框 增长多种皮肤的样式 研究它的源代码
还要研究一下其余的弹出层之类的 仍是比较有用的

还有一些 tab的函数 或者下拉框之类的扩展

后台登录经过脚本的方式 处理登录的问题

forms的身份验证

不使用session 支持web园 会不会对数据库形成影响?

数据库拆分多少合适?

如何解决掉他的并发问题呢?

关于价格的问题 细致的考量

 

 

增长缓存的统一管理

后台设置货币 前台不能当即生效 并非bug,应为货币在前面作了cookie的缓存设置

内存升的很厉害: 加入缓存中去 使用日志追踪函数 追踪全部的查询


head部分拆分
公共meta 部分
公共样式部分
公共脚本部分

<div class="header">
<!--注意编写规范-->
#parse("pc/template/_header_1.html")
</div>
<div class="nav_container">
#parse("pc/template/_nav_1.html")
</div>

网站初始化包括哪些东西?
前台和总后台的交互
剩余部分
脚本部分
会员中心部分
优惠策略
文件缓存
收藏夹部分


规范化的命名
日志部分

#region 测试
//测试是否识别字典类型 和 Hashtable
//Dictionary<string, string> option = new Dictionary<string, string>();
//Hashtable option = new Hashtable();

//option.Add("Color", "Black");
//option.Add("Size", "US 10 / UK 14 / EU 40");

//VContent.Put("p", option);
#endregion


WidGetCart
#region 1.0 Reload 暂时取消 效率不是很好
//object obj = VContent.Get(TagFields.RELOAD);
//if (obj == null)
//{
// VContent.Put(TagFields.RELOAD, string.Empty);
//}
#endregion

#region 1.0

//VContent.Put("form", forms);
//关于参数检查的问题 注意防止恶意请求的出现
//分为必须参数检查 和 公共参数检查 须要编写一个 页面助手值了的东西
//把每一个 参数的默认规则写入进去

#endregion

-- 说明
-- 数据类型的简单说明
-- 支持五种数据类型
-- 整型 文本型 浮点型 时间类型 约束大小
-- 示例数据
-- name text not null collate nocase
-- phone text not null default 'unknown'
-- 时间 date :current_time current_date current_timestamp
-- 一些说明
-- 1.就是数据库中不要使用所谓的自增字段
-- 2.对于integer类型,在.net中对应的是Int64,建议在定义的时候使用int类型定义
-- 3.decimal类型也是如此,若是使用real类型,到.net中对应的是double类型的
-- 4.对于字符类型也是如此【这个须要测试】


统一一下几种类型
1.decimal类型小数位
2.时间类型
3.排序字段
4.开关值 0:false 1:true
5.默认值

导出Excel的组件 记得每次修改以后 将配置文件 复制到bin 目录中去
SQLite 在插入时间的时候 记得将时间 (“s”) 转换

若是SQLite在定义时间类型的时候 datetime 是null类型的话,记得将其设置一个默认值 不然的话 读取是会提示“SQLite 查询时异常:该字符串未被识别为有效的 DateTime 错误”

相关文章
相关标签/搜索