做一个网站真的有那么难吗?

Java开发教程视频

关注我们,领取500G开发教程视频

现在这个互联网时代,什么都跟互联网挂钩,哪怕卖水果都开始用网店了(其实我也想卖水果%>_<%)。下面就讲一下水果哥和水果妹的依托互联网+卖水果的故事。

背景介绍

话说再很久很久以前,有两个小伙伴一起合伙卖水果。一个叫做水果哥,一个叫做水果妹。地点是一个普通的小乡村,水果哥只会闷头搞技术,水果妹却是精通运营之道。(怎么一看这么像程序猿跟产品|运营的关系%>_<%,其实他们关系很好的啦,绝对不会见面对喷)

水果店网站雏形

一开始水果哥和水果妹都是正常的经营着自己的水果店,谁知道有一天,水果妹知道了有互联网这一事情,好吧,水果妹一拍脑袋,然后跟水果哥说:水果哥,不如我们搞一个基于互联网的水果店吧,我们做一个网站来展示我们的水果。水果哥一听,立马说:没问题呀。接下来,水果哥哗哗哗的用了一个小时,写出了若干个html页面,然后又花了一个小时选择了一家云服务器提供商,接着部署页面又一个小时(你们说水果哥技术是多么牛)。网站搭建起来了,并且由于新鲜事物而广受追捧。

水果店网站V1版

然而网站运行不久之后,水果妹发现纯html写的网站实在是不忍直视(好难看的网站)。

水果妹:大哥,网站能不能帅气点水果哥:包在我身上

哗哗哗又写了一个晚上,这次水果哥用上css和js美化网站(css是控制页面布局的,js是增加用户的交互功能)。这次改版之后,用户体验大增,网站实在是太漂亮了。

水果店网站V2版

又过了一段时间之后,水果妹发现,每当自己新引入一种新水果,或者要改网站内容的时候,自己都不会改,都要叫水果哥动手。

水果妹:哥,每次修改内容都要叫你来,能不能提供一个页面让我自己来改

水果哥:这当然可以

不用想了,水果哥哗哗哗几天,写出了一个后台页面给水果妹管理网站数据(怎么这么像cms系统%>_<%)。这次为了保存水果妹录入的数据,水果哥使用了mysql数据库(开源的我喜欢),然后为了动态输出水果妹录入的数据,没办法只能上动态语言了。由于水果哥擅长python,所以用了python重构网站。经过这次改造,终于不用事事都需要水果哥出手了。

水果店网站V3版

水果哥平静的日子并没有过多久,水果妹突然发现有在线支付这一玩意,一想在线支付还可以发快递给客户,销路肯定可以大增。

水果妹:哥,能不能做一个在线支付呀,要支持微信支付和支付宝支付喔

水果哥(心好累,怎么还要加功能):好的,没问题(强忍着泪水)

哗哗哗,水果哥又是申请接口,又是查API文档,又是建立用户体系,又是建立支付系统,终于经过不懈努力实现了这个功能。

水果店网站V4版

在V3版水果店网站功能已经很完善了,然而由于水果妹凶残的运营,客户越来越多了,终于有一天网站由于访问人数过多而无法响应。

水果妹:哥快醒醒,网站挂了!!!快起来!!!

水果哥(睡眼朦胧,刚睡找呢):不会吧,我看看。。。

水果哥立马爬起来看服务器情况,原来数据库压力过大,好吧加一个索引,问题解决。好景不长,服务器内存不够用了,网站有一次挂了,这次水果哥立马把网站变成分布式,问题再一次解决。不过事情怎么可能这么简单,用户越来越多,数据库数据量急剧增加,危急关头,水果哥又是上缓存,又是上数据库集群,又是异步,终于在海量用户访问下网站平安无事。

水果店v5版

水果妹:哥,双十一要来了,我们要搞秒杀活动,做这个功能出来可以吗?

水果哥:秒杀?有多少用户参与?

水果妹:就几百万用户而已

水果哥:我选择狗带

水果妹:哥,你技术这么好,你行的,你做不出就不理你了(生气状)

水果哥:这样啊,我试试啦(都说这话了,敢不做吗)

水果妹:哥你好样的

面对如此高并发怎么办呢,水果哥左思右想,第一步页面全静态化,第二步数据都走异步,第三步大量使用内存,第四步服务器弹性扩容,第五步关掉不必要的服务,增加系统可用资源。经过几天不眠不休,秒杀系统终于上线了,双十一当天水果哥全程盯着系统,出问题立马处理掉,几个几小时艰苦岁月终于活动完满结束,接下来生活也趋于平静了。

水果店网站重构

突然某一天,水果妹又想出了一堆运营之道,这个时候必须得辛苦水果哥来写代码(%>_<%)。然而由于之前架构有不合理的地方,如果勉强兼容必然以后跟难以维护,长痛不如短痛,水果哥含着泪删掉旧代码,重新写上新代码(好可怜),又是几个不眠不休的夜晚(技术真的好可怜),终于网站重构了,系统也稳定开始运行了。

未来的日子里

水果店网站也基本定型了,水果哥只是根据水果妹的需求,不断增加一些小功能而已,日子也算是悠闲自得。然而突然有一天,水果妹说:哥,不如我们做一个校园类应用吧,我们开始二次创业。水果哥:只要你喜欢就好!事情就如一开始水果店网站建设一样,又开始了一个循环。。。。。。

作者的话

做网站其实不难,然而需求总在变化,所以在迫于无奈之下还要重构系统。搭建一个网站从纯静态页面到动态语言搭建,从无数据库到使用sql数据库,再到应用nosql数据库。随着用户量增大,还需要考虑高并发和数据安全问题。所以总的来说搭建网站很简单,然而要搭建一个安全稳定的网站却很难。

程序猿好辛苦的,请不要给他给压力他们,别提不合理的需求,不要整天改业务。(我就是写代码写的心好累,才来写文章的%>_<%)

点赞和转发是对我最大的支持。

原文链接:https://www.jianshu.com/p/0ca5ad11bfe8

作者:yubang

往期精彩回顾

程序员如果没有自学能力,不如尽快转行

Java程序员编程学习之路资源合集

20套Java项目200套Android项目200套小程序

Java自学?Java自学编程大放送

原文发布于微信公众号 - Java社区(Java5206868)

原文发表时间:2018-05-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

1 条评论
登录 后参与评论

相关文章

来自专栏吉浦迅科技

AMD GCN 微架构之超算细节详解

在 2012 年,AMD 正式推出了代号为的 Tahiti 的新 GPU,这个 GPU 的特别之处在于采用了名为 Graphics Core Ne...

3828
来自专栏技术分享

.NET应用架构设计—面向查询的领域驱动设计实践(调整传统三层架构,外加维护型的业务开关)

阅读目录: 1.背景介绍 2.在业务层中加入核心领域模型(引入DomainModel,让逻辑、数据有家可归,变成一个完整的业务对象) 3.统一协调层Applic...

2147
来自专栏编程一生

架构师之路--谈架构师的基本素养和[干货]日志处理

1453
来自专栏Java学习网

关于计算机专业的人如何学好编程

  这篇文章是写给低年级的人的,已经工作的就不用来看我废话浪费时间了。   最近总是有人问如何确定自己方向的问题,说是看到有的人在搞手机,有的人在搞网页,有的人...

3276
来自专栏SDNLAB

SDN实战团分享(六):OpenDayLight实战入门

今天讲的是SDN的实战,但说到实战,可能还是牵强了点,SDN技术代表了某种意义上的未来,所以现在来说,并不是大规模应用的阶段。所以,我们可以去设想SDN会在时候...

2597
来自专栏区块链

做黑客需要懂几种语言?

其实很多人都有黑客情节,黑客帝国超级经典。不光是炫酷的场面,更是穿插着黑客情节。想想那是有多酷,在电脑前敲敲代码就能控制这个世界。 的确黑客是那么遥远而有离我们...

18210
来自专栏Java技术

Java后端技术从0到1技术路线,一步步走向大神!

最近很多入群的小伙伴私聊我Java后端怎么学?学了之后能干什么?学了这个之后接着学什么?我曾和他们一样迷茫的走了一步步,现在抽时间给大家整理一份学习的技术路线,...

692
来自专栏恒思考

软件必备模块-软件设计

我想设计一个安卓,iOS或者Web应用的时候,开始做软件的步骤是什么,有个想法,做个需求分析,然后开始设计软件。这篇讲的是设计软件这一步。我想好了要做个什么,然...

1312
来自专栏微信公众号:Java团长

一个牛人给Java初学者的建议

先说什么是java java是一种面向对象语言,真正的面向对象,任何函数和变量都以类(class)封装起来 至于什么是对象什么是类,我就不废话了 关于这两个概念...

562
来自专栏华章科技

程序猿必须知道的一些有用的(外国)网站

原文:https://github.com/sdmg15/Best-websites-a-programmer-should-visit

1162

扫码关注云+社区