篇一:php项目开发经验-2个月学习php经历
php项目开发经验-2个月学习php经历
@author xueyms @since 2020-04-02
两个月前我几乎完全不会PHP,糊里糊涂的接手了一个手机网游门户的开发,临阵退缩是没有用的,IT技术作为现今工业社会里更新换代最快的一个行业,任凭谁也不可能全部掌握所有的技术,作为一个优秀的开发人员,随时学习新技术并且尽可能的最快掌握应用到项目中,便是必需具备的基本素质。手艺总是多少有一些相通之处和可继承的,琵琶弹得好、学习吉他自然也不难,从钢琴到小提琴跨度是有点大、但是音乐知识也是一样的。快速的学习需要扎实的基础、准确找出共通点的敏锐触角、举一反三的领悟力、锲而不舍寻求答案的毅力。PHP是一只两栖动物,自5.0之后开始支持面向对象,但是同时兼容面向过程的编写。这特性使得PHP容易上手却难以精通。两个月里摸着石头过河,边学边做到最后项目完成,不敢以高手自居,多少掌握了一些PHP学习和编程的小窍门,为了避免如我一样的初学者或项目需求者多走弯路,特地整理一下心得与同行分享。
与国外和香港台湾地区相比,国内的PHP程序员相对较少,精通的更是为数不多。一个很大的原因是中国大陆是盗版大国,大伙都爱用Windows系统,用.Net写程序,用Sqlserver存储数据,反正微软不会上门开罚单。两个月的项目开发周期过去了一个月,后台系统我都几乎写完了还没有招到我满意的PHP程序员。有两个合符标准的,一个因为个性有点特立独行,另外一个要价7K超出公司预算被我Pass掉,导致最后我招了一个编程基础比较好的小伙子进来自己带。当我还在上一家公司做.Net项目时,有个同事曾经对我说他羡慕PHP程序员的薪资高,我当时不以为然,那种程序写得好薪资不高?现在倒有了更深的认识,PHP程序员薪资高,不是因为PHP程序写得好,一般而言相关的技能也得有相当的程度。随便在网上找一份PHP程序员的招聘一起看看。
1. 两年以上PHP开发经验,熟悉smarty模板,熟悉Linux+Apache+Mysql+PHP架构,熟悉Zend架构者尤好;
2. 具有MySQL索引优化、查询优化和存储优化经验、PHP缓存技术、静态化设计方面的经验;
3.熟悉Discuz!,UCHome产品,能做二次开发;
这也是我招人时所要求的。一般而言,PHP的项目不会用微软的windows平台和sqlserver数据库,除非公司足够大,不然linux服务器的管理便是由PHP程序员兼顾。Mysql数据库可不像微软的Sqlserver那么傻瓜化,配置与调优是一门大学问。稍为正式一点的门户都会搭配着上Discuz论坛或者UCHome,整合与二次开发便是无可避免的事情。当一个PHP程序员具备这些技能时,薪资高些也在情理之中。各位学PHP的朋友们,看到这里应该对自己的学习计划有比较清楚的认知了吧。
作为开源世界的前锋,PHP有很多优秀的架构,如Zend, CakePhp, Symfony等等。其实一直到项目开发完毕我才开始接触Zend,一个成熟的架构的确能减轻不少工作量,但是如果在项目启动时就贸然上这么大的框架,而本身对PHP技术没有很深了解的情况下是很难驾驭的了的,势必引发出各种各样棘手的问题。正是考虑到了这一点,所以我步步为营的往前走。先是采用最原始的方式,将PHP与HTML代码混合着编码,做完两个模块后对PHP语法和她的一
些特性、怪癖有了清楚的了解后开始加入Smarty模板,将业务逻辑与用户界面进行分离。再做几个模块,搞清楚了Smarty的那套语法、标签和组件后再把数据处理剥离出来形成了MVC架构,一点一点的完善,既保证了开发的进度,也使得系统越来越合理,一直到最后稳当的完成了整个项目,没出大乱子。到了最后再回头来看Zend,CakePhp这些觉得也没什么神秘。
因为开源,所以PHP是个没爹没娘的孩子,不像微软,无论是平台、语言、数据库、IDE全都打上Microsoft Family的烙印,大多数东西微软都封装好了,你不知道为什么,也不需要知道为什么,使用就是了。初用PHP难免会遇到一些奇奇怪怪的问题,例如相对路径与绝对路径、数据库乱码、header跳转报错、session也报错等等。也正是因为开源,所以网络上几乎都有相应的解决方案,只要你真正了解问题的根源,自然能搜索得到相对应的答案。
WEB开发很大的比重是在于数据库的操纵,SQL便是程序员必需精通的一门技能。相信有不少PHP程序员如我一样,是从微软开发平台转行过来的。用习惯了Sqlserver,改用Mysql时也会遇到一些小挫折,毕竟是两家公司不一样的产品。最明显的就是指定行数的关键字top变成了limit,连接符+在mysql中变成了concat等。这些倒都是小事情,记得就是了。有一种SQL却让我有点不爽。如:select * from table1 where userid in (select top 10 id from table2 order by createdate desc),在mysql里因为不支持而改成了select * from table1 where userid in (select id from (select id from table2 order by createDate desc limit
10) as t ) order by createDate desc。这样累赘的语义很让我烦恼总记不住,最后准备了一本mysql cookbook。
PHP是一门优秀的开发语言,以后将会继续大放异彩,特别是在facebook推出hithopPHP之后。真要说到项目开发,那是一本书的篇幅也讲不完的事情。以上只是总结我在开发过程中的感受和经验,真正的应用还得在项目实战中自由发挥。一千个人眼里有一千个哈姆雷特,一千个人就有一千种解决问题的办法,但终究只有一种方法是最有效直接的,编程、就是不停的寻找那种方法。
PHP书籍推荐:
书店里PHP开发的书籍非常多,但真正优秀的却很少。下面推举几本我看过、用过、感觉不错的书供学习参考。
《大道PHP-LAMP+Zend+开源框架整合》 电子工业出版社
这本书是我接手PHP项目后买的第一本PHP书籍,99块人民币,846页的篇幅,一直到项目完成我都没完整看完,只是把它当工具书查阅使用。这本书不太适合初学者,里面有不少案例是错误的,必需修改后才能运行。Zend框架也介绍得太过简单。
《PHP Web2.0开发实战》 人民邮电出版社
老外写的一本书,技术含量比较高,详细介绍Zend架构与Smarty配合使用,所用的案例也是循序渐进步步深入。适合有基础的PHP程序员阅读。
《PHP经典实例》 中国电力出版社
也是翻译自国外,O'Reiely出版社的技术类书籍就好比中华书局的史学书,商务印书馆的学术书一样,绝对可以放心。
篇二:PHP规划
规划?
无论我们是在开发大型、中型还是小型的项目,规划是始终是最重要的事情。当我们的水平达到某个层次的时候,我们就可以编写一些程序而无需看着教程或书籍。也许我们懂得用PHP连接数据库,输出运算结果,创建类等等。然而,很多人的水平达到这个阶段的时候就很容易只顾编码而完全忽略了规划。
尽管即兴编程听上去不错,但如果我们要一个工具帮我们实现流线型的编码作业、简便的升级过程以及轻松的编码工作,规划就是最好的选择。如果我们已经规划好了数据库结构,如果我们对自己的代码已经有了大概的轮廓,如果我们非常清楚自己写的程序是做什么用的,那么,编码工作只不过小菜一碟。多数的书籍或教程中都没有详细地讲解规划过程,因为通常作者已经做好了这个工作。但如果我们要自己来编一个程序,那么对程序的规划就显得尤为重要了。当我们要为程序添加新的功能或特性,以及要开发新版本的时候,就会发现程序的规划和良好的代码结构会是开发过程中最重要的一个环节。
这篇文章会以一个留言本程序作为示例,但并不会教你如何编写PHP代码,而是教你如何更好的组织和规划你的代码。它会探讨程序特性规划、类的规划、数据库结构、模板、消息提取以及一些基础的编码技术。 目录
首先,请看看这篇文章大概包括了哪方面的内容
?
规划程序特性
o o
你的程序是做什么用的? 程序各种特性之间的关系如何?
o
用什么代码来处理这些特性间的关系?
?
数据库
o o o
用哪种数据库? 怎么使用数据库? 什么东西存在数据库内?什么东西存在配置文件内?
?
规划代码结构
o o o o o
你的程序要用哪些类? 这些类是做什么用的? 如何组织它们?
程序是如何调用这些类的? 什么东西写进类里,什么东西写进过程代码里?
以上的虽然不是这篇文章的全部内容,但是文章会对这
些问题进行探讨。
程序特性规划
规划程序特性最基本的要求是我们必须知道自己的程序是做什么用的。首先,要对程序基本的特性有一个大概的轮廓,就如这个留言本一样,我们可以列出了以下东西:
1)显示留言功能;2)发表留言功能;3)管理功能;4)模板功能。
是如何写出这些特性的?很简单,我参考了其它的留言本,看看它们有什么特性,并大概的做了一个分类。然后再想想有什么类型的特性是它们没有而我们又想添加上去的。但这样做只是粗略地勾画出一些基本的特性而已
现在,我们需要对这些特性进行补充和扩展,列出我们认为程序必须具备的详细特性。下面我们随便列举一些:
?
显示留言功能
o
默认每页显示10条留言,但允许用户自行定制
o
使用JavaScript实现留言的展开和收缩
o
支持BB代码
?
发表留言功能
o
在每一页加上发表留言的链接
o
必须填写的信息:呢称、留言
o
可选填的的信息:电子邮件、网站、IM帐号、地理位置
o
隐藏表单域:IP地址(用于防止垃圾信息)
篇三:软件项目开发计划书
目录
一、《网上工作交易系统》项目开发计划
1.引言 ..................................................................................... 2
1.1编写目的 ....................................................................... 2
1.2背景 .............................................................................. 2
1.3定义 ............................................................................. .2
1.4参考资料 ....................................................................... 2
2.项目概述 .............................................................................. 3
2.1工作内容 ....................................................................... 3
2.2主要参加人员.................................................................. 3
2.3产品.......................................................................3
2.3.1.程序 ....................................................................... 3
2.3.2.文件..........................................................................3
2.3.3.服务......................................................................... 3
2.3.4.非移交的产品............................................................3
2.4验收标准.......................................................................... 4
2.5[完成项目的最迟期限]...................................................... 4
2.6[本计划的批准者和批准日期]........................................... 4
3.实施计划..............................................................................4
3.1工作任务的分解与人员分工............................................. 4
3.2接口人员 ....................................................................... 4
3.3进度.............................................................................. 4
3.4预算.............................................................................. 4
3.5关键问题 .........................................................................5
4.支持条件 ................................................................................... 5
4.1计算机系统支持 ...............................................................5
4.2需由用户承担的工作..........................................................5
4.3需由外单位提供的条件 ................................................... 6
5. 专题计划要点.............................................................................. 6
二、《网上工作交易系统》需求分析规格说明书............................7
1.引言..............................................................................................7
1.1编写目的................................................................................7
1.2文档约定................................................................................7
1.3预期的读者和阅读建议.................................................................7
1.4参考资料.........................................................................................7
2.总体描述.......................................................................................7
2.1产品前景.........................................................................................7
2.2产品功能.........................................................................................7
2.3运行环境.........................................................................................7
2.4设计和实现的上限.........................................................................8
2.5假设与依赖.....................................................................................8
3.系统特性................................................................................................8
3.1功能性需求.....................................................................................8
4外部接口需求........................................................................................8
4.1用户界面........................................................................................8
4.2硬件接口........................................................................................9
4.3软件接口........................................................................................9
4.4通信接口........................................................................................9
5其他非功能需求.....................................................................................9
5.1性能需求...........................................................................................9
5.2安全设施需求...................................................................................9
5.3安全需求.......................................................................................... 9
6 附录A.....................................................................................................10
7 附录B.....................................................................................................11
项目开发计划
1引言
1.1编写目的
没有规矩不成方圆,无论什么事情,要顺利地完成,必须有一个统一的计划指导书。软件项目开发也不例外。这个计划书不仅能让参与项目的开发者们知道如何进行,还明确了他们各自的职责、保证项目团队之间的协作更加的有条不紊、使得项目工作的各个过程能够合理有序地进行。同时,计划书也能让团队内外的沟通起着向导作用、团队之间的工作范围、开发模块之间的关系,以及对开发进度、经费预算、分配人力物力、风险等因素进行了大概的描述。
本项目开发计划用于从总体上指导超市商品查找系统项目顺利进行并最终得到通过评审的项目产品。本项目开发计划面向项目组全体成员。
1.2背景
网上工作交易系统功能:用户注册,登陆,用户可以是雇主也可以是工作人员、设计师、公司、团队,雇主可以在那里发需求进行投标,根据雇主要完成的方案(多为网站设计,app设计,建筑工图纸,机械工程图纸,宣传单等设计类工作)用户根据擅长的领域进行投标,费用由第三方保管,根据中标用户发放佣金。
提出者:小王,开发者:理工团队,软件得到超市方的认可,方便用户快速买到物品。
1.3定义
专门术语:
MySQL:系统服务器所使用的数据库关系系统(DBMS)。
SQL:一种用于访问查询数据库的语言
事务流:数据进入模块后可能有多种路径进行处理。
SQL:Structured Query Language(结构化查询语言)。
UML:统一建模语言、是一套用来设计软件蓝图的标准建模语言,是一种从软件分析、设计到编写程序规范的标准化建模语言。
1.4参考资料
? 《软件项目管理》 Rajeev T Shandilya编著 科学出版社。
? 《UML和模式应用》Craig Larman著,机械工业出版社
? 软件工程国家标准文档
? 软件工程项目开发文档范例
2项目概述
2.1工作内容
1、 制作和修订项目开发计划; 2、 进行计划跟踪与监控; 3、 配合SQA的质量保证工作; 4、 工作产品及时进行受控管理; 5、 按计划提请阶段评审;
6、 提交测试部门评测开发产品; 7、 交付最终工作产品。8、 项目实施总结 9、 项目验收
2.2主要参加人员
小王、小李、小谢、小余、小赵、小田
2.3产品
2.3.1程序
软件名称:网上工作交易系统
编程语言:php
功能:用户注册,登陆,用户可以是雇主也可以是工作人员、设计师、公司、团队,雇主可以在那里发需求进行投标,根据雇主要完成的方案(多为网站设计,app设计,建筑工图纸,机械工程图纸,宣传单等设计类工作)用户根据擅长的领域进行投标,费用由第三方保管,根据中标用户发放佣金。
2.3.2文件
? 用户操作手册:本手册详细描述软件的功能、性能和用户界面,使用户
对如何使用该软件得到具体的了解,为操作人员提供该软件各种运行情
况的有关知识,特别是操作方法的具体细节。
? 软件维护手册:主要包括软件系统说明、程序模块说明、操作环境、支
持软件的说明、维护过程的说明,便于软件的维护。
2.3.3服务
计划提供以下服务:
课堂培训:以讲课形式对客户进行培训,使其能够正确使用软件。
免费咨询:客户可以在工作时间向技术人员提出问题并获得解答。
技术支持:对于某些客户,采取上门指导的方式。
软件维护:获取软件使用中的问题,提供补丁程序。
2.3.4非移交产品
1.可行性分析报告 2. 项目开发计划 3.软件需求说明书4.概要设计说明书
4.详细设计说明书5.测试计划6.测试分析报告7.开发进度月报8.项目开发总
结报告9.软件问题报告10.软件修改报告11.源程序
2.4验收标准
2.4.1代码的验收
最后在交付客户之前进行小组内评审,代码编写符合HB6465标准,与文档说明保持一致,代码书写风格统一,采用标准规范,没有下列错误:由于软件缺陷造成丢失数据,不符合设计要求,响应时间太长无法接受等问题。
2.4.2 文档验收
最后在交付客户之前进行小组内评审,文档格式符合HB6465标准,功能符合与客户的合同要求,清晰易读,没有语病与歧义。
2.4.3 服务验收
服务硬件达到文档说明的要求,人员技术考核合格,定期上门维护。
2.5完成项目的最迟期限
交付日期为2014年2月20日
2.6本计划的批准者和批准日期
本系统批准者为老王。
批准日期:2014年12月5日
3实施计划
3.1工作任务的分解与人员分工
略
3.2接口人员
负责本项目同用户的接口人员为小李,由软件发开方派专人,按客户要求,指定地点安装,调试,运行并给客户演示,在后期中负责维护和更新。 3.3 进度
方法:采用结构化开发
设置模块开发优先级:通过对图书管理的特点和信息流程等的分析,确定各模块开发的先后次序。
具体开发进度安排如下:
注:有四个里程碑,分别是需求完成时、详细设计完成时、系统编码完成时、整个项目工作完成时。
3.4预算
劳务预算:39000元人民币,经费预算:3600元人民币