网易首页 > 网易号 > 正文 申请入驻

记一个自己项目上线的全过程

0
分享至

推荐大家关注一个公众号

后台回复“大礼包”有惊喜礼包!

日英文

Sometimes you have to put a fake smile on and pretend like it all never happened. It's not called giving up, it's called growing up.

有时候你不得不假装微笑,就如一切未曾发生一样。这不是放弃,而是成熟。

每日掏心话

只有内心安静祥和,才不会被外界所左右。心如莲花,人生才会一路芬芳。

责编:乐乐 | 来自:Java后端 链接:cnblogs.com/flashsun/p/7651742.html

往日回顾:

正文

个人终于第一次完成了一个 Java web 项目从策划到最终上线的全过程,虽然项目十分简单,但全流程跑通的感觉还是倍爽的,之后再做项目则只是各个环节上的细化了。

现在我将我的“第一次”分享给大家

项目名称:最美80周年,共同记录

开发文档:https://www.showdoc.cc/rucday?page_id=15376272

源码地址:https://github.com/sunym1993/dataU-RUCDay.git

项目简介:自己做着玩的一个项目,为某校80周年校庆准备的,页面模仿微信聊天界面,用户可在上面说话。

一、准备阶段

服务器:阿里云服务器ECS(2核4G ¥825/年)

买了一年的阿里云服务器,个人感觉还是很值的,内部装好了空的CentOS 6.9 64位 linux系统。首先第一步就是安装java环境,以便之后我在上面跑的程序能够运行起来。总结起来我需要jdk,mysql,redis。安装linux系统环境每次都要查找各种教程,索性总结成了一篇清单文章给自己看:linux的java环境搭建清单

当然后续,还在阿里云买了域名,域名需要备案才能用的事,留在后面吐槽。

文档管理:showdoc文档,poccessOn流程图

showdoc在线文档清晰明了,很适合个人或者小型团队用来共享开发文档。配合poccessOn流程图软件(我买了专业版 ¥115/年),已经可以很好完成开发文档方面的工作了。当然工具的选择只是个人喜好问题。

代码管理:github

开发工具:idea

应该是最智能的编辑器了,但我还是更佩服用notepad或者txt写代码的人。

开发环境:jdk1.8,mysql,redis,springboot

现在是springboot的时代咯,打成一个jar包直接就能跑web项目,也可以跑微服务,十分便于管理。

二、疯狂打码阶段

开发过程总结起来可以说很简单,1、写好开发文档;2、建好数据库;3、写好代码并打成jar包。描述起来真的特别简单,而且基本都是这样的流程。

困难之处就在于,开发文档写得糟糕,数据库设计得糟糕,代码总是出一堆bug。于是可能回过头再改开发文档,改数据库。 于是再次遇到开发文档改得糟糕,数据库改得糟糕,如此往复。 最终的结论就是代码越来越难以维护。 所以如果不是在最初设计的时候就能预料到之后的各种坑,回过头改则会越改越糟,除非推倒重来。

1.写开发文档

由于自身比较追求代码的质量,实现所谓的高内聚、低耦合,所以在意识上还是很明白设计阶段的重要性的,虽然后面看来一开始的设计简直是糟糕透顶。

我给自己的原则就是文档写完之前一行代码都不要写,文档写好之后代码自然就出来。 虽然花了近一周时间在写文档阶段(抛去上班时间其实就两天),但仍然不够,代码写到后面已经完全抛弃文档了。 我后来总结自己代码时可以明显感觉到,文档中设计好的部分代码还是很清晰整洁的,但其余部分就有点混乱不堪的意思了。

尤其是对cookie和session的忽略导致一些问题直到上线也没能很好地解决,只能采用临时的,不可拓展的垃圾代码顶替,看得我自己都想吐。

2.建数据库

其实如果开发文档设计好,数据库自然也不用再考虑。可是我写开发文档懒了,只考虑了表的字段,没有涉及到具体类型、索引等信息。这导致了我之后写代码的时候修改了几个表字段的数据类型。虽然造成的改动量不大,但修改底层往往是很心累的。我们都希望封好了一层之后就不在打开这个封条,站在新一层的高度考虑问题,显然这次的实践没有处理好。

3.写代码

写代码的过程真心可以总结为,从条理清晰到不管三七二十一。

初步搭建框架的时候思路还是很清晰的,代码写的也比较干净,因为毕竟之前练习时搭建过很多次。web层、业务层、持久层,再封装一层redis,整个过程一气呵成。

但到后面遇到实际业务时就慌乱了。首先,我遇到了以前没用过的redis数据结构list,我把用户的消息,群内的消息都存到了redis的list里,如何索引这个list里的数据成了困扰我的地方,虽然最后都通过记录其索引值解决,但感觉并不是长久之计。之后,session中存哪些信息又成为了一大乱点,最后发现很多地方都要用到,不得不不断往里面存数据。有时执行某个方法时会忘记同步更新session中的数据。导致了很多bug。

还有数据的同步问题,数据库,redis,session中的数据如何保持同步,我目前只在逻辑上去保证,只能祈祷系统不出问题。消息的实时更新,我用了ajax长回调机制,据说是效果最好也最节约开销的方式。页面啊!页面真是救命了,对于一个后端开发人员,我对页面的美观简直毫无办法,只能找网上的模板,还好找到了一个仿微信页面的前端模板,拯救了我

这部分确实比较乱,没经验,赶着项目上线很多问题都没能很好解决,日后将一一总结。

三、上线前

上线前遇到的一些问题让我一度想要放弃,有些跟代码无关,给大家讲讲

1、阿里云有安全组策略的

之前不知到,数据库、redis什么都配置好了,也允许外网访问,可是就是一直访问不了。一直找配置中的错误,不断重新安装,一度想要放弃。结果后来发现问题很简单,阿里云有自己的安全组策略,你必须配置以允许外放访问这个云的哪些端口才行,不配置默认就是拒绝访问。找到问题根源时我笑哭了。。。

2、大天朝的域名是需要备案的

直到最后我才把项目端口改成80,也用了自己的域名,结果发现无法访问,跳出来一个“友好页面”。后来知道,在中国域名是需要备案的,于是走阿里云备案流程,发现需要25天(北京),还要邮寄幕布让你来拍照什么的,上线时间紧迫,一度要放弃的时候,想到了“某宝”,于是。。。

3、微信需要域名加标准端口才能直接跳转

如果你用微信访问一个 http://185.10.10.195 这样的地址,它会先跳出

如果你用微信访问一个 http://www.datauuu.com:7001 这样的地址,它会先跳出

也就是说,只有域名配web标准80端口,微信才能直接打开自己的浏览器做跳转。这个也是我购买域名以及想到要备案的原因。哎真是经验不足啊,不然上线前不必为这些事操心

四、上线后

没有日志系统,没有监控系统,没有管理系统。只有一个自己做的超简单的管理页面,只能初始化数据库数据,同步数据库和redis,所有查询都是直接用sqlyog看数据库。

现在明白为什么一个项目要如此重视日志系统和监控系统了,真是太有用了。我这个项目好在比较简单,最重要的是我只是玩一玩,出问题那就出了也不用负责人。要是一个正规的系统,我现在的状态只能用听天由命来形容了。

总之在做一个项目之前,以下事情还是比较重要的。

一是各种“常识”,比如阿里云的一些事,还有域名备案这种事,不过自己经历过一遍就都明白了,这些坑也是必须自己踩过一遍才行的,不难,但很讨厌。

二是架构设计,真的非常非常重要! 就不说三遍了。 你代码中遇到的几乎大部分的坑,都源于设计阶段的不合理,也都是能通过重视设计来解决的。 而且设计阶段可以弱化其实现过程,把精力用在模块与模块,接口与接口的交互之间,站在一个高度上看问题,就不会被细节影响了大方向。

三是多学知识,这个我便没有做好,很多功能都是想用我现有的知识去解决。 其实优秀的解决方案有很多种,不妨多多参考别人优秀的设计,切记不能为了暂时解决问题用不合适的方式。

四是要做日志系统和管理系统,这在项目上线后是很重要的,即使是练习项目,也能通过它们发现项目的更多问题。 虽然不会影响项目的使用效果,有些人会觉得多余,但这其实是必要的。

总的来说,我发现我用在实际写代码上的时间并不多,大多都在设计、修改代码、还有搞阿里云啊这些琐事上,大家一定要重视这些环节,码代码只是其中一小部分而已。 一个优秀的设计会让你的代码写起来轻松高效,出错的概率也小很多。

下个项目酝酿中。。。嘿嘿

你还有什么想要补充的吗?

PS:欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,欢迎转发分享给更多人。


版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!

欢迎加入后端架构师,在后台回复“”即可。

最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。在这里,我为大家准备了一份2021年最新最全BAT等大厂Java面试经验总结。

别找了,想获取史上最简单的Java大厂面试题学习资料

扫下方二维码回复「面试」就好了

嘿,你在看吗

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
华人姑娘打动退休矿主,拿下睡美人绿松唯一继承权,搅动国内市场

华人姑娘打动退休矿主,拿下睡美人绿松唯一继承权,搅动国内市场

电商在线
2024-06-13 16:46:14
京剧为什么没落了?京剧欣赏最大的障碍不是“慢”,而是没有节奏

京剧为什么没落了?京剧欣赏最大的障碍不是“慢”,而是没有节奏

蜉蝣说
2024-06-07 20:14:20
开房记录能保存多久

开房记录能保存多久

刑事黎律
2024-06-14 07:00:07
恶心,在银行取钱需要“警方”开证明?网友:还真被马云说对了

恶心,在银行取钱需要“警方”开证明?网友:还真被马云说对了

三月柳
2024-06-13 11:39:36
中国拒绝,俄罗斯拒绝,印度拒绝,不到24小时,泽连斯基对华摊牌

中国拒绝,俄罗斯拒绝,印度拒绝,不到24小时,泽连斯基对华摊牌

素年文史
2024-06-13 19:00:02
乔妹参加快乐向前冲发生意外,落水角度很尴尬,被网友恶意截图

乔妹参加快乐向前冲发生意外,落水角度很尴尬,被网友恶意截图

新游戏大妹子
2024-06-13 11:53:56
湖北开展第四次电动自行车联合检查行动

湖北开展第四次电动自行车联合检查行动

央广网
2024-06-14 11:50:28
细思极恐,很多可怕的推测最后证实都是真的

细思极恐,很多可怕的推测最后证实都是真的

原广工业
2024-06-13 21:56:03
威尔史密斯55岁归来,《绝地战警4》口碑出炉!观众评价一针见血

威尔史密斯55岁归来,《绝地战警4》口碑出炉!观众评价一针见血

头号电影院
2024-06-13 10:37:09
黄一鸣称怀孕生子全过程王思聪都知道,不要抚养费只想给孩子父爱

黄一鸣称怀孕生子全过程王思聪都知道,不要抚养费只想给孩子父爱

柠檬有娱乐
2024-06-13 15:48:35
“一块遮盖白布”引发的热议 艾森豪威尔号航母真的被打中了?

“一块遮盖白布”引发的热议 艾森豪威尔号航母真的被打中了?

武器知识
2024-06-12 22:00:37
全乱了!巴西坐拥5大顶级边锋,中锋人才断档:新9号不如里沙利松

全乱了!巴西坐拥5大顶级边锋,中锋人才断档:新9号不如里沙利松

刺头体育
2024-06-13 21:15:33
王曼昱:以卵击石!搬起石头砸自己!是利还是弊?

王曼昱:以卵击石!搬起石头砸自己!是利还是弊?

元爸体育
2024-06-13 21:25:41
与周总理关系最好的三位元帅,一位大将,分别都是谁?

与周总理关系最好的三位元帅,一位大将,分别都是谁?

熊熊说历史
2024-06-13 19:21:20
男子驾SUV雨夜坠入百米悬崖被救出:脾脏破裂,能否度过危险期仍需观察

男子驾SUV雨夜坠入百米悬崖被救出:脾脏破裂,能否度过危险期仍需观察

红星新闻
2024-06-13 19:59:17
硬碰硬!3艘055大驱开赴南海,迎战2艘美国航母,规模史无前例

硬碰硬!3艘055大驱开赴南海,迎战2艘美国航母,规模史无前例

鹅毛的大雪
2024-06-14 08:52:14
只要钱到位,啥姿势都会。网络“女主播”的遮羞布也被撕开了

只要钱到位,啥姿势都会。网络“女主播”的遮羞布也被撕开了

娱记掌门
2024-06-13 08:10:25
闹大了!律师:王思聪若拒养孩子或涉遗弃罪?

闹大了!律师:王思聪若拒养孩子或涉遗弃罪?

皖声微言
2024-06-13 11:56:58
20年前两家孩子被医院抱错5年,双方不舍换,孩子一句话让人泪目

20年前两家孩子被医院抱错5年,双方不舍换,孩子一句话让人泪目

谈娱新语
2024-06-13 22:05:40
仁爱礁已被全面封锁,小马科斯下达指令,要求菲军做好最坏准备

仁爱礁已被全面封锁,小马科斯下达指令,要求菲军做好最坏准备

张殿成
2024-06-13 12:49:10
2024-06-14 12:12:49
程序员小乐
程序员小乐
有趣有内涵
3163文章数 9493关注度
往期回顾 全部

科技要闻

马斯克重获信任 豪言特斯拉市值超10个苹果

头条要闻

美军要炸沉4万吨级大舰 被指想要威胁东方大国

头条要闻

美军要炸沉4万吨级大舰 被指想要威胁东方大国

体育要闻

乔丹最想单挑的男人走了

娱乐要闻

江宏杰秀儿女刺青,不怕刺激福原爱?

财经要闻

私募大佬孙强:中国为什么缺少耐心资本

汽车要闻

提供100/240kW双电机版本车型 乐道L60实车曝光

态度原创

本地
手机
房产
时尚
公开课

本地新闻

粽情一夏|海河龙舟赛,竟然成了外国人的大party!

手机要闻

Pixel 8 手机屏幕出现竖线与闪烁问题,谷歌宣布延长至 3 年保修

房产要闻

112亿!中建智地+朝开+江苏绿建摘北京首宗多业态地块

中年女人的职场穿搭模板,让你告别老气感!变身精致职场女王

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版