Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1627287
  • 博文数量: 1481
  • 博客积分: 26784
  • 博客等级: 上将
  • 技术积分: 17045
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-12 09:22
文章分类

全部博文(1481)

文章存档

2014年(10)

2013年(353)

2012年(700)

2011年(418)

分类: 系统运维

2012-06-04 16:17:08

过段时间就要第二个项目了,今天翻了下自己第一个项目的总结,感觉挺有意思的,就发出来吧,充个数,顺便挣点粮票、


不到2周的时间第一个项目完结,吐槽下自己从中学到的东西。
技术方面的也就是把之前的基础知识组合起来,综合运用而已,木什么好说的,在这里主要说下做一个项目思想方面的一些小东西,以bbs为例
1:分析需求
意思就是说分析即将要做的bbs要实现那些功能,每个功能要实现到什么程度,这分析就是个想象和yy的过程,很简单,不多说
2:确定思路
分析完需求就该想怎么做了,先在脑子里策划实现论坛功能的流程,如果是做一个bbs,那就先做几个静态页面,把各个功能在页面上体现出来,当然功能现在还是不可用的,因为bbs是需要与数据库交互的,接下来就是根据功能模块设计表结构,最后就是主要部分了,写code,简单说就是通过编写的php代码,接受用户的输入内容合适的放到库里去,从库中抽出合适的数据合理地呈现在页面上
思路很重要,在写代码之前先构思好,仔细想这个功能用什么方法来实现,想好后在写
3:注意细节
最后每个人都写出了具有基本功能的bbs,看似一样,其实不一样,区别就在细节部分,虽然每个人的论坛都有发帖,回复等基本功能,但是有些人的界面做的就是漂亮,有些人php代码写的就是严谨,功能多不重要,重要的是功能简单实用而且强大(比如facebook),把主要的精力放在主要功能上。
简单说说俺做的,
密码方面用char(32)存储,加密方式substr(sha1(md5($pass).$salt),4,-4)
也就是说取出用户注册的密码赋值个$pass,然后md5,接着拼接一个随机的6为数字再次用sha1加密,然后用substr截取中间32位,这样相对安全些,因为md5密文在网上有很多地方可以破解的,复杂的破解只需1毛钱费用,在此借鉴了dz的加密方法。
cookie方面,用户每次登录都会刷新库中和客户端中cookie值,我在库里直接建了张表存放用户的cookie,用户第一次成功登录后如果选择了记住密码,就会生成一个随机的cookie给用户,同时插入库中,以后每次用户密码登录且记住密码或使用cookie登录都会更新库中cookie和客户端cookie,这样即使cookie被盗,也只有在用户第二次登录之前有效,就算被盗用,下次使用cookie就不能登录了,这时用户再次密码登录记住密码同时更新库中和客户端的cookie,被盗用的cookie就无效了,相对安全了些。
论坛板块方面前后台做了无限级分类,帖子列表加了一个分类置顶,花费了比较多的时间,感觉挺有意思的,至于附加的聊天室就不说了,因为设计不合理、不实用,靠客户端定时刷新来实现即时通信,就是一玩具。
玩具和产品的区别就在细节部分,如果说一个论坛具有基本的功能(每个人都会做),但权限控制不合理或不严谨(低权限用户通过特殊方式越权操作),或有明显的sql注入(数字型好过滤,关键看字符型的),或帖子列表排序不合理(综合考虑全局置顶,分类置顶,本版置顶,发帖时间,最后回复时间排序),或论坛界面超级丑,或用户输入你木有想到的不好内容而你没有相关处理措施,向库中传送不合理不安全的sql,从库中抽出了不合理的内容不安全不合理的呈现在了页面上,那只能说这个论坛是一个玩具,而不是一个产品,作为一个合格程序猿,写出的是严谨的code,趋近完美的产品,而不是一个yy意淫不实用的玩具。
4:代码是改出来的
作为一个没有开发经验的人,假设大家智商都在一个水平线上,相差不大,在论坛上花费有效时间越多相对来说做出来的论坛越好,因为论坛是改出来的,随着不停的测试,思考发现bug和不合理的地方,不断完善,从而趋近完美。最后应感谢那些提出意见和指出bug的人,因为""每个人都会说,但意见和bug不是每个人都能提出来的,而这些恰是促进我们进步和知识经验更新的东西,远比得到100分有意义。
目前为止自己也是个菜鸟新手,以上是做bbs时想到的,纯属个人yy,不足之处及建议,欢迎邮件交流

原文地址:

阅读(274) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~