我现在从事的一个大型项目现在是高级设备的控制(及所有)应用程序,它是固件的核心。
该设备相当先进,具有比我在内存中所能说的更多的不同功能,其中98%由该庞大的可执行文件处理。一方面,该程序可维护性强,内部模块化程度高,文档正确,并且按目录和文件等对功能进行了合理隔离。
但是最后,它被全部集中到一个应用程序中,该应用程序执行从远程数据库通信,触摸屏处理,处理十二种各种通信协议,测量,几种控制算法,视频捕获,日出时间和复活节日期(认真地,通常,这是非常紧密相关的内容,通常仅通过一些在一些远模块之间滴加的数据才相关。
它可以通过几个单独的可执行文件相互通信来完成,例如,通过套接字进行通信,具有更特定的目的,可以根据需要加载/卸载等等。没有这种特定方式的原因。
一方面,它有效,而且还可以。该项目更加简单,无需维护多个二进制文件的构建。当您可以仅调用方法或读取变量而不是通过套接字或共享内存进行通信时,内部结构也更容易。
但另一方面,这东西的大小,规模让我感到无所适从,感觉就像是驾驶泰坦尼克号一样。我总是被教导要模块化,将所有内容都聚集到一个庞大的文件中感觉很不对。我知道的一个问题是,一个严重的崩溃(甚至无关紧要的)使所有模块崩溃了,但是代码质量确保在发行版中不会真正发生这种情况。否则,内部隔离和防御性编程可确保即使一半内部模块由于某种原因正常发生故障,该操作仍将大部分正确地运行。
我还忽略了哪些其他危险?为什么这使我感到恐惧?这只是对未知的非理性恐惧吗?这样进行严肃的大型项目是否可以接受?请平息我的担心,或者给我一个很好的理由将2.0版重构为多个较小的二进制文件。