关于开发高端软件的闪念
序言
高端软件,比如,MySQL、NoSQL、Lucene、ElasticSearch、ClickHouse、Docker、Kubernetes、Helm、ArgoCD、OpenStack、PhotoShop、Unity 等。
这里的高端软件 区别于 操作系统 开发,也不是基本的 Web开发。
这些 高端软件 是怎么开发出来的呢?大概是因为 兴趣、爱好、市场需求吧。
除了 具备基本的 技术技能 外,还需要 知道 目前 IT界 的需求。
世界的 IT 需求是什么
IT产业界需要什么?
开发什么样的软件可以解决IT界或产业界的需求呢?IT技术 赋能 世界。
更高效率,更加自动化,2024年,会要求更加智能化吧。
要满足三高需求:高并发、高性能、高可用。当然,分布式 也是需要的。
一款高端软件,如何 make the world a better place?
最近看 CI/CD 相关内容,以前发布软件,一周一次或更低频率,现在有 CI/CD 高端软件了,发版频率是多少呢?听说 一天几百几千次,大公司或许更多。提高效率,也提高了正确率。
#IT界需求 #非IT界需求 #市场
基本技术技能
要开发高端软件,编程语言是需要的吧?还得不止一门。
Linux 的一些东西要熟悉吧,OS 内核 + Shell 等。
还有算法,普通算法、分布式算法,其它算法。
网络相关技术,TCP/IP、HTTP(1.1、2.0、3.0)、gRPC、IPv6 等,甚至要了解 WiFi、蓝牙 等协议。
甚至 芯片(存储、缓存、CPU、GPU)相关技术也是需要了解的吧。
还有一个点:结合 C/C++ 进行 混合编程,当然,本身就是 C/C++ 开发的软件 就不存在 混合编程了。
多操作系统兼容、多CPU、GPU兼容等(还有其它 *PU)。
当然,安全方面的也要了解下。功能 很重要,安全 也很重要。
#编程语言 #算法 #网络 #芯片 #C/C++
ben发布于博客园
从开发高端软件的角度来看源码阅读
通过 已有高端软件 出发,学习其 内在的 算法、架构、底层实现技术 等。
学完了有什么用呢?
简单用处就是 提升了自己的IT认知,也对 使用高端软件过程中出现 BUG 可以快速定位&解决。
高级用处呢?改进已有(开源的)高端软件,反馈开源社区,让这个高端软件更好。
另外,更可以借鉴这些高端软件的技术 来 开发自己感兴趣的高端软件。
当一个软件工程师开发了高端软件,那么,TA就不再是 CURD boys/girls 了。
当然,一旦开始,请尽量彻底搞透彻。
#反馈社区 #开发自己的
ben发布于博客园
---END---
ben发布于博客园
ben发布于博客园