NetCMS网站内容管理系统

首页 » ☆ 产品交流 ☆ » 『 二次开发 』 » 看了一下代码 发现写的好差
tester - 2008-8-15 17:20:00
举几个例子说一下:

1.      /// <summary>
        /// 判断输入是否为日期类型
        /// </summary>
        /// <param name="s">待检查数据</param>
        /// <returns></returns>
      public static bool IsDate(string s)
        {
            try
            {
                DateTime d = DateTime.Parse(s);
                return true;
            }
            catch
            {
                return false;
            }
        }

这什么? 判断日期? 难道不知道有DateTime.TryParse ,用trycatch控制流程 可想而知代码的效率了 虽然后台控制不注重效率

2.  项目NetCMS.Common,NetCMS.Config
NetCMS.Common依赖于NetCMS.Config config顾名思义提供配置管理 那common干嘛的呢 为什么也会直接对配置和xml进行访问和读写呢

//NetCMS.Config.BaseConfig的某一个方法
static internal string GetConfigValue(string Target)
        {
            string path = HttpContext.Current.Server.MapPath("~/xml/sys/netcms.config");
            return GetConfigValue(Target, path);
        }

//NetCMS.Common.Public的某一方法
      public static string readparamConfig(string strTarget,string type)
        {
            string rstr = "";
            if (type != null && type != string.Empty)
            {
                string xmlPath = HttpContext.Current.Server.MapPath("~/xml/sys/" + type + ".config");
                FileInfo finfo = new FileInfo(xmlPath);
                System.Xml.XmlDocument xdoc = new XmlDocument();
                xdoc.Load(xmlPath);
                XmlElement root = xdoc.DocumentElement;
                XmlNodeList elemList = root.GetElementsByTagName(strTarget);
                rstr += elemList[0].InnerXml;
            }
            else
            {
                rstr = readparamConfig(strTarget);
            }
            return rstr;
        }

光看方法名就知道不是一个人写的 不是一个人写的不要紧 至少有统一的规范吧 大小写都不一样 方法名首字母大写 写过.net的人应该知道的吧
包括页面文件的命名 都是有大写 有小写

3. News_add.aspx 中有个方法
/// <summary>
    /// 保存数据
    /// </summary>
    protected void Buttonsave_Click(object sender, EventArgs e)

接近有800行代码 你以为是写C呢 面向过程 一个方法接近800行 里面到处充斥着变量和判断 变量名没有实际意义 并且也没多少重要的注释 可读性差到极点了 试问这种软件 开源了 跟不开源有什么区别

4.再找个方法给大家看看
#region 得到当前新闻的上一条记录自动编号ID
          int _IDStr = 0;
            DataTable dts = rd.getClassContent(getDataLibStr,7);
            if (dts != null && dts.Rows.Count > 0)
            {
                _IDStr = int.Parse(dts.Rows[0]["Id"].ToString());
                dts.Clear(); dts.Dispose();
            }
            else
            {
                _IDStr = int.Parse(NetCMS.Common.Rand.Number(8));
            }
            #endregion 结束

返回一个int字段 需要用DataTable 太奢侈了点吧 数据访问层我也不去说了 一个项目 说到底 就是对数据的操作 这个重要的东西都做出这样 更别提什么框架了

说实话 我也不是故意看代码的 只因为发了半天新闻 结果还是看不到 只能来读代码了 顺便说一句 帮助也很差
写了好多操作有什么用呢 至少有个指导吧 如何可以建一个站 如何可以发布显示出新闻
qwf0001 - 2008-8-16 21:24:00
我建议楼主,不如你来作个2.0改版吧,我一定第一个用
tester - 2008-8-18 14:28:00
说实话 2次开发几乎不可能 代码的可读性太差 又没有说明文档设计文档  除了他们开发人员自己能看明白 其他人很难深入 难怪要连着开发团队出售了
ceoliujia - 2008-8-23 9:28:00
自己写不出来就不要怪别人写的代码差
你这么有本事
你也写一个
还看他们的CMS干什么
ym110 - 2008-8-28 9:28:00
:_onion8: 期待LZ的好东西~~
melon134 - 2008-9-12 10:09:00
支持lz,同时bs那些说lz的人
yusam79 - 2008-9-17 14:58:00
确实 没什么效率,不过要是整体优化还不如升级了
fengzhbo - 2008-11-20 15:20:00
firefox够强吧,不还是被找出很多问题
大家都不怎么贡献,只是当免费的软件用,这不能叫做开源
大家一起做贡献才是开源,国内开源加油
drip - 2008-11-20 17:47:00
开源并不是开源一个成熟的东西,对吗?如果都成熟了,还开源出来大家一起来修改使用,二次开发云云有什么用?
我支持netcms.但他们的设计文档也是够.....的.
我今天把他们所有文档打印出来了一百多页呢?呵呵,打印出现上面还有****的东西!!!并且还是页眉页脚
stonewahaha - 2008-11-23 18:28:00
就是哦 自己写代码牛逼 跑这里乱发干嘛 人家辛辛苦苦做了这么大的系统 不容易啊
tester - 2008-12-5 17:22:00
不是成熟不成熟的问题  牛逼了 就不用看了? 刚愎自用
seamusic - 2008-12-14 2:27:00
事实上不好为什么就不许人家说?开源了就可以牛到这个地步吗?
丫丫 - 2008-12-14 8:41:00
楼主,顶!
amityat - 2009-1-5 16:00:00
对于开源的东西,希望大家都能务实一点,做出自己的贡献。
1
查看完整版本: 看了一下代码 发现写的好差