分享三层(多层)开发中的经验

lawbc 2009-04-07 05:46:53
1.实体类尽量用组合而不是继承,更不要用一个字段表示外键关系,因为这样在数据显示的时候会带来麻烦
2.无论是dal层还是bll层还是其他层都应该用异常处理机制而不是用错误处理,比如返回int,或者一个对象,这样都不好
因为这样除了增加文档外还要程序员每次去if (返回值==XX)
3.每层都用接口编程,对外只是暴露接口,
4.如果是自己写dal层的话,不要用sql拼接的方式
5.最好不要用存储过程,特别情况例外,因为存储过程影响调试和维护
6.不要指望你的程序员既要熟悉数据库又要熟悉程序,发挥他的优势就好,(主管或者项目经理是追求完美主义的除外)
7.每层命名规范要到位。
8.没有经过需求调研不要编码为好,因为就开始编码了基本上是白做的,因为都是你个人想法而已(但是我却做了,最后等死)
9.不要XX人说这个不好看或者性能不好就改,因为他可能不是决策人,即使是也要写在文档里,待下个版本或其他进度完成的时候分配来做
(我现在就这样,所以经常磕磕碰碰,最后大家都累死)

其他的留给大家发挥了。。。
...全文
288 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsd123 2009-04-08
  • 打赏
  • 举报
回复
.
HalloMoto 2009-04-08
  • 打赏
  • 举报
回复
存储过程,sql语句因时而定吧.
个人喜好.没觉得应该用哪个

学习.
yuliangok520 2009-04-08
  • 打赏
  • 举报
回复
学习了
tomiji 2009-04-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyq11 的回复:]
高耦合低类聚
需求分析做好
类实例化,通过接口编程
[/Quote]
精辟!
项目的分析和设计占开发周期的大部分时间。
分析和设计完成后,编码和测试都是很迅速的。
对于项目涉及的关键技术和难点先进行技术预研也是很重要的
tomiji 2009-04-08
  • 打赏
  • 举报
回复
是否使用Procedure,应该是根据项目的实际情况需要。
Procedure的1次通信请求,1次结果返回会减少Web服务器的压力,但是会增加数据库服务器的压力。(Procedure都是写在数据库在数据库上运行)
对于涉及的业务逻辑需要进行加密。(业务逻辑公开,客户可能2次开发就不找你了)。
不使用Procedure,Web会增加服务器压力,执行复杂sql语句的时候需要来回进行多次通信,断网会直接导致操作失败。
llainn 2009-04-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 liubiaocai 的回复:]
1.“尽量" 而不是必须
2.”应该“而不是必须
3.现在都推荐面向接口编程
5.”最好”
ls你用的全是存储过程,敢问你的业务逻辑很复杂吗,如果是的话你就知道了,在编写的时候是sql编码块
还是cs编码快,Mssql的存储过程到access或者oracel还行吗

[/Quote]
到底用SQL语句还是存储过程.我觉得要看需要.
如果你用了存储过程.有一天,上面说.要把SQL换成ORACLE.确实很被动.
没有预料到这种情况,也是项目策划的失败(不可预料的情况除外).

如果你确定了不会换数据库,那全用存储过程又何妨.

每个人的具体情况都不同.

感谢楼主分享.


spring1_ 2009-04-08
  • 打赏
  • 举报
回复
学习
Jonly 2009-04-08
  • 打赏
  • 举报
回复
顶上
qq2013 2009-04-08
  • 打赏
  • 举报
回复
ding
hmily821023 2009-04-08
  • 打赏
  • 举报
回复
5.最好不要用存储过程,特别情况例外,因为存储过程影响调试和维护

这个不对吧

我认为sql语句更不好维护

select id,name from user
如果改成 select id,name,age from user
你得改程序

写存储过程缺不用
learnren 2009-04-07
  • 打赏
  • 举报
回复
学习咯
hnsdwhl 2009-04-07
  • 打赏
  • 举报
回复
学习
果然如此 2009-04-07
  • 打赏
  • 举报
回复

学习、接分
liu4545533 2009-04-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyq11 的回复:]
高耦合低类聚
需求分析做好
类实例化,通过接口编程
[/Quote]

经典
syb1045 2009-04-07
  • 打赏
  • 举报
回复
jf
学习...
szldk 2009-04-07
  • 打赏
  • 举报
回复
谢谢LZ,学习了,
wjhgzx 2009-04-07
  • 打赏
  • 举报
回复
学习中。
来风了 2009-04-07
  • 打赏
  • 举报
回复
学习,
lawbc 2009-04-07
  • 打赏
  • 举报
回复
1.“尽量" 而不是必须
2.”应该“而不是必须
3.现在都推荐面向接口编程
5.”最好”
ls你用的全是存储过程,敢问你的业务逻辑很复杂吗,如果是的话你就知道了,在编写的时候是sql编码块
还是cs编码快,Mssql的存储过程到access或者oracel还行吗
BossFriday 2009-04-07
  • 打赏
  • 举报
回复
1.实体类尽量用组合而不是继承,更不要用一个字段表示外键关系,因为这样在数据显示的时候会带来麻烦
至于是桥接,还是继承,还是装饰,这个要看实际的情况.你那边的开发模式,大家都不清楚,这样的话,未免让不知道的人,看起来觉得特别的勉强.

2.无论是dal层还是bll层还是其他层都应该用异常处理机制而不是用错误处理,比如返回int,或者一个对象,这样都不好
try catch 一堆不好吧?
没有符合要求的int,返回-1或者其他临界值难道不行吗? int型整体来说比string安全很多.从安全上考虑,就算多写了if,难道不值得吗?

3.每层都用接口编程,对外只是暴露接口,
为了接口而接口,完全就是误用.
为了模式而模式,完全就是自己娱乐自己.

5.最好不要用存储过程,特别情况例外,因为存储过程影响调试和维护
我写的东西,程序里都没有sql.全是procedure,我怎么没有觉得难以维护和调试啊.
相反,我到觉得维护性很好.数据层里的修改,代码都不用动,改改存储过程就行,还不用编译code.
加载更多回复(3)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧