Tech‎ > ‎BETHESDA SOFTTECH LLC‎ > ‎

贝塞斯达网站开发-Web框架与内容管理系统简介

经常有朋友问我:开发一个这样的网站要多少钱,或者多少时间?比较内行的还会问:用什么语言、什么模版开发?其实这两个问题是紧密联系的。开发平台的选择大方向上决定了开发成本以及网站的可维护性。同样是电商网站,如果用OpenCart几个小时就可以完成,如果基于Java Spring Framework可能需要几个月的开发。这两者会有什么不同?本文将会向您解释不同的Web框架与内容管理系统,介绍它们的功能以及优缺点。如果您是一位创业者,了解这些知识可以帮助您选择合适的开发平台和程序员,用最小的成本实现需求。如果您对网站开发工作感兴趣,本文介绍一些常用模板和平台,希望能够提供进一步学习的参考。

什么是内容管理系统

内容管理系统,也叫CMS (Content Management Systems),是一种简化的平台,使不具备编程技术的用户也能从事网站的开发与维护。

比如电商网站的CMS提供了界面,让用户修改公司名称,地址,联系方式,输入产品信息和上传图片。常用的电商CMS包括Magento、WooCommerce、osCommerce、Drupal Commerce、Opencart。这些产品都提供详细的安装教程与使用说明,用户需要把软件下载到自己的服务器上进行安装,而且通常要创建数据库,设置用户名和密码。

这些CMS也提供了一定程度的可扩展性,比如用户可以放弃CMS默认的页面而使用自己的网页界面,添加一些按钮和菜单。但是需要掌握html、css、JavaScript技术,如果要对服务器端进行修改还要具备PHP知识。

还有一些更加简化的CMS系统称为hosted ecommerce platforms,本身包括了服务器和数据库的安装,用户只需注册账户并缴纳月费即可使用,比如Shopify、BigCommerce、Volusion、Zepo、Kartrocket、Wix。简化操作的代价是牺牲了扩展性。想要对这些产品进行定制只能通过它们自带的编辑器或者联系客服。

除了电商,还有许多面向其它领域的模板,比如针对BBS的phpBB、学校管理系统的openSIS。这一类平台的优势是简单易上手,开发成本低,不需要太多编程知识。缺点是高度专业化的平台限制了网站的扩展性和二次开发的潜力,容易造成千人一面。打个比方就像流水线产品。

还有一类通用型的内容管理系统包括WordPress、Drupal、Jommla,为开发者提供了较大的自由度。比如WordPress原本是针对Blog用户的CMS,但是由于其丰富的插件和主题在其他领域也得到了广泛应用。用户可以添加购物车插件使WordPress成为电商网站,或者用forum插件使其成为论坛。所以这些操作都可以在管理员界面中完成而不需添加代码。有编程基础的用户可以修改WordPress模板实现复杂的功能,甚至创建自己的插件和主题!

通用型的CMS提供了一种折中的方案,既可以利用模板简化网站开发,又给开发者一定的自由度进行定制。然而这种方案也有缺点。既然使用了内容管理系统的框架,就要受到框架的限制。一个典型的问题就是不同版本,不同插件之间的冲突。由于大部分插件都是第三方提供的,素质参差不齐,造成程序难以维护和扩展。举个例子,我曾经在WordPress中使用地图API,却不能正常显示标记。花了很多时间才发现是由于和另一个插件的CSS文件冲突。类似的例子在网上有很多。那么除了CMS还有没有其他的选择呢?答案就是使用Web框架开发自己的系统。

什么是Web框架

如果说内容管理系统是偏向普通用户的网站建设工具,Web框架,又称Web Framework,则是为程序员准备的开发平台。所有网站开发都会面临一些共同的问题,比如用户注册、登录,邮件管理,数据库管理,网址(URL)管理等等,统称boilerplate。Web框架的作用是提供一个通用的模板,这样开发者不用自己去写这些boilerplate程序,从而把精力集中在网站自身的功能上。Web框架的另一个重要作用是提供了良好、规范的程序写作与组织模式,减少出错的可能,便于网站维护和扩展。这种标准化的开发模式使来自不同背景的程序员方便地沟通与合作,因此成为许多公司招聘时的必备技能。例如Java程序员要求掌握Spring Framework或者Struts,JavaScript 要求Angularjs或者Reactjs,Python 要求Django,Ruby要求Rails,PHP要Yii或者Lavarel等等。

框架带来许多方便的同时也有其缺点。首先,开发者在掌握语言的基础上还要投入大量时间学习框架的使用。随着新框架取代旧框架,新版本取代老版本,程序员必须不断学习才能跟上软件进步的趋势。其次,不论框架设计得多么完备,它还是会带来一定的限制。比如原本使用sql语句可以对数据库进行的操作,在Spring Hibernate里却找不到相应的指令。最后,长期使用框架会形成对框架的依赖,反而忘记原始的方法。从费用上考虑,基于框架的开发成本要大于CMS。当然应用框架是大势所趋,带来的优势足以弥补这些缺陷。

框架的选择是新手头痛的问题。光是PHP就有Laravel、Symfony、CakePHP、Zend、CodeIgniter、Yii、Phalcon、Aura、Fat-Free、PHP-MVC、Kohana、FuelPHP、Slim、Silex、Limonade、Flight等十几种框架。学习所有的框架既不现实也不必要。我的建议一是看用户的数量排名,二是看趋势。一个框架用户数量多说明它获得大多数人的认可。遇到问题时也更容易找到答案。要了解一个框架的发展趋势,可以看每年用户数量的变化,是增加还是减少。可以时常访问技术论坛,查看用户对框架的评论,看文档是否完备,升级是否及时。还可以用关键字搜索glassdoor、indeed等网站,直接看市场的需求。对那些非常小众或者早就停止更新的框架要慎入。

总结

Wechat Code

网站建设如同盖楼,开发平台的选择好比地基。不打好地基就没办法把楼层盖高,甚至要推倒重建。从另一方面说也要根据需求量体裁衣。从特定领域的模板,到通用型CMS,再到Web框架的可扩展性越来越高,开发成本也随之提高。从成本上考量,如果能够找到特定领域的CMS满足需要,就尽量不用通用型的CMS。如果有CMS可以用就不需要直接在Web框架上开发。初创企业也可以在网站流量与稳定性要求不高的前提下采用成本较低的方案,等到业务扩大之后再选择重新开发。

相关文章

网页加载速度优化实例分析

Wechat Code

大家好!我是Kevin,有网站开发、Java、PHP的问题欢迎加我微信讨论。



Comments