第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

我的架構(gòu)實(shí)戰(zhàn)記錄

標(biāo)簽:
資訊 架構(gòu)

我正在开发的系统是一个简单的“博客+论坛+SNS”系统。应该比较好理解吧。具体的功能在需要用到的时候详细讲解即可。

(一)架构选择

Asp.net: WebForm vs MVC

我最后选择的还是MVC。只能说是个人偏好,感觉WebForm:
1、对最终生成的Html不好控制
2、框架略显笨重(页面生命周期,Ajax封装等)
另外,asp.net MVC是新生事物,也有一个学习的机会。本来还一直觉得MVC中<%= %>难看(受asp影响),但后来razor出来以后,就彻底放心了。

分层:两层 vs 三层

在这个项目开始之前,我对三层都有看法,和很多同学一样,不知道BLL层干嘛用。而且当时:
1、我不准备开发一个支持多数据库的通用系统
2、想不到有什么复杂的业务逻辑,最复杂的逻辑可能就是分页和多条件查询了,这不是数据库的事?
但是,我终于说服自己:不懂嘛,只有去做了,才能把他搞懂!“绝知此事要躬行”。

后来,慢慢的,我有了一些收获,转机,就从我开始学习ORM开始。

ORM:NHibernate vs Framework Entity

我记得当时犹豫了很久,最终选择了NHibernate,理由:
1、NHibernate开源,可以深入研究
2、摆脱微软依赖,向更广阔的天地前进(这个想法也影响了我选择MVC,毕竟,不只有asp.net才有MVC,php和java都有)。这里多说一句,直到现在,我都还很庆幸我的这个决定。此后,一路走来,风光无限。

(二)方法论

 

DDD(领域模型驱动)

 

首先,领域模型,就是以面向对象的方式,通过各种各样的对象,构建领域层(或者业务层)。而DDD,我简单的把他理解为,而且,将构建领域模型作为设计工作的第一步!不管之后UI层怎么呈现,也不管以后数据怎么存储到数据库(持久化)。如果这就是DDD,那我就采用了DDD了,呵呵。

 

TDD(测试驱动)

关于测试驱动(即使按最狭义的理解:unit test drive),我想了很久,最后都还是放弃了。理由:
1、我是一个人开发,所以无论写unit test还是写代码,思路都是一致的,我自己写的unit test,自己写的代码,不可能不通过;
2、而且以后,代码发生了变动,测试代码也得跟着改(这和三层的弊端类似);
3、单元测试对于重构的帮助,我觉得不能抵消由此带来的“麻烦”。
4、懒!呵呵,这可能是最大的原因了。

但是,我认为,如果是团队开发,TDD能发挥很大的作用:
1、方便沟通交流,澄清客户需求。IF...ELSE...ELSE...是最清晰、最精准的描述需求的逻辑和语言了。
2、便于封装。比如BLL层的开发人员不必等UI层完成,即可利用单元测试开始编码、调试、验收等。

 

概述,我想说的就这些,因为我想把重点放在具体问题的分析和解决上,概念上的东西,点到为止即可。欢迎各位同学留言!尤其是对TDD,我很想听听大家的意见,尤其是经过实践检验过的经验。先谢了,呵呵。

 

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消