在Linux上做一款成型的产品具体该怎么做呢?

今天给大家分享的是一位粉丝的提问,在Linux上做一款成型的产品具体该怎么做呢?

接下来把粉丝的具体提问和我的回复分享给大家,希望也能给一些类似情况的小伙伴一些启发和帮助。

同学提问:

在Linux上做一款成型的产品具体该怎么做呢?

Yt回答:

首先大家有朋友可能对这个有些误解,我口语上面表述跟大家讲,在Linux上面用C/C++做一两款产品。但是各位朋友们注意,有很多朋友做一款产品做两款就可以了,其实真的来说,当你能够做一款产品出来的时候,你会在前期的时候你要铺垫很多东西。你就比如说你就做一个非常简单的,像这种KV存储或者做一款RPC出来,你就会发现你在做这个RPC的时候,前面网络要不要理解?你在做的时候你就发现select、poll、epoll,包括协程、iouring好像都可以,网络这一层是不是得理解?然后还有就是对应的RPC发起请求到RPC Server处理,对应来说你这个中间的协议是不是要定义,协议是不是要处理,协议定义完之后你会发现为了使你兼容的更多,你自己是不是需要有些设计,然后在对应来说你服务端为了去处理更多的请求,你这里设计模式是不是也会有。还有就是提到的包括数据包的分拆,TCP的分包、粘包以及拆包,你也会需要有。以及到后面你包括这种调试技巧你也需要,包括在运行中这种探测你也是需要的。

你就会发现整个来说,当你这一款产品做完之后,它不是一个单一点,它会围绕着很多东西。你就比如说在这种实现select、poll、epoll,你肯定select你自己得写个案例,poll你得写个案例,epoll你得写个案例。比如做这种RPC客户端和RPC server,你中间进行通信,你就肯定你会选择JSON或者对应的Protobuf,以及你自己私有化的格式,这三者你肯定是需要的,这三者你中间那种JSON格式,你自己的写一些怎么去解,怎么去编码,怎encode,怎么decode。你包括Protobuf你同样也需要,你也需要去解析它,然后你把它怎么编码,怎么解码,你自己这种案例你自己是需要有的。它就在当你做一款产品的时候,你会有很多零器件,你是需要自己去做的,那在做这个零件的过程中,你发现这种零件是什么,它就是我们所说的这种八股文和轮子这种基础技术点。然后你后面堆积到这个产品的时候,你还会出现这款产品做完了之后,它不是做完就完事,你发现有些东西它不一定能够满足,你还需要迭代,你在迭代的时候你就会中间去加入很多东西。

我跟大家讲一下,其实很多时候像那个SRS开源作者杨成立,我跟他聊过几次,因为他也来过我这。这个过程你会发现他最初写SRS的时候,做SRS的时候,他就是从一个demo开始做,自己逐步逐步开始的。你包括像workflow的作者谢汉,就是大家各位用的搜狗的那个workflow作者,他也是刚开始内部的一个方案,然后也是逐步逐步迭代,慢慢的来说维护这一款项目。其实真的你有一款项目能够做到开源,并且有一定的用的时候,你不要说的就是这么一句话,就是这么一句口号。但是真的你要走的时候,各位你没两三年你跑不起来呀,即使你两年三年,你还不一定能够做到这个层次。

总结:

  1. 产品不是孤立的:做Linux产品(如KV存储/RPC框架)需要多个技术点支撑(网络IO、协议设计、并发模型等)。比如做RPC:先搞懂epoll/协程(网络层);再学Protobuf/JSON(协议层);最后解决粘包/调试(工程问题)。
  2. 从零件到整体:先拆解技术点(如写个epoll案例),再组合成产品。迭代比完美重要:像SRS/Workflow都是从小Demo起步,逐步优化。
  3. 现实建议:别想一口吃成胖子:先做能跑通的简化版(如单线程KV存储),再逐步加功能。开源=长期战:没2-3年难成气候,但简历有1个完整项目就够用。

计算机相关专业就业求职/学习路线/offer选择/职业规划建议

(学习就业困惑?我们来为你答疑解惑!)免费** **必回

#职业规划##计算机#
计算机就业职业规划辅导 文章被收录于专栏

解决计算机相关专业就业/面试/技术提升等问题解答(投稿必回)

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务