封面

『这世上本没有银弹2』

这次没听歌。耳机(悔恨之泪tws)借我兄弟听歌去了(其实让他帮我测试一下效果)


先把第一篇文章补一下。

那个oop部分,有点跳了。


现代的面向对象语言太注重继承,有点超过当年面向对象对于本质的理解——消息传递。

或者用函数式的来讲就是基于类型的分发。


我举个现实的例子。

我们去菜场买菜,所有的菜都有实现的方法叫做可购买,然后我买了一颗小白菜。

其实是用户做出的选择。

如果我们分部分来看的话:

首先菜市场有很多菜

我们过滤了我们想要的东西(构造函数)

然后我们拿到了也就是调用了方法。


思考一下不使用继承解决这个问题

非常简单——回调函数(callback)


从实践角度来讲把回调函数通过特殊的合成的方式合在一起,就是虚表(cpp实现的“多态”的工程依据)

可是真正的问题不出现在这里。

一旦别人写了严格地在编译时确定的符合(某个)领域的继承代码(建议参考casey 的演讲——30.5年OOP的功过,我这边直翻但是我不太确定是否严谨)

我们再更改或者是往上面加东西的时候就会十分麻烦,除非我们知道我们到底在构建什么。


我尊重这个观点,我也看到过一些优秀的项目继承是没有大问题的(imgui/smfw还是sfmw),当然也有很大一部分真的是不知所云的copy and paste 。

根据二八定律,我不敢想象多少项目是从一开始就错了(定死了严格的继承逻辑)。


这个是oop都面临的一个棘手的问题,下面这个问题是CPP理论上独有的(实际上其他的也在不停地效仿[family-3]


先来一个引子:

虚幻五到底相比虚幻四提升了什么

从我个人的角度感觉,我认为是4 需要的开发者配置远远低于5(3050根本跑不动虚幻五的设计师界面,别忘了还有很多7840hs用户,他们的显卡性能更加受限)


如果只是让用户的电脑徒增功耗,散热器狂转我不认为这是一次好的进步。


在计算机的程序领域里面,向上变动的一个数字真的代表不了什么,哪怕他下一年推出虚幻10也是一样。


因此当CPP标准不停的往上加数字的时候

我们要谨慎选择那些改变我们编程方式的部分,而不是无脑的使用那些颠覆前人所做的努力的“学术进步”。


这是一件很难的事情,尤其是某个项目经理(我目前没有工作但是....我有点后怕)要求我们从CPP11升级到CPP17

当我们用一个自动化的软件(cmake)处理依赖的时候这个软件也变成了问题。

要根本解决这种问题很简单但是很耗时间

我目前能想到的就是在一开始就手动指定所有依赖

并且显式的给所有人都用一种最简单的方式看到。

要是真的在某些地方说这句话估计我离....嗯[family-3]


补充完

然后正好就顺着这个说说今天的主题


我今天在上课的时候拿404网站和XX 同时搜索linux 这个词

然后我就不想说话了。


正好在隔壁刷到了所谓的个人开发者。

我现在把一个最不成熟的答案分享一下就是

建议看VUE.JS主创怎么做的。


首先就不要有错误的想法,依靠纯开源也能够养活自己这是不可能的。

大家都希望白嫖  这是不可能不会发生的事情。


最大的好处是能让优秀的公司多看我们这群牛马就行哈哈哈哈哈()

当然还有另外一种方式  核心不收费卖皮肤(周边,不论是虚拟的还是真正有现实的)收费是可以的,前提是需要万人以上的社群。


同时个人开发者就很难造出来大的产品

但是足够小足够精的产品是可以的

因此我们需要在细分领域的细分领域里面找结合点,完全可以像无限大那种混在一起


而且需要严格限定技术,不然代码会在几次提交之后崩溃掉()

讲到这里推荐一点书

《计算机程序的构造和解释》

《ruby元语言》


ruby 总感觉在国内的存在感不高,但是他背后的框架真的很快呀(首先考虑要赚钱而不是性能,上线之后赚到钱了咱们换成go都是可以的)


而且他那种元语言魔法真的很感染我。


怎么说呢

到现在一直我都认为我在大海捞针

要想很快的学的话大概只有两个方法:

必须要有人带或者通过个人极其严密推理推理出来(后面那个严格训练还得加个天赋,而且天赋点在语文与逻辑上面)

看那些网课怎么说呢基本上没学到什么

有深度的网课那都是有前提条件的()


另外,我想说的是教育还是太慢了,最好把时间放在coding上面大于一切废话。实践出真知非常符合这个专业的特性,毕竟硬件不好做测试  软件直接拖到gdb里面去就行


写个结尾:

十年之前的gui我们用的是qt

现在到处都给我塞***的浏览器

甚至我还听过一些名校的学生说到现在才知道原来以前还有这种写gui的方式

我傻眼了


当然我不是说这种架构性能就一定比手搓的差

我只是在考虑他背后的依赖关系有多地狱

隐藏的那些技术债终究是要还的。


最好的方式解决问题应该是针对问题本身做出最合理最简单的抽象


我们不需要特别多的模板去解决一个特定问题,因为我们最终做的就是特例化呀。


所以一个人就能掌握的编程语言到底是什么

或者是一种类型

或者是一种方式

我相信到这里应该有想法了吧。

发布评论
全部评论(4)
最新
最早
avatar
神鸟千凤
5
#1107145

我的艾米莉亚呢?[stick-2]

image
ft_cai
2
考虑半天要设个谜团()
显示全部 1 条回复>>
avatar
ft_cai
2
作者
#1107062

[family-3]有些不成熟的部分欢迎深入交流。

avatar
ft_cai
2
作者
#1107052
该评论已被用户自己删除
点击加载更多