web程序设计(2)....开发流程?
计算机被设计出来了----最初用于计算(军事科研需要)==也即数据的处理---需求不断提高(由1+1变到发射卫星导弹的计算了)---处理速度精度不断提高---声音,图片,视频都能转换为数据了---计算机牛B了,能转换为数据的东西,理论上它都能处理了----信息爆炸了==
软件: 完成预定任务的东西.....除了硬件就是软件了(主要信号转化??数据处理?封装一大推操作???[本人愚笨,太广了,油尽灯枯了])....(想起赵本山了,"忽~悠~,接着忽,悠~~".)...略..."没有安装软件的计算机叫裸机".....最初操作计算机只能靠01码操作--信号转换啊(把字母能转化为预定义的一大推开开关关,原始汇编语言???)--dos(磁盘操作系统)软件出现了----能弹出个黑框,输入字母进行操作了(不必追究内部构造了)....黑框上还能画图了??....信号转换(本要输出黑框的经过转换后再输出.window???linux?)...windows出现了.....能弹出个画好了的图片<桌面?>,原本需要输入字母,现在直接双击(更人性化了).....信号转换(本归dos管理的系统,现在貌似全被windos管理了)....'高级语言'软件(如turbo-c等)出现了....(原本需要输入汇编的,现在只需要输入'高级语言',软件完成内部转换)......反正计算机处理速度越来越高了,对于没有特殊需求的用户来说,,多几层转换无关紧要....似乎就在一层一层的插入一样,,,用起来更加方便了...只是内部处理更多了而已---
真废话!-
不就是完成预定任务吗!!!!!!完成数据处理!!!完成信号转换!!-----完成封装,再封装(别让我看到处理过程,我只要输入,你给出输出即可)
软件结构呢 ,主要cs,bs了,,这一段做网站,那就是bs了...
软件开发 :知道软件是完成预定任务,那么开发当然就是:1先明确任务(需求分析),2构造出大概的样子(概要设计了),3预想好怎么来做(详细设计了),4开始做到完成(编码)5,做好后看是不是想要的(测试).6是想要的(完成),不是(退回修补,完善)7.完成了,交付使用,出错再改(那就运行维护了)
本人程序员,,不,是刚毕业的程序员,,初级程序员,,也不是,是代码工人,反复的粘贴复制,修改......前一段太闲,看了看php,觉得'太简单了',就想整个网站出来,一动手做,傻脸了....
这是,预想的设计过程,自己呢?只处在详细设计,这一块..渺小啊..而关键点确在,需求的明确,数据库设计,及架构搭建....,,就拿前一段看php(ˇˍˇ) 时,想做的网站(新闻系统)来说下整个过程,
理论大致过程:::首先得跟'客户(一点也不懂计算机的家伙)'商量他想要个什么样的,,,,,,,然后呢,负责人根据经验预想大概能做个什么样的,,,,[就是需求分析,很重要,第一呢,客户想要的,技术能实现,如果客户想要的技术暂不能实现那就得继续磋商;;第二呢.想要的要尽可能详细,明确,理解错误,或者后期不停变动都很失败],,,感觉差不多后,需要美工做出静态页面(html实现或者只是画图) ,,,,[这可能需要和前面两步同时,进行,,因牵扯到详细设计了,对于一些处理逻辑简单的网站可能就没有文档式的详细设计,只有概要设计了],,,,,然后就搭建数据库表了,,,,[数据库搭建自然很重要了,要考虑安全,速度,大小,全面等],,,,再然后搭建框架了(当然框架搭建与选择的语言有关,可能是客户要求的,或者是内部确定的),,,,,[框架搭建很重要,确定后基本就不在做很大变动,以后的各个处理都很明确了],,,,框架确认后,就是编码了,,,,,,[框架一般都有mvc了,所以编码一般只负责一块,比如只负责操作数据库,提供接口,或者根据根据输入,处理业务逻辑调用底层,或者拖控件,检查输入,输出呈现正确界面]...再者测试了..测试测试再测试,,总有你预想不到的事情...任务完成(编码完成)后,把自己的模块多测试测试....
实际遇到的举例:::把新闻系统的一些情况汇总下::::
1.需求欠考虑的,比如详细页面分页,包含多张图片的新闻如何处理分页的情况,新闻是否允许评论等,新闻分类无限极还是固定,是否容易变动,不同分类查询是否容易. 是否为网站预留广告栏,广告栏修改是否容易,,友情链接是否考虑,,是否有权限区别-----需求的确定直接影响数据库设计
2.设计数据库表时,比如新闻表是否把新闻内容单独做为一张表存放,是否有关键字(keyword)字段以方便按关键字查询,是否有排序(orderNum)字段以便随时调整新闻显示先后顺序,是否有点击率(hit)字段以便查询关注度,点击排行,是否有推荐(command)字段以便提供推荐新闻,或让游客可以推荐操作,,是否有回复(或评论)字段以便更容易的查看是否有评论,,,是否有字段表示附件提供下载,,,是否有图片链接提供页面显示,,除了表示分类的字段是否多设置一个字段(如modulecode)以便表示不同部门或其他分类(比如同一条新闻可能按地区分类,也可以按关注点分类) 新闻相关图片是单独放一张表还是放一块,是用新闻id放入图片表中还是把图片id放新闻表中......比如后台管理的菜单是放到数据库,还是设置为静态的,比如权限管理,是为用户设置一个角色字段还是单独用一张表表示用户角色关系,是否可以为同一用户分配多个角色等...-----数据库设计直接关系到业务逻辑处理是否方便
3.页面设计是采用表格还是div,是否考虑更换皮肤,是否考虑用户自定义皮肤,是否考虑多语言支持等....(如可以把图片放在style/image/default下,把同样名字的图片放在style/image/blue下,然后每个页面图片链接用动态字符串来选择不同文件夹下图片等)...
4.语言选择,net,java还是php,,架构怎么选webserver,ssh,thinkpad,数据库怎么选mysql,sqlserver,orcal等,是否采用模板等,以前是否有类似项目供参考
5.编码中遇到意外怎么办,经费怎么办,进度怎么安排,人员需要多少等等....
---------
再回顾下网站设计可能用到的人员:项目负责人(懂业务,懂技术<可以不多>),美工,架构搭建者(有时也担任数据库设计者角色),高级程序员(也即能独立完成第一本程序,可以带领一些新人完成开发),程序员----似乎最容易被替代的就是程序员.
问题似乎很多很多,作为个程序员,以后方向????主攻什么???需要涉猎哪些???哪些是最总要的???哪些是公司确实需要的??哪些是近期不会用到的???哪些能够最快地受益????------╮(╯▽╰)╭,路茫茫啊.....前一段看到一个软件公司网站上面公布的成功案例,看了一些后发觉:都是些新闻发布,产品展示的网站,感觉如果一个做好后,其他其本上都是美工的活,美工做出不同页面,其他照抄,填充下数据即可.....哎,怎么把这些简单的技术转化为效益,也即怎么能够拿到订单,承包项目,有人出钱....
js,css,php,net,java,sql-------------------