V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rsonghao
V2EX  ›  程序员

怎么开始一个属于自己的小“项目”呢?

  •  4
     
  •   rsonghao · 2022-02-12 15:39:11 +08:00 · 10731 次点击
    这是一个创建于 1019 天前的主题,其中的信息可能已经有所发展或是发生改变。

    工作之余总想写点什么,像别人写点什么小玩具、工具类、个人 APP 之类的东西。但是总是不知道要怎么开始。

    很大的原因是不知道要开发一个什么东西,只是单纯想写写属于自己的代码。就像拍照一样,虽然不能将自己的照片称之为什么艺术品,但是它记录了我的生活。

    另外,顺便想再问问看源码、看开源项目又该怎么开始呢?

    71 条回复    2022-02-14 15:23:44 +08:00
    flyingyasin
        1
    flyingyasin  
       2022-02-12 15:47:36 +08:00   ❤️ 4
    首先找到需求,没有需求的开发都是自嗨
    SuperMild
        2
    SuperMild  
       2022-02-12 15:49:47 +08:00   ❤️ 1
    巧了,我正在写一篇做小工具的心得,待会儿就发出来。
    rsonghao
        3
    rsonghao  
    OP
       2022-02-12 16:02:49 +08:00
    @flyingyasin 确实没有需求,下班之后写的代码都是刷题,还有跟着教程写的一些代码。
    seers
        4
    seers  
       2022-02-12 16:17:31 +08:00
    如果没啥想法就找开源项目,然后看看能不能提交些改进
    ysc3839
        5
    ysc3839  
       2022-02-12 16:18:05 +08:00 via Android
    自己没需求的话可以问问认识的人
    xx19941215
        6
    xx19941215  
       2022-02-12 16:24:13 +08:00
    我写过一个 网页在线截屏 还提供开放 API 了 https://www.screenshotmaster.com/ 百度一直不给流量 不知道咋回事 郁闷
    MarkZuckerberg
        7
    MarkZuckerberg  
       2022-02-12 16:46:00 +08:00
    首先先注册一个域名
    xingshu1990
        8
    xingshu1990  
       2022-02-12 16:48:10 +08:00
    @xx19941215
    sitemap 做一下,虽然没多少页面,换 30 个友情链接(当做外链),测试一下是否能通过外链激活。
    对于百度来说,这种页面属于没有更新的页面,不会经常过来爬取内容,所以得想办法在首页合适的地方,布局合适的内容做页面更新。
    参考 Snipaste 的首页布局,以及内页部署,还有内链设置,另外还得看一下服务器(虚拟主机是哪个,有没有本身限制百度 ROBOTS 爬取——比如 github.io 的 ROBOTS.txt 文件就限制了百度蜘蛛爬取频率)。
    上百度站长工具后台,提交 sitemap.xml 以及 robots.txt 。
    Exdui
        9
    Exdui  
       2022-02-12 16:56:39 +08:00
    @xx19941215 #6 现在的 web 用户太少了,做网页工具不如做一些小程序
    ClericPy
        10
    ClericPy  
       2022-02-12 17:09:32 +08:00   ❤️ 12
    回忆自己最近有没有做过超过三次的重复操作
    MoYi123
        11
    MoYi123  
       2022-02-12 17:13:35 +08:00
    @rsonghao
    说起刷题, 之前想过做一个 excel 版的刷题网站, 现在市面上好像没有这样的产品.
    但是又要学 VB,又要学 windows,又要学 excel 的, 有点劝退.

    "只会点一下 excel 里的排序按钮,但是不清楚底层算法的人是无法通过面试的!"
    ob
        12
    ob  
       2022-02-12 17:17:08 +08:00
    试试 Intellij IDEA 插件,写的好的,还能创造业余收入,可能会更有动力。
    比如这样的:
    https://plugins.jetbrains.com/plugin/14384-toolset
    abersheeran
        13
    abersheeran  
       2022-02-12 17:20:38 +08:00   ❤️ 1
    一切不能解决自己需求的个人项目都不会有用。如果没有需求,那就玩去。
    duke807
        14
    duke807  
       2022-02-12 17:29:14 +08:00 via Android
    我提一個需求,實現應該很簡單,op 看有沒有興趣搞一下,搞好可以和世界 top 的幾家 it 公司 pk

    使用 webrtc 搭一個在線視訊會議的 demo ,可參考和整合現有的一些 demo ,實現功能如下:

    1. 免安裝 跨平台 使用瀏覽器
    2. 同時支持攝像頭和桌面分享,最好包含桌面音頻
    3. 免註冊,匿名使用,創立房間的人,把房間 id 分享給對方就可以
    4. tun 服務器可選,日後 v6 為主了就用不到 tun 了
    karott7
        15
    karott7  
       2022-02-12 18:38:49 +08:00   ❤️ 1
    说下个人经验,作为个人起步的话确实很难找到需求,你所想到的大家肯定都想到,所以不妨参与开源项目看看别人的需求,最开始可能只是解决 bug ,之后是参与 feature 开发,慢慢的做多了就有自己的需求了
    至于看开源项目找个自己常用的库,慢慢看,然后经常关注 issue 栏,总有一些很简单的 bug 修改,你可以试着解决一下
    expexp
        16
    expexp  
       2022-02-12 18:41:49 +08:00   ❤️ 1
    实际上不难。主要是多关注新闻和渠道,然后发现问题,搜索问题,然后一定要直接去做,不要获取太多身边人的建议和意见,往往他们会阻止你去做。
    imn1
        17
    imn1  
       2022-02-12 18:41:50 +08:00
    我 pyqt 是从主窗口布局开始的,我选了 tab 布局就是为了方便之后增加功能
    其实是想做什么功能开始的才对,只是对我来说,这些需求已经是多年没找到合适工具了,所以需求早就有了,不需汇总就存在脑里了,跳过了这步
    ivyliner
        18
    ivyliner  
       2022-02-12 18:52:49 +08:00
    @rsonghao 可以参考我的网站 https://engineerdraft.com/ :-) 从头 web 到 小程序, 到 iOS, macOS 应用程序, 都是解决自己的需求的小工具.
    lneoi
        19
    lneoi  
       2022-02-12 19:06:43 +08:00
    实际上生活中可以做的需求很多,你把自己平常用不舒服的地方想一想能不能利用程序改善,可以的话要用什么方案实现。实在不行,可以把自己用到的工具,挑一个觉得可以完成的,独立实现一遍
    huntagain2008
        20
    huntagain2008  
       2022-02-12 20:54:56 +08:00
    本人小白,28 天前第一次发了一小段脚本得到 4star2fork 。听播客听一个不工作的自由职业者写过微信小程序给米店老板监控仓库温湿度的,我想象了下,感应器,数据分析,统计,天气,各种可能实现的功能。那个自由职业者却是做了微信小程序让米店老板受益了,他自己也收到了酬劳。
    ruoxie
        21
    ruoxie  
       2022-02-12 21:15:10 +08:00
    把重复的东西交给工具去做,然后不断完善你的工具
    patx
        22
    patx  
       2022-02-12 21:29:41 +08:00
    从小需求开始,慢慢写
    BruceYuan
        23
    BruceYuan  
       2022-02-12 21:42:32 +08:00
    假设你看到一个 Python 写的东西,然后你用 go 写一遍,这是不是也算是一种小项目?

    假设这个项目比较流行的话,也会有比较多的关注,这样也可以给自己一点鼓励。

    比如我最近就基于一个 tensorflow 版本的库写了一个 PyTroch 版本的:欢迎 star

    https://github.com/bbruceyuan/DeepMatch-Torch
    JeffersonQin
        24
    JeffersonQin  
       2022-02-12 21:52:49 +08:00   ❤️ 1
    从小东西开始写 比方说我有把我看的轻小说做成 epub 的需求 就写了这个项目:欢迎 star

    https://github.com/JeffersonQin/lightnovel_epub
    Wenco
        25
    Wenco  
       2022-02-12 21:53:01 +08:00
    @duke807 前期服务器带宽都是问题,还不等回本要么被墙,要么被请喝茶。。。凡是实现简单能赚钱还没多少人做的东西,都有深坑
    javahuang
        26
    javahuang  
       2022-02-12 23:38:11 +08:00   ❤️ 3
    之前了解了一个开源的表单解决方案 [formily]( https://github.com/alibaba/formily)
    然后想基于这个做一个问卷编辑器练练手
    做完问卷编辑器之后,我就想完全可以基于这个编辑器做一个调查问卷网站啊 = =
    然后我就看了国内开源最火的调问还有 tduck ,发现我的很多功能比他们做得好得多,我就下决心做一个比他们更好的
    然后我就加了问卷预览、数据、报表...
    顺便写了个后端
    每天晚上乐此不疲的一点点加功能 = =
    等终于有一天,我觉得这玩意已经可以放出去给别人用了
    就花了 200 多块钱买了个轻量服务器,买了个域名,备了案
    就放出去了 https://gitee.com/surveyking/surveyking
    这个项目也帮助了不少人,每次收到别人的赞美,我就觉得坚持的有意义
    回过头来看,自己从去年六月到了现在,从 0 完成了一个还算不错的问卷网站,成长了不少,也学到了很多东西
    ysc3839
        27
    ysc3839  
       2022-02-12 23:38:32 +08:00
    @duke807 #14 我觉得主要问题是免注册,门槛低会被滥用,然后运营成本巨高,最后入不敷出。以及用户惯性是很大的,身边人都在用腾讯会议、Zoom 这种,新用户也会跟着用这几个,没人用你的。
    duke807
        28
    duke807  
       2022-02-12 23:51:56 +08:00 via Android
    @Wenco 能支持一二十幾個人就差不多了,兩兩之間全部都是 p2p ,不需要服務器提供帶寬,甚至可以更進一部,用純粹的靜態網站實現,生成二維碼或字符串讓用戶自己用其它途徑分享(全靜態的 demo 也是有的)。現在國內匿名的文件分享服務也有不少公司,它們都不擔心喝茶。再說 webrtc 的 demo 本來就不少,只是讓 op 增強一下功能和體驗而已。

    ipv6 的到來可以取締很多比較大的商業公司。譬如這幾年比較火的提供遠程桌面協助的公司都好幾家,超多付費用戶,可能都上市了吧。而有了 ipv6 之後,直接用操作系統自帶的遠程桌面或者開源的遠程桌面程序,無需任何服務器就可以 p2p 直連。

    所以說,ipv6 的普及很定會是互聯網的一場重大變革( 5G 反而啥也不是),會洗牌掉一大堆公司,伴隨其中的便是機遇。
    duke807
        29
    duke807  
       2022-02-12 23:54:58 +08:00 via Android
    @ysc3839 webrtc 的網頁 demo 都是免註冊的,還免安裝。
    之前對接一個公司,非要我安裝腾讯会议 app 才能開會,很討厭,開完會我就卸載了。
    ysc3839
        30
    ysc3839  
       2022-02-12 23:56:06 +08:00 via Android
    @duke807 要服务器的,印象中即使是 P2P 的也要服务器,更何况 P2P 的连接性挺差的,最终基本还是得用服务器中转
    laravel
        31
    laravel  
       2022-02-13 00:01:32 +08:00
    @SuperMild 发出来的时候能不能 @下我?我很好 @的
    eternaljust
        32
    eternaljust  
       2022-02-13 00:01:46 +08:00 via iPhone   ❤️ 2
    项目找不到创意点,直接模仿就好了。

    我一直以来也跟你一样找不到做项目的方向,后面用了很多大佬的独立项目 App ,我也学到了一些 UI 设计、开发技巧上的一些皮毛。

    直到我找到了比较感兴趣的一个论坛,然后学习 SwiftUI 用来练手做一个第三方应用。年前简单学习了一下 figma 制作了一下 Icon ,模仿做了几张主流的商店市场图。过年期间终于通过苹果审核上线了,最近也一直在更新新功能,解决用户遇到的一些问题。也开始学习如何与用户沟通,如何平衡他们的需求与自己开发计划。只要有一个大的方向目标在,总能学到新的东西。

    下一步计划是学习 Compose 相关的技术来开发安卓的版本,顺便再加强学习一些设计相关的知识,巩固 figma 基本操作,制作几个稍微好看点的 AppIcon 。

    回到正题,不熟悉的领域都是要慢慢了解的,不管做什么,尝试走出第一步,后面的路就要自己去探索了。
    bojue
        33
    bojue  
       2022-02-13 00:11:18 +08:00
    @xx19941215 提示截屏大师跑路了
    duke807
        34
    duke807  
       2022-02-13 00:16:27 +08:00 via Android
    @ysc3839
    可以不用服務器的,我大概 5 年前就玩過,搜尋 serverless webrtc 有很多,譬如:
    https://github.com/cjb/serverless-webrtc

    p2p 連接性差是因為 ipv4 的 nat 導致,ipv6 不會有問題,所以才說是大變革,當然現在內地還沒有完全暢通,不過移動互聯網的用戶基本上已經普及 ipv6 了

    順便補充一下 #28 樓說的
    duke807
        35
    duke807  
       2022-02-13 00:17:50 +08:00 via Android
    順便補充一下 #28 樓說的,支持一二十幾個人 是指每個房間支持的人數,房間數可以海量
    ysc3839
        36
    ysc3839  
       2022-02-13 00:26:17 +08:00
    @duke807 多谢指正
    Explr
        37
    Explr  
       2022-02-13 00:36:20 +08:00 via Android
    我会收集我平时的一些小想法,然后有时间就写一点,有时间就写一点,我最近重启了一个被我搁置了一年的小工具。

    你可以看看正在用的开源项目哪里不太符合你的需求,二次开发一下。或者看看经常做的操作能不能自动化。兴趣为主。
    Wenco
        38
    Wenco  
       2022-02-13 00:45:26 +08:00
    @duke807 学习了
    opengps
        39
    opengps  
       2022-02-13 01:44:36 +08:00 via Android
    先给自己写个博客,我的前端水平虽然至今很烂,但基本上全靠给自己写东西开始学会的
    Bingchunmoli
        40
    Bingchunmoli  
       2022-02-13 01:52:39 +08:00 via Android
    自己写个博客,写个 api , 写个 b 站收藏夹下载并备份 one drive
    ferrum
        41
    ferrum  
       2022-02-13 03:02:23 +08:00 via iPhone
    从自己的需求出发是最常见的做法,只解决自己的问题,然后推测也有很多人会遇到同类问题,继续改进产品。

    另外一个是改善现有产品。想想你经常要用的工具有哪些,日常使用的时候,它们是否仍欠缺你所需要的功能?

    这些工具可以是一个桌面应用、一个网站、一个浏览器插件、一个小程序、一个手机应用,甚至是某个应用内的一个插件,如 Obsidian 插件、Raycast 插件。

    当然想搞开源的话也可以,但我觉得写 to C 应用较容易有正向反馈,因为更容易找到用户。
    ferrum
        42
    ferrum  
       2022-02-13 03:05:45 +08:00 via iPhone
    另外一点是,如果你本身不是爱折腾工具的人,那你可能要先从这点开始改变,先去折腾一下。

    比如你如果连剪贴板工具或启动器都没有,那你应该先开始折腾一下这些工具。
    dayeye2006199
        43
    dayeye2006199  
       2022-02-13 03:30:32 +08:00   ❤️ 1
    我会经常去 dev.to 和 devpost 上看有什么好玩的 hackathon 。通过参加 hackathon 经常能学习很多新知识,我对 web3 ,Alexa 语音助手的了解都是参加上面活动来的。做过一个项目,哪怕是个玩具,也比只看教程之类的来的体会深。
    同时还弄了不少体恤衫,马克杯,贴纸等重在参与奖的奖品
    caryRowen
        44
    caryRowen  
       2022-02-13 07:56:16 +08:00 via Android
    要不了解下这个开元项目,视障者的必备软件屏幕阅读器 https://github.com/nvaccess/nvda
    有很多带解决的 issue
    xiaopc
        45
    xiaopc  
       2022-02-13 08:29:24 +08:00 via Android
    要想做用户量大的工具,多逛逛*非*开发者社区,看看普通人的需求,最好是细分需求(因为有大量需求的产品应该有人做过了)
    要是纯练手,就造轮子,照着开源项目造
    allanpk716
        46
    allanpk716  
       2022-02-13 09:47:35 +08:00 via iPhone
    1 ,你有什么需求
    2 ,市面上有什么工具能够大方向满足
    3 ,试用,多用
    4 ,不满足的话就评估是否可以一个人做出来
    5 ,动手,随便写
    liufish
        47
    liufish  
       2022-02-13 10:36:15 +08:00
    1. 需求分析
    找自己或者别人的需求,分析一下是真需求还是伪需求。其实是在预估潜在用户数量(用户越多越兴奋)
    小心求证,看看可行性。
    在市场上找是否有类似产品,试用和分析其他产品(竞品)。

    2. 技术论证和可行性分析
    如果需求的技术点不在自己的能力范围内:
    判断这个技术是否自己喜欢的方向
    判断这个技术是否是工作需要的

    一方面分析技术上是否可行,另一方面分析自己是否愿意坚持下去

    > 如果发现这个项目值得,那就去做吧

    3. 有始有终
    至少做出一个能展示给陌生人看的东西,或者是一份详细的 readme
    romisanic
        48
    romisanic  
       2022-02-13 10:39:56 +08:00
    @javahuang 原来这个项目是你的,原来做问卷这块的调查的时候,还专门研究过,很棒的作品,谢谢作者
    falcon05
        49
    falcon05  
       2022-02-13 10:47:23 +08:00
    怎么可能一点想法都没有?谁偷走了你的好奇心
    EvanLuo42
        50
    EvanLuo42  
       2022-02-13 10:55:46 +08:00 via iPhone
    我倒是有个需求 Apple 生态的输入法不是词库不好就是没法跨端 我在想要不要把 rime fork 下来做一个 UI 好看词库好用不卡可以跨端的输入法
    chunqiuyiyu
        51
    chunqiuyiyu  
       2022-02-13 11:17:17 +08:00
    从身边工作和生活上的需求出发,我经常会有一些想法,然后有时间精力就用代码实现出来,回头看看还真做了不少东西,加油楼主!
    skys215
        52
    skys215  
       2022-02-13 11:38:51 +08:00   ❤️ 3
    练手: https://projectlearn.io/

    需求: https://www.reddit.com/r/SomebodyMakeThis/

    点子很多,但如果不去实现,那这点子就没有价值了。

    * 首先需要确定这个工具能解决什么问题
    * 竞品分析。了解同类工具,他们做了什么,没做什么。他们的优点缺点,以及你的产品能怎么弥补他们的缺点
    * 确定你的项目要做的功能,确定如何实现这些功能。例如,想做个图片转 ascii 字符画的工具的话,图片->灰度->对应字符(只是随便举个例子,我没做过这种应用,不确定具体过程)。图片怎么转灰度,需要分成多少级,每级对应哪个文字?需要把核心功能的实现方法确定,免得到要做核心功能时候发现实现不了或很难实现。
    * 准备。确定用哪些工具去完成。例如,语言、三方平台账号、服务器。也不是说一开始就要买,但至少了解一下价格、备案、是否需要申请许可证(游戏版号 /视听许可证 /牌照)、法律上是否允许(超过三层算传销、非法集资、四方支付等),发布(注册苹果安卓开发者账号、微信支付宝等各平台小程序需要什么材料、付多少钱、个人账号是否拥有足够权限实现你想用的功能),运营(如果是 UGC 平台怎么激励用户发布内容保证活跃度;如果是新闻类的 app ,怎么更新新闻;和用户保持互动,倾听用户建议及反馈),维护( https 证书更新、数据库备份)等。
    * 画原型。你的项目有哪些界面 /页面,以及页面间的关系。如果是列表,允不允许列表为空,列表为空的时候怎么显示,有没有最少条数显示要求?最多呢?分页怎么操作?代码层面上方便实现吗?等等问题
    * 设计。如果会设计就设计,不会设计就找人设计,没钱请人设计就凑合,或者跳过。
    * 排期。先做 MVP (最小可行性产品),只做最核心的功能,把多余的、花哨的功能先一律砍掉,放到第二个版本或者更后面去完成。给自己定一个死限( deadline ),也可以公布出来让自己有点压力。每天不管花多长时间,都给这个项目做点改变。即使是修改错别字,或者格式化代码都可以。只要有一天断开了,那后面也很容易给自己找借口把代码放一边,最后不了了之。
    * 写代码。先从基础部分写,例如用户注册登陆。
    * 发布。在不同平台可能要准备不同尺寸和格式的 logo 、软件简介、软件截图等。在自己网站发布的话,需要想好宣传文案,如何展示软件功能。
    * 推广。在应用市场、自建网站、论坛发帖、公众号小红书抖音、发朋友圈、微博、群、论坛等地引流,但注意不要宣传过度,也不要夸大宣传。
    * 运营。如果是内容类的话,需要发布内容或者审核内容等。工具类就可能要留意使用的 API 需不需要续费,或者有没有过期之类的。
    * 维护。
    * 迭代。把在第一个版本没能完成的功能陆续添加上。在第一个版本的 bug 也需要修补。

    我是写网站的,其中一些建议可能不适用于你的情况,仅供参考。自己也才刚从 0 做了个工具类小程序提交审核,也没什么发言权。但希望我所思考的内容能给予你帮助。
    Dashit
        53
    Dashit  
       2022-02-13 11:48:24 +08:00
    https://apps.apple.com/cn/app/id1596241644
    SwiftUI 练手写了一个 App2w 用户了
    Kaciras
        54
    Kaciras  
       2022-02-13 11:52:03 +08:00
    reallittoma
        55
    reallittoma  
       2022-02-13 13:08:33 +08:00
    写自己需要用到的东西,比如过年期间我写了一个显示网速的小工具:
    https://littoma.cc/NetSpeedCat/
    agagega
        56
    agagega  
       2022-02-13 13:15:17 +08:00   ❤️ 1
    苹果平台有一帮功能不多,价格死贵甚至还玩订阅制的 App ,你只要实现他们最核心那点功能,免费或者只收一点点钱,除了少数派某些作者,大家都会买你的账的。
    xx19941215
        57
    xx19941215  
       2022-02-13 13:43:21 +08:00
    @bojue 注册登录一下
    mokong
        58
    mokong  
       2022-02-13 14:06:48 +08:00 via iPhone
    可否说下有哪些,我来试试能不能做
    yaoyao1128
        59
    yaoyao1128  
       2022-02-13 14:12:50 +08:00 via iPhone
    搭建一个 https://github.com/ArchiveBox/ArchiveBox 之后收集一些信息进行摘抄之后分享?
    nonwill
        60
    nonwill  
       2022-02-13 15:42:44 +08:00
    基础扎实:
    1. 有明确的目标,自启新项目去实现,分享自己的 idea 抑或是产出
    2. 只是闲不下来,找个有名气的烂尾楼来维护 -- 别太在意他人的眼光
    https://t.hk.uy/aMjY
    基础一般:
    别急着盖楼,以学习的心态参与维护协作 -- 耐心吸取他人的建议,但别太在意他人的眼光
    https://t.hk.uy/aMjS
    https://t.hk.uy/aMjU
    silvernoo
        61
    silvernoo  
       2022-02-13 16:13:40 +08:00
    新建一个文件夹
    documentzhangx66
        62
    documentzhangx66  
       2022-02-13 16:35:33 +08:00
    如果,你是一个初学者,想成为大佬。那么建议,你从开发板开始,一点一点搭建电路、系统、各种硬件接口、各种高级语言。

    这样从底层电路、汇编、接口,再到高层虚拟化、分布式、机器学习,你等于把整个计算机,从本科到研究生阶段的东西,都做了一遍简单的实验,这对你的技能的成长,很有帮助。

    等你把这一套都做完,你就成了传说中的王工、张工。
    ICKelin
        63
    ICKelin  
       2022-02-13 20:35:56 +08:00
    可以分享下我的经历,我有个加速器是从 2018 年开始写的,还在不断的迭代优化,这个项目于我而言相当于一份工作带来的价值,如果你对过程不感兴趣可以直接拖到最后。

    第一个版本:只是想把工作中自己没机会参与的项目涉及到的技术学习一下,写点东西,恰好手上有个树莓派作为网关,当时的想法是写个加速器在上面运行,于是有了第一个版本的基于威 pn 技术的加速器,但是性能不太好,于是基于 kcp 做了一次优化。

    第二个版本:支持内网穿透
    第一版实际上提供了一种能力,能够在公有云上通过内网 IP 访问到客户端,那么自然而然的就实现了内网穿透,当时写了一个支持内网穿透的功能,后面把这个功能单独提取出来成了一个产品并发布到网上给网友们使用,当然这又是另外一个事故了,自此之后内网穿透的功能就在这个项目当中被彻底剔除了。

    第三个版本:基于 iptables 的 DNAT
    在之前的加速器当中都是用了基于 tun 设备的威 pn 技术,这是一个 ip over ip 的技术,这里会有个 tcp 的 rtt 就会比较长,优化的方法是通过快速握手,于是使用 iptables 把流量劫持到本地的端口,当时参考了 shadowsocks-go 的实现,不过很遗憾这项技术对 udp 不是很友好。

    第四个版本:基于 tproxy 技术
    背景是当时自己换了份工作,从一个网络开发转成基础服务开发的工程师,当时首次接触到 k8s ,docker 之类的东西,于是就想研究研究这玩意的一些网络实现,最后了解到了一项技术,叫 tproxy ,当时感觉可以拿 tproxy 来解决上个版本当中的 udp 的问题,于是基于 tproxy 优化开发了一个新的版本,并且一直使用至今。

    未来:
    1. 最近在考虑使用 ebpf 技术去替换 tproxy ,ebpf 也是最近了解到的一项技术。

    收获:
    1. 收获了不少网友,给了我不少帮助
    2. 收获了不少 offer ,当然包括现在的公司
    但是最重要的还是教会我坚持做一件事确实还是会有收获的。

    总结:
    1. 首先是找到自己感兴趣的点,既然是业余时间开发的,肯定是做自己感兴趣的事,以此作为入口,刚开始的版本肯定都是很挫的,大名鼎鼎的 Netflix 也是从租碟开始的。
    2. 不断的优化程序,如果能产品化的话更好

    当然现在项目也还有很多问题,处于闲暇时候会翻来改改的状态。
    Cola98
        64
    Cola98  
       2022-02-13 20:58:34 +08:00
    其实做自己的小项目都是解决自己的需求,比如简单的 TODO ,虽然有很多的 TODO 软件可以选择,但是有些肯定不是自己想的那些或者功能太多,这个时候就可以自己写一个 TODO ,后续如果有新的想法又可以接着改改。
    SuperMild
        65
    SuperMild  
       2022-02-13 21:05:26 +08:00
    @laravel 后来我又想可能不是大家想看的干货,就中断了没写,晚上换了个思路才又写出来 https://v2ex.com/t/833597
    supercaizehua
        66
    supercaizehua  
       2022-02-14 00:14:26 +08:00
    这个帖子的回答解答了我很多疑问, 感谢楼上诸位
    ericgui
        67
    ericgui  
       2022-02-14 04:29:19 +08:00
    我发自肺腑的想建一个 xx 网站, 我不在国内,所以没问题。但国外讲究版权,不能搞盗版,所以这枚久也没建起来。
    xzysaber
        68
    xzysaber  
       2022-02-14 10:09:19 +08:00
    @ICKelin
    ebpf 也是我今年的目标之一,一是来替换 IPtables 的四层转发(NAT),二个是用来观测网络。
    不过我几乎没有写过自己的什么小项目,有点羡慕有小项目的朋友,能同时赚点小钱就更好了。
    cosmtrek
        69
    cosmtrek  
       2022-02-14 10:30:56 +08:00
    从解决自己的问题出发,会比较容易上手,也容易持续下去。因为你就是这个项目的最直接用户,用得爽不爽会逼迫你不断迭代下去。如果实在找不到自己的问题,就可以从自己一直使用的服务出发,看看别人的服务是否让你不爽,如果不爽,那你的切入点就找到了。做个新的产品,改进它。
    thevita
        70
    thevita  
       2022-02-14 12:36:00 +08:00
    mkdir my-little-project
    Aindy
        71
    Aindy  
       2022-02-14 15:23:44 +08:00
    @MarkZuckerberg 像我一年前就注册了三四个域名,然后现在东西都没出来,于是白给了一年的钱
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4150 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:17 · PVG 18:17 · LAX 02:17 · JFK 05:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.