这次没听歌。耳机(悔恨之泪tws)借我兄弟听歌去了(其实让他帮我测试一下效果)
先把第一篇文章补一下。
那个oop部分,有点跳了。
现代的面向对象语言太注重继承,有点超过当年面向对象对于本质的理解——消息传递。
或者用函数式的来讲就是基于类型的分发。
我举个现实的例子。
我们去菜场买菜,所有的菜都有实现的方法叫做可购买,然后我买了一颗小白菜。
其实是用户做出的选择。
如果我们分部分来看的话:
首先菜市场有很多菜
我们过滤了我们想要的东西(构造函数)
然后我们拿到了也就是调用了方法。
思考一下不使用继承解决这个问题
非常简单——回调函数(callback)
从实践角度来讲把回调函数通过特殊的合成的方式合在一起,就是虚表(cpp实现的“多态”的工程依据)
可是真正的问题不出现在这里。
一旦别人写了严格地在编译时确定的符合(某个)领域的继承代码(建议参考casey 的演讲——30.5年OOP的功过,我这边直翻但是我不太确定是否严谨)
我们再更改或者是往上面加东西的时候就会十分麻烦,除非我们知道我们到底在构建什么。
我尊重这个观点,我也看到过一些优秀的项目继承是没有大问题的(imgui/smfw还是sfmw),当然也有很大一部分真的是不知所云的copy and paste 。
根据二八定律,我不敢想象多少项目是从一开始就错了(定死了严格的继承逻辑)。
这个是oop都面临的一个棘手的问题,下面这个问题是CPP理论上独有的(实际上其他的也在不停地效仿
)
先来一个引子:
虚幻五到底相比虚幻四提升了什么
从我个人的角度感觉,我认为是4 需要的开发者配置远远低于5(3050根本跑不动虚幻五的设计师界面,别忘了还有很多7840hs用户,他们的显卡性能更加受限)
如果只是让用户的电脑徒增功耗,散热器狂转我不认为这是一次好的进步。
在计算机的程序领域里面,向上变动的一个数字真的代表不了什么,哪怕他下一年推出虚幻10也是一样。
因此当CPP标准不停的往上加数字的时候
我们要谨慎选择那些改变我们编程方式的部分,而不是无脑的使用那些颠覆前人所做的努力的“学术进步”。
这是一件很难的事情,尤其是某个项目经理(我目前没有工作但是....我有点后怕)要求我们从CPP11升级到CPP17
当我们用一个自动化的软件(cmake)处理依赖的时候这个软件也变成了问题。
要根本解决这种问题很简单但是很耗时间
我目前能想到的就是在一开始就手动指定所有依赖
并且显式的给所有人都用一种最简单的方式看到。
要是真的在某些地方说这句话估计我离....嗯![[family-3]](https://resource.mfuns.net/image/sticker/s2/锤子.png)
补充完
然后正好就顺着这个说说今天的主题
我今天在上课的时候拿404网站和XX 同时搜索linux 这个词
然后我就不想说话了。
正好在隔壁刷到了所谓的个人开发者。
我现在把一个最不成熟的答案分享一下就是
建议看VUE.JS主创怎么做的。
首先就不要有错误的想法,依靠纯开源也能够养活自己这是不可能的。
大家都希望白嫖 这是不可能不会发生的事情。
最大的好处是能让优秀的公司多看我们这群牛马就行哈哈哈哈哈()
当然还有另外一种方式 核心不收费卖皮肤(周边,不论是虚拟的还是真正有现实的)收费是可以的,前提是需要万人以上的社群。
同时个人开发者就很难造出来大的产品
但是足够小足够精的产品是可以的
因此我们需要在细分领域的细分领域里面找结合点,完全可以像无限大那种混在一起
而且需要严格限定技术,不然代码会在几次提交之后崩溃掉()
讲到这里推荐一点书
《计算机程序的构造和解释》
《ruby元语言》
ruby 总感觉在国内的存在感不高,但是他背后的框架真的很快呀(首先考虑要赚钱而不是性能,上线之后赚到钱了咱们换成go都是可以的)
而且他那种元语言魔法真的很感染我。
怎么说呢
到现在一直我都认为我在大海捞针
要想很快的学的话大概只有两个方法:
必须要有人带或者通过个人极其严密推理推理出来(后面那个严格训练还得加个天赋,而且天赋点在语文与逻辑上面)
看那些网课怎么说呢基本上没学到什么
有深度的网课那都是有前提条件的()
另外,我想说的是教育还是太慢了,最好把时间放在coding上面大于一切废话。实践出真知非常符合这个专业的特性,毕竟硬件不好做测试 软件直接拖到gdb里面去就行
写个结尾:
十年之前的gui我们用的是qt
现在到处都给我塞***的浏览器
甚至我还听过一些名校的学生说到现在才知道原来以前还有这种写gui的方式
我傻眼了
当然我不是说这种架构性能就一定比手搓的差
我只是在考虑他背后的依赖关系有多地狱
隐藏的那些技术债终究是要还的。
最好的方式解决问题应该是针对问题本身做出最合理最简单的抽象
我们不需要特别多的模板去解决一个特定问题,因为我们最终做的就是特例化呀。
所以一个人就能掌握的编程语言到底是什么
或者是一种类型
或者是一种方式
我相信到这里应该有想法了吧。





我的艾米莉亚呢?![[stick-2]](https://resource.mfuns.net/image/sticker/new/喵奈-傲娇.png)