1 框架如此高大尚,我却不配

今天有人问我,程序猿好好的为什么要搭框架,我竟然能够把我准备好的想法说给她听。不清楚我说的对不对,也不清楚她听不听得明白。可能我自己连框架和模式的理解都歪了。

她呢,刚入行不久,领导让我带我不愿意,因为孤男寡女,长长寂夜,你懂的,一定要去吃夜宵,不然会饿……你说啥,我没听懂……不对……别想歪!

现在用的是DevExpress的原生自带框架,庞大到无从下手,但最终我还是下手了。

MVVM模式(破解版自己去搞),没人跟说NET要用什么框架,百度下去也全是Java相关的的Spring的框架之类的。

我呢说过不是什么技术牛人,有的只是别人撸串的时候,我多花了一个半小时调试自带源码的项目工程。

我说过,调试是NET史诗级的入门,过了这个门槛,你就是打工人,打工人有打工魂,打工拼命就是人上人,只要你肯努力,你老板一定能过上他想过的生活。

如果对于刚入门不久的人来说,有老大搭好框架,你跟着敲业务就行。但是你总会发现为何事情总是觉得别扭,不管怎么敲逻辑,感觉心里就是失落。

哈哈,偷偷告诉你,是你的IDE让你这么不爽的,因为核心代码被放在那十几K甚至几百K的动态库里了。

就因为你是新手,你看不到封装的动态库,老大不让你看,老大的小弟也不让你看,总之他们不会让你看得,当你学会了调试兴冲冲的打算一展身手的时候,你就好像自己像东方不败一样,学会了葵花宝典,要一统江湖左拥右抱的时候,却发现把小鸡鸡给切没了。

我要打怪升级,拿装备,结果Boss旁边的小怪全被你干掉了,Boss总是被人抢了,经验你总是获得最少,甚至连装备都是别人捡剩下的。为什么会这样。

因为那些高大尚的所有自己想要看,想要知道的东西,全都在那动态库里面。

当然你估计是开不了口,问那些老大说,“核心代码给我来一套”。

别想了,你就是一新手,拿到了又能怎样,跟你说句实话,就是给你,那些你也只能是抄而已,自己给你一个项目你一样还是搭不起来。

为什么会这样,还是那句话,你看得不够,一天八个小时,你除了敲代码写写几句调用让逻辑可以调用几句数据库拿到你想要的数据,你想过这些框架到底解决了什么,为什么还要这个框架吗?

我有这样一个项目,很简单,简单到不能再简单的东西了,就是自己的亲姐姐说他要管理公司的一些业务,让我给她编个随便的软件。

我用白眼看了一眼,你连个电脑关机都要我教的人,你会用软件?

姐姐:“会的,会的,我要的就是输入点资料,然后存储起来,要的时候查询出来就好了。”

我:“真是简单”,但我心里总是毛毛的。

好吧,好歹是自己的亲姐姐。

从头还是写,还是那老套路,参考如何开始项目(二),不,不行我打工魂不允许。

一天写好,会让她觉得原来软件开发怎么容易,会让我自己这个做弟弟的感觉没有一点自豪感,一两天能搞定的东西,肯定不难,至少在她的理解看来,绝对就像是挖鼻孔弹耳屎那么简单。

所以我想,怎么能快速,又有逼格。

咱们又不干非法事情,又是单机,那不如DevExpress的破解框架咯。

怎么开始,这是问题?DEV框架数据库自动读有没有,已经有了,只要绑定好,不知道在哪?调试会不会,下断点就是跟,不会跟,那我跟你废话那么多干嘛。

可能自己逼格太高了,发现连个数据库绑定我都花了三个小时才解决,实在是,你他们的框架把个数据库绑定都写死在动态库里,我去你奶奶……家看小公鸡下蛋。

好吧解决了第一个数据库问题,接着就是界面问题,我去你爷爷……家看小猫发春。

界面怎么绑定,为什么数据库弄好,数据就出来了?为什么?我没看到怎么读取,怎么写入,你就跟我说都搞好了。

在哪一定有哪个模块搞事情。dnSpy(netreflector)就有了用武之地,NET开发员一定要拥有,杀人越货的利剑。工具哪个好,看个人,自行斟酌,有人说好,一定有人说坏,不然它就没存在的理由了。

模块搞出来,却发现不止一个模块,至少像是某某人如厕那样,又臭又长,还撇不掉。DEV就是这样,一套框架全力合击之下,你要嘛全部杀了,要嘛乖乖就范,老实看已有的框架代码,反编译出来的,能看就看不能看也就让它随风飘摇。

我这时候才想起,原来还是不要框架的好,为什么自己要怎么的无理取闹,非要自己提高逼格,让自己下不了台阶。

还是老套路?虽说没有说一天给她搞定,至少她要的东西,我都让她把需求先写个文档,大概也得列好吧,我又不是她脑袋的蛔虫。所以她需求说明估计也没那么快,还有时间。

我深深的陷入自责当中,原来如此高大尚的框架,我能拥有吗,不,我不配。

她只要个简单到不能再简单的东西,我就走老套路吧,我默默的擦干眼泪,幸福的吃下这份煮了十五分钟又再次煎过的蒸饺,实在是忍不住不让泪腺没作为啊。

所以最简单的是人都懂得

    public static class PanelUserControls
    {
        /// <summary>
        /// 主Panel嵌入子用户窗口,用来展示界面
        /// </summary>
        /// <param name="pMainpanel">主Panel</param>
        /// <param name="ChildControl">子UserControl,嵌入主Panel用</param>
        public static void SetParent(PanelControl pMainpanel, XtraUserControl ChildControl)
        {
            if (CheckControl(pMainpanel, ChildControl))
            {
                ChildControl.Dock = DockStyle.Fill;
                ChildControl.Visible = true;
                ChildControl.Parent = pMainpanel;
                ChildControl.BringToFront();
                //pMainpanel.Controls.Add(ChildControl);
            }

        }

        /// <summary>
        /// 获取子窗体的控件信息
        /// </summary>
        /// <param name="pMainpanel">主Panel</param>
        /// <param name="ModeName">定义好的模块名称</param>
        /// <returns></returns>
        public static Control GetControl(PanelControl pMainpanel, string ModeName)
        {
            if (pMainpanel.Controls.Count == 0) return null;
            foreach (Control ct in pMainpanel.Controls)
            {
                if (((XtraUserControl) ct).Tag != null && ((XtraUserControl) ct).Tag.ToString() == ModeName)
                {
                    return ct;
                }
            }
            return null;
        }
        (……省略好多方法)
}

然后主MainFrom某个简单的按钮里面随便调用一下,我的框架就完成了,如此so easy!

            frm界面 frm = new frm界面();
            ModelName = frm .Tag.ToString();
            PanelUserControls.SetParent(PanelMain, frm);

简单得不能简单的调用方式,代码有没有错我不清楚,我只是告诉你一个道理,抄是没有前途的。

反正套用这个方式,我得心应手,再加上我的压箱底,我不用一天,主体都好了,就看我姐姐要什么样的需求了

然后我们再回过头来说说。

框架啊模式啊封装啊如果你百度,一搜一大把,全部都是那些耦合,解耦合什么鬼的,你懂?可能你懂了,但我还没懂。

框架对你来说的好处就是,你少了一些,你原本以为要频繁调用的东西,他都封装在底层,或者抽取了共性处理的业务。好用,确实是好用。

但对于一个简单的东西,你自行维护得了的小项目,你要套用一个完整框架之前,你得保证,这个框架的所有方法,你能够自己备注好自己当时能够理解的所有方法调用以及它的规则。

你自行维护的东西,你写得了注解和备注信息,而且爱怎么写就怎么写,谁都管不着,但一旦用了框架,你就得按那套来,人家爱怎么让你搞,你就得搞,即使它是错的(这当然不是指你的错),而是当然出现异常的时候,你会进入一个十分纠结的境地。

因为,你告诉你的老大,你框架有问题。老大会很没面子,这框架已经用了十几套项目了,你跟他说,框架有问题,你不会自己变通一下,把问题解决,别的项目都可以,为什么你用的时候问题就这么多。

我是Lv1的村民啊,我哪知道那么多,但他在我的项目上就是这么搞事情。

所以你打怪升级的机会就有了,还是一样,调试,看代码,敲代码,监视变量……

当你是一个人一个项目的时候,框架有多简单就多简单,实现目的就好。

但当你十年后准备以后统领一千号人的时候,你就得跟他们定规则,得给他们事情做,得让他们不脱离你的魔掌,总有几只小鬼在那边捣蛋,就算你发了糖,它们还是一样的会时不时的给你捣乱。

所以开始熟悉任何一种框架是你的必经之路,这条路漫漫,夜漫漫,夜宵总会有的,不是我请她,就是其他人请她……

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值