版权声明:本文由李宜东原创文章,转载请注明出处: 
文章原文链接:https://www.qcloud.com/community/article/116

来源:腾云阁 https://www.qcloud.com/community

我叫李宜东,是一名华中科技大学的大二学生,一名网站开发的萌新,在大一上半学期,就想做一个我们班级专属的网站,方便同学们(方便我这个学委偷懒)。
下面放出我的网站信息架构、技术组合和从一个小白成长到现在一个小小工作室负责人的一些经验分享。

一.当前网站信息架构

二.网站运行环境及技术组合

注:左侧为现在的技术组合,右侧为未来可能选择的组合

三.腾讯云上环境的搭建和代码托管:

四.经验分享

从一个大一小白开始,我是如何在不到一年的时间从前端到后端搭建起自己的网站呢,又为何选择这个技术组合,踩过什么坑呢?

学习及开发经验

  • 利用网上平台,慕课网,实验楼,极客学院等等许多免费的学习平台都是很好的学习途径。
  • 会用插件,多 Google , StarOverFlow 上有很多问题的解答
  • 最重要的还是保持对编程的热情,做编程会占用你大量的时间,如果没有兴趣是很难坚持下来的,多做点自己想做的,往往可以带来学习的动力。
  • ……

如何偷懒

  • 环境配置篇:一键化安装,注意留存或收藏环境配置的文档,开发环境更新做好备份。
  • 团队协作篇:使用团队协作工具如 GITHUB ,良好的版本控制和工作流会减少冲突的代价,重要的是别人的代码不乱改:)
  • 轮子篇:合理利用现有的开源组件而不是一味造轮子,基于模板 /框架的开发会迅速很多。
  • 重构、封装篇:不要老想着重写代码,可以尝试将已有的服务封装为服务,在不改动底层的情况下进行开发:)
  • 编辑器篇:好的编辑器的代码补全,快捷键可以省不少时间。

选择当前技术组合的原因:

  • 前端的变化:现在 HTML5 和 CSS3 使用越来越广,同时出于这学期响应式设计的需要,前端从最初的 HTML,CSS,JavaScript 转向了 HTML5,CSS3 和 jQuery ,也开始使用更多的插件。
  • 后端语言及框架选择:在性能要求不高的前提下, php 无需编译,学习成本也比较低,容易上手,但是也因为这个原因,所以需要使用框架来使项目结构和编码规范更清晰一些,而 ThinkPHP 作为流行,文档较完善的国内 PHP 框架被我作为首选。
  • 数据库选择 MySQL 的原因: PHP 的良好支持, phpmyadmin ,开源免费. 最后由于一些校内网站数据的收集和四六级成绩的查询使用了 Python 来做网络爬虫
  • 服务器的选择:腾讯云学生服务器 1 元支持 : ),访问快,稳定性比较好

技术上踩过的坑:

1.最初使用 MVC 框架时,没有模型的概念,把数据库操作也写在了控制器,维护、复用和扩展都很麻烦。
2.数据库最初设计没有考虑扩展性,最近数据库向高版本迁移时懒得导出 sql ,复制了 data 目录到高版本 MySQL,然后数据异常,至今个人论坛还没来得及恢复数据。
3.最初密码设计只做了简单的 md5 加密,导致现在也没能加字符 md5 。
4.开发文档和项目文档的编写,有一天,突然翻到之前的文档,发现我写的代码已经偏离最初设计(软件课设作业:学生管理系统),成了班级网站:), mark :更新日志

五.网站截图:

首页

学生登陆页面

个人信息页

部门招新

官网地址链接

六.结语

这样,我上学期在一元服务器上折腾出了班级网站,这学期,我想将全站做成响应式网站,做出更多方便同学的功能。最后,感谢腾讯云给了同学体验云服务的机会,也希望其他同学也可以在云上做出自己想要的网站 /App 。

如何偷懒地用 PHP 搭建一个班级网站的更多相关文章

  1. 利用git+hugo+markdown 搭建一个静态网站

    利用git+hugo+markdown 搭建一个静态网站 一直想要有一个自己的文档管理系统: 可以很方便书写,而且相应的文档很容易被分享 很方便的存储.管理.历史记录 比较方面的浏览和查询 第一点用M ...

  2. express + mongodb 搭建一个简易网站 (四)

    express + mongodb 搭建一个简易网站 (四) 目前网站整体页面都已经能全部展示了,但是,整个网站还有两个块需要做完才能算完整,一个连接数据库,目前网站上的数据都是抓取的本地假数据,所以 ...

  3. express + mongodb 搭建一个简易网站 (三)

    express + mongodb 搭建一个简易网站 (三) 前面已经实现了基本的网站功能,现在我们就开始开搞一个完整的网站,现在整个网站的UI就是下面的这个样子. 我们网站的样子就照着这个来吧. 1 ...

  4. express + mongodb 搭建一个简易网站(二)

    express + mongodb 搭建一个简易网站 (二) 在搭建网站(一)中,实现了简单的路由功能,这离一个完整的网站还差的有点远,继续撸代码吧. 1.首先在根目录下新建一个views文件夹,用来 ...

  5. express + mongodb 搭建一个简易网站(一)

    express + mongodb 搭建一个简易网站(一) 前言:后台使用node.js的express框架,数据库使用mongodb,模板使用ejs.大概就这些. 开始第一个简易网站之旅吧.... ...

  6. 搭建一个wordpress网站需要做哪些工作

    今天做了自己的个人网站:二飞日志 之前因为服务器的问题,因为备案的原因辛辛苦苦做的站点数据没了.还好的是没有多少数据.没关系,重新来.有了上一次的经验,这次搭建起来比较顺手.但是也出现了几个问题.下面 ...

  7. Python Flask搭建一个视频网站实战视频教程

    点击了解更多Python课程>>> Python Flask搭建一个视频网站实战视频教程 第1章 课程介绍 第2章 预备开发环境 第3章 项目分析.建立目录及模型规划 第4章 建立前 ...

  8. 30分钟搭建一个小型网站框架(python django)

    最近因为要做一个小型的网站,需求很简单有点像公司内部的管理网站,和室友一起倒腾,发现了一些坑.我自己之前没有接触过python 但是发现真的非常好上手. 我们没人会前端,所以最怕修改网页,一开始选择了 ...

  9. 关于搭建一个高性能网站的服务器的架设思路以及nginx测试的并发

    对于高性能网站的架设,主要就是请求量大,那我们该如何进行支撑? 考虑到下面的几个方面: 1.要减少请求,那对于开发人员来说,网站的css文件进行合并,背景图片也要合并,一般都是请求一张比较大的图片,然 ...

随机推荐

  1. CKFinder 自定义文件路径扩展ConfigurationPathBuilder

    CKFinder 自定义文件路径扩展ConfigurationPathBuilder 打开config.xml当中可以看到如下配置 <basePathBuilderImpl>com.ckf ...

  2. Android——Button的颜色

    .xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...

  3. Winform控件:打开文件对话框(OpenFileDialog)

    OpenFileDialog类提供了用户打开文件的功能,它有如下属性: 属性 InitialDirectory:设置对话框的初始目录. Filter: 要在对话框中显示的文件筛选器,例如," ...

  4. PHP框架之ThinkPHP项目CMS内容管理系统源码及开发手册视频

    http://download.csdn.net/download/duguqing/4203042

  5. Linux如何通过命令查看日志文件的某几行(中间几行或最后几行)

    linux 如何显示一个文件的某几行(中间几行) [一]从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1 ...

  6. 选择列表中的列……无效,因为该列没有包含在聚合函数或 GROUP BY 子句中

    今天用SQL Server尝试实现一个SQL语句的时候,报了如标题所示的错误,通过在百度里面搜索,并亲自动手实现,终于发现问题所在,现在把它记录下来. 语句如下: select [OrderID],[ ...

  7. 第三百一十四节,Django框架,自定义分页

    第三百一十四节,Django框架,自定义分页 自定义分页模块 #!/usr/bin/env python #coding:utf-8 from django.utils.safestring impo ...

  8. Android多线程任务的优化1:AsyncTask的缺陷 (转至 http://www.linuxidc.com/Linux/2011-09/43150.htm)

    导语:在开发Android应用的过程中,我们需要时刻注意保障应用的稳定性和界面响应性,因为不稳定或者响应速度慢的应用将会给用户带来非常差的交互体验.在越来越讲究用户体验的大环境下,用户也许会因为应用的 ...

  9. 3D游戏与计算机图形学中的数学方法-变换

    1变换 在3D游戏的整个开发过程中,通常需要以某种方式对一系列的向量进行变换.通常用到的变换包括平移,缩放和旋转. 1.1通用变换 通常可将n x n可逆矩阵M看成是一个从坐标系到另一个坐标系的变换矩 ...

  10. OCX控件打包成CAB并实现数字签名过程

      OCX打包CAB并签名过程 一.打包cab 制作cab文件时需要将所有的相关文件都包含进去,可以通过Depends(VC自带的)检查需要的文件.使用inf文件将这些东西都写进去. 1.制作inf文 ...