中小项目开发方式探讨!详见正文
几点说明:1。小作坊,顶多1,2个人,甚至从需求到页面到代码一人全包那种,所以我这里所说的中小项目不大,但是说小也可能不小
2. 发文目的:追求编码高效:简洁 清晰 手工代码少 安全 ,性能还可以那种,以后碰到新项目能更快更好的完成
3。以下以新闻系统为例说说我的方法,望指出不当之处
4。主题是 中小项目[color=#00FF00]开发方式探讨[/color],我的理解,方式是开发过程中各种解决方案的总称,包括开发模式和框架,当然只是个人的理解
5. 本人才疏学浅,至今没用过什么框架和开发模式,所以才比较迷茫
6.纯技术讨论(还称得上技术的话),指出我的错误我十分欢迎,但是请不要无故人身攻击!
新闻系统:以下我如实的记录我做这个简单系统的绝大部分过程,希望指出我不足之处,谢谢!
简单起见,2个表:类别表 新闻表
newsclass 类别表
id classname
自增主键 类别名
news 新闻表
id title addtime content num classid
自增主键 标题 加入时间 内容 点击数 类别id
一般情况下我的目录结构如下
app_code
sqlhelper.cs 数据库帮助类
webmessage.cs JS提示脚本类
fenye.cs 分页函数类
index.aspx
list.aspx
shownews.aspx
admin 后台(暂不考录用户登录等权限问题)
news_add.aspx
news_manage.aspx
news.edit.aspx
...
基本根据页面名称就知道页面干什么的了,不多解释
看了我的结构大家大体知道我怎么开发了
基本是调用sqlhelper来完成数据库操作,在每个页面的cs文件写代码,有时一些同样的操作会在APP_CODE里再加个
news类,里面包括增删改查和一些其他操作函数
分页不管是单表分页,还是多表联合查询都是用的分页类结合ASPNETPAGER(吴旗娃的)
数据显示用reperter,datalist之类的
然后一些操作会用到AJAX之类实现局部刷新,数据库操作语句一般用动软生成,再自己修改下。复杂的SQL语句自己手写
基本一个项目下来就是这样,只不过表多点,页面多点,工作量大点而已
---------------------------
但是我越来越发觉这种方式,怎么说呢。很无聊,很低效,但是又没好的办法,所以看看大家是怎么开发的,当然前提是我们是小作坊,什么三层结构根本不适合我(个人感觉,勿喷,),只是为了三层而三层,还不如我这种简单高效呢,我这种基本就是ADO.NET的操作方式把
mvc模式,最近刚学习,感觉大材小用了做我们这些小项目,但是我又没有好的方式去开发项目,所以说了这么一堆,不知道大家有没有同感,怎么提高自己,关键怎么找到一条适合我们自己的开发方式呢?
打完发现说的很乱,见谅。。。。真心求教!
欢迎SP1234等高手根据我的实际情况多说2句
--------------------编程问答--------------------
帮顶 --------------------编程问答-------------------- 软件工程中有描述的几种开发模式:瀑布,原形.......
--------------------编程问答-------------------- SP1234果然出名啊!!! --------------------编程问答-------------------- 小公司追求的是高效,成本低 速度快。。。其他的靠边站 --------------------编程问答-------------------- sqlhelper不如linq to sql,拖拖拉拉的就做好了 --------------------编程问答-------------------- 如果全是两个人做的话,我感觉还是蛮强的,从前台到后台,从网站的风格(设计就不说了,我感觉这些项目都没有什么设计的,我自己也在这样的公司做过。)
说一说缺点:
一:不好维护,其实这算不是缺点的缺点,因为小项目嘛,错了就改改,甚至可能连错误日志这类都没有。。
二:网站风格问题,客户体验问题……也是因为没有美工,我相信还是有点影响的。
三:……
其实就LZ描述的这些来看,这只能算个很小的项目…… --------------------编程问答-------------------- 基本没啥要求的就linq to sql,拖拉控件然后需要写代码也很方便
有时候有些需要验收,写点花里胡哨的报告的,就搬出平时一些框架套上,这个最好平时没事的时候准备好 --------------------编程问答-------------------- 另外新技术需要考虑到一个学习成本的问题 --------------------编程问答-------------------- 首先从DB来说
我有几点建议:
1.建议每张表添加一个假删标志位
2.点击数另开一张表 【后期如有数据统计 报表之类 将比较方便】
3.类别另开一张表 分类-新闻 多对多
4.新闻表 记录修改时间 修改人等信息 因为从需求来看 一个新闻不可能没有修改操作
从项目角度来看 你用的 可以说是一层
建议你将sqlhelp.cs之类的文件单独放一层 这就是所谓的DAL层
项目分层 在开发速度上肯定没有你的一层快 但是对后期维护来说 要快速许多
最后从小型项目快速开发角度来建议你使用LINQ2SQL
--------------------编程问答-------------------- 我觉得网站拿出来适合讨论一下技术点,比如,这个网站的实现考虑到了写什么问题啊???
比如,防止脚本攻击、防注入攻击、并发如何处理等。 --------------------编程问答-------------------- SP1234果然出名啊!!! --------------------编程问答-------------------- 深有体会啊 ,我现在就是 公司 20+的人 15 个 业务, 3个美工, 我们2个程序员(包括我) 业务谈好, 美工负责做2个页面(首页和一个内页)。 剩下的全是我1个人。。。(数据库自己想 方法自己写,后台一系列 劝自己搞)。。 --------------------编程问答--------------------
这样挺好.呵呵.
可是大公司一般也这样,那时候只是为了养老总. --------------------编程问答--------------------
你们程序开发效率好高呀 --------------------编程问答--------------------
一个人能应付过来20个人 你也不是一般人了 --------------------编程问答-------------------- 唉 。没办法啊 工作难找啊 做了前台的页面 后台和数据库 都是 ctrl+c + ctrl+V 的
个别功能的 改下。。 简单的1天 难的 话 就不好说了 3层 垃圾点的服务器 是不支持的
所以 现在 3层也不能用了 --------------------编程问答-------------------- 业务 也不是天天都能接到单子的哥们 --------------------编程问答--------------------
你做的是企业站,需求基本没变化啊 --------------------编程问答-------------------- 哥们 你太了解我了 --------------------编程问答--------------------
zf的信息公开大部分也都一个样 --------------------编程问答-------------------- 太高深了,帮顶。 --------------------编程问答--------------------
我说的项目都是有一定的业务功能的,不是简单的新闻发布那种啊 --------------------编程问答-------------------- --------------------编程问答-------------------- 许多公司的确是这样的啊,不但效率低,还搞的天天很忙,没时间处理其它事情。
试试我开发的连界面都能生成的.Net代码生成器吧,可以减轻你许多工作量。
http://blog.csdn.net/cwbugs/article/details/7268267
http://v.youku.com/v_show/id_XMzYxODgwMjMy.html --------------------编程问答-------------------- 从需求出发,从难点(当然是你的能力范围内)出发,从用户在1分钟耐心极限之内可以觉得“眼睛突然亮起来”的真正平台创意出发。其实方面的问题不可能经常在Csdn出现,因为大多数编程序的人都是满脑子以为自己编程时才是重要的,根本不能抬眼看看前边。 --------------------编程问答-------------------- 其实方面的问题不可能经常在Csdn出现 --> 其实这方面的问题不可能经常在Csdn出现
这些方面即好象是美术设计师的原型作品一样,它是将来产品的归宿,不可能当作一些基本的素质问题来讨论。 --------------------编程问答-------------------- 至少自己写个数据访问层,这样怎么说也减少20%以上的代码啊
再慢慢的重构和积累业务逻辑的话,经历3-5个项目,起码也可以减少80%的代码了 --------------------编程问答-------------------- 这样的话你们才有精力去真正的"设计"软件,而不是堆砌CURD代码 --------------------编程问答-------------------- 所谓作坊,指的是生产手段的自动化程度落后,
即便是1-2个人,也可以是高度自动化的方式,
至少我知道一些所谓大公司,生产方式也是很落后的,
但是人家有钱去浪费人力资源,他们的项目标的可以上千万,上亿,有巨大的利润空间 --------------------编程问答--------------------
有道理,编程的人感觉程序后台才是最重要的,但用户除了要求可以用外,更重要的是要用的方便,用的顺心,顺眼 --------------------编程问答-------------------- 您把问题想复杂了,
一句话的事
ui+ui+ui
这两天我们业务快死了,我替补,现在他们看到我就头疼,但是我所说的都是真理
我总结
客户不关心您的,接口,算法,结构,他们要的就是好用漂亮的ui+可以执行的垃圾
所以您的问题就是需要一个资深美工
您可以参考apple是怎么成功的 --------------------编程问答-------------------- 适合的就是好的 --------------------编程问答-------------------- 我说一句吧,你现在能力问题,就这样想的,再等你工作几年吧,慢慢项目多,经验丰富了,明白是怎么一回事了,你就自动往那方面发展了,因为他是最省力,特别在维护上,而客户的需求绝对性的老变动,也要求你在代码编写更规模,模式更合理,因为维护好痛苦
补充:.NET技术 , ASP.NET