如何开发一个网站

希望本篇文章对入门的朋友有所帮助 那么我写这篇文章的目的也就达到了

如何开发一个网站? 开发语言不是问题 今天我们就以php为基础展开。

一。开发环境:我们熟悉的lamp是当前的流行架构 即 LINUX+APACHE+MYSQL+PHP 入门的朋友把主要精力放在php与mysql上即可。

对于php需要掌握的:基础语法 -----> 函数----->正则-------->
数组(数组我想特别强调一下 数组是很常用的很重要一定要打好基础 特别注意多维数组的使   
用)-------->session和cookie(这个也是重中之重 http是无状态的 一个网站离开了用户毫无存在意义
需要掌握好这两个  后面我会详细介绍cookie与session原理以及应用)

------------>面向对象(这个重要性就不用我说了 非常重要 包括继承 接口 抽象类 魔术方法等 面向对象开发有很多好处
不仅可以使代码冗余度低更加可扩展 现在流行的php框架都是基础mvc面向对象开发的    希望大家都好好把这些弄明白  后面开发才能得心应手 
后面我会详细介绍面向对象的使用以及如何设计一个框架)  我说的这些大家都需要花时间去弄明白 php这块你就可以   ,看来很少, 
但是其中的东西还是不少,  希望大家多花些心思。

对于mysql需要掌握的:增 删 改
查------->php与之连接的一些函数------->数据库表的设计-------->mysql存储引擎(各有哪些应用场景
后面我会专门写一篇关于存储引擎的博客)--------->索引(是什么 ?怎么用? 你们动手去查资料
印象会深刻)------>触发器------>存储过程------->游标的使用------->视图等等一些概念
后面我会专门写一篇介绍 刚入门只需要了解这些即可 但是基础的需要掌握与理解

二。选择一个适合自己的开发框架  php框架近几年来层出不穷 当然其中不缺乏高性能的易用的框架  如kohana  zend
framework  thinkphp  YII等等 只有适合自己的 没有最好的框架 当然你也可以自己开发 
(使用这些框架需要你有面向对象基础)

三。版本控制 svn 我们知道开发一个网站是大家协同开发的 这就需要一个版本控制的软件 来规范我们的代码  (动手去搜索一下svn 动手搭建一个试试 )

四。 FTP服务器 用来发布我们代码 正式上线运行 (同样大家动手搭建一个)

五。从这里我们进入业务方面:以一张图来表示 开发流程如图 具体开发流程按实际情况而定

六 。架构变迁

刚开始我们的系统一般是把apache 与 mysql都放在一台机器上 随着流量的增大的话 我们一般会从优化入手 
瓶颈一般都是在存储上语言本身不是什么大瓶颈 我们可以对数据库进行分库分表 (水平与垂直) mysql有自带的分区技术 后面我们详细介绍 
我们简单改进后大致如图所示

这里有一个问题大家要注意  我们知道session是存在服务端的
一旦lvs轮询到不同的服务器上的时候session共享就成了一个问题  解决方案很多 我采取的把session做集中管理写到数据库中
这样的话就共享了session就保证了正常访问 还有一个问题就是登入会出现延迟 因为主服务器复制到从服务器的时候需要时间 正常情况下是很快的
有可能出现用户明明登入了 刷新页面后还是处于未登入状态 再刷新一下又登入了  这是因为主服务器复制到从服务器上了

七。设计原则 以下原则是我在工作中摸索出来自己觉得还是对自身帮助比较大的 与大家分享一下

1 可控性:任何的功能一定要具备可控性 举个例子:当我们在设计开放接口的时候 我们需要设计对接账号的可以访问的接口  以及每一个接口在同一时间段内的调用次数等等这些都是需要做控制的 使我们的程序更加的灵活。

2 可追朔性:任何的操作需要进行日志的记录 用来追溯历史 查问题 :比如谁在那个时间段操作了什么
浏览了什么等等此类的数据 我们统一记录 这样做不仅可以追查原因 还可以积累数据 为后期的数据挖掘做准备(有数据做什么都方便多了
后面我们还可以用来做策略等等)

3 可扩展性 :一个功能尽可能的可扩展 这就需要把一些共同的东西独立出来 后面去派生

八 。一些常用的设计思想

1 异步:很多时候我们做事情不需要一次性做完 我们可以分批做 举个例子:一个用户注册完后 我们需要发送邮件让顾客激活 我们就可以把发邮件的事情交给异步去处理

设计的时候  我们可以在数据库中加入一条需要发邮件的账户信息  然后用异步脚本定时的跑就行了

2   两个系统之间的对接也是我们很常见的  首先需要一种协议将二者连接起来比如phprpc

3 模块的分布式 :应用中我们需要进行模块的分拆 把一些大的繁琐的处理数据模块单独独立出来 通过中间件与消息机制进行通信 这样做的好处就是自身可以更加专注自己的功能 更加具有扩展性

九 。以上提到的一些概念 后期我会一一分享出来跟大家一起学习

时间: 2025-01-14 02:08:17

如何开发一个网站的相关文章

Python+Flask+MysqL的web建设技术开发一个网站

一.摘要 flask是一个很精简,灵活的框架,对于web的开发非常的好,具有jinja2强大的模板引擎的支持.flask框架的一个扩展就是sqlalchemy, sqlalcheny是flask的一个扩展.sqlalcheny是一个强大的关系型数据库框架,它是一个框架,并不是数据库.sqlalcheny数据库的操作得益于我们的ORM技术,将繁琐的数据库操作转化为我们的python的类,其实还是转化为sql语句来操作数据库,这就是他的强大的地方,同时特提供了数据库原生的SQL底存功能.sqlalc

一个人去开发一个网站

大致流程: 1.确定需求(产品经理) 2.设计页面(前端UI设计师) 3.切成静态页面包括页面效果(前端工程师切割html.js.jquery等) 4.后台程序编写(后端工程师.包括数据库设计.php.mysql等 ) 5.购买域名 6.购买服务器 7.备案域名 8.搭建环境 9.解析域名 10.网站上线

如何快速开发一个漂亮的网站?包括前端的设计,css布局等

如何快速开发一个漂亮的网站?包括前端的设计,css布局等 网站开发看起来简单,但是做起来很乱,对于个人来说尤其如此.比如,需要ps,css,html,js,java等知识,有什么好的办法,可以快速的开发一个网站的前端? 如今有很多快速开发平台:图形化可视化操作,所见即所得:通过拖拉即可完成表单.流程.报表页面的设计:用户通过编写JS文件,调用封装的单据的保存.查询.删除等方法,即可完成页面的功能设计: 平台工具设计的所有的页面发布后,将生成HTML格式的源码文件,WEB系统采用HTML伪静态技术

django局域网建一个网站

之前总是运行的python manage.py runserver,用默认的在本机访问的127.0.0.1:8000,如果跟几个同学一起去开发一个网站来玩玩的话,可以这样: python manage.py runserver (your ip):(your port),指定你的ip和port,则局域网内其他客户端可以访问这个django建的网站了. django局域网建一个网站,布布扣,bubuko.com

【转载国外好文】代工开发一个iOS应用没有那么容易

导读:这是来自新加坡的 iOS 开发者 Kent Nguyen 发表在1月底的一篇博文.这篇吐槽文在 iOS 开发圈子里流传甚广,从原文150多个评论就可见一斑,现翻译如下. 让我们开门见山吧:做一个iPhone应用需要花多少钱? 就是这个最常见的问题,我的很多朋友(大多是些西装革履的商务人士),还有我那些个对技术一知半解的客户们,他们都问过我这个的问题.通常,我会先给出一个大致的报价,这个报价并没有细致到需要签合同确认每一个功能点的地步.即便是这样,每当的我报价一出口,对方都毫无例外的给惊着了

开发一个iOS应用没有那么容易

导读:这是来自新加坡的 iOS 开发者 Kent Nguyen 发表在1月底的一篇博文.这篇吐槽文在 iOS 开发圈子里流传甚广,从原文150多个评论就可见一斑,现翻译如下. 让我们开门见山吧:做一个iPhone应用需要花多少钱? 就是这个最常见的问题,我的很多朋友(大多是些西装革履的商务人士),还有我那些个对技术一知半解的客户们,他们都问过我这个的问题.通常,我会先给出一个大致的报价,这个报价并没有细致到需要签合同确认每一个功能点的地步.即便是这样,每当的我报价一出口,对方都毫无例外的给惊着了

三个问题告诉你,开发一个App到底难不难?

App软件开发是一件非常专业的技术性的工作,所以大众总是有一些常见的困惑,比如"为什么开发App要花这么多钱?",或"为什么开发App要花这么长时间?"或"app开发的难点到底在哪里?".自APICloud定制平台上线,我们就接到了无数个客户类似的询问.因此,小编在这里,用非常通俗的话去解释一下这些问题. 首先,我们先理解一下客户的这些问题的本质: App开发到底是什么? 一句话来解释,开发一款App就是从构思到实现的过程.这个过程具体包括什么呢

一个网站或者APP开发要多少钱

经常遇到朋友问我:"开发一个京东商城需要多少钱?开发一个滴滴打车需要多少钱?"类似这样的需求,就连我这样一名伪开发者都不愿意去骗客户或者朋友,因为这种问题是很难回答出来的.为什么这么说呢?要知道类似京东商城滴滴打车这样亿级别用户的产品,很难知道他之前经过了多少次版本的迭代,也很难知道他的产品线有多广,很多朋友甚至连"迭代"这样的名词具体概念都不懂,今天我会以Q+A的形式汇总诸多开发过程中遇到的客户问题,希望能给创业中的你一些建议,如果你是一名开发者可以绕道. 首先我

QA小课堂:一个网站或者APP开发要多少钱

经常遇到朋友问我:“开发一个京东商城需要多少钱?开发一个滴滴打车需要多少钱?”类似这样的需求,就连我这样一名伪开发者都不愿意去骗客户或者朋友,因为这种问题是很难回答出来的.为什么这么说呢?要知道类似京东商城滴滴打车这样亿级别用户的产品,很难知道他之前经过了多少次版本的迭代,也很难知道他的产品线有多广,很多朋友甚至连“迭代”这样的名词具体概念都不懂,今天我会以Q+A的形式汇总诸多开发过程中遇到的客户问题,希望能给创业中的你一些建议,如果你是一名开发者可以绕道. 首先我们先看一张目前我们程序员客栈(