看 CTO 封的框架代码 ,忍不住,吐槽……

2020-05-13 00:10:53 +08:00
 EEer

17479 次点击
所在节点    C++
116 条回复
reus
2020-05-13 10:35:56 +08:00
公司体制总是逐渐衰败的,一个技术能力不足的人占据高位就是衰败的迹象之一。不过良好的治理可以允许一定程度的衰败,在质变之前可能可以撑很久。最怕就是衰败的高层干预中层,瞎指挥导致加速衰败。
代码又写不好,又不会让写得好的人来负责,大概率是靠政治依附当的 CTO 吧。
Phariel
2020-05-13 10:36:51 +08:00
CTO 大部分都是 tree new bee 上去的 真正苦干不会逼逼的人都还在一线拼命呢
fangcan
2020-05-13 10:37:42 +08:00
不要跟领导比能力啊
lqy2575395
2020-05-13 10:38:20 +08:00
小 E,有空来办公室一趟 手动狗头
murmur
2020-05-13 10:44:04 +08:00
@sagaxu 黑的过分了

有人在知乎上评价王坚获得院士,称在一次技术大会上跟王坚博士有过短暂接触。其谈论起问题来,思路清晰,人很真诚。“看问题的视野很独特,如果说我看到的是 10m,那他就能穿过雾霾看到 100m 外。”

这是网上的文章写的,别人的评价是有远见,没说写垃圾代码啊,CTO 有远见,你可以坚持你的路线,坚持大方向,但是没说 CTO 要把以前的过时、垃圾代码带进别的公司是把

你可以组织头脑风暴,收集大家的意见,根据你的经验制定技术路线,至于具体的开发配置调优交给下面的人
1O
2020-05-13 10:48:14 +08:00
那我招你来干嘛呢?
ai277014717
2020-05-13 10:59:16 +08:00
调侃一下,代码写的好,还有你什么事?不知道感恩。
DreamCMS
2020-05-13 11:06:30 +08:00
CTO 其实不用写代码,只讲思想即可,不然写什么代码都会被喷的。
webs
2020-05-13 11:18:02 +08:00
可能是 Cto 用的是 C 艹,不是 c++
crackhopper
2020-05-13 11:25:25 +08:00
poll 没用过,既然要实现异步还加锁,不知道什么操作; IO 相关的 buffer 互相独立我觉得更好。另外更好的异步方式,我觉得是用系统自带的异步接口,按照 event-driven 的模式来构建,同时也做个线程池对把部分不支持异步的操作异步化。

RAII,可能实现起来最需要慎重考虑的是异常安全+线程安全 /防止死锁,不知道这块你们 CTO 考虑的如何。但很多人模板水平确实太差,不会用模板实现 mixin/traits,写的工具用起来很麻烦。

如果就用 reference count 管理内存,直接用标准库的智能指针确实更好,没必要自己实现还实现错了。不过我个人觉得更应该用 GC 。很多人并不会用智能指针,也会带来灾难。尤其是区分不清楚 weak, shared, unique 的使用场景。

单例这块我同意楼主说法,static 初始化可以保证线程安全,但也要注意编译器版本探测和对应的开关是否打开;另一个一劳永逸的办法是手动在多线程创建前初始化全局单件。动态创建的,很难保证线程安全。加锁 double-check,也会在指令乱序下失效。

我估计你们 CTO 就是纯粹靠年限混了个 title 。实际 C++水平,也就在高级和资深区间?

代码不重要,只要产品能盈利,这个我是赞同的。所以更不应该用 C++,直接 nodejs 不香么。或者 go,如果喜欢类型系统的话。
hetal
2020-05-13 11:26:17 +08:00
你只看到了冰山一角,too young too simple 。
crackhopper
2020-05-13 11:27:08 +08:00
另外 reference count,内存还比较碎片化。自己做内存池其实已经开始接近做 GC 了。
dandycheung
2020-05-13 12:01:29 +08:00
优化重构掉,拿几个测试用例做一下正反对比,比来这儿喷他强,实际不定会成为你成为 CTO 的基础。永远记住,技术,要能用到业务上。你说再多,没去改善,那挣钱的业务靠的还是人家的烂代码。给你发工资到底是为了啥呢?
EEer
2020-05-13 12:27:55 +08:00
@dandycheung 听你口气怎么好像你给我发工资一样?这样吧,要不你给我打个钱,我利用非工作时间把这套东西重构了?再说我也没否认赚钱靠的这套代码,难道能赚钱了,代码就不烂了?那很多小公司要倒闭了。
dandycheung
2020-05-13 12:30:25 +08:00
@EEer 不用激动,你高兴就好。
EEer
2020-05-13 12:34:22 +08:00
@dandycheung 我是挺高兴,你是不是被人喷过代码糙,自动带入 CTO 的角色?
wushigejiajia01
2020-05-13 12:48:30 +08:00
@c0011 我知道是 c ++啊
sockpuppet9527
2020-05-13 12:49:38 +08:00
额,我寻思第一个不是 dpdk/spdk 这种 pmd 的设计思路吗?既然已经 socket 和线程绑定,发送数据应该不用加互斥锁。
可能需要纠正下:pmd 性能并不会降低,为什么需要 pmd 因为如果你在用户态就不需要处理中断。具体还要看实际场景。
第二点,是个人才。:doge
第三点,没看懂这封装的个啥。这样整引用计数指针目测使得开发更加艰难。
第四点,算是比较初级的问题。
最后一行,建议来一波正面肛 :doge
dandycheung
2020-05-13 12:50:05 +08:00
@EEer 看你这么大了,我那样的回复你都还看不出来我无意跟你多纠缠,那我就再说一两句吧。1. 你跟你的公司是利益共同体,在你手里把它变得更好些,你自己会受益;很显然,你来 v2 上来吐槽并不能有此功效; 2. 我作为一个陌生人,刚刚对你只算是开导,听不听在你;看你似乎要穷追猛打,似乎还想嘲讽一下要么我是个很差劲的 CTO,要么简直可能连个 CTO 都不是的普通路人,不该也无资格对你的高论置喙,不管怎么说,这都是情商很低的做法。对我而言并没有什么损失,我见的人多了,愣头青也不缺你这一个。
sockpuppet9527
2020-05-13 12:51:47 +08:00
@sockpuppet9527 #58 补充下,第二个 rall 相关的,有没有可能你们 CTO 是 C 转过来的,copy 了之前公司的祖传代码,这类一般都内部逻辑复杂会导致外部的使用也相对恶心很多。然后模板这个东西由于之前写 C 的祖传代码,固然是没有的

只是猜测

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/671095

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX