本博客 猫叔的博客,转载请申明出处
我是一个普通的比你还普通的代码撰写人员,甚至不敢号称是程序员,我每天起床都接到这样一个任务,我需要去完成一个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
现架构设计(码农)兼创业技术顾问,不羁平庸,热爱开源,杂谈程序人生与不定期干货。