共计 1930 个字符,预计需要花费 5 分钟才能阅读完成。
本博客 猫叔的博客,转载请申明出处
我是一个普通的比你还普通的代码撰写人员,甚至不敢号称是程序员,我每天起床都接到这样一个任务,我需要去完成一个 API,一个普通的 API,我可以不用写文档、不用写注释、不用准备思维导图 ……
我不知道是谁给我下的命令,不知道是这个 API 是要给谁调用,不知道要服务于什么,这一切都需要我去设想。
我的脑袋经常把这件事情给遗忘,生活与工作的各种事情,即使是刷刷手机讯息都可能会排在这件事情的前面,但是每日醒来我还是会意识到这样的一个任务。
我开始去完成这个模糊的 API 任务,毕竟很多人都能写出一个漂亮的 API。
在我这边完成的过程中,我遇到了第一个难题:我要选择什么语言?
上了 www.tiobe.com,查看了世界排行,发现我所比较熟悉的 Java 暂时还是第一,不过看到各种自己完全不熟悉的语言,还是感觉压力山大。
问了几个比较厉害的朋友,他们也各有说辞,都推荐他们所认可的语言,我像是一滩水,他们就像各种器皿,希望我能进入他们的空间一般。
好吧,为了这个 API 我选择进入 Java 这个器皿中。
如果可以的话,或许是我不自量力,我更希望进入一个我真心喜欢的器皿中,GC 也好、指针也罢,我需要的就存在,我不需要的请给我隐藏,我看到过一个厉害的人,他就自己创造了一门语言。
接下来,我发现我还需要选择数据存储相关的,厉害的人都叫他们数据库,那些人可以轻易的说出什么是关系型数据库、什么是非关系型数据库,业务逻辑强的时候可以选择 MySQL,搜索量大的时候你就加索引,如果有兴趣搭建搜索引擎,你甚至可以使用 ElasticSearch;而 Mongo DB 则适合分布式文件存储,对,还有 HBase 面向列的存储,他们其中还有一些是开源的,如果你能去贡献一点代码,我想这也足够你吹捧一段时间。
我是一个老实人,我踏踏实实的选择了 MySQL,毕竟我的这个 API 究竟要用在什么业务,我也不清楚。
听说有多数据源,可以根据业务来动态切换数据源,我想这种好东西,还是有人能帮我写好就行了。
我没有什么项目经验,不知道接下来的步骤对不对,希望大家可以不要鄙视我,毕竟现在什么职场都有鄙视链了,我是一个腼腆且自尊心强的人,你说一句我可能会想很久。
我觉得需要去选择一个框架,但是渐渐的,我发现这是一个套路,一个越来越深的套路,我选择了 Java、MySQL,那么我需要选择的框架就需要是 Java 写的快速搭建 Web 的框架,而且我需要数据映射框架也是对应能接通 Java 和 MySQL 的。
我开始有种被绑手绑脚的感觉,Spring、SpringMVC、SpringBoot、SpringCloud、Spring Data JPA、MyBatis、Hibernate 等等。
我不情愿的选择了可以让我快速完成这个任务的大众系列:SpringBoot+JPA。
原来 jpa 其实底层也是 Hibernate,难怪有些东西,用起来比较熟悉,我希望接下来没有选择了,可是我还是太大意了。
我不知道我需要继续完成什么了。
我很传统的构建了 dao、service、controller 等包,并针对这个 API 构建了对应的类,可是构建这些东西,其实 IDEA 都帮我做好了,我不知道我要写什么 …
我陷入了沉思 … 一天、两天、一个月、一年 … 十年 …
在经过生活与职场冲刷后,我在某个夜里有梦到了有这样的一件事情没有做完,我立马起身,将桌上的烟灰缸清理了一下,放到一侧,然后重新点了一支双喜,打开 IDEA,将十年前放在 GitHub 上的项目 clone 下来。
深吸一口烟,“呼········”
我想我想清楚这个 API 的完整路径了。
https://life/meaning?who=myself **GET**
很抱歉,说到这里,本文终了。
我不能和你说我的业务实现写了什么,而那段代码我也没有 push 到 GitHub 上,因为我觉得任何一个读者写出来的都将比我珍贵。
再和你说一点秘密,在我完成 API 请求路径后,我在往后的十年、二十年都在不断的修改业务实现的代码,我甚至加入了 MQ、Netty 等等。
但是我在梦中却一直请求不成功,从来没有看到一次 200。
我可以和你说得再明白一点,所有人的请求结果都是一样的,但是每个人的实现业务都是不一样的,甚至你选择了 C、C#、PHP、Python。
但是,结果都是一样的,即使你认为是最完美的代码了。
结果都是 …
Just Do it!
这是我临终时最后一次运行代码看到的结果,并成为了我的墓志铭,我是一个普通的代码撰写者,你不需要知道我是谁,我只是作者笔下的虚无幻想,但是请你认清,你是谁!?
公众号:Java 猫说
学习交流群:728698035
现架构设计(码农)兼创业技术顾问,不羁平庸,热爱开源,杂谈程序人生与不定期干货。