我在软件行业工作了两年。以下是我困惑的一些事情:
1. 当前软件行业缺乏数学应用。 例如:当机械工程师设计电力杆时,他使用应力分析技术(阅读数学方程式)计算基础上的应力,以确定应使用何种类型和等级的钢材。但是,当软件开发人员部署Web服务器应用程序时,他只是猜测服务器上的估计负载,并将其余的留给运气和上帝,没有任何他可以用来模拟数学上回答他的问题的东西(我的观察)。
2. 有很多优秀的软件(如风洞模拟器等)和计算程序(如MATLAB等),可以模拟现实世界中的问题(因为它们有它们的数学方程式),但我们在软件行业仍然不知道我们的服务器端应用程序实际部署时需要多少实际资源,例如内存、计算资源、时钟速度、RAM等等。我们只是继续猜测解决方案,并通过更多或更少的“试错”来解决这些问题(我的观察)。
3. 编程是在API上完成的,无论是在C、C#、Java等语言中。我们永远无法准确检查我们的代码复杂性和效率,因为我们在某个地方使用了由其他人编写的抽象层,其源代码要么没有,要么我们没有时间去检查它。 例如,如果我在C#或Java中编写一个简单的客户端服务器应用程序,我永远无法预先计算出这段代码的效率和复杂性将是多少,或者整个客户端服务器应用程序将需要的最低要求是什么(我的观察)。
4. 负载平衡和可扩展性分析过于模糊,仅通过添加更多节点来解决服务器上的请求增加问题(我的观察)。
请回答我上述令人困惑的观察。请附上相关参考资料。
如果有人证明我错了并展示了正确的方法,我会很高兴。
提前致谢,
Ashish
1. 当前软件行业缺乏数学应用。 例如:当机械工程师设计电力杆时,他使用应力分析技术(阅读数学方程式)计算基础上的应力,以确定应使用何种类型和等级的钢材。但是,当软件开发人员部署Web服务器应用程序时,他只是猜测服务器上的估计负载,并将其余的留给运气和上帝,没有任何他可以用来模拟数学上回答他的问题的东西(我的观察)。
2. 有很多优秀的软件(如风洞模拟器等)和计算程序(如MATLAB等),可以模拟现实世界中的问题(因为它们有它们的数学方程式),但我们在软件行业仍然不知道我们的服务器端应用程序实际部署时需要多少实际资源,例如内存、计算资源、时钟速度、RAM等等。我们只是继续猜测解决方案,并通过更多或更少的“试错”来解决这些问题(我的观察)。
3. 编程是在API上完成的,无论是在C、C#、Java等语言中。我们永远无法准确检查我们的代码复杂性和效率,因为我们在某个地方使用了由其他人编写的抽象层,其源代码要么没有,要么我们没有时间去检查它。 例如,如果我在C#或Java中编写一个简单的客户端服务器应用程序,我永远无法预先计算出这段代码的效率和复杂性将是多少,或者整个客户端服务器应用程序将需要的最低要求是什么(我的观察)。
4. 负载平衡和可扩展性分析过于模糊,仅通过添加更多节点来解决服务器上的请求增加问题(我的观察)。
请回答我上述令人困惑的观察。请附上相关参考资料。
如果有人证明我错了并展示了正确的方法,我会很高兴。
提前致谢,
Ashish