• 由一个WF项目说起


    很上时间没做什么让自已满意的项目了,除了做些方案、标书,主要就是接一些烂尾项目。
    前段时间有幸又参与了一个与WF有关的烂尾项目。
    对烂尾项目一般三条路:
    1、马上结束,给用户退钱,处理问题人员
    2、尽力完善,修改合同,以收回开发成本为目标
    3、不惜一 切代价,完成项目

    该选那条路,我从来不关心,从来只是充当第2、3条路的执行者。

    有时常说自已像一个雇佣兵的队长,带着几个临时队员,向自已都不知道的目标进发。

    但实际上我却总陷入一种无能为力的情况,举个例子:

    一个病人,让我治疗,他得的是绝症(或者说以我的水平是回天无力),但我又不能直接将他操渡,只能看着他痛苦的挣扎,并一点点耗尽他家人的积蓄,而我已经麻木了,唯一敏感的就是这家人下个月只否还有钱付给我医疗费......

    我的任务是冶病,给项目冶病。

    我不喜欢、没兴趣、也没能力一遍遍分析项目的病因,是天灾还是人祸已经都不重要了,
    我只想说:我想说:说:

    使用最新的技术,是很多程序员向往的。但如果你是一个项目的设计人员,对某个新技术只了解了皮毛,没有作详细的可行性分析,就将该技术作为一个新项目的核心,我只能说你无知、愚蠢!

    我不会轻易说一个技术人员无知、愚蠢,因为那同样是对我自已的不尊重。所以我不得不以小人之心看你,你对这个新技术感兴趣,你想借这个项目练手,成则万幸,不成你就换一家公司,当然你此时已经可以在简历中写上精通该技术了。

    作项目就要脚踏实地,不要空谈,不要动不动就什么模式,什么架构,写的代码比混淆处理过的还难懂

    这个烂项目算是完了,对他作了什么,只有我知道,

    我是一个很有办法的医生,我有一种灵药,给癌症病人止痛非常有效,我不告诉你这是什么药,不是我保密,是我没脸说

    使用WF开发系统,实际的流程都是在页面代码里写死的,然后直接操作数据库,我都佩服自已

    心情严重不好,写段代码发泻一下:

    我自创的,管他叫数据与控制相分离模式
    通常会出现如下这种代码:

    //一要改写的源型
    public class _ClassTest
    {
    private int v1;
    public int V1
    {
    get return v1; }
    set { v1 = value; }
    }

    private int v2;
    public int V2
    {
    get return v2; }
    set { v2 = value; }
    }

    public int Add()
    {
    int temp = V1 + V2;
    return temp;
    }

    }

    我常用的写法:

    //接口
    public interface IDataControl
    {
    void saveToFile(string path);
    void loadFromFile(string path);
    void getXML();
    void loadFromXML(string XMLString);
    }


    //数据
    [System.Serializable]
    public struct ClassTestData
    {
    public int v1;
    public int v2;
    }


    //控制
    public class ClassTest
    {
    private ClassTestData Data = new ClassTestData();
    public int V1
    {
    get return Data.v1; }
    set { Data.v1 = value; }
    }

    public int V2
    {
    get return Data.v2; }
    set { Data.v2 = value; }
    }


    public int Add()
    {
    int temp = V1 + V2;
    return temp;
    }


    public void saveToFile(string path)
    {
    System.Xml.Serialization.XmlSerializer xs;
    xs 
    = new System.Xml.Serialization.XmlSerializer(Data.GetType());
    System.IO.FileStream file 
    = new System.IO.FileStream(path, System.IO.FileMode.Create);
    xs.Serialize(file, Data);
    file.Flush();
    file.Close();
    }


    public void loadFromFile(string path)
    {
    System.Xml.Serialization.XmlSerializer xs;
    xs 
    = new System.Xml.Serialization.XmlSerializer(typeof(ClassTestData));
    System.IO.FileStream file 
    = new System.IO.FileStream(path, System.IO.FileMode.Open);
    Data 
    = (ClassTestData)xs.Deserialize(file);
    }

    public string getXML()
    {
    System.Xml.Serialization.XmlSerializer xs;
    xs 
    = new System.Xml.Serialization.XmlSerializer(Data.GetType());
    System.IO.MemoryStream m 
    = new System.IO.MemoryStream();
    xs.Serialize(m, Data);
    byte[] b = m.GetBuffer();
    System.Text.UTF8Encoding utf8 
    = new System.Text.UTF8Encoding();
    string XMLString = utf8.GetString(b);
    return XMLString;
    }

    public void loadFromXML(string XMLString)
    {
    System.Xml.Serialization.XmlSerializer xs;
    xs 
    = new System.Xml.Serialization.XmlSerializer(typeof(ClassTestData));
    System.IO.MemoryStream m 
    = new System.IO.MemoryStream();
    System.Text.UTF8Encoding utf8 
    = new System.Text.UTF8Encoding();
    System.IO.TextReader tr 
    = new System.IO.StringReader(XMLString);
    Data 
    = (ClassTestData)xs.Deserialize(tr);
    }

    }

    使用

    ClassTest obj  = new ClassTest();

    //赋值
    obj.V1 = 123;
    obj.V2 
    = 456;

    //使用
    int v= obj.Add();

    //保存到文件
    obj.saveToFile("C:\a.xml");

    //从文件加载
    obj.loadFromFile("C:\a.xml");

    //得到数据的XML串
    string s = obj.getXML();

    //从XML串加载
    obj.loadFromXML(s);







     

  • 相关阅读:
    Google 商店:您的应用静态链接到的 OpenSSL 版本有多个安全漏洞。建议您尽快更新 OpenSSL
    android控件库(2)-仿Google Camera 的对焦效果
    新浪微博客户端(54)-代码重构-将宏定义修改为常量
    android自定义控件(1)-自定义控件属性
    新浪微博客户端(53)-记录用户最近点击表情
    android-解决EditText的inputType为Password时, 字体不一致的问题
    新浪微博客户端(52)-长按或滑动显示表情
    iOS- Terminating app due to uncaught exception 'NSRangeException'
    新浪微博客户端(51)-将表情图片转换为文本
    新浪微博客户端(50)-解决输入Emotion表情逐渐变小的问题
  • 原文地址:https://www.cnblogs.com/foundation/p/743245.html
Copyright © 2020-2023  润新知