你们为什么要造轮子?是因为觉得现有轮子不好,无法满足,还是现有轮子根本无法做到。到底造过多少个轮子?这些轮子有多大?还是有多小
1
zlu1123 2020-07-28 08:54:17 +08:00
从来都只是用的路过
|
2
kzfile 2020-07-28 09:04:22 +08:00
我造不出来
|
3
cco 2020-07-28 09:09:05 +08:00
DateTimeUtils.java 之类的算不算? 算的话大约有 10 个吧
|
4
wweir 2020-07-28 09:09:11 +08:00 via Android
完整造的轮子不多,更多是包一层。
因为很多轮子是真的不好用,但又没把握短时间能写个东西把旧轮子 PK 下去,包一层能提供个相对干净的使用方式 |
5
xkzhangsan 2020-07-28 09:12:09 +08:00 via Android
自己业余时间就造过几个,刚开始,需要不断向前辈们学习,不断完善项目。其中一个 xk-time .
1.一方面是自己有一些需求,现有的轮子不太好用,自己造轮子,发布出来后,有很多人提了一些需求和建议,得到进一步的完善。 2.我造的轮子非常小,只专注一个领域,日期时间工具,大的轮子需要耗费非常多的时间,需要团队合作开发。 大家可以提一些建议。 |
7
tctc4869 OP |
8
Rwing 2020-07-28 09:22:06 +08:00
java 和 js 的轮子比较多吧。。。。毕竟语言表达力和基础库不多。。。。
|
9
Hyouka 2020-07-28 09:22:26 +08:00
大的也有小的也有.没有统计过...大到框架底层,小到方法函数;
想要用的时候就去翻以前的代码...所以有时候会重复造 |
10
supermoonie 2020-07-28 09:23:42 +08:00 via iPhone
winio4J AutoChrome4J 还有最近在写的 mitmproxy4J 就这三个吧
|
11
mathzhaoliang 2020-07-28 09:43:13 +08:00 9
我之前造过一个小轮子,可以用纯 python 在仅使用内置函数和模块的情况下几秒内生成几包含几千帧的演示算法的 gif 动画: http://pywonderland.com/gifmaze-cn/
这个也是我人生第一个轮子。后来还造过一些,但是我觉得都没有这个有创意。 |
12
whileFalse 2020-07-28 09:47:30 +08:00
1. 就当前项目来讲,现有轮子过于复杂或过于简单或在项目中使用时不够优雅
2. 没有类似的轮子,或者已有的轮子都不够知名 |
13
raaaaaar 2020-07-28 09:48:00 +08:00 via Android
轮子是方的,还漏气
|
14
qiutianaimeili 2020-07-28 09:56:29 +08:00
所以楼主只满足于用轮子?
|
15
tctc4869 OP @whileFalse 优雅的轮子,你认为哪些轮子使用起来优雅?为什么优雅,优雅的感觉在哪?
|
16
leimao 2020-07-28 10:08:48 +08:00
轮子是 library 的意思吗?
|
17
whisky221 2020-07-28 10:10:12 +08:00
没造过,只会用
就算是不好用的轮子,就修改修改,但也没有二次封装,惭愧 |
18
libook 2020-07-28 10:18:28 +08:00
通常用第三方的轮子觉得有问题或满足不了需求会提 Pull Request,如果第三方轮子实现不了,或是阿里系的轮子,或没有对应的第三方轮子就自己造。
一个原则是:社区维护的轮子因为经受了更多的检验,通常比自己造的稳定、高效。 所以到现在自己造的轮子屈指可数,但是 Fork 和 Pull Request 比较多。 |
19
LXGMAX 2020-07-28 10:23:47 +08:00 via iPhone
python 和 C#造了几个小工具代替人力重复工作
|
20
rex0791 2020-07-28 10:32:16 +08:00
早期的时候针对项目做过一些小工具,比如说根据模板生成一些 java 代码。
现在不需要了,有各种的 cli tools |
21
paoqi2048 2020-07-28 10:43:55 +08:00
此时一名调包侠路过
|
22
whileFalse 2020-07-28 10:46:24 +08:00
@tctc4869
Flask 就是一个非常优雅的工程向轮子。工程轮子的优雅首先体现在接口设计:一看就懂,并且无法设计出比他更明确易懂的接口。我写 Web 的时候首选 Flask 框架。 另外 Python 本身已经是个优雅的语言了,同样具有极易理解,短而清晰的优势(还是有些 sx 设计,比如变量作用域……) 作为对比可以想想 Java 。为了静态编译废话一堆(相同的逻辑代码量得有 Python 的三倍不止吧);本来这也不是个坏事,我印象最深刻的是 Java 代码基本上能编译通过就能正确运行,而 Python 总要跑起来才发现自己有哪些手残或脑残打错。有充足的静态检查是企业级语言的优势,特别适合构建大型工程。然而 Java 程序员实在是厌恶了打这么多废话,发明了大量使用标签和动态反射的框架,于是 Java 程序也要跑起来才能确定正确与否了。那你说这是废个什么劲啊。 再想想 Node,那个回调地狱能跟优雅沾上边吗。 |
23
qwerthhusn 2020-07-28 10:46:47 +08:00
任何一个“比较通用的”功能,都会先试图去找一下,而且基本上还都能找到。。
|
24
DoodleSit 2020-07-28 10:46:55 +08:00
能自己造的坚决不用现成的轮子,wc,漏气。。。
|
25
Doracis 2020-07-28 10:52:11 +08:00
早年不懂事的时候自己造过,造到一半发现有个正则怎么也写不好,百度发现这个工具类 人写的比我写的不知高了几百倍,顿时羞愧难忍,再也不提造轮子了。。。
|
26
magen 2020-07-28 10:58:12 +08:00
常年内网开发,造了无数的轮子...
Date 、String 、Xml 、Excel 、File 、Cache 、Route 、Parser(各种解析器)、ftp 、ssh(服务器远程 shell 操作)、crawler(爬虫框架)、task(定时任务框架),然后基于这些组合出好多应用层小工具... |
27
xuanbg 2020-07-28 11:23:57 +08:00
造了一个分页控件的轮子,用到今天才发现原先做了很多的无用功……把那些无用代码删除后,终于自认为足够优雅了。
|
28
pushback 2020-07-28 11:40:53 +08:00
https://blog.csdn.net/mars_Q/article/details/107253254
这种吧,喜欢用反射和注解,最近才想起来放到博客上,以前工作上都有十多个吧 |
29
xkzhangsan 2020-07-28 12:19:37 +08:00 via Android
@tctc4869 Java8 的已经非常好了,这个工具就是在 Java8 上面扩展出来的。
https://github.com/xkzhangsan/xk-time xk-time 是时间转换,计算,格式化,解析,日历和 cron 表达式等的工具,使用 Java8,线程安全,简单易用,多达 70 几种常用日期格式化模板,支持 Java8 时间类和 Date,轻量级,无第三方依赖。 这个工具比较像 Dateutil,因为 Date 仍然在广泛应用,所以,所有相关功能都兼容 Date 。 |
30
tctc4869 OP @xuanbg 分页的逻辑其实很简单,界面上就上一页下一页,跳转目标页,本质上都是一样的,对页码缓存变量进行改变,然后发上去请求就可以了。还搞什么显示 1 页,2 页,3 页,4 页,5 页。我觉得是多余的
|
31
xuanbg 2020-07-28 13:20:37 +08:00
@tctc4869 不是这么简单。你得考虑下面几个问题:
1 、每页行数从 30 变成 50 时,你选中的第 3 页第 24 行变成了第 2 页第 34 行。反过来从 50 行每页变成 30 行每页也是一样。当然很多人觉得这个没有必要,但我觉得失去焦点很不友好。 2 、列表里面添加了一行,顺序排列的时候你要使焦点跳到最后一页最后一行,选中新增加的一行,倒序排列的时候需要选中第一页第一行。 3 、删除一条数据的时候,焦点自动切换到下一行(保持位置不变)直到最后一条数据。不是最后一页的时候,要重新加载当前页数据。当前页最后一条数据删除后要自动跳上一页最后一条。 总之,你要想使当前焦点行不丢失,逻辑还是比较复杂的。一般做 web 的估计从来没有想过分页还有这么复杂的场景。 |
32
heiheidewo 2020-07-28 13:25:32 +08:00
apiboy 路过
|
33
wangyzj 2020-07-28 13:30:45 +08:00
轮子可以造
但更重要的是持续维护 |
34
leafre 2020-07-28 13:31:45 +08:00
造过轮子谁还混 V 站
|
36
CoderGeek 2020-07-28 14:18:24 +08:00
大轮子没有 这一年写了不少小轮 都是自己用 三轮都算不上 - -
|
37
mccken 2020-07-28 14:24:47 +08:00
看了公司内部的 framework / lib,想自己也搞个轮子,搭建企业级基础组件,没有现有 step,现在的阶段是手动 copy 好的轮子,比如说 hutool, jooq, 一些好的 dataUtil, 反射,注解,事务等等,(容易忘记的也集成,相当于忘记怎么用了,直接看下自己写的“最佳实践”)。
|
38
abersheeran 2020-07-28 14:56:30 +08:00 1
造过挺多。一般不是没有满足需求的,就是我对现有的库不满意。大部分我都放在我 GitHub 上了。
为了业务,写了一个中国行政地区的库,数据来自官方网站。github.com/abersheeran/china-region-data 还是为了业务,又写了一个匹配 TLD 的库,github.com/abersheeran/onlytld 又又又是为了业务,写了一个 ASGI 协议的限流器,github.com/abersheeran/asgi-ratelimit 又又又又是为了业务,写了一个阿里云函数计算 API 接口转换,github.com/abersheeran/aligi github.com/abersheeran/a2wsgi 这是我写的 WSGI/ASGI 互转的库,这个库主要是 starlette 不肯合并我的 pr,我就自己独立出来用。 github.com/abersheeran/index.py 这是目前最高性能的 Python web 框架,主要还是我和 starlette 有分歧,一气之下自己写完了。 github.com/abersheeran/rpc.py 这个是为了娱乐,但是的确可用,测试用例什么的都是打满的。后面如果业务要上 rpc 我就打算用这个。 这么一看,我自己比较满意的库还是有不少的哈哈哈。 |
39
nutting 2020-07-28 15:04:44 +08:00
我用 netty 造了个 server,自己定义了一个 html 模板,渲染完吐出来,实现了一个 wap 页面 game
|
40
walsh 2020-07-28 18:00:52 +08:00
唯一一个有用户而且用户比较多的就是自己设计协议的一个 Windows 下以太网满速收发 socket,稳定跑了两年多了吧,现在公司所有下位机都是基于这个 socket 开发。
|
41
dustinth 2020-07-28 18:27:43 +08:00
不造轮子怎么进步? 哈哈.
大部分的时候不是造轮子, 而是包装现有框架到特定的应用场景(引入默认选项或者砍掉用不到的通用选线), 减少重复. |
42
VDimos 2020-07-28 18:37:58 +08:00 via Android
用 rust 造了个开发 cli 的轮子,主要是觉得用 clap 这些实在太麻烦了,就仿造 rocket rs 和 commander js 写了个 commander-rust 。
用宏来写的,写完觉得对 rust 的理解又深了 |
43
xkzhangsan 2020-07-28 18:44:11 +08:00 via Android
@VDimos 造轮子会加深对语言的理解,看了 Java 日期时间 api 源码,发现写的非常好,学到很多东西。
|
44
gamexg 2020-07-28 18:46:19 +08:00
没找到 go 的非 cgo 的嵌入式数据库。做一个项目时,头铁的写了个,虽然是半成品。
|
45
VDimos 2020-07-28 18:46:55 +08:00 via Android
@xkzhangsan 是的,我造这个轮子很大的一部分原因,就是因为我对 rust 的宏理解太浅
|
46
zicla 2020-07-28 18:48:31 +08:00
用 golang 造了一个云盘,开源了。
|
47
nimdanoob 2020-07-28 18:53:08 +08:00
造过 4 、5 个轮子, 造轮子的原因是需要在已有开源库的基础上做功能拓展,或者是开源库迭代和 bugfix 的速度满足不了公司的发展 所以需要 copy 一个然后自己维护。
|
48
a62527776a 2020-07-28 22:54:33 +08:00 via iPhone
https://github.com/a62527776a/vue-floating-action-button 前端的 fab 小轮子 之前用来找工作用的 没想到一直维护了很久 也收获了近 100star
https://github.com/a62527776a/vue-dialog-x 这个弹窗小轮子 是我比较喜欢的轮子 已经非常成熟的在我工作中的项目里用起来了 这个弹窗代码结构参考了另一个开源弹窗的设计 学习了很多 按照 ios 设计复刻的很漂亮 也基本满足 h5 的各种弹窗需求 开发开源项目 还是非常能锻炼水平的 会学习到很多设计上的东西 |
50
lizz666 2020-07-29 08:55:09 +08:00
ui 组件算吗?
算的话 3 个,没啥技术含量 不算的话就没有了 |
51
xiaojun1994 2020-07-29 09:43:05 +08:00
没啥用,练手写过,部分倒是在项目中用到过 https://github.com/xiaojun1994
|
52
andytao 2020-07-29 13:27:56 +08:00
袋鼠数据库管理工具( DBKangaroo ),正在造轮子。。。
没亲自尝试过,永远也不知道造轮子的路上有多精彩。 |
54
jones2000 2020-07-29 15:53:19 +08:00
我造过 1 个, 金融图形库(js),和分析家语法指标执行器( js, py, c++)。https://github.com/jones2000/HQChart
这个东西国内开源的就我一家,没有第 2 家。 造轮子比较辛苦, 特别是多个语言版本移植, 学习强度比较大。 我前后化了 1 年左右才基本稳定完善。 |