”易书网“开发总结——技术篇

    书看来的只是在大脑的一种表象,实操之后才会刻在大脑上。实践让人成长——易书网开发体会。

    在写体会之前,先回顾下以前的技术水平。在开发易书网前,就学了HTML、CSS,能根据PSD图把页面写出来。看了一遍php语法(只是看了一遍,实话说,现在对php了解还是很粗浅),会写一些简单的页面,会用smarty模板(能把php和html分开,似乎又上了一个台阶),听说过Zend Framework大名,但没有用过。

    相信每一个web开发者都想亲手开发一个作品出来,我也不例外。当想到点子后,那还等什么,动手吧。这就是当时的想法。虽然没有用过php框架,但是听说过框架能快速开发,而且Zend Framework好用、强大,那就找资料,看视频,动手写例子吧。听说Zend Framework和所以框架一样是以面向对象为基础的,啊?不知道面向对象(很糗,作为开发者,OO都不知道)是啥咦?Google吧,看文档吧!有压力推着,一步一步学习起来,终于开始弄懂面向对象、类、实例化、继承、封装、多态……一个个名词塞进脑海;对框架慢慢摸索,终于MVC思想……菜鸟开始慢慢成长了。

    对于框架,不想谈论太多,说白了,框架就是一个工具而已。但是框架的思想是值得深入研究的。MVC、路由控制、功能集成封装是框架的精髓。每个框架都必须实现这几个功能。之前了解过兄弟连的Brophp,它就是Zend Framework的缩小版,实现了MVC、路由控制、数据库操作封装。所以,框架作为快速开发工具很有用处,但是对于大的项目来说,框架只会成为性能瓶颈。

    第一次开发大的项目,而且是现学现用,所以第一次写得很烂,很烂。基本把框架废了!当时,单纯以为Model部分只是一个数据库的操作接口,全部数据逻辑都写到Controller里,所以代码超级乱,而且大量重复的代码,而且每次从数据库取出数据后先经过一个中间变量再赋值到View,多经过一个赋值过程,导致访问速度很慢,甚至出现代码执行卡死现象。实在看不下去了,于是把后台代码重构了一遍。对比前后两次开发,总结三点开发经验:

    1、数据库设计。数据库设计是要根据数据表现而设计的。把重复数据另建数据表,通过外键链接其他数据表。比如学生表要记录学院信息,书籍信息表要记录学院信息,这时可以把学院信息独立成表,其他表通过外键链接学院表ID,减少数据冗余。

    2、OO思想贯穿整个项目开发。学过C,但是没有继续学习C++,了解面向对象思想从php开始,所以感觉面向对象还是很欠缺。不过,重构之后大幅利用面向对象,对面向对象还是有了一个新的认识。通过两段代码可以看出没有重构前的代码写得是多么的累!

    简单以获取学院信息为例,第一版本时通过在Controller调用ZF底层的fetchAll获取所有学院信息,第二版本通过在module建立操作学院表的基本操作的class ColMapper,包含获取全部学院信息、获取制定学院信息的方法。之后所有需要获取学院信息的Controller先实例化ColMapper,然后调用ColMapper里的方法。

    还有一个典型的方法就是,分页类实现。因为每个板块分页的URL是不一样的,而且页码是变化的,所以新建一个输出分页URL的方法,通过传递type变量判断具体是哪页需要获取URL。所以OO思想就是在开发规划好的前提下,抽出所有通用部分,独立出来,作为函数调用。具体体现可表现为功能模块分块。

   3、安全控制。不要相信用户的每一个输入,这是后台开发必须考虑的问题。防止SQL注入攻击,html源码转换,特别是js代码过滤等等。虽然ZF会对输入数据作引号过滤,但是html源码和js代码却没有做处理。所以对用户每个提交的数据做检查是必须的,而且是前后台检查,前台作格式和完整性检查,后台也要做数据过滤等。

   4、前后台合作。网站开发是一个前后台交互的过程,前后台合作开发,进步会很大。会使前端对后台数据逻辑原理,后台了解前段页面处理,js运作等等。但我想说的是,开发是一个合作的过程,无论是写前段还是后台,都要考虑合作伙伴处理的工作。比如,后台怎么输出数据前段处理才方便,前段怎么写html结构才有利于后台数据输出……

    整个网站开发下来,做的就是逻辑处理。这个其实不难,也没有多考验技术含量。对后台技术了解深入之后才考虑一些更深入的问题,比如怎么处理数据效率才会高;怎么写php代码,代码才健壮、执行效率高。还有会考虑到一些自动处理工具开发。网站有些数据是含有不良信息的,怎样写个工具才能过滤到不良信息,或者写个怎样的工具才能删除一些陈旧的信息呢?当然,这些让php处理就会很吃力了。所以,完成了一个项目,php方面其实一点都没有进步,只是用到php皮毛而已,而且写的php代码执行效率不高。收获更多的是对网站开发整个流程的了解;对面向对象的深刻理解;对MVC思想的深刻理解;激发对后台技术开发兴趣的激发……php只是一个以C语言为基础的语言工具而已,而想更深入用好php就需要了解php底层机制和好好学学C语言、数据结构等其他更底层的知识。

转载于:https://my.oschina.net/No5stranger/blog/178408

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值