美文网首页
会搞服务器的前端狗

会搞服务器的前端狗

作者: JohnnyB0Y | 来源:发表于2015-08-29 21:31 被阅读155次
    说在前面

    话说上回我的一篇《从0到1的团队》吸引到了一位明星作家,为什么叫明星作家,因为他随手写了一篇文章后有报社问他要稿。哈哈,一鸣惊人!对,他就是我们团队的第七号成员--斌哥。我们团队一产品经理,一财务,一编辑,一设计,三iOS工程师。

    对了,我们后端服务器谁搞?尼玛,从组队开始我就一直纠结这个问题。后来没办法,斌哥忙两个项目,饼仙是新手。最后只能由我来去搞搞佢咯。我们的策略是采用第三方服务器平台,有阿里云服务,腾讯云服务,百度,微软,亚马逊。除了百度没去了解,其他都了解过了。

    事情经过

    事实上这些云服务都是组合使用的,什么开放存储服务OSS、内容分发网络CDN、云数据库RDS等等,对于一个iOS开发者来说真尼玛蛋疼。看着各种计费,真不知道该怎么算。由于我们主要做产品推荐服务,那么怎样结合这些服务省钱呢。当然我脑海中模型大概是:我们需要一个存储资源的服务器,还要一个查询产品关系结构的SLQ数据库服务器。

    以上也引出了第二个困难,产品推荐搜索和查询都需要写服务器的代码,虽然会点Java语言,但毕竟只是会语言而已,JavaEE可不懂 。没办法,看来需要找人帮助了。打听到产品妹子认识很多计算机工程系的人,就找到她诉说了我们遇到的困难,关于那些编写专业的服务后台程序我们没法做。

    产品妹子反馈的信息却是:计算机工程系的哥们觉得我们三个工程师连这个都搞不定,很菜的样子(大概意思)。多次交涉无果还被喷了,此时此刻请容许我喝一杯82年的雪碧压压惊。


    82xuebi.jpg

    当时我愤怒了,回了妹子一句“真是个眼高手低的家伙”,随后我又收回这句话并道歉了。想想每次看技术大会,各大互联网公司都在吹自己的服务器多牛逼,服务架构多牛逼。居然瞧不起,说如此简单的事都搞不定。虽然这是个兴趣项目,但也要为后期想想吧。前期的不专业会为后续带来沉重的打击的。后来知道编辑手的男友是搞Web前端的,向他请教,虽然他回复说服务器这块不太懂帮不上忙。但很佩服这认真的态度。马云说,我们要有敬畏之心。人太容易浮躁了,随时提醒自己保持敬畏之心。

    回过头来,我也去请教老师了,不过老师说可以用自己的电脑做服务器。后来我用XAMPP这个Mac软件实现了,在路由器设置一下,外网也可以访问。不过不太好,不开电脑就没数据了!!!杯具。

    还是试试云端平台吧,腾讯的云只有15天试用期有点少,没考虑(我们的财务只是来打杂的,千万别告诉他)。亚马逊免费一年,不过服务器不太稳定(国外的)。微软云一元用一个月,不过去看看收费介绍,吓晕了。最后阿里云,看了好久好久,仔细看了OSS存储。最后选用了阿里云。其中各种云平台的文档没少看,头晕目眩的。最后提一提tower上赠送的1500元启动资金根本就是用来看的。

    遇到困难

    一个外行进入不熟悉的领域就像一只羔羊迷失在厕所,最后哭晕在厕所。各种注册实名制就不说了,说说其中麻烦的流程吧。不得不说阿里的安全意识非常强,各种验证和加密把我搞得头晕目眩MD5、哈希、base64之类的。文档一遍一遍地看,感觉有点感觉的时候忽然想起会不会有iOS的SDK呢?结果一搜真有,马上下载SDK瞧瞧,操作蛮简单的,几乎什么都做好了,主要是传值而已(SDK中各种类的协作还是要仔细研究的)。【呦,有SDK使唛惊啊!】

    在看SDK的时候,其中有一个参数是资源键(resources key)。由于没经验,不知道有经验的人是否马上能看出是什么鬼。结果折腾来折腾去老是返回not found,想想服务器控制中心有了,主机名有了应该差资源服务器上的路径了,怎么变URL是不能变的啦。结果一试O了。资源路径为什么要叫资源键?


    BruceLee.jpg

    当然这样的服务器只能用来做简单的事情,毕竟不是行家,所以没有把数据搞活。大体把资源分成三部分其中再细分到每年、每月、每星期,一个文件夹存放图片资源,一个文件夹存放具体某个产品的JSON文件,一个文件夹存放获取所有产品的JSON文件。下面是自己编的JSON文件,因为考虑他们要用CoreText排版,(暂时,UI他们负责),就把文章按段落分开了,感觉不太妥但又毫无办法(每次我在他们面前提起,然后就没有然后了)。

    • 产品列表JSON
      {
      "products" : [
      {
      "title" : "从0到1的团队",
      "description" : "",
      "productContentURL" : "ArticleJSON/1508/4/0825.json",
      "productImageURL" : "ProductImage/1508/4/101.png",
      "date" : "20150825"
      },
      {
      "title" : "还在叫她多喝水吗",
      "description" : "",
      "productContentURL" : "ArticleJSON/1508/4/0826.json",
      "productImageURL" : "ProductImage/1508/4/201.png",
      "date" : "20150826"
      },
      {
      "title" : "喵星人的窝也傲娇",
      "description" : "",
      "productContentURL" : "ArticleJSON/1508/4/0827.json",
      "productImageURL" : "ProductImage/1508/4/301.png",
      "date" : "20150827"
      },
      {
      "title" : "你以为 这是水瓢吗",
      "description" : "",
      "productContentURL" : "ArticleJSON/1508/4/0828.json",
      "productImageURL" : "ProductImage/1508/4/401.png",
      "date" : "20150828"
      },
      {
      "title" : "有一只碗 它的名字叫做初心",
      "description" : "",
      "productContentURL" : "ArticleJSON/1508/4/0829.json",
      "productImageURL" : "ProductImage/1508/4/501.png",
      "date" : "20150829"
      }
      ]
      }

    • 具体某个产品JSON
      {
      "title" : "从0到1的团队",
      "contents" : [
      {"image" : 0},
      {"subTitle" : "关于我们"},
      {"detail" : "从这个微信平台建立的第一天起,我一直在想,第一篇推文,我要说点什么。"},
      {"detail" : "几个素未谋面的人,面对现实的铜墙铁壁,赤手空拳,却热情满满。"},
      {"detail" : "【产品经理】听说一开始这是极客班的一个产品勾搭项目,明明可以靠脸却偏偏要靠实力的产品经理阿酸凭借独特的创意和强大的忽悠能力成功勾搭了IOS班的几个程序猿大师…"},
      {"detail" : "【攻城狮1号】噔噔噔,汪星人红雷哥闪亮登场!如果你以为程序员只会在深夜里撸代码,那你就错了。自从红雷哥在“简书”上发表了关于我们团队的一篇文章“从0到1的团队”,我就感觉到我的文案狗地位岌岌可危了…"},
      {"detail" : "【攻城狮2号】第一次语音会议听到饼仙超级好听的普通话就自行脑补是一个帅小伙(此处应该有口水…),发言不多然而句句重点,情商与智商兼备的男银!!!(噢好像还只是个即将大三的男生…)"},
      {"detail" : "【攻城狮3号】被红雷哥的那篇“从0到1的团队”吸引而来中途加入却有勇有谋的江先生(然而他并不姓江…),家住海边一天三餐都吃鱼的渴望自己的技术笔记能和励志鸡汤一样获赞无数的明星主编…"},
      {"image" : 1},
      {"detail" : "【财务总监】傲娇一根筋的财务小王子光哥,目前团队没半分钱管理却是阿酸的得力助手,出主意打下手无怨无悔(然而听说产品经理是他的小粉丝…)。"},
      {"detail" : "【设计师】实习工资不高工作时间却很长,超级负责任的美女设计师!什么?你问我没见过怎么知道是美女?我只能回答你学设计的一般都不会长的太差…"},
      {"detail" : "【文案编辑】入了这一行才知道行行都是坑的文案狗正在默默码字当中,还要被红雷哥催稿简直天理难容!嗯哼没错这个人就是我…"},
      {"detail" : "【Zerone零一】“零一”是我们的团队名字,“Zerone”是英文名。当阿酸宣布这个名字的时候,红雷哥说查一下有没有人用过了。阿酸说:“哈哈没关系啊马云成名前也有很多个人叫做马云。”噢没错就是这么傲娇…"},
      {"image" : 2},
      {"subTitle" : "关于1Percent"},
      {"detail" : "1Percent这个名字的确定经历了蛮激烈的讨(si)论(bi),毕竟,重要的东西都来之不易。1Percent,很多人第一直觉就是“什么鬼?”,然而要告诉你这不是鬼,而是一个活脱脱的优质生活用品推荐平台。接下来请自动切换小清(zhuang)新(bi)阅读模式…"},
      {"detail" : "【听】一个闲适的午后,阳光倾泻而下,坐在窗边,淡雅的桌布,精致的杯具,牛皮色的笔记本,一颗自由的心…你所能想象到的,这里都会为你呈现。每日推荐优质生活用品,让精致的生活不再只是“听”说。"},
      {"image" : 3},
      {"detail" : "【说】“这世界上一定有另一个我,做着我不敢做的事情,过着我想过的生活。”你一定没有想过,你以为的平淡无奇,也许是别人梦寐以求的生活。在这里,你可以尽情大胆地“说”出自己喜欢用的好东西,和大家一起分享属于你的优质生活。"},
      {"detail" : "【1Percent】这是一个致力于为您推荐优质生活用品的平台,用1%的视角,品味99%的生活。"},
      {"image" : 4},
      {"subTitle" : "最后"},
      {"detail" : "我们这样一群人,也曾孤独地立在车水马龙中不知身在何方,也曾昏睡一天后一碗泡面打发人生,也曾随意对待生活面目可憎。今天看到一句话:“世俗的眼光,现实的残忍,让你不得不按部就班,朝九晚五,只因我们都太害怕和别人不一样了。”"},
      {"detail" : "那么,盲目也好,任性也罢。就让我们做点不一样的事情吧。人生苦短,难道你还要继续辜负下去吗?"},
      {"ending" : "我所理解的生活\n 就是扫一扫 加入我们"}
      ],
      "images" : [
      {
      "imageURL" : "ProductImage/1508/4/101.png",
      "imageWidth" : "",
      "imageHeight" : ""
      },
      {
      "imageURL" : "ProductImage/1508/4/102.png",
      "imageWidth" : "",
      "imageHeight" : ""
      },
      {
      "imageURL" : "ProductImage/1508/4/103.png",
      "imageWidth" : "",
      "imageHeight" : ""
      },
      {
      "imageURL" : "ProductImage/1508/4/104.png",
      "imageWidth" : "",
      "imageHeight" : ""
      },
      {
      "imageURL" : "ProductImage/1508/4/105.png",
      "imageWidth" : "",
      "imageHeight" : ""
      }
      ],
      "creationTime" : "20150825",
      "editor" : "仙子",
      "pictureProduction" : "画家 Yuliya"
      }

    我把这些JSON文件做了模板,希望编辑手可以按照这些简单的规则,把文章按段落填入空中,把图片按排列顺序填上资源路径。然而她拒绝了我,她居然拒绝了我 !!!

    whatdoyoumean.jpg
    完结

    服务器数据总算搞定了,那只要对数据封装成数据业务层交给他俩就OK了。数据业务层主要负责获取数据,至于来自硬盘还是网络不需要UI工程师知道。在网络请求图片数据时对tableViewCell的滚动做了请求优化(请求还没落地时不再发起请求,如果内存中有在内存中取)其中图片也做了内存缓存,做硬盘缓存大概不难。难点在于要把它抽象成模块,SDWebImage有时间真要好好研究才行。

    能力有限,做得不够满意。但不能妄自菲薄,加油!

    相关文章

      网友评论

          本文标题:会搞服务器的前端狗

          本文链接:https://www.haomeiwen.com/subject/aeikcttx.html