回忆被三层架构忽悠的日子,上当的同学自觉举手

简介: 回忆第一次接触三层架构,看那些文章,好像走出了菜鸟的圈子,俺做的项目也是有架构的,还可以到处吹牛,俺的项目是基于***架构的,颇有那些做java的风采。       在网上看到的三层架构大多数这个样子的,大家最常举得案例便是数据库工厂,我们的项目可能是mysql数据库,也可能是sqlserver数据库,还可能是未知的数据库,从那时起,我就知道了接口是什么东西,看了好多文章,也知道了什么叫基于接口的开发。

       回忆第一次接触三层架构,看那些文章,好像走出了菜鸟的圈子,俺做的项目也是有架构的,还可以到处吹牛,俺的项目是基于***架构的,颇有那些做java的风采。

      在网上看到的三层架构大多数这个样子的,大家最常举得案例便是数据库工厂,我们的项目可能是mysql数据库,也可能是sqlserver数据库,还可能是未知的数据库,从那时起,我就知道了接口是什么东西,看了好多文章,也知道了什么叫基于接口的开发。

微博桌面截图_20120225140637

   而且三层架构果然是真的好像商标一样,出现在各种技术社区,尤其是那些源代码网站,当时为了学习,也从网上下了很多源代码进行观摩,学习,就连面试的时候,都要被问“你会三层构架吗”,当然,不管会不会,我都是会的,大家懂得。

微博桌面截图_20120225141259

 

也不知道是缺乏知识产权保护,还是缺钙缺铁,还是缺什么,我下载到的源码总是这个样子,开始我以为我是菜鸟,也就只能这个样子,毕业后进入高手如云的公司,肯定不是这个样子。

微博桌面截图_20120225142051

       记得去年在某公司上班,打开项目一看,就好像我已经来过了一样,项目的名称都和我的电脑里面的项目差不多,什么BLL什么的。当时我就感觉头晕目眩,接口!接口!太可怕了,后来我在公司最常干的一件事情就是打电话,电话的内容很简单,那个谁谁,你把那个什么文件嵌入一下,我要改一下。偶想起来了,还有一件事情也很常见,就是我每打一次补丁,都要发一次邮件,要把所有人问一遍,这个dll能不能作为补丁发出去。

      去年年末的时候,看到一本菜鸟进阶的书,网友们称呼为微软技术百科全书的《微软技术构架指南》我才知道,原来3层构架乃至n层构架更多的是从部署的角度来来考虑。

    我心一凉,心想,我改一个功能时,那么的痛苦,发一个补丁时,那么的痛苦,原来公司的三层架构是山寨的,因为那个dal也罢还是bll也罢不能个单独拿出来部署在一台机子上,那什么这个东西搞的我如此的痛苦,如此的受罪,写代码嘛,应该愉快一点。

   后来看了一些书,这个可能和公司的业务性质,项目性质有关,例如做cs的客户端,可能一年升级一次,半年打一次补丁,但cs的服务器端,可能每晚都要打补丁。做bs的就不用说了,你不打几个补丁上去,老板都会觉得你是废物,干了这么长时间,网站竟然每一个新功能,每一个变化

  现在大多数公司的架构可能是这样,一个公司,分几个产品,由产品经理带头,一个产品经理,可能带一个到三个项目小组,组成一个大的单位,每个月可能是这么渡过的,

微博桌面截图_20120225144048

 

         所以按照网上流传的三层架构的,工作必然是辛苦,上线必然是痛苦的,加班必然是难免,新功能和旧功能搅和在一起,BUG总是难免的,搞的我们上班很累。

        有时候回忆自己上周都做了什么,写了几行代码,有时候发现,一周干的事情并不多,

        不知道大家用过微软的membership没有,我现在更倾向于将一个业务模块或几个关系紧密的ui用到的一些功能,

向membership一样独立的封装,也许不能去建立一个项目,发布一个dll,但是在原来的项目下建立一个文件夹,来放这几个类还是可以的,虽然我现在不清楚用什么样的方式去架构,或组织文件,才能让每个业务模块向membership一样用起来方便,这样开发方便,打补丁方便,测试方便,升级打补丁方便,

     我现在比较喜欢向这个的方向去组织代码,有时觉得菜鸟用架构一词不太合适,还是用组织文件和代码比较合适,菜鸟一定要低调

微博桌面截图_20120225145343

      Product 是具体的业务模块,这里没有公共方法,也没有HttpContext,也没有sesscion、cookie、cache等行向扩展的模块,对与每一个小的业务单元,我就建立一个文件夹,

因为vs默认建立一个文件夹就是一个命名空间,必要时候可以独立发布dll,对与每一个业务模块我是用部分类来组织的

public partial class Table  Table.cs
partial class Table    TableDal.cs
partial class Table TableMethod.cs
public class TableProvider:Table TableProvider.cs

 

方法还可以按照三层架构时去组织代码,这个业务模块对外就是一个对象TableProvider,虽然不能向membership那么强大,但现在也只能想到这些。

web常用的sesscion、cookie、cache等,我喜欢用WebExtensions将其独立封装,因为这些模块都是可以扩展的,尤其是从单台服务器到分布式到集群,扩展也在这一块,业务模块我觉得变的比较少,所以吧他们独立拿出来。

 

上一遍 :观察 HTML中id和name 的差异,被微软忽悠过的同学自动举手

 

 

 

 

 

 

 

 

 

 

 

 

 

test
相关文章
|
10月前
|
机器学习/深度学习 人工智能
技术人的四大「造神」学习法,为啥就没人好好用呢?
技术人的四大「造神」学习法,为啥就没人好好用呢?
79 2
惊险!备战3个月,五面蚂蚁金服差点倒在最后一面
作为程序员,免不了要经历面试这关,虽然平时工作勤勤恳恳,但是面试上面未必能展示的出来,比如平时都是做增删改查的业务系统,面试官非要问你如何处理高并发大数据,本来是写java代码,非要问你大型网站架构,这些问题防不胜防,本文就自己一次在蚂蚁金服的面试经验来总结一下,抛砖引玉。
|
数据采集 消息中间件 运维
我这几年踩过的十个坑,每一条都是血泪教训
我这几年踩过的十个坑,每一条都是血泪教训
151 0
|
Kubernetes NoSQL 网络协议
BAT 老兵的经验之谈,成长路上这个道理越早知道越好
BAT 老兵的经验之谈,成长路上这个道理越早知道越好
216 0
BAT 老兵的经验之谈,成长路上这个道理越早知道越好
程序人生 - 996(三)马云长文再谈“996”:和被剥削没关系,现在的人不傻
程序人生 - 996(三)马云长文再谈“996”:和被剥削没关系,现在的人不傻
145 0
|
SQL 前端开发 JavaScript
我面试过的那些烂技术大哥
我并不是一个HR,可是我面试过很多人。有年轻的,有年长的,形形色色。 在不同的年纪和岗位上做面试官的内心感觉是不一样的。下面我来讲讲,我做面试官时的一些体验。
|
算法 前端开发 搜索推荐
学编程的 3 个正经建议,学弟学妹们记得收藏呀,这波赚大发了!
学编程的 3 个正经建议,学弟学妹们记得收藏呀,这波赚大发了!
169 0
瞧!这5000个爱管闲事的工程师干的好事.....
从 2018 年 4 月来到大爱清尘基金开始,师先存就没有正经过过几个周末。
10188 0
|
机器学习/深度学习 缓存 Java
金三银四,冲击大厂,你值得拥有的一份2019初中级Android开发社招面试总结+解答
引言 2017年初Android市场饱和的传言一度甚嚣尘上。2018年经济寒潮下,众多大厂和曾经风口上的互联网企业也不得不裁员自保,通过小程序、前端渲染以达到原生的实现。 面对外界的纷繁复杂和技术栈的日新月异,我们更应该清楚认识到自身技术的短板来进行知识巩固。